Шаг 135.
Унифицированный язык моделирования UML.
Моделирование потока управления
На этом шаге рассмотрим типичные приемы моделирования потока управления в UML.
Чаще всего взаимодействия используются для моделирования
потока управления, характеризующего поведение системы в целом
(включая варианты использования, образцы, механизмы и каркасы), или же поведения класса либо отдельной операции. В то время
как классы, интерфейсы, компоненты, узлы и их связи представляют статические аспекты системы, взаимодействия отражают ее
динамические аспекты.
Моделируя взаимодействие, вы создаете сценарий
действий, происходящих в наборе объектов. При этом могут применяться такие методы, как использование CRC-карт, позволяющих
исследовать и продумать все, что касается взаимодействий.
Для моделирования потока управления необходимо:
- установить контекст взаимодействия: система ли это в целом, класс или индивидуальная операция;
- определить фазу взаимодействия, прояснив, какие объекты
играют те или иные роли. Установить начальные характеристики объектов, включая значения атрибутов, состояние
и роль. Дать ролям имена;
- если модель описывает структурную организацию объектов, идентифицировать соединяющие их ссылки, которые
важны для осуществления коммуникаций при взаимодействии. Специфицировать природу этих ссылок, при необходимости используя стандартные стереотипы и огра ничения UML;
- в соответствии с временной последовательностью указать
сообщения, передаваемые от объекта к объекту. При необходимости выделить разные виды сообщений; описать параметры и возвращаемые значения, чтобы в должной мере
детализировать описание взаимодействия;
- для более подробного изложения материала снабдить каждый объект, представленный в каждый момент времени, информацией о его состоянии и роли.
В примере на рис. 1 показан набор ролей, взаимодействующих
в контексте механизма публикации и подписки (экземпляр образца проектирования observer – "обозреватель").
Рис.1. Поток управления во времени
Здесь представлены
три роли: p (StockQuotePublisher – ИздательТаблицКотировокАкций),
s1 и s2 (два экземпляра StockQuoteSubscriber – ПодписчикТаблицКотировокАкций). Это наглядный пример диаграммы последовательности, которая показывает временной порядок сообщений.
Рис. 2 демонстрирует пример, семантически эквивалентный
предыдущему, но в виде диаграммы коммуникации, раскрывающей
структурную организацию объектов.
Рис.2. Организация потока управления
Здесь показан тот же поток
управления, однако в дополнение ко всему прочему визуализированы ссылки между объектами.
Моделируя взаимодействия в UML, помните, что каждое из них
представляет динамический аспект сообщества объектов. Хорошо
структурированное взаимодействие наделено следующими признаками:
- достаточно просто и описывает только те объекты, которые
работают вместе для обеспечения поведения, большего чем
поведение суммы этих объектов, взятых порознь;
- имеет четкий контекст и может представлять взаимодействие
объектов в контексте операции, класса или системы в целом;
- эффективно обеспечивает нужное поведение с оптимальным
балансом времени и ресурсов;
- способно к адаптации: элементы взаимодействия, которые
могут изменяться, должны быть изолированы с тем, чтобы
их можно было легко модифицировать;
- доступно пониманию и однозначно, тем самым исключая какие бы то ни было шероховатости, скрытые эффекты и неясную семантику.
Когда вы изображаете взаимодействие в UML, учитывайте следующее:
- выберите способ отображения взаимодействия: либо по хронологическому порядку сообщений, либо по их расположению в контексте некоей структурной организации объектов. Применять оба способа одновременно нельзя;
- обратите внимание на то, что события в некоторых субпоследовательностях упорядочены лишь частично. Точнее говоря,
каждая из них упорядочена, но относительное время наступления событий в разных субпоследовательностях не фиксировано;
- показывайте только те свойства каждого объекта (значения атрибутов, роли и
состояния), которые важны для понимания взаимодействия в его контексте;
- показывайте лишь те свойства каждого сообщения (параметры, семантику
параллельности, возвращаемые значения), которые важны для понимания
взаимодействия в его контексте.
На следующем шаге рассмотрим понятие диаграммы взаимодействия.
Предыдущий шаг
Содержание
Следующий шаг