Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

699

.pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
3.63 Mб
Скачать

1.3.4. Диаграмма композитной/составной структуры. Статическая структурная диаграмма

Диаграмма композитной/составной структуры

(Composite structure diagram) – статическая структурная диаграмма, демонстрирует внутреннюю структуру классов и, по возможности, взаимодействие элементов (частей) внутренней структуры класса.

Подвидом диаграмм композитной структуры являются диаграммы кооперации (Collaboration diagram), которые показывают роли и взаимодействие классов в рамках кооперации. Кооперации удобны при моделировании шаблонов проектирования. Диаграммы композитной структуры могут использоваться совместно с диаграммами классов.

1.3.5. Диаграмма пакетов. Статическая структурная диаграмма

Диаграмма пакетов (Package diagram) – структурная диаграмма, основным содержанием которой являются пакеты и отношения между ними. Жесткого разделения между разными структурными диаграммами не проводится, поэтому данное название предлагается исключительно для удобства и не имеет семантического значения (пакеты и диаграммы пакетов могут присутствовать на других структурных диаграммах). Диаграммы пакетов служат в первую очередь для организации элементов в группы по какомулибо признаку с целью упрощения структуры и организации работы с моделью системы.

1.3.6. Диаграмма состояний и диаграмма активности. Логическая модель АИС. Моделирование динамических аспектов системы

Для моделирования поведения на логическом уровне в языке UML могут использоваться несколько диаграмм: состояний, деятельности, последовательности и кооперации.

51

Поведение большинства объектов реальных систем можно представить с точки зрения теории конечных автоматов, т.е. поведение объекта отражается в его состояниях, и данный тип диаграмм позволяет отразить это графически. Для этого используется два вида диаграмм: Statechart diagram (диаграмма состояний) и Activity diagram (диа-

грамма активности) [42].

Диаграмма автомата (State Machine diagram, диаграмма конечного автомата, диаграмма состояний) – диаграмма, на которой представлен конечный автомат с простыми состояниями, переходами и композитными состояниями.

Конечный автомат (англ. State machine) – спецификация последовательности состояний, через которые проходит объект или взаимодействие в ответ на события своей жизни, а также ответные действия объекта на эти события. Конечный автомат прикреплен к исходному элементу (классу, кооперации или методу) и служит для определения поведения его экземпляров.

Диаграмма состояний (State Diagram) в среде Rational Rose приведена на рис. 21.

Рис. 21. Диаграмма состояний в среде Rational Rose

52

Состояние (state) – ситуация в жизненном цикле объекта, который выполняет определенную деятельность или ожидает какого-либо события. Диаграмма состояний показывает, как объект переходит из одного состояния в другое (рис. 22). Диаграммы состояний служат для моделирования динамических аспектов системы.

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

а

б

Рис. 22. Примеры диаграмм состояний

Главное предназначение этой диаграммы – описать возможные последовательности состояний и переходов, которые в совокупности характеризуют поведение элемента модели в течение его жизненного цикла. Диаграмма состояний представляет динамическое поведение сущностей, на основе спецификации их реакции на восприятие некоторых конкретных событий [39].

53

Автомат (state machine) в языке UML представляет собой некоторый формализм для моделирования поведения элементов модели и системы в целом. Каждая диаграмма состояний представляет некоторый автомат. Основными понятиями, входящими в формализм автомата, являются состояние и переход.

Состояние может быть задано в виде набора конкретных значений атрибутов класса или объекта, при этом изменение их отдельных значений будет отражать изменение состояния моделируемого класса или объекта (рис. 23) [6].

а

б

Рис. 23. Графическое изображение состояний на диаграмме состояний

Список внутренних действий или деятельностей указывается в нижней секции прямоугольника.

Перечень меток действия имеет фиксированные значения в языке UML, которые не могут быть использованы в качестве имен событий entry, exit, do.

Начальное и конечное состояние не содержит никаких внутренних действий (псевдосостояния) (рис. 24).

Рис. 24. Графическое изображение начального и конечного состояний на диаграмме состояний

54

Простой переход (simple transition) представляет собой отношение между двумя последовательными состояниями, которое указывает на смену одного состояния другим [42].

Переход осуществляется при наступлении некоторого события: окончании выполнения деятельности (do activity), получении объектом сообщения или приеме сигнала. На переходеуказывается имя события, могутуказыватьсядействия, производимые объектом в ответ на внешние события при переходе из одного состояния в другое. Срабатывание перехода может зависеть не только от наступления некоторого события, но и от выполнения определенного условия, называемого сторожевым условием. Объект перейдет из одного состояния в другое в том случае, если произошло указанное событие и сторожевоеусловиеприняло значение«истина».

На диаграмме состояний переход изображается сплошной линией со стрелкой, которая направлена в целевое состояние.

Термин событие (event) фиксирует изменения, происходящие при переходе моделируемого объекта из состояния в состояние. В языке UML события играют роль стимулов, которыеинициируютпереходыизоднихсостояний вдругие.

