Практическая работа №5

Лабораторная работа №5

Практическая работа 5

#### Диаграмма последовательностей (sequence diagram)

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

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

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

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

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

Приведем пример диаграммы последовательностей (рисунок 1):

Рисунок 1 – Пример 1

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

А вот что описывает следующая диаграмма (рисунок 2), попробуйте догадаться самостоятельно.

Рисунок 2 – Пример 2

В примере описывается работа обычного домового лифта, которым мы пользуемся каждый день. Кстати, посмотрите на имена объектов - видно, что это уже несколько иной стиль проектирования, чем в предыдущем примере.

И наконец, еще один пример (рисунок 3):

Рисунок 3 – Пример 3

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

####

Задание:

1. Придумайте свой пример и опишите его, используя диаграмму последовательностей (sequence diagram).

Лабораторная работа №5

Добавление и редактирование варианта использования

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

Рис. 3.6. Диаграмма вариантов использования после добавления на нее варианта использования

Для уточнения свойств данного варианта использования следует открыть диалоговое окно спецификации его свойств, например, с помощью двойного щелчка левой кнопкой мыши на изображении этого элемента на диаграмме. Для изменения стереотипа во вложенном списке Stereotype нужно выбрать строку Business Use Case. Для добавления текста документации в секцию Documentation следует ввести текст: «Основной вариант использования для разрабатываемой модели банкомата» и нажать кнопку Apply (Применить) или OK. После изменения данных свойств варианта использования окно спецификации его свойств будет выглядеть следующим образом (рис. 3.7).

### Добавление ассоциации

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

Рис. 3.7. Диалоговое окно спецификации свойств варианта использования Снятие наличных по кредитной карточке

Рис. 3.8. Диаграмма вариантов использования после добавления на нее направленной ассоциации

При необходимости можно сделать направленную ассоциацию ненаправленной, для чего следует воспользоваться диалоговым окном свойств ассоциации. Открыть это окно можно, например, двойным щелчком на изображении линии ассоциации на диаграмме, после чего убрать отметку строки выбора Navigable (Навигация) на вкладке Role A Detail (Детальные свойства концевой точки ассоциации А). Более подробно спецификация других свойств ассоциации будет рассмотрена далее при разработке диаграммы классов в лекции 6.

### Добавление отношения зависимости и редактирование его свойств

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

Поскольку вариант использования Проверка ПИН-кода выполняется всегда, для добавленного отношения зависимости дополнительно следует указать текстовый стереотип <<include>>. Выполнить это можно уже известным способом с помощью диалогового окна спецификации свойств этого отношения и выбора нужного стереотипа из предлагаемого списка.

После задания для данного отношения зависимости стереотипа <<include>> текст этого стереотипа в угловых скобках появится рядом с изображением пунктирной линии зависимости, связывающей соответствующие варианты использования (рис. 3.9). С целью лучшей визуализации диаграммы текстовую область стереотипа можно переместить в нужное место диаграммы.

Рис. 3.9. Диаграмма вариантов использования после добавления на нее отношения зависимости

Аналогичным образом могут быть добавлены на диаграмму вариантов использования отношения зависимости со стереотипом <<extend>>, которые применяются для моделирования исключений при выполнении отдельных вариантов использования.

### Окончательное построение диаграммы вариантов использования

К отдельному варианту использования можно добавить текстовый файл с описанием сценария его выполнения. Для этого необходимо выделить этот вариант использования в браузере проекта и выполнить операцию контекстное меню: New File (НовыйФайл). В результате этого будет вызвано стандартное окно открытия файла, в котором необходимо задать имя предварительно созданного с помощью офисной программы MS Word добавляемого файла. После нажатия кнопки Открыть пиктограмма добавленного файла появится в браузере проекта ниже соответствующего варианта использования. В последующем можно вернуться к редактированию этого файла сценария, выполнив двойной щелчок на этой пиктограмме. При этом файл сценария будет открыт в соответствующем приложении - в текстовом процессоре MS Word.

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

1. Добавить актера с именем Банк, для которого выбрать стереотип Service (Сервис), означающий, что банкомат использует некоторые услуги Банка в качестве сервиса.

2. Добавить вариант использования Получение справки о состоянии счета, для которого выбрать стереотип Business Use Case (Бизнес-вариант использования).

3. Добавить вариант использования Блокирование кредитной карточки.

4. Добавить направленную ассоциацию от бизнес-актера Клиент Банкомата к варианту использования Получение справки о состоянии счета.

5. Добавить направленную ассоциацию от варианта использования Снятие наличных по кредитной карточке к сервису Банк.

6. Добавить направленную ассоциацию от варианта использования Получение справки о состоянии счета к сервису Банк.

7. Добавить отношение зависимости со стереотипом <<include>>, направленное от варианта использования Получение справки о состоянии счета к варианту использования Проверка ПИН-кода.

8. Добавить отношение зависимости со стереотипом <<extend>>, направленное от варианта использования Блокирование кредитной карточки к варианту использования Проверка ПИН-кода.

Выполнить эти действия предлагается читателям самостоятельно. При этом отношение зависимости со стереотипом <<extend>> на данной диаграмме означает следующее. Вариант использования Блокирование кредитной карточки будет выполняться только в том случае, если в результате проверки ПИН-кода будет установлено, что соответствующая кредитная карточка утрачена ее владельцем или признана недействительной. Построенная таким образом диаграмма вариантов использования будет иметь следующий вид (рис. 3.10).

Рис. 3.10. Окончательный вид диаграммы вариантов использования для разрабатываемой модели банкоматов

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

Для удаления любого графического элемента с диаграммы его следует выделить на диаграмме и нажать клавишу Delete на клавиатуре. При этом выделенный элемент будет удален с активной диаграммы, но не из модели. Для удаления элемента не только из диаграммы, но и из модели проекта необходимо выделить удаляемый элемент на диаграмме и воспользоваться операцией главного меню Edit Delete from Model (РедактированиеУдалить из модели). Для этой же цели служит комбинация клавиш быстрого доступа: Ctrl+D.

При работе с отношениями на диаграмме вариантов использования следует помнить о назначении соответствующих отношений в нотации языка UML. Речь идет о том, что если для двух элементов выбранный вид отношения не является допустимым, то в большинстве случаев программа IBM Rational Rose 2003 сообщит об этом разработчику, и соответствующая линия связи не будет добавлена на диаграмму.

После окончания сеанса работы над проектом выполненную работу необходимо сохранить в файле проекта с расширением «.MDL». Это можно сделать через меню File Save (ФайлСохранить) или File Save As (ФайлСохранить как). При этом вся информация о проекте, включая диаграммы и спецификации элементов, будет сохранена в одном файле.