Упражнение 13. Создание диаграммы состояний для класса CourseOffering
Рис.31. Диаграмма состояний для класса CourseOffering
Для создания диаграммы состояний: Щелкните правой кнопкой мыши в браузере по нужному классу.
Выберите пункт New > Statechart Diagram в открывшемся меню.
Для того чтобы добавить состояние: На панели инструментов нажмите кнопку State.
Щелкните мышью на диаграмме состояний по тому месту, куда хотите поместить состояние.
Все элементы состояния можно добавить с помощью вкладки Detail окна спецификации состояния. Для того чтобы добавить деятельность: Откройте окно спецификации требуемого состояния.
Перейдите на вкладку Detail. (Open Specification – Actions – Insert +2 щелчка) или (щелкните правой кнопкой мыши по окну Actions, выберите пункт Insert в открывшемся меню. дважды щелкните по новому действию).
Введите действие в поле Actions.
В окне When укажите Do, чтобы сделать новое действие деятельностью.
Для того чтобы добавить входное действие, в окне When укажите On Entry. Для того чтобы добавить выходное действие, в окне When укажите On Exit. Послать событие можно с помощью следующих операций: Откройте окно спецификации требуемого состояния.
Перейдите на вкладку Detail.
Щелкните правой кнопкой мыши по окну Actions.
Выберите пункт Insert в открывшемся меню.
Дважды щелкните по новому действию.
В качестве типа действия укажите Send Event.
В соответствующие поля введите событие (event), аргументы (arguments) и целевой объект (Target).
Для того чтобы добавить переход: Нажмите кнопку Transition панели инструментов.
Щелкните мышью по состоянию, откуда осуществляется переход.
Проведите линию перехода до того состояния, где он завершается.
Чтобы добавить рефлексивный переход: Нажмите кнопку Transition to Self панели инструментов.
Щелкните мышью по тому состоянию, где осуществляется рефлексивный переход.
Для того чтобы добавить событие, его аргументы, ограждающее условие и действие: Дважды щелкните по переходу, чтобы открыть окно его спецификации.
Перейдите на вкладку General.
Введите событие в поле Event.
Введите аргументы в поле Arguments.
Введите ограждающее условие в поле Condition.
Введите действие в поле Action.
Для отправки события: Дважды щелкните по переходу, чтобы открыть окно его спецификации.
Перейдите на вкладку Detail.
Введите событие, в поле Send Event.
Введите аргументы в поле Send Arguments.
Задайте цель в поле Send Target.
Для указания начального или конечного состояния: На панели инструментов нажмите кнопку Start State или End State.
Щелкните мышью на диаграмме состояний по тому месту, куда хотите поместить состояние.
Уточнение ассоциаций: некоторые ассоциации (семантические, структурные, устойчивые связи по данным) могут быть преобразованы в зависимости (неструктурные временные связи отражают видимость), а агрегации - в композиции (рис.32).
Рис.32. Пример преобразования ассоциаций и агрегаций
Для преобразования агрегации в композицию: Щелкните правой кнопкой мыши по тому концу агрегации, который упирается в класс-часть (см. рис.32 - Schedule).