Шаг 126.
Унифицированный язык моделирования UML.
Моделирование структурированных классов
На этом шаге рассмотрим типичные приемы моделирования структурированных классов в UML.
Структурированный класс может быть использован для моделирования структур данных, в которых части имеют контекстно-зависимые
соединения, существующие только в пределах класса. Обычные
атрибуты или ассоциации могут определять составные части класса,
но части не могут быть связаны друг с другом на простой диаграмме
классов. Класс, внутренняя структура которого показана с помощью
частей и коннекторов, позволяет избежать этой проблемы.
Чтобы смоделировать структурированный класс, необходимо:
- идентифицировать внутренние части класса и их типы;
- дать каждой части имя, отражающее ее назначение в структурированном классе, а не ее тип;
- нарисовать коннекторы между частями, которые обеспечивают коммуникацию или имеют контекстно-зависимые связи;
- использовать другие структурированные классы как типы частей, но помнить, что подключение к частям
нельзя осуществлять внутри другого структурированного
класса – можно подключаться только к их внешним портам.
Компоненты позволяют вам инкапсулировать части вашей системы, чтобы уменьшить количество зависимостей, сделать их явными, а также повысить взаимозаменяемость и гибкость на случай,
если система должна будет изменяться в будущем. Хороший компонент наделен следующими характеристиками:
- инкапсулирует сервис с хорошо очерченным интерфейсом
и границами;
- имеет внутреннюю структуру, которая допускает возможность ее описания;
- не комбинирует несвязанной функциональности в пределах
одной единицы;
- организует внешнее поведение, используя интерфейсы и порты в небольшом количестве;
- взаимодействует только через объявленные порты.
Если вы решили показать реализацию компонента, используя
вложенные подкомпоненты, примите во внимание следующее:
- не злоупотребляйте использованием подкомпонентов. Если
их слишком много, чтобы они легко уместились на одной
странице, применяйте дополнительные уровни декомпозиции некоторых из них;
- убедитесь, что подкомпоненты взаимодействуют только через определенные порты и коннекторы;
- определите, какие подкомпоненты непосредственно взаимодействуют с внешним миром, и моделируйте их делегирующими коннекторами.
Когда вы изображаете компонент в UML:
- дайте ему имя, которое ясно описывает его назначение. Та-ким же образом именуйте интерфейсы;
- присваивайте имена подкомпонентам и портам в случае, если
их значение нельзя определить по их типам или же в модели
присутствует множество частей одного типа;
- скрывайте ненужные детали. Вы не должны показывать все
детали реализации на диаграмме компонентов;
- показывайте динамику компонентов, используя диаграммы
взаимодействия.
На следующем шаге рассмотрим моделирование программного интерфейса API.
Предыдущий шаг
Содержание
Следующий шаг