Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Проектирование автоматизированных информационных систем на основе объектно-ориентированного подхода

..pdf
Скачиваний:
0
Добавлен:
12.11.2023
Размер:
10.56 Mб
Скачать

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

На рис. 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.

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