Материал: Лабораторные_Архитерктура ИС

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
background image

73

3.

Управляющие

классы

 (Control) – 

обеспечивают

координацию

поведения

объектов

в

системе

Могут

отсутствовать

в

некоторых

вариантах

использования

ограничивающихся

простыми

манипуляциями

с

хранимыми

данными

Как

правило

для

каждого

варианта

использования

определяется

один

управляющий

класс

.

Примеры

управляющих

классов

менеджер

транзакций

,

координатор

ресурсов

обработчик

ошибок

.

Пример

набора

классов

участвующих

в

реализации

варианта

использования

 Register for Courses, 

приведен

на

рис

. 3.6.

Рис

. 3.6. 

Классы

участвующие

в

реализации

варианта

использования

Register for Courses

Упражнение

 7. 

Создание

классов

участвующих

в

реализации

варианта

использования

 Register for Courses, 

и

диаграммы

классов

«View Of Participating Classes» (VOPC)

1

.

Щелкните

правой

кнопкой

мыши

на

пакете

 Design Model.

2.

Выберите

в

открывшемся

меню

пункт

 New > Class. 

Новый

класс

под

названием

 NewClass 

появится

в

браузере

.

3.

Выделите

его

и

введите

имя

 RegisterForCoursesForm.

4.

Щелкните

правой

кнопкой

мыши

на

классе

RegisterForCoursesForm.

5.

В

открывшемся

меню

выберите

пункт

 Open Specification.

RegisterForCoursesForm

<<boundary>>

CourseCatalogSystem

<<boundary>>

RegistrationController

<<control>>

Student

<<entity>>

CourseOffering

<<entity>>

Schedule

<<entity>>

background image

74

6.

В

поле

стереотипа

выберите

 Boundary 

и

нажмите

на

кнопку

ОК

.

7.

Создайте

аналогичным

образом

классы

 CourseCatalogSystem

со

стереотипом

 Boundary 

и

 RegistrationController 

со

стереотипом

Control.

8.

Назначьте

классам

 Schedule, CourseOffering 

и

 Student 

стереотип

Entity.

9.

Щелкните

правой

кнопкой

мыши

на

кооперации

 Register for

Courses 

в

пакете

 Use-Case Realization – Register for Courses.

1

0.

В

открывшемся

меню

выберите

пункт

 New > Class Diagram.

11

.

Назовите

новую

диаграмму

классов

 VOPC (classes only).

1

2.

Откройте

ее

и

перетащите

классы

на

открытую

диаграмму

в

соответствии

с

рис

. 3.6.

Распределение

поведения

реализуемого

вариантом

использования

,

между

классами

Реализуется

с

помощью

диаграмм

взаимодействия

  (

диаграмм

последовательности

и

кооперативных

диаграмм

). 

В

первую

очередь

строится

диаграмма

  (

одна

или

более

), 

описывающая

основной

поток

событий

и

его

подчиненные

потоки

Для

каждого

альтернативного

потока

событий

строится

отдельная

диаграмма

Примеры

:

обработка

ошибок

;

контроль

времени

выполнения

;

обработка

неправильных

вводимых

данных

.

Нецелесообразно

описывать

тривиальные

потоки

событий

 (

например

,

в

потоке

участвует

только

один

объект

).

Упражнение

 8. 

Создание

диаграмм

взаимодействия

Создадим

диаграммы

последовательности

и

кооперативные

диаграммы

для

основного

потока

событий

варианта

использования

 Register

for Courses. 

Готовые

диаграммы

последовательности

должны

иметь

вид

,

как

на

рис

. 3.7 – 3.

11

.

background image

75

: Student

: RegisterForCoursesForm

: RegistrationController

1

: // register for courses( )

2: // is registration open?( )

3: // display possible operations( )

[ registration open ]

4: // create schedule( )

Sequence Diagram: Register
for Courses / Register for
Courses - Basic Flow (Create
Schedule)

5: // update schedule( )

