
- •1. Введение в Rational Rose 5
- •1. Введение вRational Rose
- •1.1. Цель работы
- •1.2. Общие сведения
- •1.3. Порядок выполнения
- •1.4. Содержание отчёта
- •1.5. Варианты заданий
- •1.6. Контрольные вопросы
- •2. Диаграмма прецедентов
- •2.1. Цель работы
- •2.2. Общие сведения
- •2.3. Порядок выполнения
- •2.4. Содержание отчёта
- •2.5. Варианты заданий
- •2.6. Контрольные вопросы
- •3. Диаграмма классов. Пакеты
- •3.1. Цель работы
- •3.2. Общие сведения
- •3.3. Порядок выполнения
- •3.4. Содержание отчёта
- •3.5. Варианты заданий
- •3.6. Контрольные вопросы
- •4. Диаграммы взаимодействия
- •4.1. Цель работы
- •4.2. Общие сведения
- •4.3. Порядок выполнения
- •4.4. Содержание отчёта
- •4.5. Варианты заданий
- •4.6. Контрольные вопросы
- •5. Диаграммы переходов состояний
- •5.1. Цель работы
- •5.2. Общие сведения
- •5.3. Порядок выполнения
- •5.4. Содержание отчёта
- •5.5. Варианты заданий
- •5.6. Контрольные вопросы
- •6. Диаграмма компонентов
- •6.1. Цель работы
- •6.2. Общие сведения
- •6.3. Порядок выполнения
- •6.4. Содержание отчёта
- •6.5. Варианты заданий
- •6.6. Контрольные вопросы
- •7. Диаграмма развёртывания
- •7.1. Цель работы
- •7.2. Общие сведения
- •7.3. Порядок выполнения
- •7.4. Содержание отчёта
- •7.5. Варианты заданий
- •7.6. Контрольные вопросы
- •8. Дальнейшая работа с моделью
- •8.1. Цель работы
- •8.2. Общие сведения
- •8.3. Порядок выполнения
- •8.4. Содержание отчёта
- •8.5. Варианты заданий
- •8.6. Контрольные вопросы
- •Список литературы
4.3. Порядок выполнения
1. Изучить назначение элементов интерфейса RRдля построения диаграммы последовательности. Рассмотреть типовой пример построения диаграммы.
2. Продолжить моделирование системы в соответствии с индивидуальным заданием в виде построения диаграммы последовательности:
2.1. Активизировать окно диаграммы последовательности, добавить на диаграмму актёра и объекты, добавить сообщения.
2.2. Провести спецификацию объектов и сообщений диаграммы.
2.3. Выполнить соотнесение объектов с классами и сообщений с операциями.
3. Изучить назначение элементов интерфейса RRдля построения диаграммы кооперации. Рассмотреть типовой пример построения диаграммы.
4. Продолжить моделирование системы в соответствии с индивидуальным заданием в виде построения диаграммы кооперации:
4.1. Активизировать окно диаграммы кооперации, добавить на диаграмму актёра и объекты, добавить сообщения.
4.2. Провести спецификацию объектов и сообщений диаграммы.
4.3. Выполнить соотнесение объектов с классами и сообщений с операциями.
5. Оформить отчёт по результатам выполнения лабораторной работы.
4.4. Содержание отчёта
Результаты выполнения лабораторной работы необходимо представить в виде отчёта, который должен содержать следующие разделы:
1. Постановка задачи.
2. Краткое описание составляющих каждой из диаграмм взаимодействия.
3. Окончательный вид каждой из диаграмм проектируемой системы.
4.5. Варианты заданий
Вариант индивидуального задания соответствует варианту, полученному при выполнении лабораторной работы №2.
4.6. Контрольные вопросы
1. Для чего предназначена диаграмма последовательности?
2. В чём отличия диаграмм кооперации от диаграмм последовательностей?
3. Какими способами можно создать диаграмму взаимодействия в средеRR?
4. Какие виды сообщений позволяет отразить диаграмма взаимодействия?
5. Какой порядок обмена сообщениями может быть задан?
6. Как изменить порядок следования сообщений на диаграмме взаимодействия?
7. Как добавляется объект / сообщение на диаграмму взаимодействия?
8. Как и с какой целью выполняется соотнесение объектов с классами?
9. В чём назначение сообщений на диаграмме последовательности?
10. Как удаляется элемент с диаграммы и удаляется диаграмма целиком?
5. Диаграммы переходов состояний
5.1. Цель работы
Целью данной работы является использование диаграмм переходов состояний (диаграммы состояний и диаграммы деятельности) при разработке программной системы в среде RR.
5.2. Общие сведения
Диаграмма переходов состояний (state machine diagram) описывает изменение состояний системы или её компонентов. Она может относиться к отдельному классу, операции класса, прецеденту, пакету или представлению.
Существует два типа диаграмм переходов состояний – диаграммы состояний (statechart diagram) и диаграммы деятельности (activity diagram). Главное отличие между диаграммой состояний и диаграммой деятельности в том, что в первом случае основное – состояние, а во втором – действия. Диаграмма деятельности больше подходит для моделирования последовательности действий, a диаграмма состояний – для моделирования дискретных состояний объекта.
Диаграмма состояний
На диаграмме состояний отображают жизненный цикл одного объекта, начиная с момента его создания и заканчивая разрушением. Диаграммы состояний обычно не требуется создавать для каждого класса. На основе диаграмм состояний не генерируется никакого кода.
Для создания диаграммы состояний щёлкните правой кнопкой мыши в браузере на классе (прецеденте, пакете) и в открывшемся меню выберите пункт Open Statechart Diagram(Открыть диаграмму состояний) или выполните операцию менюBrowse → State Machine Diagram(Обзор → Диаграмма переходов состояний).
При этом появляется новое окно с чистым рабочим листом диаграммы и специальная панель инструментов, содержащая кнопки с изображением графических элементов для разработки диаграммы состояний (табл.5.1).
Таблица 5.1
Значок |
Подсказка |
Назначение кнопки |
|
Selection Tool |
Переключает в режим выделения элементов |
|
Text Box |
Добавляет на диаграмму текстовую область |
|
Note |
Добавляет на диаграмму примечание |
|
Anchor Note to Item |
Добавляет связь примечания с элементом диаграммы |
|
State |
Добавляет на диаграмму состояние |
|
Start State |
Добавляет на диаграмму начальное состояние |
|
End State |
Добавляет на диаграмму конечное состояние |
|
State Transition |
Добавляет на диаграмму переход |
|
Transition to Self |
Добавляет на диаграмму рефлексивный переход |
|
Horizontal Synchronization |
Добавляет горизонтальный символ синхронизации |
|
Vertical Synchronization |
Добавляет вертикальный символ синхронизации |
|
Decision |
Добавляет на диаграмму символ принятия решения |
Все диаграммы состояний начинаются со значка Start Stateи должны заканчиваться значкомEnd State. ЗначокStart Stateможет быть только один, а значковEnd State– несколько. Для добавления состояния на диаграмму состояний можно воспользоваться специальной панелью инструментов, либо выбрать в меню пунктTools → Create → State(Инструменты → Создать → Состояние) и щёлкнуть мышью на диаграмме в том месте, куда нужно поместить состояние.
Для добавленного состояния можно открыть окно его свойств двойным щелчком левой кнопкой мыши на изображении этого элемента на диаграмме.
При необходимости в окне спецификации свойств выбранного состояния можно задать вложенное историческое состояние. Для этого следует выставить отметку у свойства State/activity historyи нажать кнопкуApply. Чтобы обычное историческое состояние превратить в состояние глубокой истории, следует выставить отметку у свойстваSub state/activity history, и нажать кнопкуApply.
Чтобы обычное состояние превратить в композитное, следует при добавлении нового состояния поместить его внутри границы того состояния, которое необходимо сделать композитным. В результате внутри исходного состояния появится новое вложенное состояние, которое при перемещении композита в области диаграммы состояний всегда будет находиться внутри своего композита.
Дополнительно можно определить следующие свойства состояний: стереотип состояния, внутренние действия на входе и выходе, внутренняя деятельность. Эти свойства доступны для редактирования на вкладке GeneralиActions(Действия). На вкладкеTransitions(Переходы) можно определять и редактировать переходы, которые входят и выходят из состояния. ВкладкаSwimlanes(Дорожки) служит для спецификации дорожек, которые определяются для диаграммы деятельности.
Для добавления перехода между двумя состояниями нужно с помощью левой кнопки мыши нажать кнопку с изображением перехода на специальной панели инструментов, отпустить левую кнопку мыши, щёлкнуть левой кнопкой мыши на изображении исходного состояния на диаграмме и отпустить её на изображении целевого состояния.
После добавления перехода можно открыть окно его свойств и специфицировать свойства (события, аргументы, сторожевое условие, действия и посылаемые события) на вкладках. Следующие поля вкладки Detailявляются наиболее важными: полеGuard Conditionслужит для задания сторожевого условия, которое определяет правило срабатывания соответствующего перехода; полеActionслужит для указания действия, которое происходит при срабатывании перехода до того, как система попадёт в целевое состояние.
При необходимости можно определить сообщение о событии, происходящем при срабатывании перехода, а также визуализировать вложенность состояний и подключить историю отдельных состояний.
Для добавления события на диаграмму, дважды щёлкнув мышью на переходе, откройте окно его спецификации, перейдите на вкладку Generalи введите событие в полеEvent(Событие), аргументы – в полеArguments(аргументы).
Отправить событие можно так: перейдите на вкладку Detailи введите событие в полеSend Event(отправляемое событие), аргументы – в полеSend Arguments(отправляемые аргументы) и укажите цель в полеSend Target(цель события).
Типовой пример
Для модели банкомата рассмотрим построение диаграммы состояний (рис.5.1), которое заключается в добавлении следующих состояний и переходов.
1. Начальное и конечное состояния, состояния: ‘Ожидание карточки’, ‘Ожидание ввода ПИН-кода’, ‘Проверка ПИН-кода’, ‘Ожидание выбора клиента’, ‘Обработка запроса на снятие наличных’, ‘Обработка запроса на получение справки’, ‘Выдача наличных’, ‘Печать’, ‘Возврат карточки’, ‘Завершение транзакции’.
2. Переходы:
1) переход – от начального состояния к состоянию ‘Ожидание карточки’;
2) ‘карточка вставлена’ – от ‘Ожидание карточки’ к ‘Ожидание ввода ПИН-кода’;
3) ‘ПИН-код введён’ – от ‘Ожидание ввода ПИН-кода’ к ‘Проверка ПИН-кода’;
4) ‘отмена транзакции’ – от ‘Ожидание ввода ПИН-кода’ к ‘Возврат карточки’;
5) переход со сторожевым условием: [ПИН-код верный] – от ‘Проверка ПИН-кода’ к ‘Ожидание выбора клиента’;
6) переход со сторожевым условием: [ПИН-код неверный] – от ‘Проверка ПИН-кода’ к ‘Ожидание ввода ПИН-кода’;
7) ‘три неудачи’ с действием на переходе ‘конфискация карточки’ от ‘Проверка ПИН-кода’ к ‘Завершение транзакции’. Для задания действия на переходе ввести текст ‘конфискация карточки’ в поле Actionна вкладкеDetailокна спецификации свойств перехода;
8) ‘выбор суммы’ со сторожевым условием: [сумма введена] – от ‘Ожидание выбора клиента’ к ‘Обработка запроса на снятие наличных’;
9) ‘выбор справки’ от ‘Ожидание выбора клиента’ к ‘Обработка запроса на получение справки’;
10) ‘отмена транзакции’ от ‘Ожидание выбора клиента’ к ‘Возврат карточки’;
11) переход со сторожевым условием: [кредит не превышен] – от ‘Обработка запроса на снятие наличных’ к ‘Выдача наличных’;
12) переход со сторожевым условием: [кредит превышен] с действием на переходе ‘сообщение’ – от ‘Обработка запроса на снятие наличных’ к ‘Возврат карточки’;
13) ‘наличные выданы’ со сторожевым условием: [выбрана печать чека] – от ‘Выдача наличных’ к ‘Печать’;
14) переход ‘наличные выданы’ со сторожевым условием: [печать чека не выбрана] – от ‘Выдача наличных’ к ‘Возврат карточки’;
15) ‘справка сформирована’ от ‘Обработка запроса на получение справки’ к ‘Печать’;
16) ‘печать закончена’ от ‘Печать’ к ‘Возврат карточки’;
17) ‘карточка возвращена’ от ‘Возврат карточки’ к ‘Завершение транзакции’;
18) ‘транзакция завершена’ от ‘Завершение транзакции’ к ‘Ожидание карточки’;
19) переход – от состояния ‘Ожидание карточки’ к конечному состоянию.
Рис.5.1. Диаграмма состояний для моделирования поведения банкомата
В этой модели диаграмма состояний является единственной и описывает поведение системы управления банкоматом в целом. Главное достоинство этой диаграммы состояний – возможность моделировать условный характер реализации всех прецедентов в форме изменения отдельных состояний системы.
Диаграмма деятельности
Начать построение диаграммы деятельности для выбранного элемента модели или системы в целом можно одним из следующих способов:
1. Выделить логическое представление (Logical View) или представление прецедентов (Use Case View) в браузере и выполнить операцию контекстного менюNew → Activity Diagram(Новая → Диаграмма деятельности).
2. Раскрыть логическое представление в браузере и выделить класс (операцию класса, пакет) или раскрыть представление прецедента и выбрать прецедент, после чего выполнить операцию контекстного меню New → Activity Diagram(Новая → Диаграмма деятельности).
3. Выполнить операцию меню Browse → State Machine Diagram(Обзор → Диаграмма переходов состояний) и выбрать представление и тип диаграммы.
При этом появляется новое окно с чистым рабочим листом диаграммы и специальная панель инструментов, содержащая кнопки с изображением графических элементов для разработки диаграммы деятельности (табл.5.2).
Таблица 5.2
Значок |
Подсказка |
Назначение кнопки |
|
Selection Tool |
Переключает в режим выделения элементов на диаграмме |
|
Text Box |
Добавляет на диаграмму текстовую область |
|
Note |
Добавляет на диаграмму примечание |
|
Anchor Note to Item |
Добавляет связь примечания с элементом диаграммы |
|
State |
Добавляет на диаграмму состояние |
|
Activity |
Добавляет на диаграмму деятельность |
|
Start State |
Добавляет на диаграмму начальное состояние |
|
End State |
Добавляет на диаграмму конечное состояние |
|
State Transition |
Добавляет на диаграмму переход |
|
Transition to Self |
Добавляет на диаграмму рефлексивный переход |
|
Horizontal Synchronization |
Добавляет горизонтальный символ синхронизации |
|
Vertical Synchronization |
Добавляет вертикальный символ синхронизации |
|
Decision |
Добавляет на диаграмму символ принятия решения |
|
Swimlane |
Добавляет на диаграмму дорожку |
|
Object |
Добавляет на диаграмму объект |
|
Object Flow |
Добавляет на диаграмму стрелку потока объектов |
|
Business Activity |
Добавляет на диаграмму бизнес-деятельность |
|
Business Transaction |
Добавляет на диаграмму бизнес-транзакцию |
Для добавления деятельности на диаграмму нужно с помощью левой кнопки мыши нажать кнопку со значком деятельности на специальной панели инструментов. Добавить деятельность на диаграмму можно и с помощью операции меню Tools → Create → Activityили с помощью операции контекстного менюNew → Activity, предварительно выделив диаграмму деятельности в браузере.
После добавления деятельности можно открыть окно спецификации её свойств и определить свойства деятельности на вкладках.
Для деятельности доступны два стереотипа: Business Activity(Бизнес-деятельность) иBusiness Transaction(Бизнес-транзакция). На вкладкеTransitionsокна спецификации свойств деятельности можно определять и редактировать переходы, которые входят и выходят из деятельности. ВкладкаSwimlanesслужит для спецификации дорожки, на которую помещается деятельность.
Хотя RRпозволяет определить свойства деятельности, доступные на вкладкеActions, следует помнить, что внутренние действия являются свойствами общего понятия состояния, а внутренняя деятельность служит именем собственно деятельности, помещаемой на диаграмму деятельности. Поэтому для деятельности во избежание недоразумений лучше оставить эту вкладку пустой.
Добавление перехода полностью аналогично диаграмме состояний.
При наличии в проекте законченной диаграммы состояний попытка добавить начальное состояние на диаграмму деятельности с помощью кнопки специальной панели инструментов окажется безуспешной. RRфиксирует наличие в модели начального состояния и не позволит добавить его на диаграммы переходов состояний. Решить эту проблему можно посредством перетаскивания с помощью мыши начального состояния из браузера на любую из требуемых диаграмм.
После добавления перехода становятся доступными для редактирования его свойства в специальном окне, которое можно открыть по двойному щелчку левой кнопкой мыши на изображении перехода.
При спецификации свойств переходов следует помнить, что все переходы на диаграмме деятельности являются нетриггерными, т.е. не имеют имён событий. Поэтому поле Eventдля всех переходов должно быть пустым. Но все переходы из символов ветвления (решения) должны иметь сторожевые условия, которые специфицируются на вкладкеDetailокна спецификации свойств перехода.
Типовой пример
Для модели системы управления банкоматом диаграмма деятельности описывает последовательность действий клиента при пользовании банкоматом (рис.5.2). Для построения диаграммы необходимо добавить следующие деятельности, символы ветвления и переходы.
1. Деятельности: ‘Вставить карточку’, ‘Ввести ПИН-код’, ‘Выбрать тип транзакции’, ‘Ввести сумму’, ‘Получить справку о состоянии счёта’, ‘Получить наличные’, ‘Получить чек’, ‘Получить карточку’, начальное и конечное состояния.
2. Символы ветвления (решения) между деятельностями: ‘Ввести ПИН-код’ и ‘Выбрать тип транзакции’, ‘Выбрать тип транзакции’ и ‘Ввести сумму’, ‘Ввести сумму’ и ‘Получить справку о состоянии счёта’, ‘Получить наличные’ и ‘Получить чек’, ‘Получить чек’ и ‘Получить карточку’. Последний символ решения используется в качестве символа соединения.
3. Переходы:
1) переход – от деятельности ‘Ввести ПИН-код’ к символу решения;
2) переход со сторожевым условием [ПИН-код верный] – от символа решения к ‘Выбрать тип транзакции’;
3) переход со сторожевым условием [ПИН-код неверный] – от символа решения к символу соединения;
4) переход – от ‘Выбрать тип транзакции’ к символу решения;
5) переход со сторожевым условием [выбор снятия суммы] – от символа решения к ‘Ввести сумму’;
6) переход со сторожевым условием [выбор получения справки] – от символа решения к ‘Получить справку о состоянии счёта’;
7) переход – от ‘Ввести сумму’ к символу решения;
8) переход со сторожевым условием [сумма не превышает кредит] – от символа решения к ‘Получить наличные’;
Рис.5.2. Диаграмма деятельности для модели банкомата
9) переход со сторожевым условием [сумма превышает кредит] – от символа решения к символу соединения;
10) переход – от ‘Получить наличные’ к символу решения;
11) переход со сторожевым условием [выбрана печать чека] – от символа решения к ‘Получить чек’;
12) переход со сторожевым условием [печать чека не выбрана] – от символа решения к символу соединения;
13) переход – от ‘Получить чек’ к символу соединения;
14) переход – от ‘Получить справку о состоянии счёта’ к символу соединения;
15) переход – от символа соединения к ‘Получить карточку’;
16) переход – от деятельности ‘Получить карточку’ к конечному состоянию.
Диаграмма деятельности не является необходимой для генерации кода. Поэтому разработку диаграмм этого типа иногда опускают. В проектах реинжиниринга и документирования бизнес-процессов диаграмма деятельности является основным средством визуализации бизнес-процессов в контексте UML.