Смекни!
smekni.com

Unified Modeling Language как унифицированный язык моделирования (стр. 2 из 3)

Клиент, придя в химчистку, прежде чем отдать бельё, он заполняет заявку. На рисунке видно, что клиент генерирует сообщение: «Составление текста заявки». Далее объект «Заявка» будет генерировать сообщения и для объекта «Расчет заявки» класса «Бухгалтерия». И так далее для всего процесса подачи заявки. Нужно заметить, что каждый объект является элементом определенного класса, как уже и говорилось, класс обозначается через двоеточие. На ClassDiagramm в соответствующих классах автоматически при генерации сообщения создаются операции и атрибуты, которые в последствии будут созданы при кодогенерации.

Communication diagram (диаграмма коммуникаций)

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

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

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

На диаграмме представлена структура взаимодействий объектов (LifeLine), так же как и на диаграмме последовательности, но только без учета временного фактора. Каждый объект является экземпляром соответствующего класса. Например, объект «Управляющий» является экземпляром класса «Управляющий заказами». Инициатором взаимодействия объектов является Actor – «Документовед». Наша диаграмма коммуникаций описывает процесс «Оформление заявки». Каждый объект генерирует связь/сообщение (link/massage) другому объекту. Таким образом, они взаимодействуют друг с другом. Все сообщения будут автоматически добавлены в диаграмму классов в качестве операций и атрибутов соответствующему классу как показано ниже на рисунке:

State Machine (диаграмма состояний)

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

Основными понятиями, входящими в формализм автомата, являются со стояние и переход. Главное различие между ними заключается в том, что длительность нахождения системы в отдельном состоянии существенно превышает время, которое затрачивается на переход из одного состояния в другое. Предполагается, что в пределе время перехода из одного состояния в другое равно нулю (если дополнительно ничего не сказано). Другими словами, переход объекта из состояния в состояние происходит мгновенно.

На данной диаграмме представлена модель жизненного цикла состояния «Машина исправная». Модель состоит из состояний. Состояния связаны между собой переходами. Причем длительность нахождения системы в определенном состоянии значительно превышает время, которое затрачивается на переход из одного состояния в другое.

Activity Diagram (Диаграмма деятельности)

В контексте языка UML деятельность (activity) представляет собой совокупность отдельных вычислений, выполняемых автоматом, приводящих к некоторому результату или действию (action). На диаграмме деятельности отображается логика и последовательность переходов от одной деятельности к другой, а внимание аналитика фокусируется на результатах. Результат деятельности может привести к изменению состояния системы или возвращению некоторого значения.

Состояние действия (action state) является специальным случаем состояния с некоторым входным действием и, по крайней мере, одним выходящим из состояния переходом. Этот переход неявно предполагает, что входное действие уже завершилось. Состояние действия не может иметь внутренних переходов, поскольку оно является элементарным. Обычное использование состояния действия заключается в моделировании одного шага выполнения алгоритма (процедуры) или потока управления.

Графически состояние действия изображается прямоугольником с закругленными углами. Внутри этого изображения записывается выражение действия (action-expression), которое должно быть уникальным в пределах одной диаграммы деятельности.

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

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

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

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

На диаграмме деятельности с дорожками расположение объекта может иметь некоторый дополнительный смысл. А именно, если объект расположен на границе двух дорожек, то это может означать, что переход к следующему состоянию действия в соседней дорожке ассоциирован с готовностью некоторого документа (объект в некотором состоянии). Если же объект целиком расположен внутри дорожки, то и состояние этого объекта целиком определяется действиями данной дорожки.

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

В данной работе начало действия обозначает элемент Initial Node, а окончаний может быть несколько в нашем случае их будет три, и обозначаются они элементом Activity Final Node. На рисунке, видно, что когда механик получает заказ, он проверяет наличие автомобиля на СТО, а в это же время (параллельно) бухгалтерия выдает квитанцию на оплату. Если операция не оплачена, то механик не производит ремонт, если же деньги поступили, механику поступает заявка на ремонт. Он в свою очередь, если свободен, то приступает к работе немедленно, либо, если занят, то ставит данную заявку в очередь. Смысл диаграммы сводится к тому, чтобы показать какие процессы происходят параллельно друг другу, и показать какие варианты исхода могут быть.

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

Interaction overview diagram – диаграмма, которая предназначена для представления взаимодействия только в контексте потока управления в некоторой агрегированной форме. Диаграммы обзора взаимодействия, вместо узлов действий и объектов диаграмм деятельности, имеют фреймы, каждый из которых может соответствовать взаимодействию или использованию взаимодействия. Альтернативные комбинированные фрагменты представляются узлом решения и соответствующим узлом слияния. Параллельные комбинированные фрагменты представляются узлом разделения и соответствующим узлом соединения. Комбинированные фрагменты типа Цикл представляются простыми циклами. Ветвление и слияния ветвлений на диаграммах обзора взаимодействия должны быть должным образом вложенными. Диаграммы обзора взаимодействия заключаются во фрейм, аналогично другим видам диаграмм взаимодействия с тегом sd и ref.