Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УБП _Пособие.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
16.5 Mб
Скачать

Стереотипы классов

Стереотипы - это механизм, позволяющий разделять классы на категории. Допустим, например, вы хотите найти все формы в вашей модели. Для этого можно создать стереотип Form (форма) и назначить его всем окнам вашего приложения. При поиске форм в дальнейшем надо только искать классы с этим стереотипом.

В языке UML определены три основных стереотипа: Boundary (граница), Entity (объект) и Control (управление).

Пограничные классы

Пограничными классами (boundary classes) называются такие классы, которые расположены на границе системы и всей окружающей среды. Они включают все формы, отчеты, интерфейсы с аппаратурой (такой как принтеры или сканеры) и интерфейсы с другими системами.

Чтобы найти пограничные классы, надо исследовать диаграммы вариантов использования. Каждому взаимодействию между действующим лицом и вариантом использования должен соответствовать по крайней мере один пограничный класс. Именно такой класс позволяет действующему лицу взаимодействовать с системой.

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

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

Классы-сущности

Классы-сущности (entity classes) содержат информацию, сохраняемую постоянно. Например, в системе работы с данными о сотрудниках таким классом является класс Employee (сотрудник). Классы-сущности обычно можно обнаружить в потоке событий и на диаграммах взаимодействия. Они имеют наибольшее значение для пользователя, и потому в их названиях часто используют термины из предметной области.

Часто для каждого класса-сущности создают таблицу в базе данных. В этом заключается еще одно отличие от типичного подхода к конструированию системы. Вместо того, чтобы с самого начала задать структуру базы данных, у нас теперь есть возможность разрабатывать ее на основе информации, получаемой из объектной модели. Это позволяет отслеживать соответствие всех полей базы данных и требований системы. Требования определяют поток событий. Поток событий определяет объекты, классы и атрибуты классов. Каждый атрибут класса-сущности становится полем в базе данных. Применяя такой подход, можно легко отслеживать соответствие между полями базы данных и требованиями к системе, что уменьшает вероятность сбора ненужной информации.

Управляющие классы

Рассмотрим теперь управляющие классы (control classes). Это классы, отвечающие за координацию действий других классов. Обычно у каждого варианта использования имеется один управляющий класс, контролирующий последовательность событий этого варианта использования. Управляющий класс отвечает за координацию, но сам не несет в себе никакой функциональности - остальные классы не посылают ему большого количества сообщений. Вместо этого он сам посылает множество сообщений. Управляющий класс просто делегирует ответственность другим классам. По этой причине управляющий класс часто называют классом-менеджером.

В системе могут быть и другие управляющие классы, общие для нескольких вариантов использования. Например, может быть класс SecurityManager (менеджер безопасности), отвечающий за контроль событий, связанных с безопасностью. Класс Trans actionManager (менеджер транзакций) занимается координацией сообщений, относящихся к транзакциям с базой данных. Могут быть и другие менеджеры для работы с другими элементами функционирования системы, такими как разделение ресурсов, распределенная обработка данных или обработка ошибок.

С помощью этих типов управляющих классов можно легко изолировать функциональность системы. Инкапсуляция в один класс, например, координации безопасности, может минимизировать последствия вносимых изменений. Любые изменения отвечающей за безопасность логики системы затронут только менеджера

безопасности.

Помимо упомянутых выше стереотипов можно создавать и свои собственные.