Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
проект ис / Методичка по КИС.docx
Скачиваний:
158
Добавлен:
12.04.2015
Размер:
621.04 Кб
Скачать

Лабораторная работа №4. Диаграммы последовательностей (SequenceDiagram)

Общее описание

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

Представление диаграммы последовательностей.

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

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

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

  • Вызов – запрос объекта-отправителя к объекту-получателю на выполнение одной из его операций. Обычно отправитель ждет завершение выполнения операции. Такой тип сообщений называется синхронным,т.к. в этом случае, отправитель «синхронизирует» свои действия с получателем

  • Если сообщение асинхронное, то отправитель передает управление получателю и не ожидает ответа для продолжения выполнения своих действий.

  • Ответ – ответ объекта-получателя сообщения Вызов объекту-отправителю.

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

Основной набор обозначений приведен ниже на рисунке:

рис.3.17.

Построение в PowerDesigner

Построение диаграммы последовательностей в PowerDesignerрассмотрим на упрощенном примере изпункта 3.2.4(автомат по продаже карт экспресс - оплаты). Предположим, что в реализации данного процесса участвует 3 объекта: лицевая панель, реестр для сбора денег и отсек для хранения карт оплаты и его передачи на лицевую панель.

Функции лицевой панели:

  • Принимать деньги и заказ

  • Отображать приглашения

  • Получать сдачу от реестра и выдавать ее покупателю

  • Выдавать сдачу

  • Получает карту оплаты из отсека, где она хранится и передавать ее покупателю

Функции реестра:

  • Получает заказ от покупателя (деньги и тип карты оплаты) от лицевой панели

  • Считает деньги

  • Находит сдачу

Функции отсека для хранения карт оплаты:

  • Проверяет наличие выбранного типа карты оплаты

  • Выдает карту оплаты

Изобразим данное описание в диаграмме классов:

рис.3.18.

Рассмотрим первый вариант - успешный сценарий:

  1. Покупатель помещает деньги в щель на лицевой панели автомата и выбирает сорт лимонада.

  2. Деньги попадают в реестр, который обрабатывает их,

  3. Считаем, что в данном варианте выбранный сорт лимонада имеется в наличие и реестр дает команду отсеку доставить лимонад к лицевой панели.

Создадим диаграмму последовательности и назовем ее «Продажа карт оплаты». С помощью инструмента Object создадим один объект. В свойствах в поляхNameиCodeуберем названия объекта, но в полеClassс помощью кнопкиCreateнеобходимо создать новый класс и в открывшемся окне со свойствами класс в поляNameиCodeввести слово Клиент. Таким образом создается анонимный объект. Далее в окне просмотра найти папку «Classes», раскрыть ее, выделить класс Лицевая панель левой кнопкой мыши и удерживая ее нажатой перенести этот класс из окна просмотра в рабочую область. Аналогично поступить с классами Реестр и Отсек. Таким образом, нам не придется создавать заново объекты. Вот результат:

рис.3.19.

Добавить асинхронные сообщения между объектами можно с помощью инструмента Message. ИнструментSelf Message применяется для изображения асинхронного сообщения, которое объект посылает сам себе. Чтобы добавить синхронное сообщение, применяется инструментыCall Message и Self Call Message. Для изображения ответного сообщения, используется инструментыReturn MessageиSelf Return Message. Чтобы показать длительность процесса активации используется инструментActivation. Теперь вернемся к примеру. Соединим созданные объекты с помощью инструментов и в соответствии с таблицей:

Сообщение

Соединяемые объекты

Инструмент

Принять (сумма, выбор)

Клиент и Лицевая панель

Call Message

Получить заказ Клиента (сумма, выбор)

Лицевая панель и Реестр

Call Message

Проверить наличие (выбор)

Реестр и Отсек

Call Message

Есть выбор

Отсек и Реестр

Return Message

Обновить денежный баланс (сумма, цена)

Реестр и Реестр

Call Message

Доставить карту оплаты лицевой панели

Реестр и Отсек

Call Message

Получить карту оплаты

Отсек и Лицевая панель

Message

В результате, получим следующую диаграмму:

рис.3.20.

Второй вариант – выбранный тип карты оплаты отсутствует.

рис.3.21.

Третий вариант – покупатель вносит неточную сумму денег.

рис.3.22.

Четвертый вариант – покупатель вносит неточную сумму денег, а в автомате нет сдачи.

рис.3.23.

Если диаграмма описывает только один сценарий прецедента Покупка карт оплаты, то это частная диаграмма последовательности (instancesequancediagram).

Если диаграмма последовательности включает все сценарии прецедента, она называется общей диаграммой последовательности.

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

рис.3.24.

Пояснения к диаграмме: чтобы указать, что сообщение передается только в случае отсутствия нужного сорта лимонада, перед сообщением добавляют условие перехода нет выбора] – для этого в свойствах во вкладке Detail, в полеConditionуказывается нужное условие. Можно сделать это и с помощью ответного сообщения нетВыбора. Но ответные сообщения на общей диаграмме последовательности будут только загромождать ее, поэтому их лучше не указывать.

Задание для самостоятельной работы:

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

Соседние файлы в папке проект ис