ООА. Модели доменного уровня, понятие мостов, клиентов, серверов. - Painted-Black/BMSTU-OOP GitHub Wiki

Когда имеется большая система, мы разбиваем задачу на домены.


  • Прикладные - основные домены, которые решают непосредствено задачу. 


  • Сервисные домены – обеспечивают функции, необходимые для поддержания прикладного домена, всевозможные сервисные функции.

  • 
Архитектурный – домен, отвечающий за архитектуру построения системы (один домен на систему); обеспечивает общие механизмы для управления системы.
 Задает архитектуру системы.

  • Домены реализации – стандартные, библиотечные функции и так далее. Функционал, который предоствяляет какой-то низкой уровень/ОС. Дают возможность лёгкой замены одной реализации на другую.

Один домен использует возможности и механизмы другого – между этими доменами есть мост. Тот, который предоставляет возможности, называют сервером; использующий – клиентом. Клиент рассматривает мост как набор каких-то предложений, которые кто-то ему представляет. Сервер – набор требований. Диаграмма доменного уровня как правило содержит в верхней части – домены, наиболее осведомленнее о системе (прикладные), внизу – сервисные и реализации.

При разбиении задачи для проектирования каждого домена можно использовать разные технологии. Например в задаче отрисовки, непосредственно рисование – структурный подход, а различные взаимодействия на сцене – объектный. Доменный подход позволяет в дальнейшем легко заменить один домен на другой; сервер рассматривается как набор предложений.

Прикладной домен разбивается на подсистемы, в то время как сервисный – просто набор функций. Для домена, так же как и для подсистемы, рисуется три диаграммы:

  • модель связей подсистем (по информационной модели)
  • модель взаимодействия подсистем (по МВО) (! Если мы выделяем событийную модель для какой-то подсистемы, то все подсистемы этого домена должны использовать событийную модель)
  • модель доступа подсистем (по МДО)
    • модель доступа к объекта. Стрелочкой помечается идентификатор процесса. Модель взаимодействия – асинхронная, событийная модель. Модель доступа – синхронное взаимодействие (один объект может получить данные другого объекта) В итоге получаем модель доступа к объектам, таблица процессов состояний, диаграмма потомков данных действий.