Sequence Diagram: Register
for Courses / Register for
Courses - Basic Flow (Update
Schedule)

6: // delete schedule( )

Sequence Diagram: Register
for Courses / Register for
Courses - Basic Flow (Delete
Schedule)

Выполняется
один

из

трех

потоков

:

Рис

. 3.7. 

Диаграмма

последовательности

 Register for Courses – Basic

Flow

background image

76

:CourseCatalog

System

:Student

:RegisterForCourses

Form

:Registration

Co

ntroller

:

Schedule :Student

:Course

Catalog

Отображается
список

курсов

текущего

семестра

Студент

хочет

создать

график

занятий

1

: // create schedule( )

5: // display course offerings( )

2: // get course offerings( )

3: // get course offerings(forSemester)

6: // display blank schedule( )

В

этой

точке

выполняется

подчиненный

поток

«

Принять

график

»

Sequence Diagram: Register for Courses /
Register for Courses - Basic Flow
(Submit Schedule)

7: // select 4 primary and 2 alternate offerings( )

8: // create schedule

ith ff i

(

9: // create with offerings( )

1

0: // add schedule(Schedule)

4: // get course offerings( )

Рис

. 3.8. 

Диаграмма

последовательности

 Register for Courses – Basic

Flow (Create Schedule)

Настройка

1

.

В

меню

модели

выберите

пункт

 Tools > Options.

2.

Перейдите

на

вкладку

диаграмм

.

3.

Контрольные

переключатели

 Sequence Numbering, Collaboration

Numbering 

должны

быть

помечены

а

 Focus of Control – 

нет

.

4.

Нажмите

ОК

чтобы

выйти

из

окна

параметров

.

Создание

диаграммы

последовательности

1

.

Щелкните

правой

кнопкой

мыши

на

кооперации

 Register for

Courses 

в

пакете

 Use-Case Realization – Register for Courses.

2.

В

открывшемся

меню

выберите

пункт

 New > Sequence Diagram.

3.

Назовите

новую

диаграмму

 Register for Courses – Basic Flow.

4.

Дважды

щелкните

на

ней

чтобы

открыть

ее

.

background image

77

Добавление

на

диаграмму

действующего

лица

объектов

и

сообщений

1

.

Перетащите

действующее

лицо

 Student 

из

браузера

на

диаграмму

.

2.

Перетащите

классы

 RegisterForCoursesForm 

и

 RegistrationController

из

браузера

на

диаграмму

.

3.

На

панели

инструментов

нажмите

кнопку

 Object Message

(

Сообщение

объекта

).

4.

Проведите

мышью

от

линии

жизни

действующего

лица

 Student 

к

линии

жизни

объекта

 RegisterForCoursesForm.

5.

Выделив

сообщение

введите

его

имя

: // register for courses.

6.

Повторите

действия

 3 – 5, 

чтобы

поместить

на

диаграмму

остальные

сообщения

как

показано

на

рис

. 3.7 (

для

рефлексивного

сообщения

 3 

используется

кнопка

 Message to Self).

: Schedule

: Student

:RegisterForCourses

Form

: Registration

Controller

 : Student

:CourseCatalog

System

Выводится

список

курсов

текущего

семестра

Студент

хочет

обновить

график

1

: // update schedule( )

7: // display course offerings( )

4: // display schedule(Schedule)

2: // get current schedule(Student, forSemester)

5: // get course offerings( )

3: // get schedule(forSemester)

6: // get course

ff i

(f S

t )

Отображается
текущий

график

В

этой

точке

выполняется

подчиненный

поток

 «

Принять

график

»

8: // update offering selections( )

9: // update schedule with new selections( )

1

0: // update with new selections( )

Sequence Diagram: Register for Courses /
Register for Courses - Basic Flow (Submit
Schedule)

Рис

. 3.9. 

Диаграмма

последовательности

 Register for Courses – Basic

Flow (Update Schedule)

Источник: https://files.student-it.ru/previewfile/15390