
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>>

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
.

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

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.
Дважды
щелкните
на
ней
,
чтобы
открыть
ее
.

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)