Контекст системы и системный ландшафт
Ландшафт и контекст
Заголовок раздела «Ландшафт и контекст»Системный ландшафт и контекст системы похожи внешне, но имеют разную область.
| Представление | Область | Центральный элемент |
|---|---|---|
| Системный ландшафт | организация, подразделение или предметная область | набор связанных программных систем |
| Контекст системы | одна проектируемая программная система | эта система и её непосредственное окружение |
Ландшафт полезен университету, который хочет показать связь учебных, кадровых и библиотечных систем. Для учебного проекта чаще достаточно контекста: он не расширяет границу проекта до всего университета.
Элементы контекста системы
Заголовок раздела «Элементы контекста системы»Диаграмма строится из результатов работы со стейкхолдерами и границей системы, целями пользователей и вариантами использования.
| Элемент | Смысл | Пример для сервиса записи |
|---|---|---|
| Человек | пользователь или внешняя роль, которая достигает цели | студент, преподаватель, сотрудник учебного офиса |
| Проектируемая система | программная система, за которую отвечает команда | сервис записи на консультации |
| Внешняя система | независимая система вне границы проекта | университетская служба единого входа, сервис уведомлений |
| Связь | значимое взаимодействие между элементами | «студент записывается», «проверяет учётные данные», «отправляет уведомление» |
Внешняя система остаётся внешней, даже если доступна по сети организации или поставляется тем же вендором. Признак границы — не техническая близость, а ответственность команды: она не владеет её поведением, данными и изменениями.
Сквозной пример
Заголовок раздела «Сквозной пример»[Студент] ── записывается на консультацию ──> [Сервис записи][Преподаватель] ── открывает интервалы ──> [Сервис записи][Сотрудник учебного офиса] ── разрешает спорные записи ──> [Сервис записи][Сервис записи] ── проверяет личность ──> [Служба единого входа][Сервис записи] ── передаёт события ──> [Сервис уведомлений]Надписи на связях должны описывать действие или передаваемую ценность. «Использует» почти никогда не помогает: из него непонятны намерение, направление и важность связи.
От контекста к моделям курса
Заголовок раздела «От контекста к моделям курса»Контекст не заменяет подробные артефакты. Он даёт их обзор и помогает проверить границу:
- каждого человека можно обосновать стейкхолдером, пользователем или актором варианта использования;
- для каждой внешней системы известен внешний результат, протокол или необходимая информация;
- существенные пользовательские цели раскрываются вариантами использования и их спецификациями;
- порядок действий остаётся в сценариях и потоках, а не на контексте.
У системы может быть несколько контекстов для разных аудиторий. Например, преподавателю важны интервалы и отмены, а службе сопровождения — единый вход и уведомления. Менять можно степень детализации, но не границу системы и не состав ответственных внешних систем без нового проектного решения.
Типичные ошибки
Заголовок раздела «Типичные ошибки»| Ошибка | Почему неверно | Исправление |
|---|---|---|
| Показаны таблицы базы данных и классы | контекст отвечает не о внутренностях | перейти к контейнерам или технической модели классов |
| Внутри границы помещена служба единого входа | команда ею не владеет | оставить внешней системой |
| Между всеми элементами проведены линии | связи теряют смысл | оставить только архитектурно значимые взаимодействия |
| Роль названа «пользователь» | неясна цель и ответственность | назвать конкретную роль |
| Отсутствует подпись связи | читатель угадывает смысл | добавить действие и, при необходимости, канал |
Проверка
Заголовок раздела «Проверка»Перед переходом к контейнерам ответьте на вопросы:
- Граница совпадает с границей ответственности команды?
- Все люди находятся снаружи системы?
- У каждой внешней системы есть понятная причина присутствия?
- Связи можно сопоставить с требованиями, сценариями или архитектурными решениями?
- Диаграмма остаётся читаемой, если убрать устное объяснение?
Далее: контейнеры и границы выполнения.