Диаграмма последовательностей в среде Microsoft Visio обозначается, как «Схема последовательностей». Для создания такой диаграммы следует использовать пункт «Создать/Схема последовательностей» контекстного меню пакетов и подсистем, отображаемых в окне «Проводник по моделям». В результате выбора этого пункта меню создаётся новая страница документа.
Добавление фигур, предназначенных для создания диаграмм последовательностей допустимо и на страницы диаграмм других типов, например структурных схем Microsoft Visio, однако такие страницы не предназначены для создания диаграмм последовательностей. Поэтому использование этих страниц для создания диаграмм последовательностей является некорректным.
Используемые фигуры
Фигура «Линия жизни объекта» предназначена для отображения существования объекта (экземпляра класса) в определенный момент времени. Данная фигура представляет собой прямоугольник, содержащий идентификатор объекта, актёра или прецедента, а также вертикальную пунктирную линию, являющуюся осью времени, на которой откладываются активные состояния объекта. Всё время жизни объекта от момента его создания до момента уничтожения указывается на этой оси.
Момент уничтожения объекта отмечается маркером уничтожения. Для отображения маркера уничтожения щелкните фигуру «Линия жизни объекта» правой кнопкой мыши и выберите в выпадающем меню команду «Параметры отображения фигуры/Маркер уничтожения».
Фигура «Активация» отображает период времени, в течение которого объект является активным (выполняет действие). Данная фигура отображается в виде прямоугольника, располагаемого на линии жизни объекта. При этом верхний край фигуры «активация» соответствует времени начала выполнения действия объектом, а нижний край соответствует окончанию выполнения действия. На одной линии жизни объекта может быть установлено несколько фигур «активация».
Фигура «Линия жизни» по своему назначению идентична фигуре «Линия жизни объекта» за исключением возможности явного указания идентификатора объекта, к которому относится данная линия. Линия жизни позволяет указать дополнительную временную ось существования объекта, к линии жизни которого она подключается.
В рамках данной лабораторной работы фигура «Линия жизни» не используется.
Фигура «Сообщение» предназначена для обозначения передачи некоторого сообщения от одного объекта к другому. Обычно такое сообщение является вызовом метода. Для обозначения передачи сообщений от одного объекта к другому фигуру «Сообщение» размещают на диаграмме последовательностей так, чтобы начало стрелки фигуры располагалось на линии жизни вызывающего объекта, а конец – на линии жизни вызываемого объекта. В случае если объект отправляет сообщение самому себе, стрелка фигуры начинается и заканчивается на линии жизни одного объекта.
Для конкретизации вызываемого сообщения данная фигура может быть помечена именем, значением аргумента и выражением, задающим последовательность выполнения операций. Использование данной фигуры на диаграмме последовательностей не желательно, поскольку для обозначения вызовов методов, создания и удаления объектов следует использовать фигуру «Вызов», а для моделирования отправки асинхронных сообщений – фигуру «Асинхронное сообщение». Фигура «Сообщение» как правило, применяется в редких случаях, когда вид действия, заполняемого при взаимодействии объектов, не удаётся определить.
Фигура «Вызов» является разновидностью фигуры «Сообщение», предназначенной для обозначения вызова методов. В случае вызова метода внутри вызывающего объекта используется аналогичная фигура со стрелкой, направленной в сторону её начала.
Фигура «Возврат» является разновидностью фигуры «Сообщение», предназначенной для обозначения возврата управления после завершения вызова метода. В случае возврата из вызова метода внутри вызывающего объекта используется аналогичная фигура со стрелкой, направленной в сторону её начала.
Фигура «Асинхронное сообщение» предназначена для обозначения асинхронно вызываемого метода. При таком вызове происходит одновременное выполнение и метода, из которого вызывающего объекта, и метода вызываемого объекта. При синхронном (не асинхронном) вызове работа вызывающего объекта приостанавливается до момента возврата из вызываемого объекта. При выполнении асинхронных вызовов возврат управления теряет смысл. В таком случае для обеспечения синхронизации работы объекты должны обмениваться только асинхронными сообщениями. Использование асинхронных вызовов позволяет организовать многопоточные системы, в которых несколько действий могут выполняться одновременно.
Задание
1. Создание новой диаграммы последовательностей. Добавьте в основной пакет новую диаграмму последовательностей и обозначьте страницу, соответствующую данной диаграмме «Последовательность действий».
2. Добавление объектов на диаграмму последовательностей. Выделите необходимые объекты, участвующие в работе системы в рамках сценария согласно варианту задания. Разместите выделенные объекты на диаграмме последовательностей в виде фигур линий жизни объекта. Укажите на линиях жизни момент уничтожения объекта, если такое действие предусмотрено вариантом задания.
3. Добавление синхронных вызовов методов. Определите, в какой последовательности должны выполнять действия объекты, размещённые на диаграмме последовательностей для осуществления действий, описанных в сценарии варианта задания. Определите, в каком порядке действия, выполняемые объектами должны порождать друг друга и в каком порядке они должны возвращать управление в вызывающий объект.
Разместите в соответствии с выявленными зависимостями вызовов и активности объектов на диаграмме последовательностей фигуры вызова и возврата.
4. Добавление асинхронных сообщений. В случае если вариант задания предусматривает использование асинхронных сообщений для передачи информации между объектами, добавить на диаграмму последовательностей фигуры асинхронных сообщений, соответствующих выявленным асинхронным сообщениям.
Варианты заданий
Все варианты данного задания является дополнениями к соответствующим вариантам заданий из первой и второй лабораторных работ.
Вариант 1. Моделирование обзорной радиолокационной станции управления воздушным движением.
Разработайте диаграмму последовательностей для моделирования взаимодействия оператора РЛС, вводящего данные о новом грозовом фронте с последующим вычислением расстояния от самолёта до этого фронта. В случае возникновения опасного сближения летательных аппаратов и грозовых фронтов, система должна информировать оператора о таком событии.
Вариант 2. Генератор периодических низкочастотных сигналов.
Разработать диаграмму последовательностей для моделирования взаимодействия инженера и прибора при включении синусоидального сигнала и изменении его частоты, амплитуды и начальной фазы.
Вариант 3. Внутриофисная охранная сигнализация.
Разработать диаграмму последовательностей для моделирования взаимодействия охранника и сигнализации при асинхронном её срабатывании и последующем отключении охранником.
Вопросы для самопроверки
1. Для чего используются диаграммы последовательностей и чем они отличаются от диаграмм прецедентов?
2. Какие процессы целесообразно описывать с помощью диаграммы последовательностей?
3. Какие виды вызовов используются на диаграмме последовательностей?
UML (Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но в средствах выполнения UML-моделей как интерпретируемого кода возможна кодогенерация.
Коммерческие продукты
Microsoft Visio
Тип: коммерческое ПО
Популярный программный продукт от компании Microsoft, который позволяет рисовать богатые диаграммы, в том числе UML:
Начиная с 2010 версии появилась возможность публиковать диаграммы в вебе (SharePoint + Visio Services):
Visio Viewer – бесплатная программа, которая позволяет просматривать созданные ранее Visio диаграммы. Загрузить можно по ссылке.
Microsoft Visual Studio 2010
Тип: коммерческое ПО (есть бесплатная Express версия).
В последней версии Microsoft Visual Studio 2010 появился новый тип проекта – Modelling, который позволяет рисовать различные UML диаграмма и проверять написанные решения на соответствие с необходимо архитектурой.
Позволяет генерировать Sequence Diagram на основании кода, визуализировать связи в проекте между компонентами, сборками и ссылками и т.д.
Пример Use case диаграммы, нарисованной в Visual Studio 2010:
Кроме того, доступен Visualization and Modeling Feature Pack (для подписчиков MSDN), который позволяет:
- генерировать код на базе UML диаграмм классов
- создавать UML диаграммы из кода
- импортировать UML диаграммы классов, диаграммы последовательностей, диаграммы вариантов использования с XMI 2.1
- создавать диаграммы зависимостей для ASP.NET, C и C++ проектов
- создавать и проверять layer diagrams для C и C++ проектов
- писать собственные проверки для layer diagrams
IBM Rational Rose
- Use case diagram (диаграммы прецедентов);
- Deployment diagram (диаграммы топологии);
- Statechart diagram (диаграммы состояний);
- Activity diagram (диаграммы активности);
- Interaction diagram (диаграммы взаимодействия);
- Sequence diagram (диаграммы последовательностей действий);
- Collaboration diagram (диаграммы сотрудничества);
- Class diagram (диаграммы классов);
- Component diagram (диаграммы компонент).
Open source программы
StarUML
Тип: open source
- поддержка UML 2.0
- MDA (Model Driven Architecture)
- Plug-in Architecture (писать можно на COM совместимых языках: C++, Delphi, C#, VB, . )
StarUML написана, в основном, на Delphi, но дописывать компоненты можно и на других языках, например C/C++, Java, Visual Basic, Delphi, JScript, VBScript, C#, VB.NET. Ниже показано несколько скриншотов.
Use case диаграмма:
ArgoUML
- Class
- State
- Use case
- Activity
- Collaboration
- Deployment
- Sequence
- Поддержка девяти UML 1.4 диаграмм
- Платформонезависимая (Java 5+)
- Стандартная метамодель UML 1.4
- Поддержка XMI
- Экспорт в GIF, PNG, PS, EPS, PGML и SVG
- Языки: EN, EN-GB, DE, ES, IT, RU, FR, NB, PT, ZH
- Поддержка OCL
- Forward, Reverse Engineering
Violet UML Editor
Тип: open source
Написана на Java, скриншоты:
Astah Community 6.1
Тип: open source
- UML 2.1 (Class, UseCase, Sequence, Activity, Communication, Statemachine, Component, Deployment, Composite Structure, Object and Package Diagrams)
- Suggest Feature
- Alignment, Size adjustment
- Экспорт в PNG, JPEG
- astah API (Models of Class, UseCase, Activity, Sequence и Statemachine Diagrams)
- Локализация GUI
BOUML
Тип: open source
- поддержка UML 2.0
- генерация кода на С++, Java, Idl, Php, Python
- работает под управлением Unix/Linux/Solaris/Mac OS X/Windows
- plug-in архитектура (можно писать на С++, Java)
UMLet 10.4
Тип: open source
- экспорт диаграмм в eps, pdf, jpg, svg и буфер обмена clipboard
- управление доступом через Eclipse
- возможность создания новых UML элементов
- работает под управлением Windows, Mac OS, Linux
UMLGraph
Тип: open source
- позволяет рисовать диаграммы классов и диаграммы последовательностей
- поддержка PNG, PNM, (pseudo)GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, TEK
В результате написания следующего кода:
мы получим такую диаграмму:
Тип: open source
Dia – GTK+ программа для GNU/Linux, Unix и Windows под лицензией GPL.
Выбор UML диаграммы.
Одно из рабочих окон Dia
Редактирование свойств классов
Окно для редактирования коллекций объектов
Плагины к IDE
Visual Paradigm SDE for Visual Studio
Тип: бесплатное ПО (Community Edition)
- Use Case modeling
System analysis and design
Plug-in architecture
tangible T4 Editor plus UML modeling Tools for Visual Studio (2008/2010)
Тип: бесплатное ПО
tangible T4 Editor поставляется вместе с инструментами UMLи позволяет генерировать диаграммы, схемы базы данных на базе xml, word, excel и других источников данных.
NetBeans IDE UML
UML плагин к NetBeans IDE:
- импорт NetBeans UML проектов
- возможность командной работы
- кодогенерация для Java, C++, PHP
Eclipse UML2 Tools
- Structure diagrams
- Class
- Profile definition
- Composite structures
- Component
- Deployment
Онлайновские UML инструменты
WebSequenceDiagrams
Создание простых диаграмм:
Cоздание простых UML диаграмм для блогов, вики, форумов, баг-трекинг систем и электронной почты.
zOOml
В статье использовались материалы DevCurry.
Спасибо за внимание!
Upd. Инструменты, которые были добавлены в комментариях:
Компании из статьи
Gentleware Ukraine |
Microsoft Украина |
Ищите нас в интернетах!
Комментарии
Свежие вакансии
При использовании материалов сайта обязательным условием является наличие гиперссылки на страницу расположения исходной статьи с указанием Microsoft User Group Community.
Первоначально статья опубликована Дженнифер Червинкой (Jennifer Cherwinka) на английском языке здесь.
В новой версии Visio мы сделали шаблоны UML более современными и привлекательными. В более ранней записи мы уже обсудили принципиально новый подход к шаблонам UML. В пять самых популярных схем UML были добавлены абсолютно новые фигуры, и теперь вы можете еще быстрее и проще создавать прекрасные схемы профессионального вида. С помощью наших новых шаблонов UML можно создавать схемы последовательностей, статической структуры, нотации баз данных, классов, конечных автоматов, деятельности и вариантов использования, соответствующие стандарту UML 2.4.
Новые шаблоны UML ориентированы на произвольную работу с полотном. Каждый шаблон использует всю мощь Visio, включая эффекты фигур и темы, а также возможности совместной работы и комментирования, которые обеспечивают общий доступ к схемам в масштабе организации.
В этой статье мы представим несколько новых схем UML, а также дадим несколько советов по использованию новой модели.
Схема классов
С помощью шаблона схемы классов UML можно создавать статичные структурные схемы. На основе этих схем удобно разрабатывать модели классов и объектов в программном обеспечении. А возможности комментирования и совместной работы еще больше упрощают взаимодействие с коллегами и доработку программных проектов.
В основе объектно-ориентированных классов этой схемы лежат базовые фигуры класса, члена и делителя. Доступны также специальные фигуры интерфейса и перечисления. Чтобы визуально сгруппировать классы в развернутый или свернутый пакет, можно добавить фигуру пакета.
Отношения между классами, интерфейсами и перечислениями можно представить с помощью семи соединительных линий отношений: наследование, реализация интерфейса, связь, направленная связь, агрегат, зависимость и композиция. Чтобы изменить тип отношения, когда соединительная линия уже есть на полотне, откройте контекстное меню и выберите один из других типов. Количество элементов отражает количественное отношение между объектами. Используйте контекстное меню, чтобы отобразить текстовые поля количества элементов и изменить их с учетом этого свойства отношения.
Совет: С помощью фигуры примечания можно описать классы или сообщить подробные сведения о реализации.
С помощью структуры данных списка в фигуре класса упорядочиваются члены и функции каждого класса. (Аналогичная модель применяется в фигурах баз данных.) Добавить новые члены в классы можно одним из трех способов:
- Добавить или удалить члены путем их перетаскивания в фигуру списка или из нее. Фигура класса выделяется зеленым прямоугольником, означающим членство, а оранжевая строка вставки указывает на конкретное положение, которое займет в классе новый член.
- Выделить фигуру члена, уже имеющуюся в классе, и с помощью контекстного меню вставить фигуру члена перед выбранной фигурой или после нее.
- Щелкнуть треугольник вставки с любой стороны фигуры класса, чтобы вставить в выделенное место новый член.
С помощью фигуры делителя данные-члены и функции разделяются внутри класса. Чтобы изменить размер, потяните за желтый управляющий маркер справа. При этом изменится размер фигуры класса и всех членов.
Чтобы отобразить параметр шаблона или стереотип, выделите фигуру класса, а затем отобразите эти свойства с помощью контекстного меню.
Все схемы UML полностью поддерживают тематизацию. Изменив тему, можно настроить стиль и тон схемы. Фигуры класса обладают дополнительной возможностью: для них доступны различные варианты украшения, которые можно выбирать с помощью тем. Каждый вариант имеет свой характер, от традиционного и консервативного (низкий уровень) до современного и забавного (высокий уровень).
Схема последовательностей
Схемы последовательностей UML моделируют взаимодействия и события, упорядоченные во временной последовательности. С их помощью можно показать этапы процесса с различными субъектами или передачу данных от одного объекта другому в системе.
Жизненный цикл субъекта или объекта представляет участников системы. Каждый цикл содержит множество точек соединения, в которых с субъектом или объектом можно соединять сообщения.
На панели фигур доступно четыре типа соединителей сообщений: сообщение, ответное сообщение, сообщение самому себе и асинхронное сообщение.
Совет. В контекстном меню можно изменять тип сообщения с синхронного на асинхронный и наоборот. Сообщение самому себе — это сообщение, источником и адресатом которого является один и тот же жизненный цикл.
Фигуры фрагментов позволяют инкапсулировать циклы, необязательные фрагменты, альтернативные блоки и подпроцессы.
Фигура активации показывает начало жизненного цикла. Поместите эту фигуру на жизненный цикл и соедините с ней сообщения.
Конечный автомат
С помощью схемы конечного автомата UML можно показать последовательность состояний, через которые проходит объект в течение своего жизненного цикла. Состояние моделируется с помощью одной из четырех фигур состояний. Начало и окончание жизненного цикла можно показать с помощью начального и конечного состояния. Фигуры выбора отображают переходы между состояниями.
Совет. Добавьте текст к фигурам соединителей, чтобы пометить состояния и условия.
Схема деятельности
Схема деятельности UML — это особый случай схемы состояний, в которой все состояния являются состояниями деятельности, а переходы вызываются завершением действий, связанных с исходным состоянием. С помощью схемы деятельности можно описать внутреннее поведение метода и представить процесс, управляемый внутренними действиями.
В новом шаблоне схемы деятельности используются фигуры функциональных блок-схем, что позволяет представить каждого участника системы. Размер дорожек меняется с учетом содержимого, а их размещение корректируется при добавлении новых дорожек.
С помощью стандартной нотации UML можно смоделировать процесс от начального до конечного узлов. Новые фигуры упрощают организацию содержимого и помогают создавать великолепные и понятные схемы.
Совет: Возможность автосоединения позволяет без труда добавлять новые этапы процесса.
Варианты использования
Схемы вариантов использования UML служат для моделирования взаимодействий внутри подсистем и между ними. Инструмент автосоединения позволяет подключать фигуру субъекта к фигурам вариантов использования. Соединители описывают отношение между этими фигурами и субъектом. Всего существует пять соединителей: связь, зависимость, обобщение, включение и исключение. Фигура подсистемы представляет входящие в нее варианты использования.
Совет: Чтобы добавить значки для различных субъектов в системе, воспользуйтесь функцией поиска фигур. Дополнительные сведения о ее использовании см. в справочной статье о поиске фигур . В примере выше фигура субъекта заменена фигурой банка.
Преимущества новых фигур
Новые шаблоны UML в Visio позволяют без труда создавать прекрасные схемы профессионального вида, отображающие классы, последовательности, конечные автоматы, деятельность и варианты использования в соответствии со стандартом UML 2.4. С помощью шаблонов вы легко сможете совместно использовать и редактировать схемы сложных систем. Новые схемы более гибкие и расширяемые, и теперь такие возможности Visio, как автосоединение, замена фигуры и комментирование, можно использовать и в моделях UML.