18. Домены.
Модели доменного уровня. Типы доменов. Мосты, клиенты, сервера.
Домены
Домен - отдельный реальный, абстрактный или гипотетический мир, населенный отчетливым набором объектов, которые ведут себя соответственно определёнными доменом правилам или линиям поведения.
Нашу систему мы разбиваем на домены.
Виды доменов
Классификация доменов:
Прикладной домен – непосредственно та задача, которую мы решаем. Его часто называют бизнес-логикой нашей системы.
Сервисные домены – обеспечивают какие-то сервисные функции.
Например, пользовательский интерфейс. Домен, который реализует взаимодействие пользователя с прикладным доменом, выделяем как сервисный домен. Мы можем читать данные из базы данных из архива - это тоже сервисный домен, то есть то, что необходимо нашей задаче.
Архитектурный домен – предоставляет общие механизмы и структуры управления данными и в общем всей системы, как единым целым.
Задача, который решает архитектурный домен: придать однородность структуре ПО.
Какая линия поведения должна быть у архитектурного домена:
Арх. домен должен организовывать доступность данных, реализовывать каналы управления;
Арх. домен задает структуру прикладного и сервисного доменов;
Арх. домен обеспечивает взаимодействие между разными частями кода: между доменами, между подсистемами;
Арх. домен обеспечение работу с системой как с единым целым(предоставлять инструменты для сохранения данных, восстановления данных, решать проблемы с исключительными ситуациями) Решений построения архитектурных доменов может быть очень много.
Домены реализации – домены, связаные с общими библиотеками классов, функционал ОС...
Принцип разбиения доменов
Когда в домене большое количество классов (где-то 50 штук), его разбивают на подсистемы по принципу минимума связей между выделенными подсистемами.
Для домена (или для каждой подсистемы):
ДСС – диаграмма сущность-связь (информационная модель).
МВО – модель взаимодействия объектов (событийная модель). Можем реализовать как синхронно, так и асинхронно (нужно стремиться к асинхронной модели.
МДО – модель доступа к объектам (аксессорная модель). Можем реализовать только синхронно.
Если мы домен разбиваем на подсистемы, нужно для домена реализовать соответствующие диаграммы:
МСП - модель связи подсистем
МВП - модель взаимодействия подсистем
МДП - модель доступа подсистем Получается такое соотношение:
ДСС ---> МСП
МВО ---> МВП
МДО ---> МДП
Желательно чтобы все эти диаграммы можно было накладывать друг на друга. То есть расположение всех этих подсистем на трех диаграммах одинаковое. Отличаются только связями: МСП - общее представление о связях, МВП - на уровне событий, МДП - аксессерное взаимодействие.
На модели связей подсистем: можно изобразить множество связей, как одну связь, и перечислить все связи, которые входят в это множество. На модели взаимодействия подсистем: необходимо указать все события (стрелочка от порождающего к принимающему). На модели доступа подсистем: -//-, но стрелочки это не события, а аксессорные процессы между подсистемами.
Внутри прямоугольника, обозначающего подсистему, характеризуем ее: имя, если есть, и диапазон номеров объектов, которые входят в эту подсистему.
Клиент и сервер
Домен, который предоставляет что-то другому домену, называется серверным. О связи между доменами: существует мост между одним доменом и другим. Клиенту не важно, кто предоставляет ему возможности, которые он использует. Серверу не важно, кто использует возможности, которые он предоставляет.
Диаграмма взаимодействия доменов: выделяем, кто клиент, а кто - сервер.
Last updated