ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.11.2023
Просмотров: 168
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
когда клиент посылает сообщение, а сервер может принять сообщение клиента; Balking – операция происходит только в том случае, когда сервер готов немедленно принять сообщение, если сервер не готов к приёму, клиент не выдаёт сообщение; Timeout – клиент отказывается от выдачи сообщения, если сервер в течение определённого времени не может его принять; Procedure Call – клиент вызывает процедуру сервера и полностью передает ему управление; Return – определяет, что происходит возврат из процедуры; Asynchronous – клиент выдаёт сообщение, и, не ожидая ответа сервера, продолжает выполнение. Группа свойств Frequency определяет частоту обмена сообщениями: Periodic – сообщения поступают от клиента с заданной периодичностью; Aperiodic – сообщения поступают от клиента нерегулярно.
Для удаления элемента с диаграммы выделите его и в меню модели выберите пункт Edit → Delete from model (Правка → Удалить из модели). При необходимости удаления всей диаграммы последовательности нужно щелкнуть правой кнопкой мыши на ней в браузере и в открывшемся меню выбрать пункт Delete.
Типовой пример
Для модели банкомата фрагмент вида диаграммы последовательности для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’, приведён на рис.4.1. При построении диаграммы последовательности ‘Снятие наличных по кредитной карточке’ добавлены следующие объекты и сообщения.
1. Объекты классов: ‘Клиент банкомата’, ‘Устройство чтения карточки’, ‘Контроллер банкомата’, ‘Транзакция банкомата’, ‘Клавиатура банкомата’, ‘Экран банкомата’, ‘Принтер банкомата’, ‘Устройство выдачи наличных’ и ‘IКонтроллер Банка’.
2. Сообщения:
1) ‘прочитать идентификатор карточки()’ – от линии жизни объекта класса ‘Клиент банкомата’ к линии жизни объекта класса ‘Устройство чтения карточки’;
2) ‘проверить идентификатор карточки(integer)’ – от ‘Контроллер банкомата’ к ‘IКонтроллер банка’;
3) ‘ввести ПИН-код()’ – от ‘Клиент банкомата’ к ‘Клавиатура банкомата’;
4) ‘прочитать ПИН-код()’ – от ‘Контроллер банкомата’ к ‘Устройство чтения карточки’;
5) ‘создать новую транзакцию()’ – от ‘Контроллер банкомата’ к изображению ‘Транзакция банкомата’. Изображение 2‑го объекта перемещено вниз на уровень этого сообщения, что означает создание объекта в более поздний момент времени, чем начало функционирования системы.
6) ‘проверить правильность ПИН-кода()’ – от ‘Контроллер банкомата’ к ‘Транзакция банкомата’;
7) ‘показать меню опций()’ – от ‘Контроллер банкомата’ к ‘Экран банкомата’;
8) ‘ввести тип транзакции()’ – от ‘Клиент банкомата’ к ‘Клавиатура банкомата’;
9) ‘показать меню снятия суммы()’ – от‘Контроллер банкомата’ к ‘Экран банкомата’;
10) ‘ввести сумму снятия наличных()’ – от ‘Клиент банкомата’ к ‘Клавиатура банкомата’;
Рис.4.1. Фрагмент окончательного вида диаграммы последовательности для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’
11) последовательно 3 сообщения: ‘открыть счёт клиента(integer)’, ‘проверить баланс клиента(integer, currency)’ и ‘уменьшить счёт клиента(integer, currency)’ – от ‘Контроллер банкомата’ к ‘IКонтроллер банка’;
12) ‘распечатать чек()’ – от ‘Контроллер банкомата’ к ‘Принтер банкомата’;
13) ‘вернуть кредитную карточку()’ – от ‘Контроллер банкомата’ к ‘Устройство чтения карточки’;
14) ‘выдать наличные()’ – от ‘Контроллер банкомата’ к ‘Устройство выдачи наличных’;
15) ‘завершить транзакцию()’ – от ‘Контроллер банкомата’ к ‘Транзакция банкомата’.
После добавления сообщения ‘завершить транзакцию()’ поместить на линию жизни объекта класса ‘Транзакция банкомата’ символ уничтожения этого объекта.
Диаграмма кооперации
Особенность работы в среде RR заключается в том, что диаграмма кооперации может быть автоматически создана на основе диаграммы последовательности и наоборот. Для этого, находясь в диаграмме необходимо нажать клавишу или использовать меню Browse → Create Collaboration/Sequence diagram (Браузер → Создать диаграмму кооперации/последовательности). С помощью клавиши также осуществляется переключение между диаграммами в модели.
Диаграммы кооперации обычно создаются в браузере и размещаются под прецедентом или пакетом. Для создания новой диаграммы кооперации щёлкните правой кнопкой мыши на прецеденте в браузере, в открывшемся меню выберите пункт New → Collaboration Diagram (Создать → Диаграмма кооперации), после определения имени диаграммы дважды щёлкните мышью на ней в браузере.
При этом появляется новое окно с чистым рабочим листом диаграммы и специальная панель инструментов, содержащая кнопки с изображением графических элементов для разработки диаграммы кооперации (табл.4.2).
Таблица 4.2
Добавление объекта на диаграмму кооперации и редактирование его свойств выполняется так же, как и для диаграммы последовательности. Перед тем как поместить сообщение на диаграмму кооперации, необходимо установить путь коммуникации между объектами. Этот путь называется связью (link) и создаётся с помощью кнопки Object Link (Связь объекта) панели инструментов. После создания связи можно поместить сообщение между объектами.
Для добавления связи между объектами нужно с помощью левой кнопки мыши нажать кнопку с изображением связи на специальной панели инструментов, отпустить левую кнопку мыши, щёлкнуть левой кнопкой мыши на изображении 1‑го объекта на диаграмме и отпустить её на изображении 2‑го объекта. Можно задать имя связи с помощью окна спецификации свойств данной связи.
Кроме имени связи можно также задать: имя ассоциации, видимость связанных объектов и наличие общих ролей. Более важной является вкладка Messages (сообщения) для спецификации сообщений между связанными объектами. Добавить сообщения можно несколькими способами. Стандартный способ заключается в использовании кнопки со значком сообщения на специальной панели инструментов. Более удобным представляется способ добавления сообщений с помощью окна свойств связей. Для этого двойным щелчком на линии связи вызывается окно её свойств и раскрывается вкладка Messages (сообщения). После этого следует выполнить операцию контекстного меню Insert To (Вставить в направлении), в результате чего появляется вложенный список с предложением выбрать одну из операций целевого класса для спецификации имени сообщения.
Спецификация сообщений диаграммы кооперации выполняется тем же способом, что и для диаграммы последовательности.
Типовой пример
Для модели банкомата окончательный вид диаграммы кооперации для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’ приведён на рис.4.2.
Рис.4.2. Окончательный вариант диаграммы кооперации для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’
Прежде чем приступить к генерации кода, требуется соотнести сообщения диаграмм взаимодействия с операциями классов. Для этого необходимо:
1. Проверить соотнесение объекта, получающего сообщения, с классом.
2. Щёлкнуть правой кнопкой мыши на сообщении диаграммы.
3. Выбрать операцию из появившегося списка.
Для уничтожения соотнесения сообщения с операцией дважды щёлкните на сообщение диаграммы, из поля Name удалите имя операции и введите новое имя сообщения.
Если нужно создать новую операцию для сообщения:
1. Проверить соотнесение объекта, получающего сообщения, с классом.
2. Щёлкнуть правой кнопкой мыши на сообщении диаграммы и выбрать пункт New operation (Новая операция).
3. Ввести имя и детали новой операции, нажать копку OK.
4. Щёлкнуть на сообщении правой кнопкой мыши, в появившемся списке выбрать новую операцию.
Если вы хотите убедиться, что каждое сообщение соотнесено с операцией, то выберите в меню модели пункт Report → Show Unresolved Messages (Отчёт → Показать свободные сообщения).
1. Изучить назначение элементов интерфейса RR для построения диаграммы последовательности. Рассмотреть типовой пример построения диаграммы.
2. Продолжить моделирование системы в соответствии с индивидуальным заданием в виде построения диаграммы последовательности:
2.1. Активизировать окно диаграммы последовательности, добавить на диаграмму актёра и объекты, добавить сообщения.
2.2. Провести спецификацию объектов и сообщений диаграммы.
2.3. Выполнить соотнесение объектов с классами и сообщений с операциями.
3. Изучить назначение элементов интерфейса RR для построения диаграммы кооперации. Рассмотреть типовой пример построения диаграммы.
4. Продолжить моделирование системы в соответствии с индивидуальным заданием в виде построения диаграммы кооперации:
4.1. Активизировать окно диаграммы кооперации, добавить на диаграмму актёра и объекты, добавить сообщения.
4.2. Провести спецификацию объектов и сообщений диаграммы.
4.3. Выполнить соотнесение объектов с классами и сообщений с операциями.
5. Оформить отчёт по результатам выполнения лабораторной работы.
Результаты выполнения лабораторной работы необходимо представить в виде отчёта, который должен содержать следующие разделы:
1. Постановка задачи.
2. Краткое описание составляющих каждой из диаграмм взаимодействия.
3. Окончательный вид каждой из диаграмм проектируемой системы.
Вариант индивидуального задания соответствует варианту, полученному при выполнении лабораторной работы №2.
1. Для чего предназначена диаграмма последовательности?
2. В чём отличия диаграмм кооперации от диаграмм последовательностей?
3. Какими способами можно создать диаграмму взаимодействия в среде RR?
4. Какие виды сообщений позволяет отразить диаграмма взаимодействия?
5. Какой порядок обмена сообщениями может быть задан?
6. Как изменить порядок следования сообщений на диаграмме взаимодействия?
7. Как добавляется объект / сообщение на диаграмму взаимодействия?
8. Как и с какой целью выполняется соотнесение объектов с классами?
9. В чём назначение сообщений на диаграмме последовательности?
10. Как удаляется элемент с диаграммы и удаляется диаграмма целиком?
Целью данной работы является использование диаграмм переходов состояний (диаграммы состояний и диаграммы деятельности) при разработке программной системы в среде RR.
Диаграмма переходов состояний (state machine diagram) описывает изменение состояний системы или её компонентов. Она может относиться к отдельному классу, операции класса, прецеденту, пакету или представлению.
Существует два типа диаграмм переходов состояний – диаграммы состояний (statechart diagram) и диаграммы деятельности (activity diagram). Главное отличие между диаграммой состояний и диаграммой деятельности в том, что в первом случае основное – состояние, а во втором – действия. Диаграмма деятельности больше подходит для моделирования последовательности действий, a диаграмма состояний – для моделирования дискретных состояний объекта.
Диаграмма состояний
На диаграмме состояний отображают жизненный цикл одного объекта, начиная с момента его создания и заканчивая разрушением. Диаграммы состояний обычно не требуется создавать для каждого класса. На основе диаграмм состояний не генерируется никакого кода.
Для создания диаграммы состояний щёлкните правой кнопкой мыши в браузере на классе (прецеденте, пакете) и в открывшемся меню выберите пункт Open Statechart Diagram (Открыть диаграмму состояний) или выполните операцию меню Browse → State Machine Diagram (Обзор → Диаграмма переходов состояний).
При этом появляется новое окно с чистым рабочим листом диаграммы и специальная панель инструментов, содержащая кнопки с изображением графических элементов для разработки диаграммы состояний (табл.5.1).
Таблица 5.1
Все диаграммы состояний начинаются со значка Start State и должны заканчиваться значком End State. Значок Start State может быть только один, а значков End State – несколько. Для добавления состояния на диаграмму состояний можно воспользоваться специальной панелью инструментов, либо выбрать в меню пункт Tools → Create → State (Инструменты → Создать → Состояние) и щёлкнуть мышью на диаграмме в том месте, куда нужно поместить состояние.
Для добавленного состояния можно открыть окно его свойств двойным щелчком левой кнопкой мыши на изображении этого элемента на диаграмме.
При необходимости в окне спецификации свойств выбранного состояния можно задать вложенное историческое состояние. Для этого следует выставить отметку у свойства State/activity history и нажать кнопку Apply. Чтобы обычное историческое состояние превратить в состояние глубокой истории, следует выставить отметку у свойства Sub state/activity history, и нажать кнопку Apply.
Чтобы обычное состояние превратить в композитное, следует при добавлении нового состояния поместить его внутри границы того состояния, которое необходимо сделать композитным. В результате внутри исходного состояния появится новое вложенное состояние, которое при перемещении композита в области диаграммы состояний всегда будет находиться внутри своего композита.
Дополнительно можно определить следующие свойства состояний: стереотип состояния, внутренние действия на входе и выходе, внутренняя деятельность. Эти свойства доступны для редактирования на вкладке General и Actions (Действия). На вкладке Transitions (Переходы) можно определять и редактировать переходы, которые входят и выходят из состояния. Вкладка Swimlanes (Дорожки) служит для спецификации дорожек, которые определяются для диаграммы деятельности.
Для добавления перехода между двумя состояниями нужно с помощью левой кнопки мыши нажать кнопку с изображением перехода на специальной панели инструментов, отпустить левую кнопку мыши, щёлкнуть левой кнопкой мыши на изображении исходного состояния на диаграмме и отпустить её на изображении целевого состояния.
Для удаления элемента с диаграммы выделите его и в меню модели выберите пункт Edit → Delete from model (Правка → Удалить из модели). При необходимости удаления всей диаграммы последовательности нужно щелкнуть правой кнопкой мыши на ней в браузере и в открывшемся меню выбрать пункт Delete.
Типовой пример
Для модели банкомата фрагмент вида диаграммы последовательности для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’, приведён на рис.4.1. При построении диаграммы последовательности ‘Снятие наличных по кредитной карточке’ добавлены следующие объекты и сообщения.
1. Объекты классов: ‘Клиент банкомата’, ‘Устройство чтения карточки’, ‘Контроллер банкомата’, ‘Транзакция банкомата’, ‘Клавиатура банкомата’, ‘Экран банкомата’, ‘Принтер банкомата’, ‘Устройство выдачи наличных’ и ‘IКонтроллер Банка’.
2. Сообщения:
1) ‘прочитать идентификатор карточки()’ – от линии жизни объекта класса ‘Клиент банкомата’ к линии жизни объекта класса ‘Устройство чтения карточки’;
2) ‘проверить идентификатор карточки(integer)’ – от ‘Контроллер банкомата’ к ‘IКонтроллер банка’;
3) ‘ввести ПИН-код()’ – от ‘Клиент банкомата’ к ‘Клавиатура банкомата’;
4) ‘прочитать ПИН-код()’ – от ‘Контроллер банкомата’ к ‘Устройство чтения карточки’;
5) ‘создать новую транзакцию()’ – от ‘Контроллер банкомата’ к изображению ‘Транзакция банкомата’. Изображение 2‑го объекта перемещено вниз на уровень этого сообщения, что означает создание объекта в более поздний момент времени, чем начало функционирования системы.
6) ‘проверить правильность ПИН-кода()’ – от ‘Контроллер банкомата’ к ‘Транзакция банкомата’;
7) ‘показать меню опций()’ – от ‘Контроллер банкомата’ к ‘Экран банкомата’;
8) ‘ввести тип транзакции()’ – от ‘Клиент банкомата’ к ‘Клавиатура банкомата’;
9) ‘показать меню снятия суммы()’ – от‘Контроллер банкомата’ к ‘Экран банкомата’;
10) ‘ввести сумму снятия наличных()’ – от ‘Клиент банкомата’ к ‘Клавиатура банкомата’;
Рис.4.1. Фрагмент окончательного вида диаграммы последовательности для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’
11) последовательно 3 сообщения: ‘открыть счёт клиента(integer)’, ‘проверить баланс клиента(integer, currency)’ и ‘уменьшить счёт клиента(integer, currency)’ – от ‘Контроллер банкомата’ к ‘IКонтроллер банка’;
12) ‘распечатать чек()’ – от ‘Контроллер банкомата’ к ‘Принтер банкомата’;
13) ‘вернуть кредитную карточку()’ – от ‘Контроллер банкомата’ к ‘Устройство чтения карточки’;
14) ‘выдать наличные()’ – от ‘Контроллер банкомата’ к ‘Устройство выдачи наличных’;
15) ‘завершить транзакцию()’ – от ‘Контроллер банкомата’ к ‘Транзакция банкомата’.
После добавления сообщения ‘завершить транзакцию()’ поместить на линию жизни объекта класса ‘Транзакция банкомата’ символ уничтожения этого объекта.
Диаграмма кооперации
Особенность работы в среде RR заключается в том, что диаграмма кооперации может быть автоматически создана на основе диаграммы последовательности и наоборот. Для этого, находясь в диаграмме необходимо нажать клавишу
Диаграммы кооперации обычно создаются в браузере и размещаются под прецедентом или пакетом. Для создания новой диаграммы кооперации щёлкните правой кнопкой мыши на прецеденте в браузере, в открывшемся меню выберите пункт New → Collaboration Diagram (Создать → Диаграмма кооперации), после определения имени диаграммы дважды щёлкните мышью на ней в браузере.
При этом появляется новое окно с чистым рабочим листом диаграммы и специальная панель инструментов, содержащая кнопки с изображением графических элементов для разработки диаграммы кооперации (табл.4.2).
Таблица 4.2
Значок | Подсказка | Назначение кнопки |
| Selection Tool | Переключает в режим выделения элементов на диаграмме |
| Text Box | Добавляет на диаграмму текстовую область |
| Note | Добавляет на диаграмму примечание |
| Anchor Note to Item | Добавляет связь примечания с элементом диаграммы |
| Object | Добавляет на диаграмму объект |
| Class Instance | Добавляет экземпляр класса (абстрактные реализации класса) |
| Object Link | Добавляет на диаграмму связь |
| Link To Self | Добавляет на диаграмму рефлексивную связь |
| Link Message | Добавляет на связь диаграммы прямое сообщение |
| Reverse Link Message | Добавляет на связь диаграммы обратное сообщение |
| Data Token | Добавляет на связь элемент прямого потока данных |
| Reverse Data Token | Добавляет на связь элемент обратного потока данных |
Добавление объекта на диаграмму кооперации и редактирование его свойств выполняется так же, как и для диаграммы последовательности. Перед тем как поместить сообщение на диаграмму кооперации, необходимо установить путь коммуникации между объектами. Этот путь называется связью (link) и создаётся с помощью кнопки Object Link (Связь объекта) панели инструментов. После создания связи можно поместить сообщение между объектами.
Для добавления связи между объектами нужно с помощью левой кнопки мыши нажать кнопку с изображением связи на специальной панели инструментов, отпустить левую кнопку мыши, щёлкнуть левой кнопкой мыши на изображении 1‑го объекта на диаграмме и отпустить её на изображении 2‑го объекта. Можно задать имя связи с помощью окна спецификации свойств данной связи.
Кроме имени связи можно также задать: имя ассоциации, видимость связанных объектов и наличие общих ролей. Более важной является вкладка Messages (сообщения) для спецификации сообщений между связанными объектами. Добавить сообщения можно несколькими способами. Стандартный способ заключается в использовании кнопки со значком сообщения на специальной панели инструментов. Более удобным представляется способ добавления сообщений с помощью окна свойств связей. Для этого двойным щелчком на линии связи вызывается окно её свойств и раскрывается вкладка Messages (сообщения). После этого следует выполнить операцию контекстного меню Insert To (Вставить в направлении), в результате чего появляется вложенный список с предложением выбрать одну из операций целевого класса для спецификации имени сообщения.
Спецификация сообщений диаграммы кооперации выполняется тем же способом, что и для диаграммы последовательности.
Типовой пример
Для модели банкомата окончательный вид диаграммы кооперации для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’ приведён на рис.4.2.
Рис.4.2. Окончательный вариант диаграммы кооперации для типичного хода событий прецедента ‘Снятие наличных по кредитной карточке’
Прежде чем приступить к генерации кода, требуется соотнести сообщения диаграмм взаимодействия с операциями классов. Для этого необходимо:
1. Проверить соотнесение объекта, получающего сообщения, с классом.
2. Щёлкнуть правой кнопкой мыши на сообщении диаграммы.
3. Выбрать операцию из появившегося списка.
Для уничтожения соотнесения сообщения с операцией дважды щёлкните на сообщение диаграммы, из поля Name удалите имя операции и введите новое имя сообщения.
Если нужно создать новую операцию для сообщения:
1. Проверить соотнесение объекта, получающего сообщения, с классом.
2. Щёлкнуть правой кнопкой мыши на сообщении диаграммы и выбрать пункт New operation (Новая операция).
3. Ввести имя и детали новой операции, нажать копку OK.
4. Щёлкнуть на сообщении правой кнопкой мыши, в появившемся списке выбрать новую операцию.
Если вы хотите убедиться, что каждое сообщение соотнесено с операцией, то выберите в меню модели пункт Report → Show Unresolved Messages (Отчёт → Показать свободные сообщения).
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 (Дорожки) служит для спецификации дорожек, которые определяются для диаграммы деятельности.
Для добавления перехода между двумя состояниями нужно с помощью левой кнопки мыши нажать кнопку с изображением перехода на специальной панели инструментов, отпустить левую кнопку мыши, щёлкнуть левой кнопкой мыши на изображении исходного состояния на диаграмме и отпустить её на изображении целевого состояния.