Диаграмма взаимодействия объектов (interaction diagram)
Для каждого прецедента использования может быть построена модель динамического взаимодействия объектов, которая представляется в одной из двух форм:
· в форме диаграммы последовательностей (sequence diagram), показывающей последовательность взаимодействий на графе;
· в форме кооперативной диаграммы (collaboration diagram), показывающей взаимодействие объектов в табличной форме.
В диаграмме последовательностей взаимодействие объектов отображается в виде стрелки между объектами, которая соответствует событию или сообщению от одного объекта к другому, вызывающему выполнение метода, реагирующего на событие (сообщение) объекта. Номер стрелки соответствует номеру события в последовательности. Пример диаграммы последовательностей представлен на рис. 13.13.
Рис. 13.13. Диаграмма последовательностей для прецедента Выполнение заказа клиент.
Диаграмма кооперативного поведения представляется в табличном виде по следующим правилам.
1. В столбцах таблицы указываются объекты всех типов, участвующие в реализации прецедента использования. Порядок расположения активных и пассивных объектов произволен и должен быть удобен для понимания модели. Актеры прецедента использования отображаются на правой и левой границах таблицы.
2. По горизонтали проводятся поименованные стрелки, отражающие взаимодействие (коммуникацию) объектов в рамках одной операции. Эта стрелка означает, что первый объект в рамках выполняемой операции посылает сообщение второму объекту о необходимости выполнения действия. При получении сообщения второй объект выполняет действие.
3. На пересечении строк и столбца вертикально отображается условный отрезок времени, в течение которого выполняется то или иное действие над объектом.
Пример кооперативной диаграммы представлен на рис. 13.14.
Рис. 13.14. Диаграмма кооперативного поведения для основного потока событий прецедента использования Выполнить заказ
Диаграмма деятельностей
Диаграммы взаимодействий не отражают детально порядок выполнения операций в части разветвлений, циклических повторений, параллельности/произвольности действий. Диаграмма деятельностей исправляет данные недостатки. Под деятельностью будем понимать некоторую работу, которая может быть декомпозирована на совокупность действий.
Диаграмма деятельностей может отражать взаимодействие объектов из нескольких прецедентов использования, в частности реализующих отдельно стандартные и альтернативные пути обработки объектов.
Блок, соответствующий одной деятельности, может отражать несколько событий и быть декомпозирован аналогично блоку функционально-ориентированного подхода.
Ниже представлены используемые в диаграмме деятельностей понятия и их графическое обозначение.
Деятельность (activity) | |
Поток от деятельности к деятельности | |
Разделение потока на деятельности, выполняемые параллельно или произвольно | |
Решение | |
Синхронизация | |
Итерация | |
< | Выход |
Пример диаграммы деятельностей представлен на рис. 13.15.
Рис. 13.15.Диаграмма деятельностей процесса выполнения заказа
Диаграммы пакетов
В объектно-ориентированном подходе пакет содержит множество взаимосвязанных классов объектов и соответствует понятию подсистема функционально-ориентированного подхода. Один прецедент использования может требовать классы объектов из разных пакетов. Класс объектов обычно назначается одному пакету, но с позиции достижения разных подцелей может входить в состав разных пакетов.
Пакетная технология группирования классов объектов позволяет упростить:
· разработку и эксплуатацию ЭИС;
· гибкую адаптацию типовых компонентов с позиции их повторного использования;
· оптимизацию клиент-серверной архитектуры ЭИС.
Обычно ЭИС разбивается на функциональные и обеспечивающие пакеты (рис. 13.16).
Рис. 13.16.Пример диаграммы пакетов
Функциональные пакеты, соответствующие решаемым проблемам (задачам), объединяются в один общий пакет «Проблемная область». Каждый пакет, в свою очередь, может быть разбит на подпакеты в соответствии с семантической близостью и теснотой взаимодействия классов объектов. Обычно пакеты проблемной области содержат иерархии обобщения и агрегации. Классы объектов, требуемые в нескольких подсистемах, выделяются в самостоятельные пакеты. В одном пакете, как правило, определяется не более 20 компонентов, обычно 5-15.
С обеспечивающей точки зрения ЭИС разбивают на пять основных пакетов:
· «Интерфейс», объекты которого реализуют функции взаимодействия пользователей с ЭИС по вводу-выводу информации и обмен сообщениями между подсистемами;
· «База данных», объекты которого выполняют доступ к данным во внешней памяти;
· «Управление задачами», объекты которого осуществляют функции диспетчеризации и маршрутизации обработки объектов, например в системе управления рабочими потоками;
· «Утилиты», объекты которого осуществляют вспомогательные функции, например преобразование форматов данных;
· Обеспечивающие пакеты, т.е. работающие по принципу «клиент-серверной» архитектуры, выполняющие серверные функции для функциональных объектов-клиентов. Таким образом, обеспечивающие пакеты освобождают пользователя от знания деталей программно-технической реализации ЭИС.