Сторожевое условие (guard condition) представляет собой некотороебулевскоевыражение(«истина» или «ложь»).

Выражение действия (action expression) выполняется в том и только в том случае, когда переход срабатывает. Представляет собой атомарную операцию (достаточно простое вычисление), выполняемую сразу после срабатывания соответствующего перехода до начала каких бы то ни было действий в целевом состоянии. В качестве примера выражения действия может служить «разорвать телефонное соединение (телефонный номер)».

Составное состояние (composite state) – сложное состояние, включающее в себя другие вложенные в него состояния.

55

Историческое состояние (history state) применяется в контексте составного состояния. Оно используется для запоминания того из последовательных подсостояний, которое было текущим вмомент выходаизсоставного состояния.

В отдельных случаях переход может иметь несколько состояний-источников и несколько целевых состояний. Такой переход получил специальное название – параллельный переход.

Переход, стрелка которого соединена с границей некоторого составного состояния, обозначает переход в составное состояние.

Диаграмма деятельности UML (Activity diagram). Моделирование динамических аспектов системы

Диаграмма деятельности (Activity diagram) – диаграмма, на которой показано разложение некоторой деятельности на составные части. Под деятельностью (англ. activity) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчиненных элементов – вложенных видов деятельности и отдельных действий (англ. action), соединенных между собой потоками, которые идут от выходов одного узла к входам другого.

Диаграммы деятельности (рис. 25) используются при моделировании бизнес-процессов, технологических процессов, последовательных и параллельных вычислений [39].

Рис. 25. Диаграмма деятельности

56

Переходы используются, когда действие завершается, поток управления сразу переходит на следующее действие или деятельности (Transitions). Показывают путь из одного состояния действия или деятельность в другое. В UML переход представляется простой линией со стрелкой [6].

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

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

При моделировании течения бизнес-процессов иногда бывает полезно разбить состояния деятельности на диаграммах деятельности на группы, каждая из которых представляет отдел компании, отвечающий за ту или иную работу. В UML такие группы называются дорожками (Swimlanes), поскольку визуально каждая группа отделяется от соседних вертикальной чертой (рис. 26).

Каждой присутствующей на диаграмме дорожке присваивается уникальное имя.

Сочетание зависимостей и объекта называется траекторией объекта (Object flow), поскольку описывает его участие в потоке управления.

57

Рис. 26. Дорожки в диаграммах деятельности

Кроме изображения траектории объекта на диаграмме деятельности можно показать, как изменяются его роль, состояние и значения атрибутов. Как показано на рис. 26, для изображения состояния объекта его имя заключается в скобки и помещается под именем объекта. Аналогично можно представить и значения атрибутов объекта [24, 42].

Диаграммы деятельности используются для моделирования динамических аспектов системы. Эти динамические аспекты могут предполагать деятельность любого уровня абстракции любого вида системной архитектуры, включая классы, интерфейсы, компоненты и узлы.

58

1.3.7. Диаграммы взаимодействия: диаграммы коммуникации и последовательности.

Динамические аспекты системы

Диаграмма взаимодействия (Interaction diagram)

включает в себя диаграммы Sequence diagram (диаграммы последовательностей действий) и Collaboration diagram (Communication diagram) (диаграммы сотрудничества, диаграммы коммуникации). Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе.

Диаграмма обзора взаимодействия (Interaction overview diagram) – разновидность диаграммы деятельности, включающая фрагменты диаграммы последовательности и конструкции потока управления.

Этот тип диаграмм включает в себя диаграммы Sequence diagram (диаграммы последовательностей действий) и Collaboration diagram (диаграммы сотрудничества). Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе [6].

Взаимодействием (Interactions) называется поведение, выражаемое в обмене сообщениями между объектами данной совокупности в данном контексте, в результате чего достигается определенная цель. Сообщение (Message) – это передаваемая информация в расчете на то, что в ответ последует определенное действие.

Взаимодействия применяют для моделирования динамических аспектов коопераций (Collaborations). Роли (Roles) – экземпляры-прототипы классов, интерфейсов, компонентов, узлов и прецедентов, динамические аспекты которых визуализируются, специфицируются, конструируются и документируются в виде потоков управления. Динамические аспекты системы в UML моделируются с помощью взаимодействий. С помощью взаимодействий мо-

59

делируют потоки управления внутри операции, класса, компонента, прецедента или системы в целом. Сообщения представляют в виде линии со стрелкой и добавляют название операции (рис. 27).

Взаимодействия между объектами встречаются при реализации операций и существуют в контексте класса.

Связью (Link) называется семантическое соединение между объектами (association, self, global, local, parameter) [24].

Рис. 27. Пример диаграммы взаимодействий

Диаграмма последовательности (Sequence diagram) –

диаграмма, на которой показаны взаимодействия объектов, упорядоченные по времени их проявления, на которой изображено упорядоченное во времени взаимодействие объектов (рис. 28).

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]