Skip to content

ООП 09. Домены. Модели доменного уровня. Типы доменов. Мосты, клиенты, сервера.

Kozlitin Maxim edited this page Jun 14, 2023 · 1 revision

Домены

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

Домен - отдельный реальный, абстрактный или гипотетический мир, населенный отчетливым набором объектов, существующих по характерному набору правил или линий поведения.

Каждый домен образует отдельное и связное единое целое.

Главная идея разбиения системы на домены состоит в том, чтобы можно было максимально безболезненно подменять эти домены, а также делегировать их разработку разным людям/отделам.

Один домен не должен требовать наличия класса в другом домене (чтобы можно было подменять домены).

Классификация доменов:

  • Прикладные - основные домены, которые решают непосредственно нашу задачу.
  • Архитектурный – домен, отвечающий за архитектуру построения системы (один домен на систему); обеспечивает общие механизмы для управления системой и данными (механизмами их передачи). Формализацию начинают с него. Есть уже готовые решения - архитектурные паттерны, которые могут перерастать в целые технологии.
  • Сервисные домены – обеспечивают функции, необходимые для поддержания прикладного домена, всевозможные сервисные функции. Пример: интерфейс.
  • Домены реализации – стандартные, библиотечные функции и так далее. Дают возможность лёгкой замены одной реализации на другую. По сути это набор функционала. Примеры: функционал ОС, библиотеки QT, Boost, STL и т.д.

Мосты, клиенты, сервера

Выделяется 2 вида доменов:

  • Которые предоставляют возможности - сервера
  • Которые используют возможности других доменов – клиенты

Между клиентом и сервером есть мост. Каждую сторону интересует только то, что будет на мосту, и не более того.

Клиент рассматривает мост как набор каких-то предложений, которые кто-то ему представляет.

Сервер – набор требований для выполнения.

Схема доменов

Для доменов реализуется диаграмма связи доменов (ДСД).

Диаграмма доменного уровня как правило содержит в верхней части – домены, наиболее осведомлённые о системе (прикладные), внизу – сервисные и реализации.

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

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

  • Модель связей подсистем (по информационной модели);

  • Модель взаимодействия подсистем (по МВО);

  • Модель доступа подсистем (по МДО);

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

    Все как бы на более высоком уровне

    • Диаграмма сущность связь —> Диаграмма связей подсистем
    • Модель доступа к объектам —> Диаграмма доступа подсистем
    • Модель взаимодействия объектов —> Диаграмма взаимодействия подсистем image
Clone this wiki locally