Практическая работа 1213 Построение диаграмм состояний на языке uml с помощью ms visio
Скачать 3.46 Mb.
|
Partition. После создания дорожек необходимо задать их имена. Для это дважды щелкните по заголовку дорожки и введите имя (Рисунок 13). Рисунок 123 – Создание дорожек Рисунок 124 – Задание имени в созданных дорожках Для добавления начального состояния на панели инструментов выберите Initial Node и поместите в нужное место рабочей области. Для добавления нового состояния на панели инструментов выберите Action и поместите в нужное место рабочей области. Для создания перехода между состояниями выберите Control Flow > Action (Рисунок 14). Перетащите курсор мыши на пустое место на диаграмме для создания нового или на уже существующее состояние для соединения. Отпустите кнопку мыши (Рисунок 15). 73 Рисунок 125 – Выбор типа перехода Рисунок 126 – Создание перехода Для добавления описания перехода дважды щелкните по нему и введите описание (рисунок 16). Рисунок 127 – Добавление описания перехода Чтобы добавить переход разветвления или объединения выберите Control Flow > Fork Node или Join Node (рисунок 17). После добавления элемента, для того чтобы изменить ориентацию на горизонтальную, щелкните правой кнопкой мыши по элементу и в контекстном меню выберите Orientation > Horizontal. Рисунок 128 – Добавление перехода разветвления Основываясь, на описанных выше принципах построения, постройте диаграммы деятельности для системы продажи товаров по каталогу в соответствии с рисунком 18. 74 Рисунок 129 – Диаграмма деятельности системы продажи товаров по каталогу 4 Задание Построить диаграмму деятельности в соответствии с вариантом. Отчет по практическому занятию выполняется в формате MS Word, который содержит пошаговое описание процесса построения диаграммы, а также скриншоты результатов согласно заданию. 5 Варианты 1. «Отдел кадров»; 2. «Агентство аренды»; 3. «Аптека»; 4. «Ателье»; 5. «Аэропорт»; 6. «Библиотека»; 7. «Кинотеатр»; 8. «Поликлиника»; 9. «Автосалон»; 10. «Таксопарк». 11. «Издательство»; 12. «Прокат велосипедов»; 13. «Спортивный клуб». 6 Контрольные вопросы 1. Дайте определение понятию «диаграмма деятельности». 2. Опишите назначение диаграммы деятельности. 75 3. Дайте определение понятиям «состояние деятельности» и «состояние действия». Графическое изображение состояния. 4. Приведите пример ветвления и параллельных потоков управления процессами на диаграмме деятельности. 5. Какие переходы используются на диаграмме деятельности? 6. Что представляет собой дорожка на диаграмме деятельности? 7. Как графически изображаются объекты на диаграмме деятельности? 76 Практическая работа №22 Разработка диаграмм последовательности с помощью Visual Paradigm for UML Цель: изучение основ создания диаграмм последовательности на языке UML с помощью case- средства Visual Paradigm for UML CE, применение приобретенных навыков для построения объектно- ориентированных моделей определенной предметной области. 1 Задачи Основными задачами практической работы являются: ‒ получить навыки создания диаграмм последовательности с помощью case-средства Visual Paradigm for UML CE. 2 Краткие теоретические сведения Диаграммапоследовательности (sequence diagram) – диаграмма, на которой показаны взаимодействия объектов, упорядоченные по времени их проявления. На диаграмме последовательности неявно присутствует ось времени, что позволяет визуализировать временные отношения между передаваемыми сообщениями. С помощью диаграммы последовательности можно представить взаимодействие элементов модели как своеобразный временной график «жизни» всей совокупности объектов, связанных между собой для реализации варианта использования программной системы, достижения цели или выполнения задачи. На диаграмме последовательности изображаются объекты, которые непосредственно участвуют во взаимодействии, при этом никакие статические связи с другими объектами не визуализируются. Диаграмма последовательности имеет как бы два измерения: одно – слева направо в виде вертикальных линий, каждая из которых изображает линию жизни отдельного объекта; второе – вертикальная временная ось, направленная сверху вниз. Каждый объект графически изображается в форме прямоугольника и располагается в верхней части своей линии жизни (рис. 1). Внутри прямоугольника записываются собственное имя объекта и имя класса, разделенные двоеточием, запись подчеркивается, что является признаком объекта, который, как указывалось ранее, представляет собой экземпляр класса. Рисунок 130 – Графические элементы диаграммы последовательности Объекты записываются так же, как и в диаграмме кооперации. Анонимный объект – такой объект, для которого отсутствует собственное имя, но указано имя класса. Объект-сирота – такой объект, для которого может отсутствовать имя класса, но указано собственное имя объекта. Роль классов в именах объектов на диаграммах последовательности, как правило, не указывается. Крайним слева на диаграмме изображается объект-инициатор моделируемого процесса взаимодействия (объект a на рис. 1). Правее – другой объект, который непосредственно взаимодействует с первым, т.е. порядок расположения объектов на диаграмме последовательности определяется исключительно соображениями удобства визуализации их взаимодействия друг с другом. Начальному моменту времени соответствует самая верхняя часть диаграммы. При этом процесс взаимодействия объектов реализуется посредством сообщений, которые посылаются одними объектами другим. Сообщения изображаются в виде горизонтальных стрелок с именем сообщения и образуют определенный порядок относительно времени своей инициализации. Другими словами, сообщения, 77 расположенные на диаграмме последовательности выше, передаются раньше тех, которые расположены ниже. При этом масштаб на оси времени не указывается, поскольку диаграмма последовательности моделирует лишь временную упорядоченность взаимодействий типа «раньше-позже». Линия жизни объекта (object lifeline) – вертикальная линия на диаграмме последовательности, которая представляет существование объекта в течение определенного периода времени. Линия жизни объекта изображается пунктирной вертикальной линией, ассоциированной с единственным объектом на диаграмме последовательности. Линия жизни служит для обозначения периода времени, в течение которого объект существует в системе и может потенциально участвовать во всех ее взаимодействиях. Если объект существует в системе постоянно, то и его линия жизни должна продолжаться по всей рабочей области диаграммы последовательности от самой верхней ее части до самой нижней («объект 1» и анонимный объект «Класса 2»). Отдельные объекты, закончив выполнение своих операций, могут быть уничтожены, чтобы освободить занимаемые ими ресурсы. Для таких объектов линия жизни обрывается в момент его уничтожения. Для обозначения момента уничтожения объекта в языке UML применяется специальный символ в форме латинской буквы «X». На рис. 2 этот символ используется для уничтожения анонимного объекта, образованного от «Класса 3». Ниже этого символа пунктирная линия не изображается, поскольку соответствующего объекта в системе уже нет, и этот объект должен быть исключен из всех последующих взаимодействий. Рисунок 131 – Графическое изображение линий жизни и фокусов управления объектов Отдельные объекты в системе могут создаваться по мере необходимости, существенно экономя ресурсы системы и повышая ее производительность. В этом случае прямоугольник такого объекта изображается не в верхней части диаграммы последовательности, а в той, которая соответствует моменту создания объекта (анонимный объект, образованный от «Класса 3» на рис. 2). При этом прямоугольник объекта вертикально располагается в том месте диаграммы, которое по оси времени совпадает с моментом его возникновения в системе. Объект создается со своей линией жизни, а, возможно, и с фокусом управления. В процессе функционирования объектно-ориентированных систем одни объекты могут находиться в активном состоянии, непосредственно выполняя определенные действия, или в состоянии пассивного ожидания сообщений от других объектов. Фокус управления – символ, применяемый для того, чтобы явно выделить подобную активность объектов на диаграммах последовательности. Фокусуправления (focus of control) – специальный символ на диаграмме последовательности, указывающий период времени, в течение которого объект выполняет некоторое действие, находясь в активном состоянии. Фокус управления изображается в форме вытянутого узкого прямоугольника («объект а» на рис. 1), верхняя сторона которого обозначает начало получения фокуса управления объекта (начало активности), а ее нижняя сторона – окончание фокуса управления (окончание активности). Этот прямоугольник располагается ниже обозначения соответствующего объекта и может заменять его линию жизни («объект a» на рис. 2), если на всем ее протяжении он активен. Периоды активности объекта могут чередоваться с периодами его пассивности или ожидания. В этом случае у такого объекта фокусы управления изменяют свое изображение на линию жизни и наоборот (объект сирота «ob2» на рис. 2). Получить фокус управления может только объект, у которого в этот момент имеется линия жизни. Если же объект был уничтожен, то вновь возникнуть в системе он уже не может. Вместо него может быть создан лишь экземпляр этого же класса, который, строго говоря, будет другим объектом. 78 В отдельных случаях объект может посылать сообщения самому себе, инициируя так называемые рефлексивныесообщения. Для этой цели служит специальное изображение (сообщение у «объекта а» на рис. 3). Такие сообщения изображаются в форме сообщения, начало и конец которого соприкасаются с линией жизни или фокусом управления одного и того же объекта. Подобные ситуации возникают, например, при обработке нажатий на клавиши клавиатуры при вводе текста в редактируемый документ, при наборе цифр номера телефона абонента. Если в результате рефлексивного сообщения создается новый подпроцесс или нить управления, то говорят о рекурсивном или вложенном фокусе управления. На диаграмме последовательности рекурсия обозначается небольшим прямоугольником, присоединенным к правой стороне фокуса управления того объекта, для которого изображается данное рекурсивное взаимодействие (анонимный объект «Класса 2» на рис. 3). Рисунок 132 – Графическое изображение актера, рефлексивного сообщения и рекурсии Сообщения на диаграмме последовательности имеют дополнительные семантические особенности. На диаграмме последовательности все сообщения упорядочены по времени своей передачи в моделируемой системе. Рисунок 133 – Графическое изображение различных видов сообщений между объектами на диаграмме последовательности Первая разновидность сообщения (рис. 4, а) наиболее распространена и используется для вызова процедур, выполнения операций или обозначения отдельных вложенных потоков управления. Начало этой стрелки, как правило, соприкасается с фокусом управления того объекта-клиента, который инициирует это сообщение. Конец стрелки соприкасается с линией жизни того объекта, который принимает это сообщение и выполняет в ответ определенные действия. При этом принимающий объект может получить фокус управления, становясь в этом случае активным. Передающий объект может потерять фокус управления или остаться активным. Вторая разновидность сообщения (рис. 4, б) используется для обозначения простого асинхронного сообщения, которое передается в произвольный момент времени. Передача такого сообщения обычно не сопровождается получением фокуса управления объектом-получателем. Третья разновидность сообщения (рис. 4, в) используется для возврата из вызова процедуры. Примером может служить простое сообщение о завершении вычислений без предоставления результата расчетов объекту-клиенту. В процедурных потоках управления эта стрелка может быть опущена, поскольку ее наличие неявно предполагается в конце активизации объекта. В то же время считается, что каждый вызов процедуры имеет свою пару – возврат вызова. Для непроцедурных потоков управления, включая параллельные и асинхронные сообщения, стрелка возврата должна указываться явным образом. Каждое сообщение на диаграмме последовательности ассоциируется с определенной операцией, которая должна быть выполнена принявшим его объектом. При этом операция может иметь аргументы или параметры, значения которых влияют на получение различных результатов. Соответствующие параметры операции будет иметь и вызывающее это действие сообщение. Более того, значения параметров отдельных сообщений могут содержать условные выражения, образуя ветвление или альтернативные пути основного потока управления. Одна из особенностей диаграммы последовательности – возможность визуализировать простое ветвление процесса. Для изображения ветвления используются две или более стрелки, выходящие из 79 одной точки фокуса управления объекта (объект «ob1» на рис. 5). При этом рядом с каждой из них должно быть явно указано соответствующее условие ветви в форме булевского выражения. Количество ветвей может быть произвольным, но наличие ветвлений может существенно усложнить интерпретацию диаграммы последовательности. Предложение-условие должно быть явно указано для каждой ветви и записывается в форме обычного текста, псевдокода или выражения языка программирования. Это выражение всегда должно возвращать некоторое булевское выражение. Запись этих условий должна исключать одновременную передачу альтернативных сообщений по двум и более ветвям. В противном случае на диаграмме последовательности может возникнуть конфликт ветвления. Рисунок 134 – Графическое изображение бинарного ветвления потока управления на диаграмме последовательности Пример: объект «ob1» вызывает выполнение действий у одного из трех других объектов. Условием ветвления может служить сумма снимаемых клиентом средств со своего текущего счета. Если эта сумма превышает 1500$, то могут потребоваться дополнительные действия, связанные с созданием и последующим разрушением объекта «Класса 1». Если же сумма превышает 100$, но не превышает 1500$, то вызывается операция или процедура объекта «ob3». И, наконец, если сумма не превышает 100$, то вызывается операция или процедура объекта «ob2». При этом объекты «ob1», «ob2» и «ob3» постоянно существуют в системе. Последний объект создается от «Класса 1» только в том случае, если справедливо первое из альтернативных условий. В противном случае он может быть никогда не создан. Объект «ob1» имеет постоянный фокус управления, а все остальные объекты – получают фокус управления только для выполнения ими соответствующих операций. На диаграммах последовательности при записи сообщений также могут использоваться стереотипы. Ниже представлена диаграмма последовательности для описанного выше случая ветвления, дополненная стереотипными значениями отдельных сообщений (рис. 6). Сообщения могут иметь собственное имя, в качестве которого выступает имя операции, вызов которой инициируют эти сообщения у принимающего объекта. Тогда со стрелкой записывается имя операции с круглыми скобками, в которых могут указываться параметры или аргументы соответствующей операции. Если параметры отсутствуют, то скобки все равно изображаются. Построение диаграммы последовательности начинают с выделения из всей совокупности классов только тех, объекты которых участвуют во взаимодействии. После все объекты наносятся на диаграмму, с соблюдением порядка инициализации сообщений. Рисунок 135 – Диаграмма последовательности со стереотипными значениями сообщений Когда объекты визуализированы, можно приступать к спецификации сообщений, учитывая те операции, которые имеют классы соответствующих объектов, иногда используя их стереотипы. 80 Для уничтожения объектов, которые создаются на время выполнения своих действий, нужно предусмотреть явное сообщение. Наиболее простые случаи ветвления процесса взаимодействия можно изобразить на одной диаграмме, а в более сложных случаях для моделирования каждой ветви управления может потребоваться отдельная диаграмма последовательности. Общим правилом является визуализация особенностей реализации каждого варианта использования на отдельной диаграмме последовательности. Пример:Программное средство представляет среду для формирования отчетов по лекционному материалу. Пользователь может вводить свою информацию в отчеты, изменять параметры. После оформления отчетов пользователю предоставлена возможность сохранение отчета. Вывода его на печать и его архивацию. Рисунок 136 – Пример диаграммы последовательности 3 Методика выполнения В качестве примера рассматривается моделирование системы продажи товаров по каталогу. 1. Запустите Visual Paradigm for UML CE. 2. Откройте проект, содержащий диаграмму вариантов использования, построенную в практическом занятии №15. 3. Для добавления новой диаграммы достаточно в меню Diagram > New Diagram выбрать тип диаграммы Sequence Diagram и нажмите кнопку Next. Задать имя диаграммы SaleSystem SequenceDiagram и нажать OK. 4. В результате отобразится пустая рабочая область с элементами для построения диаграммы последовательности (рис. 8). :Пользователь lekt:Лекционное окно rast:Расчетное окно :Экран :Память Запрос на изучение теории Вывод лекционного материала Переход на расчетную форму Отображение окна расчетов Ввод параметров Отображение результата [Формировать отчет]/Результат расчета Отобразить сформированный отчет Сохранение отчета Продолжить обработку 81 Рисунок 137 – Рабочая область для построения диаграммы последовательности Далее будут описаны принципы построения диаграммы последовательности. Для того чтобы создать актера, щелкните кнопкой мыши Actor на панели инструментов и затем щелкните на диаграмме (Рисунок 9). Рисунок 138 – Создание Actor Для создания линии жизни объекта нужно щелкните кнопкой мыши LifeLine на панели инструментов и затем щелкните на диаграмме. Другим более быстрым способом создания линии жизни объекта является способ создание через интерфейс ресурса (Рисунок 10). Нужно выбрать Message > LifeLine и перетащить курсор на пустое место на диаграмме, далее отпустить кнопку (Рисунок 11). Рисунок 139 – Создание лини жизни объекта Рисунок 140 – Результат создания лини жизни объекта 82 Для того чтобы сделать диаграмму более читабельной можно воспользоваться инструментом Sweeper, позволяющий раздвигать элементы диаграммы последовательности (Рисунок 12). Рисунок 141 – Инструмент Sweeper После выбора инструмента Sweeper перетащите его в нужном направлении, в этом же направлении будут перемещены и элементы диаграммы, находящиеся по другую сторону от Sweeper (Рисунок 13). Рисунок 142 – Смещение элементов диаграммы последовательности вправо Существует два способа нумерации сообщений Diagram-based и Frame-based. При нумерации способом Diagram-based необходимо щелкнуть правой клавишей мыши на листе диаграммы и выбрать Sequence Number, а затем Single Level или Nested Level (Рисунок 14). Рисунок 143 – Всплывающее меню при выборе нумерации сообщений Diagram-based способом Если был выбран Single Level, то нумерация будет производится целыми числами, при выборе Nested Level способа – числами с десятичными знаками (Рисунок 15). 83 Рисунок 144 – Нумерация сообщений вариантом Diagram-based Single Level При нумерации способом Frame-based необходимо щелкнуть правой клавишей мыши на листе диаграммы и выбрать Sequence Number, а затем Frame-based Single Level или Frame-based Nested Level (Рисунок 16). Рисунок 145 – Всплывающее меню при выборе нумерации сообщений Frame-based способом При выборе нумерации сообщений способом Frame-based нумерация каждый раз начинается сначала в каждой независимой области (Рисунок 17). Рисунок 146 – Нумерация сообщений вариантом Frame-based Nested Level Основываясь, на описанных выше принципах построения, постройте диаграммы последовательности для всех вариантов использования системы продажи товаров по каталогу в соответствии с рисунками 18- Для добавления диаграммы последовательности к варианту использования откройте диаграмму прецедентов, щелкните правой кнопкой мыши по варианту использования и в контекстном меню 84 выберите Sub Diagrams > New Diagram … Затем в окне выбора диаграммы найдите Sequence Diagram и нажмите ОК. Рисунок 147 – Диаграмма последовательности для варианта использования «Обеспечить покупателя информацией» Рисунок 148 – Диаграмма последовательности для варианта использования «Согласовать условия оплаты» 85 Рисунок 149 – Диаграмма последовательности для прецедента «Заказать товар со склада» Рисунок 150 – Диаграмма последовательности для системы продажи товаров по каталогу 4 Задание Построить диаграммы последовательности для всех вариантов использования (Практическая работа №18) и для всей системы в целом в соответствии с вариантом. Отчет по практическому занятию выполняется в формате MS Word, который содержит пошаговое описание процесса построения диаграммы, а также скриншоты результатов согласно заданию. 5 Варианты 1. «Отдел кадров»; 2. «Агентство аренды»; 3. «Аптека»; 4. «Ателье»; 5. «Аэропорт»; 6. «Библиотека»; 7. «Кинотеатр»; 86 8. «Поликлиника»; 9. «Автосалон»; 10. «Таксопарк». 11. «Издательство»; 12. «Прокат велосипедов»; 13. «Спортивный клуб». 6 Контрольные вопросы 1. Дайте определение понятию «диаграмма последовательности». 2. Опишите назначение диаграммы последовательности. 3. В чем различие анонимного объекта и объекта-сироты? 4. Охарактеризуйте линию жизни объекта. Ее графическое изображение. 5. Для чего предназначен фокус управления? Его графическое изображение. 6. Дайте определение понятию «сообщение». Какие виды сообщений используются в диаграмме последовательности? Когда используется рефлексивное сообщение? 7. Расскажите про ветвления на диаграмме последовательности. Приведите пример ветвления. |