18. Домены.

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

Домены

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

Нашу систему мы разбиваем на домены.

Виды доменов

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

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

  • Сервисные домены – обеспечивают какие-то сервисные функции.

Например, пользовательский интерфейс. Домен, который реализует взаимодействие пользователя с прикладным доменом, выделяем как сервисный домен. Мы можем читать данные из базы данных из архива - это тоже сервисный домен, то есть то, что необходимо нашей задаче.

  • Архитектурный домен – предоставляет общие механизмы и структуры управления данными и в общем всей системы, как единым целым.

Задача, который решает архитектурный домен: придать однородность структуре ПО.

Какая линия поведения должна быть у архитектурного домена:

  • Арх. домен должен организовывать доступность данных, реализовывать каналы управления;

  • Арх. домен задает структуру прикладного и сервисного доменов;

  • Арх. домен обеспечивает взаимодействие между разными частями кода: между доменами, между подсистемами;

  • Арх. домен обеспечение работу с системой как с единым целым(предоставлять инструменты для сохранения данных, восстановления данных, решать проблемы с исключительными ситуациями) Решений построения архитектурных доменов может быть очень много.

Домены реализации – домены, связаные с общими библиотеками классов, функционал ОС...

Принцип разбиения доменов

Когда в домене большое количество классов (где-то 50 штук), его разбивают на подсистемы по принципу минимума связей между выделенными подсистемами.

Для домена (или для каждой подсистемы):

  • ДСС – диаграмма сущность-связь (информационная модель).

  • МВО – модель взаимодействия объектов (событийная модель). Можем реализовать как синхронно, так и асинхронно (нужно стремиться к асинхронной модели.

  • МДО – модель доступа к объектам (аксессорная модель). Можем реализовать только синхронно.

Если мы домен разбиваем на подсистемы, нужно для домена реализовать соответствующие диаграммы:

  • МСП - модель связи подсистем

  • МВП - модель взаимодействия подсистем

  • МДП - модель доступа подсистем Получается такое соотношение:

  • ДСС ---> МСП

  • МВО ---> МВП

  • МДО ---> МДП

Желательно чтобы все эти диаграммы можно было накладывать друг на друга. То есть расположение всех этих подсистем на трех диаграммах одинаковое. Отличаются только связями: МСП - общее представление о связях, МВП - на уровне событий, МДП - аксессерное взаимодействие.

На модели связей подсистем: можно изобразить множество связей, как одну связь, и перечислить все связи, которые входят в это множество. На модели взаимодействия подсистем: необходимо указать все события (стрелочка от порождающего к принимающему). На модели доступа подсистем: -//-, но стрелочки это не события, а аксессорные процессы между подсистемами.

Внутри прямоугольника, обозначающего подсистему, характеризуем ее: имя, если есть, и диапазон номеров объектов, которые входят в эту подсистему.

Клиент и сервер

Домен, который предоставляет что-то другому домену, называется серверным. О связи между доменами: существует мост между одним доменом и другим. Клиенту не важно, кто предоставляет ему возможности, которые он использует. Серверу не важно, кто использует возможности, которые он предоставляет.

Диаграмма взаимодействия доменов: выделяем, кто клиент, а кто - сервер.

Last updated