587.84K

Презентация_Рыболовная_фирма_12

1.

КУРСОВАЯ РАБОТА · ЗАЩИТА
Информационная
система
«Рыболовная фирма»
Учёт судов, рейсов и уловов с веб-интерфейсом
и аналитической отчётностью (Задание № 29)
Выполнил: Савельев И. И., группа ЭФБО-13-24
Дисциплина: Создание программного обеспечения · РТУ МИРЭА

2.

01
ВВЕДЕНИЕ
Актуальность, цель и задачи
Цель
Проблема
Разработать клиент-серверную ИС учёта судов,
рейсов и уловов с веб-интерфейсом и аналитикой
Ручной учёт флота, рейсов и уловов
трудоёмок и подвержен ошибкам
Нет быстрой агрегированной аналитики
промысла
Ключевые задачи
Отсутствуют разграничение прав доступа
и журнал аудита
анализ предметной области и аналогов
формирование требований и выбор стека
проектирование модели данных и архитектуры
реализация, тестирование и документирование

3.

02
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Предметная область: сущности
Судно
тип, водоизмещение, капитан
Улов
вид рыбы, вес, дата
Место лова
справочник районов промысла
Рейс
выход на лов, ≤ 15 дней
Пользователь
Журнал аудита
роль: admin / оператор / user
лог действий пользователей
Связи: пользователь → суда и рейсы · судно → рейсы · рейс → уловы · место лова → уловы (1 : N, каскадное удаление)

4.

03
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Роли и сценарии использования
Пользователь
Оператор флота
Администратор
вход в систему
+ управление судами
+ управление пользователями
просмотр данных
+ рейсы и уловы
+ удаление мест лова
просмотр отчётов
+ справочник мест
+ журнал аудита
Права наследуются: оператор расширяет пользователя, администратор — оператора (диаграмма Use Case)

5.

04
АНАЛИЗ АНАЛОГОВ
Сравнение существующих решений
Критерий
Excel

Меркурий
Наше решение
Учёт флота и рейсов
Ручной
Да
Нет
Да
Аналитические отчёты
Вручную
Да
Огранич.
Да
Роли и аудит
Нет
Да
Да
Да
Стоимость
Низкая
Высокая
Бесплатно
Бесплатно
Нет
Частично
Нет
Да
Учёт специфики задачи
Вывод: универсальные системы избыточны и дороги, таблицы небезопасны, госсистемы решают иную задачу —
обоснована разработка собственной ИС

6.

05
ТРЕБОВАНИЯ
Функциональные требования
Регистрация и вход
Справочник судов
разграничение прав по ролям
добавление, изменение, удаление
Справочник мест лова
Рейсы и уловы
управление районами промысла
регистрация с проверкой дат (≤ 15 дней)
Аналитические отчёты
Рейсы для места лова
6 запросов задания
привязка и удаление рейсов
+ ведение журнала действий пользователей для контроля и аудита операций

7.

06
ТРЕБОВАНИЯ
Нефункциональные требования
Категория
Требование
Обоснование
Безопасность
хеш паролей (bcrypt), доступ по JWT, операции — по
ролям
защита данных от
несанкционированного доступа
Надёжность
валидация ввода, понятные сообщения об ошибках
снижение риска некорректных данных
Целостность
внешние ключи, каскад, контроль правил (рейс ≤ 15
дней)
непротиворечивость хранимых данных
Удобство
эргономичный интерфейс по ГОСТ Р ИСО 9241
низкий порог входа для сотрудников
Кроссплатформенность
работа в современных браузерах (Chrome, Firefox,
Edge)
доступность без установки ПО
Совокупность требований определяет качество системы и учитывается при выборе технологий и проектировании

8.

07
ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
Выбор технологий
КЛИЕНТ
СЕРВЕР
СУБД
React
Node.js · Express
SQLite
SPA · Redux Toolkit · Material UI ·
Axios
REST API · единый язык с
клиентом
встраиваемая · без отдельного
сервера
Альтернативы: Vue, чистый
HTML/CSS/JS
Альтернативы: Django REST, FastAPI
Альтернативы: PostgreSQL, MySQL
Аутентификация — JWT + bcrypt. Архитектура — распределённый монолит: клиент и REST API взаимодействуют по
HTTP/JSON

9.

ПРОЕКТИРОВАНИЕ
Архитектура и шаблоны проектирования
Слоистая архитектура
Шаблоны проектирования
Клиент (React SPA)
Singleton — единое подключение к БД
Middleware: JWT · роли · валидация
Repository — изоляция доступа к данным
Контроллеры (бизнес-логика)
Strategy — взаимозаменяемые отчёты
Репозитории доступа к данным
Factory Method — создание стратегии по ключу
СУБД SQLite (файл fishing.db)
Observer — журналирование действий
+ Chain of Responsibility: authenticate → requireRole →
контроллер
08

10.

09
ПРОЕКТИРОВАНИЕ
Модель данных (ERD, 3НФ)
users
PK id
username
email
password_hash
role
created_at
vessels
PK id
name, type
displacement
built_date
FK owner_id
trips
audit_log
PK id
FK user_id
action, entity
details, date
PK id
code (unique)
FK vessel_id
depart / return
FK user_id
locations
PK id
name (unique)
catches
PK id
FK trip_id
FK location_id
fish_type
weight_kg, date
5 основных сущностей + журнал аудита · 3-я нормальная форма · связи 1 : N с внешними ключами и каскадным удалением

11.

10
ПРАКТИЧЕСКАЯ ЧАСТЬ
Реализация и тестирование
Аутентификация
Учёт флота и рейсов
Аналитические отчёты
Администрирование
вход и регистрация с ролью
формы с валидацией дат
6 запросов задания
пользователи и аудит
Тестирование
10 тестов пройдено · 8 автотестов REST API + 2 ручные проверки UI
вход и отказ без токена (401)
разграничение прав (403 для user)
валидация рейса (≤ 15 дней)
корректность агрегации отчётов
управление уловами
запись в журнал аудита

12.

Заключение
ИС «Рыболовная фирма» разработана и полностью соответствует техническому заданию
Реализованы все 6 аналитических запросов, включая привязку рейсов к местам лова
Серверная часть с разграничением прав, валидацией и журналом аудита
Клиентский веб-интерфейс: суда, рейсы, отчёты, администрирование
Спроектированы модель данных в 3НФ и слоистая архитектура с 5 шаблонами
Тестирование (автоматическое и ручное) завершено успешно
Перспективы: визуализация отчётов · экспорт в PDF/XLSX · переход на промышленную СУБД
English     Русский Rules