Курсовая по информационным системам и технологиям должна показывать устройство системы, а не только её интерфейс. Несколько красивых экранов не объясняют, где хранятся данные, кто имеет доступ, как проверяется ввод, что происходит при ошибке и как система взаимодействует с другими сервисами.
Сильная работа идёт от требований к архитектуре, модели данных и проверяемому прототипу.
Определите границу системы
Сначала ответьте:
- кто пользователь;
- какую задачу решает;
- какие данные входят;
- что система выдаёт;
- какие внешние сервисы участвуют.
Граница нужна, чтобы не пытаться автоматизировать всю организацию.
Например, система учёта заявок может заканчивать свою ответственность на передаче данных в бухгалтерию.
Акторы
Выделите роли.
Например:
- пользователь;
- оператор;
- менеджер;
- администратор;
- внешний сервис.
Не создавайте роли только ради диаграммы.
Каждая должна иметь отличающийся набор действий и прав.
Функциональные требования
Формулируйте их как проверяемое действие.
Плохо:
«Система должна быть удобной».
Лучше:
- пользователь создаёт заявку;
- менеджер меняет статус;
- система отправляет уведомление;
- администратор блокирует учётную запись.
Такие требования можно связать с тестами.
Нефункциональные требования
Они описывают качество.
Например:
- время ответа;
- доступность;
- безопасность;
- объём данных;
- число одновременных пользователей;
- резервное копирование.
Не пишите «система должна быть быстрой» без измеримого критерия.
Use case
Для ключевого сценария покажите:
1. предварительное условие;
2. основной поток;
3. альтернативы;
4. ошибки;
5. результат.
Например, создание заказа может завершиться отказом валидации или недоступностью внешнего сервиса.
Не описывайте только идеальный случай.
Архитектура
Выберите структуру под масштаб.
Это может быть:
- клиент-сервер;
- трёхуровневая;
- монолитное веб-приложение;
- набор сервисов;
- desktop-система.
Не называйте проект микросервисным только потому, что в нём несколько классов.
Архитектура должна отражать реальные границы компонентов.
Слои
Даже в небольшом приложении полезно отделить:
- представление;
- бизнес-логику;
- доступ к данным.
Если SQL-запросы и правила расчёта разбросаны прямо по обработчикам интерфейса, систему трудно тестировать и менять.
Модель данных
Сначала определите сущности предметной области.
Например:
- пользователь;
- заказ;
- товар;
- платёж.
Для каждой задайте:
- атрибуты;
- ключ;
- связи;
- ограничения.
Не создавайте одну таблицу с десятками повторяющихся полей.
Нормализация
Она нужна не ради экзаменационного термина.
Цель - убрать аномалии:
- обновления;
- вставки;
- удаления.
Но не дробите базу на десятки таблиц без практической необходимости.
Баланс зависит от задачи и производительности.
Ограничения данных
Часть ошибок должна предотвращаться на уровне схемы.
Например:
- уникальный логин;
- обязательный внешний ключ;
- допустимое состояние;
- ненулевая сумма.
Не оставляйте целостность только на совести интерфейса.
Транзакция
Если операция меняет несколько связанных объектов, подумайте, что будет при сбое между шагами.
Например, заказ создан, а списание остатка не выполнено.
Транзакция помогает сохранить согласованность.
Объясните, какие действия должны быть атомарными.
