книги / Проектирование автоматизированных информационных систем на основе объектно-ориентированного подхода
..pdfЕсли соответствующая операция класса уже определялась, созда вать ее заново не требуется - достаточно выбрать ее из контекстного меню линии сообщения.
На рис. 7.10 представлена ранее созданная диаграмма, содержа щая ряд ссылок на операции классов.
7.3. Подведение итогов
Диаграммы последовательностей демонстрируют очередность выполнения взаимодействий объектов во времени, отображая объек ты, вовлеченные в сценарий, и сообщения, которыми объекты обме ниваются в ходе осуществления функций сценария.
Диаграммы последовательностей имеют два измерения: верти кальная ось соответствует времени, а горизонтальная - объектам, принимающим участие во взаимодействии.
Диаграммы последовательностей предоставляют наглядную ил люстрацию для сценария прецедента.
7.4.Контрольные вопросы
1.Для чего служат диаграммы последовательностей?
2.Какие виды сообщений выделяют в UML?
3.Возможна ли передача объектом сообщения самому себе?
4.Каким образом можно показать временную задержку при пере даче сообщения?
5.Какую роль на диаграммах играет фокус управления?
6.Как правильно оформляются логические ветвления на диа грамме последовательности действий?
7.5.Контрольные задачи
1.На каком из вариантов изображено асинхронное взаимодейст вие объектов?
2. Доработайте диаграмму, представленную на рис. 7.3. Необходимо выделить транзакцию в отдельный объект и отобразить
на диаграмме динамическое создание и уничтожение этого объекта.
3. Используя систему Rational Rose, разработайте диаграмму по следовательностей для реализации сценария «Добавление новой дис циплины» прецедента «Ведение каталога дисциплин».
Сценарий для прецедента следующий:
-сотрудник деканата посредством системы заполняет элек тронную форму для ввода новой дисциплины;
-система контролирует корректность введенных данных, вклю чая проверку на возможность дублирования уже существующей дис циплины;
-система добавляет в каталог новую дисциплину.
Во взаимодействии принимают участие четыре объекта: «Со трудник деканата», «Форма», «Контроль» и «Дисциплина».
8.ДИАГРАММА СОТРУДНИЧЕСТВА
8.1.Теоретическая часть
Диаграмма сотрудничества (collaboration diagram) представляет альтернативный способ описания взаимодействия объектов.
Диаграмма сотрудничества акцентирует внимание на организации объектов, принимающих участие во взаимодействии [1]. Построение диаграммы начинается с расположения взаимодействующих объектов в виде вершин графа, а затем в установлении связей в виде дуг между объектами-вершинами этого графа. Каждая связь доопределяется со общениями, которыми обмениваются объекты диаграммы.
Объекты изображаются на диаграмме сотрудничества точно так же, как и в случае с диаграммой последовательностей (рис. 8.1).
Рис. 8.1. Элементы диаграммы сотрудничества
Связь (link) является экземпляром произвольной ассоциации. Связь изображается отрезком прямой линии, соединяющей два пря моугольника объектов (см. рис. 8.1).
Связь может иметь некоторые стереотипы, которые записывают ся рядом с одним из ее концов и указывают на особенность реализа ции данной связи. В языке UML для этой цели могут использоваться следующие стереотипы [2]:
- «association» - ассоциация (предполагается по умолчанию, по этому этот стереотип можно не указывать);
-«parameter» - параметр метода. Соответствующий объект мо жет быть только параметром некоторого метода;
-«local» - локальная переменная метода. Ее область видимости ограничена только соседним объектом;
-«global» - глобальная переменная. Ее область видимости рас пространяется на всю диаграмму сотрудничества;
-«self» - рефлексивная связь объекта с самим собой, которая допускает передачу объектом сообщения самому себе. На диаграмме сотрудничества рефлексивная связь изображается петлей в верхней части прямоугольника объекта.
Связи между объектами сопровождаются стрелками, указывающи ми направление передачи сообщения. Для обозначения временной по следовательности перед названием сообщения может быть поставлен номер. В качестве отображения вложенности используется десятичная
нотация (1 - первое сообщение; 1.1 - первое сообщение, вложенное в сообщение 1; 1.2 - второе сообщение, вложенное в сообщение 1).
На рис. 8.2 приведена диаграмма сотрудничества для примера, опи сывающего работу клиента с банком с помощью банкомата (см. разд. 7).
7:транзакция авторизована
12:уведомление
Рис. 8.2. Пример диаграммы сотрудничества
В общем случае строка сообщения может содержать номера пре дыдущих сообщений, сторожевое условие, передаваемые аргументы,
а также символ рекуррентности для обозначения итеративного вы
полнения. Смысл указания предшествующих сообщений заключается
втом, что данное сообщение не может быть передано, пока не будут переданы своим адресатам все сообщения, номера которых записаны
вэтом списке [2]. Номера предшествующих сообщений завершаются слешем («/»). Сторожевое условие представляет собой булево выра жение и записывается в квадратных скобках. Сообщение будет пере дано только в том случае, если условие принимает значение «исти на». Аргументы сообщения записываются в круглых скобках после названия сообщения. Символ рекуррентности - «*» - записывается перед выражением - итерацией. Ниже приведены примеры записи сообщений.
Примеры сообщений
1,4, 7 / 9: печать (файл) |
[(с > 0) & (с < 255) ] 7: отобразить |
[D > 0] 5: рассчитать корни |
цвет(с) 3 *[для а < 10]: удалить() |
8.2. Реализация в Rational Rose
Построим диаграмму сотрудничества для сценария «Создание дисциплины» прецедента «Ведение каталога дисциплин». Сам сцена рий достаточно прост: сотрудник деканата с помощью электронной формы системы заносит в каталог новую дисциплину.
Всценарии взаимодействуют четыре объекта: «Сотрудник дека ната», «Экранная форма», «Контроль над корректностью ввода дан ных» и «Дисциплина».
Вокне браузера вызовем контекстное меню над элементом реа лизации прецедента «Ведение каталога дисциплин» и выберем пункт «New» > «Collaboration Diagram». В результате этого будет создан
новый элемент - диаграмма сотрудничества. Переименуем его в «Создание дисциплины» (рис. 8.3).
Двойным щелчком мыши на элементе «Создание дисциплины» открываем рабочую область диаграммы. Далее переносим на рабо чую область диаграммы классы «DeaneryEmployee» (сотрудник де каната) и «Discipline» (дисциплина). В результате этого будут
3. Как на диаграмме сотрудничества отмечается порядок отправ
ки сообщений объектами?
4. Можно ли на диаграмме сотрудничества отобразить логиче
ские ветвления?
8.5.Контрольные задачи
1. Для примера с банкоматом, представленного на рис. 8.2, по стройте диаграмму сотрудничества в системе Rational Rose.
2. Используя полученную в первой задаче диаграмму сотруд ничества, автоматически создайте по ней диаграмму последова тельностей и сравните результат с диаграммой, представленной на рис. 7.3.