Лабораторная работа 1
Тема: Анализ предметной области и проектирование базовой архитектуры информационной системы
Части:
-
Часть 1 — Анализ предметной области и стейкхолдеров
-
Часть 2 — Формирование требований и архитектурных драйверов
-
Часть 3 — Логическая архитектура (подсистемы и функциональная декомпозиция)
-
Часть 4 — Информационная (данная) архитектура
Дисциплина: Проектирование архитектуры информационных систем
Продолжительность: 2 пары (3 академических часа)
Форма проведения: работа в малых подгруппах.
1. Цель лабораторной работы
Сформировать у студентов первичные навыки архитектурного проектирования ИС на ранних стадиях:
-
анализ предметной области и стейкхолдеров;
-
формирование функциональных и нефункциональных требований;
-
выделение логических подсистем и их ответственности;
-
построение концептуальной модели данных.
2. Планируемые результаты (компетенции и умения)
Студент должен уметь:
-
Определять границы информационной системы и её окружение.
-
Выделять стейкхолдеров, их цели и интересы.
-
Формулировать функциональные и нефункциональные требования, архитектурные драйверы и ограничения.
-
Проектировать логическую архитектуру (подсистемы и их взаимодействие).
-
Строить концептуальную модель данных (основные сущности, связи).
-
Оформлять результаты в виде краткого архитектурного описания: текст + диаграммы.
3. Исходные данные
Студент заранее выбирает единый кейс (или несколько на выбор) - а преподаватель утверждает его:
Примеры (страничка следующая за лабораторными работами содержит больше развернутых примеров, либо тему студент выбирает самостоятельно исходя из личных интересов или лучше опыта работы, если имеется):
-
Интернет-магазин цифровых товаров.
-
Система управления учебным процессом в вузе.
-
CRM для небольшой сервисной компании.
-
Система записи к врачу в частной клинике.
-
и тд.
4. Требования к программным средствам
-
текстовый редактор (Word, Google Docs, LibreOffice и т.п.);
-
редактор диаграмм: Draw.io / diagrams.net, Lucidchart, PlantUML, Visual Paradigm, StarUML и др.;
-
при необходимости — шаблон отчёта (смотреть ниже)
5. Структура лабораторной работы
ЧАСТЬ 1. Анализ предметной области и стейкхолдеров
Цель части:
Научиться понимать контекст ИС, определять стейкхолдеров и границы системы.
Рекомендуемое время: 30–40 минут.
Задания
-
Изучить исходное описание кейса.
Внимательно прочитайте текст задания. При необходимости можно задать уточняющие вопросы преподавателю. -
Выделить стейкхолдеров.
Составьте таблицу:Стейкхолдер Тип (внутр./внешн.) Роль Основные интересы / цели Возможные риски / опасения
-
Минимум 5–7 стейкхолдеров (пользователи, заказчик, администрация, поддержка, внешние системы и т.д.).
-
Определить границы системы.
-
Опишите, что делает ИС, а какие функции остаются вне её границ (ручные процессы, сторонние сервисы).
-
Перечислите внешние системы (платёжные сервисы, почта, госсервисы и т.п.), если они упоминаются или логически вытекают из кейса.
-
-
Построить контекстную диаграмму (диаграмма окружения).
-
В центре — разрабатываемая ИС.
-
Вокруг — стейкхолдеры и внешние системы.
-
Отразить основные потоки информации (что передаётся куда: заказы, отчёты, уведомления и т.п.).
-
Результат ЧАСТИ 1 (в отчёт):
-
Текстовое описание предметной области (5–10 предложений).
-
Таблица стейкхолдеров.
-
Контекстная диаграмма с краткой подписью.
ЧАСТЬ 2. Формирование требований и архитектурных драйверов
Цель части:
Выделить требования к системе и определить ключевые архитектурные драйверы (то, что влияет на архитектуру).
Рекомендуемое время: 30–40 минут.
Задания
-
Функциональные требования.
Составьте список не менее чем из 10–15 функциональных требований.
Можно использовать формат «пользовательских историй» или кратких сценариев:-
«Пользователь должен иметь возможность зарегистрироваться в системе».
-
«Менеджер должен иметь возможность сформировать отчёт по продажам за период».
-
-
Нефункциональные требования.
Сформулируйте не менее 5–7 нефункциональных требований по категориям:-
производительность (время отклика, количество пользователей);
-
надёжность / доступность;
-
безопасность (аутентификация, авторизация, защита данных);
-
масштабируемость;
-
удобство сопровождения и развития и др.
-
-
Архитектурные ограничения.
Перечислите ограничения, которые влияют на архитектуру, например:-
использование определённой СУБД или стека технологий;
-
необходимость интеграции с конкретной внешней системой;
-
ограничения по бюджету, срокам, квалификации команды.
-
-
Формализация 2–3 сценариев качества.
Возьмите 2–3 важных нефункциональных требования (например, производительность, доступность, безопасность) и оформите их в виде сценариев качества:Структура:
-
Источник стимула (кто / что инициирует ситуацию).
-
Сам стимул (событие).
-
Контекст (условия, при которых происходит событие).
-
Ожидаемая реакция системы.
-
Критерии приемлемости (конкретные, измеримые).
-
Результат ЧАСТИ 2 (в отчёт):
-
Список функциональных требований (10–15 пунктов).
-
Список нефункциональных требований (5–7 пунктов).
-
Таблица архитектурных ограничений.
-
2–3 сценария качества в формализованной форме.
ЧАСТЬ 3. Логическая архитектура (подсистемы и функциональная декомпозиция)
Цель части:
Спроектировать логическую структуру системы: подсистемы, их ответственность и взаимодействие.
Рекомендуемое время: 40–45 минут.
Задания
-
Функциональная декомпозиция.
На основе требований сгруппируйте функции в логические блоки (подсистемы).
Примеры подсистем:-
«Управление пользователями и ролями»;
-
«Управление каталогом товаров»;
-
«Управление заказами»;
-
«Оплаты и расчёты»;
-
«Отчётность и аналитика»;
-
«Интеграция с внешними системами» и др.
Минимум 5–7 подсистем.
-
-
Определить ответственность подсистем.
Для каждой подсистемы заполните таблицу:| Подсистема | Ответственность | Основные операции / функции | Основные данные, которыми оперирует |
-
Определить взаимодействие подсистем.
-
Опишите, какая подсистема обращается к какой и по какому поводу.
-
Можно указать тип взаимодействия на уровне идей (синхронный запрос, асинхронное сообщение и т.п., пока без технических деталей).
-
-
Построить диаграмму логической архитектуры.
Возможные варианты:-
UML диаграмма пакетов / компонентов;
-
C4 диаграмма уровня Container (основные контейнеры / сервисы и связи).
На диаграмме должны быть:
-
все подсистемы;
-
стрелки / связи между ними;
-
подписи связей (какой тип информации передаётся, за что отвечает связь).
-
Результат ЧАСТИ 3 (в отчёт):
-
Таблица подсистем и их ответственности.
-
Диаграмма логической архитектуры (подсистем / контейнеров) с кратким текстовым пояснением (5–10 предложений).
ЧАСТЬ 4. Информационная (данная) архитектура
Цель части:
Спроектировать концептуальную модель данных, согласованную с логической архитектурой.
Рекомендуемое время: 40–45 минут.
Задания
-
Выделить ключевые сущности предметной области.
На основе требований и подсистем определите 8–15 сущностей, например:-
Пользователь, Роль;
-
Клиент;
-
Товар / Услуга;
-
Заказ, Позиция заказа;
-
Платёж;
-
Отчёт и т.п.
-
-
Определить атрибуты и связи.
Для каждой сущности определите:-
ключевые атрибуты (ID, наименование, дата, сумма, статус и т.д.);
-
типы связей между сущностями (1:1, 1:N, M:N).
-
-
Построить ER-диаграмму (концептуальная модель данных).
Используйте удобную нотацию (Crow’s Foot, UML Class).
На диаграмме должны быть:-
сущности (в виде прямоугольников) с основными атрибутами;
-
связи с указанием кратности.
-
-
Связать сущности с подсистемами.
Для каждой сущности укажите, какая подсистема является основным «владельцем» данных (где эти данные создаются и хранятся как «источник истины»).Таблица:
| Сущность | Описание | Основная подсистема-владелец | Другие подсистемы, использующие данные |
-
Проанализировать риски по данным.
Кратко (5–7 предложений) опишите возможные проблемы:-
избыточность и дублирование данных;
-
проблемы целостности;
-
потенциальные «узкие места» по производительности (например, очень нагруженные сущности).
-
Результат ЧАСТИ 4 (в отчёт):
-
ER-диаграмма (концептуальная модель данных).
-
Таблица «сущности — подсистемы».
-
Краткий текстовый анализ рисков по данным.
6. Структура итогового отчёта по Лабораторной работе 1
Рекомендуемая структура отчёта:
-
Титульный лист (по шаблону вуза).
-
Цель и задачи работы.
-
Краткое описание предметной области и кейса.
-
Часть 1. Анализ стейкхолдеров и контекста системы
-
описание предметной области;
-
таблица стейкхолдеров;
-
контекстная диаграмма.
-
-
Часть 2. Требования и архитектурные драйверы
-
функциональные требования;
-
нефункциональные требования;
-
архитектурные ограничения;
-
сценарии качества.
-
-
Часть 3. Логическая архитектура
-
таблица подсистем и ответственности;
-
диаграмма логической архитектуры;
-
текстовое пояснение.
-
-
Часть 4. Информационная архитектура
-
перечень сущностей и атрибутов;
-
ER-диаграмма;
-
таблица «сущности — подсистемы»;
-
анализ рисков.
-
-
Ответы на контрольные вопросы.
-
Выводы по работе.
7. Контрольные вопросы (примерный перечень)
-
Что такое стейкхолдер информационной системы? Приведите примеры.
-
Для чего нужно определять границы системы и её окружение на ранних этапах?
-
Чем функциональные требования отличаются от нефункциональных?
-
Что такое архитектурный драйвер? Приведите два примера для вашего кейса.
-
Зачем выполнять функциональную декомпозицию системы?
-
В чём отличие логической архитектуры от физической (технологической)?
-
Что такое концептуальная модель данных? Чем она отличается от логической модели БД?
-
Почему важно понимать, какая подсистема является владельцем данных?
8. Критерии оценивания
-
Полнота анализа стейкхолдеров и контекста — до 20%.
-
Качество и реалистичность требований и сценариев качества — до 25%.
-
Обоснованность логической архитектуры и корректность диаграммы подсистем — до 25%.
-
Корректность модели данных (ER-диаграммы) и связи с подсистемами — до 20%.
-
Оформление отчёта, выводы, ответы на вопросы — до 10%.