- •Назначение языка
- •Историческая справка
- •Способы использования языка
- •Структура определения языка
- •Терминология и нотация
- •Контрольные вопросы
- •Почему нужно несколько видов диаграмм
- •Виды диаграмм
- •Диаграмма прецедентов (use case diagram)
- •Диаграмма классов (class diagram)
- •Диаграмма объектов (object diagram)
- •Диаграмма последовательностей (sequence diagram)
- •Диаграмма взаимодействия (кооперации, collaboration diagram)
- •Диаграмма состояний (statechart diagram)
- •Диаграмма активности (деятельности, activity diagram)
- •Диаграмма развертывания (deployment diagram)
- •Ооп и последовательность построения диаграмм
- •Контрольные вопросы
- •Как класс изображается на диаграмме uml?
- •А что внутри?
- •Как использовать объекты класса?
- •Всегда ли нужно создавать новые классы?
- •Отношения между классами
- •Контрольные вопросы
- •А ведь это вовсе не блок-схема!
- •Примеры использования таких диаграмм
- •Советы по построению диаграмм активностей
- •Контрольные вопросы
- •Диаграммы последовательностей и их нотация
- •Диаграммы кооперации и их нотация
- •Рекомендации по построению диаграмм взаимодействия
- •Контрольные вопросы
- •Несколько слов о требованиях
- •Диаграммы прецедентов и их нотация
- •Моделирование при помощи диаграмм прецедентов
- •Контрольные вопросы
- •Ibm Rational Rose
- •Borland Together
- •Microsoft Visio
- •Visio поддерживает множество локальных языков
- •Sparx Systems Enterprise Architect
- •Gentleware Poseidon
- •SmartDraw
- •Telelogic tau g2
- •StarUml
- •Другие программы
- •Упражнения
Примеры использования таких диаграмм
На практике диаграммы деятельности применяются в основном двумя способами:
Для моделирования процессов
В этом случае внимание фокусируется на деятельности с точки зрения экторов, которые работают с системой. Внимательный читатель, конечно же, вспомнит, что чуть ранее мы уже говорили о применимости диаграмм деятельности для описания бизнес-процессов. В случае такого использования диаграмм деятельности активно используются траектории объектов. Действительно, вспомним наш пример с гамбургером: изменив роли и деятельности, легко представить на его месте некий документ. Ведь правда?
Для моделирования операций
В этом случае диаграммы деятельности играют роль "продвинутых" блок-схем и применяются для подробного моделирования вычислений. На первое место при таком использовании выходят конструкции принятия решения, а также разделения и слияния потоков управления ( синхронизации ).
Рассмотрим подробнее первый случай. Все мы, конечно, понимаем бизнес-процесс как последовательность неких действий, ведущую к достижению определенных бизнес-целей. Когда мы произносим это слово, в голове рождается множество ассоциаций, как то: люди, занимающие конкретные должности в управленческом аппарате (экторы), документы, которые они создают (артефакты, объекты), процесс принятия решений и передачи приказов по организационной цепочке (управляющие сигналы). Причем обычно все эти сущности связаны друг с другом просто невообразимым количеством явных и неявных связей, так что охватить взглядом целостную картину всего происходящего на предприятии обычно не так просто. А как же тогда все это моделируют?
Моделируют бизнес-процессы в несколько этапов, первым из которых является разбиение их на подпроцессы. Подпроцессы, являющиеся "участками большого процесса", описать легче. А там, глядишь, и составится целое из частей. Дальше выделяют ключевые объекты (и создают для них дорожки), определяют предусловия и постусловия каждого процесса (т. е. его границы), описывают деятельности и переходы, отображают на диаграммах состояния ключевых объектов, в которые они переходят в ходе процесса. Все это звучит довольно сложно, а на практике происходит еще сложнее: ведь создается не какая-то абстрактнаядиаграмма, а модель реального бизнес-процесса в реальной компании, занимающейся реальным бизнесом, где цена ошибки может быть очень высока. Чтобы окончательно не запугать читателя, приведем просто пример использования диаграммы активностейдля описания процесса разработки ПО в OpenUP (рис. 4.9):
увеличить изображение Рис. 4.9.
Выглядит, конечно, не совсем так, как мы привыкли, но все же, сомнений не остается - да, это именно диаграмма активностей.Нотация слегка отличается, но все понятно и без дополнительных пояснений.
А теперь перейдем к рассмотрению моделирования операций с помощью диаграмм активностей. Как мы уже говорили, в этом случае диаграмма активностей превращается в "продвинутую" блок-схему, предоставляющую дополнительные возможности, например, отображение параллельно выполняющихся операций. Возникает соблазн попытаться выполнить кодогенерацию такой диаграммы или даже откомпилировать ее и сразу получить выполняемый файл. Поспешим отметить, что вы не одиноки в таком желании - попыток создать пакет для генерации приложений непосредственно из диаграмм UML было предпринято множество. Некоторые даже оказались более-менее удачными - вспомним, например, Rational Rose Real Time. Таким образом, при моделировании операций UML становится языком визуального программирования!
Приведем пример моделирования одной из базовых алгоритмических конструкций, например, цикла с постусловием (рис. 4.10):
Рис. 4.10.
Ну что, почувствовали себя опять студентом?