Рейтинговые книги
Читем онлайн Rational Rose 2000 и UML Визуальное моделирование - Терри Кватрани

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 15 16 17 18 19 20 21 22 23 ... 33

Есть два способа выхода из состояния — автоматический и неавтоматический. Автоматическая смена состояния происходит, когда действие исходного состояния будет завершено — с переходом не связано каких-либо событий. Неавтоматический переход между состояниями вызывается определенным событием (от другого объекта или из внешней среды). Считается, что оба типа переходов выполняются за нулевое время и не могут быть прерваны. Переход между состояниями изображается в виде стрелки, направленной от исходного состояния к последующему.

Для создания переходов между состояниями в программе Rational Rose:

1. Щелкните по кнопке State Transition (Переход) на панели инструментов.

2. Щелкните по исходному состоянию диаграммы.

3. Проведите линию перехода к последующему состоянию.

4. Если требуется, введите название нового перехода.

Переходы между состояниями показаны на рис. 9.4.

Рис. 9.4. Переходы между состояниями

Особые состояния

Есть два особых состояния, присутствующих на диаграмме состояний, — начальное (start state) и конечное (stop state).

Каждая диаграмма должна иметь одно и только одно начальное состояние, так как объект может находиться в целостном состоянии сразу после создания. В языке UML начальное состояние изображается в виде маленького закрашенного круга (см. рис. 9.5).

Рис. 9.5. Нотация языка UML для конечного и начального состояний

Объект может иметь несколько конечных состояний, которые изображаются в виде закрашенного круга, обведенного дополнительной окружностью (см. рис. 9.5).

Чтобы создать начальное состояние в программе Rational Rose:

1. Щелкните по кнопке Start (Начальное состояние) на панели инструментов.

2. Щелкните по диаграмме, чтобы поместить на нее значок исходного состояния.

3. Щелкните по кнопке State Transition на панели инструментов.

4. Щелкните по начальному состоянию и проведите линию перехода к последующему состоянию.

Начальное состояние на диаграмме состояний показано на рис. 9.6.

Рис. 9.6. Начальное состояние

Для создания конечного состояния в программе Rational Rose выполните следующие действия:

1. Щелкните по кнопке Stop (Конечное состояние) на панели инструментов.

2. Щелкните по диаграмме, чтобы поместить на нее значок конечного состояния.

3. Щелкните по кнопке State Transition на панели инструментов.

4. Щелкните по одному из состояний на диаграмме и проведите линию перехода к конечному состоянию.

Конечное состояние на диаграмме состояний показано на рис. 9.7.

Рис. 9.7. Конечное состояние

Параметры переходов

С переходом между состояниями может быть связано условие (guard condition) и/или определенное действие (action). Переход может также вызывать событие (event). Действие — это поведение, проявляющееся при возникновении перехода. Событие — сообщение, отправляемое другому объекту системы. Условие — булево выражение значений атрибутов, которое допускает переход, только если оно верно. И действие, и проверка условия представляют собой поведение объекта и обычно реализуются в виде операций. Часто такие операции являются скрытыми (private), то есть используются только самим объектом. В языке UML параметры перехода изображаются так, как показано на рис. 9.8.

Рис. 9.8. Нотация языка UML для параметров переходов

Последовательность добавления параметров перехода в программе Rational Rose:

1. Щелкните правой кнопкой мыши по стрелке перехода на диаграмме.

2. В появившемся контекстно-зависимом меню выберите команду Specification (Параметры), чтобы вызвать диалоговое окно параметров перехода.

3. Выберите вкладку Detail (Детально).

4. Укажите действие, условие и событие для перехода.

5. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров.

Параметры перехода на диаграмме состояний показаны на рис. 9.9.

Рис. 9.9. Параметры переходов

Параметры состояний

Действия, сопровождающие возможные переходы в определенное состояние, можно рассматривать как входные действия (entry action) для этого состояния. И наоборот, действия, сопровождающие переходы из данного состояния, являются для него выходными (exit action). Поведение, возникающее внутри состояния, называется деятельностью (activity). Деятельность начинается при входе в состояние и завершается или прерывается при переходе из него. Поведение может быть простым действием или событием, посылаемым другому объекту.

Как и в случае с действиями и проверками условий для перехода, поведение внутри состояния обычно реализуется в виде операций. В языке UML параметры состояний изображаются так, как показано на рис. 9.10.

Рис. 9.10. Нотация языка UML для параметров состояний

Рис. 9.11. Параметры состояний

Определение входных, выходных и внутренних действий для состояния в программе Rational Rose предусматривает выполнение следующих шагов:

1. Щелкните правой кнопкой мыши по изображению состояния на диаграмме.

2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Параметры), чтобы вызвать диалоговое окно параметров состояния.

3. Выберите вкладку Actions (Действия).

4. Щелкните правой кнопкой мыши по списку Action (Действие).

5. В появившемся контекстно-зависимом меню выберите команду Insert (Добавить). В список будет добавлено новое действие.

6. Дважды щелкните по новому действию в списке, чтобы открыть диалоговое окно Action Specification (Параметры действия).

7. Укажите момент выполнения действия: on entry (при входе), on exit (при выходе), on event (при определенном событии).

8. Введите описание действия или события.

9. Укажите тип действия: action (действие) или send event (вызов события).

10. Если требуется, введите название действия или события.

11. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно Action Specification.

12. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно State Specification.

Параметры состояний на диаграмме состояний показаны на рис. 9.11.

Резюме

Классы, характеризующиеся выраженным динамическим поведением, анализируются с помощью диаграмм состояний. На таких диаграммах отображаются все состояния объекта, поступающие к объекту события и результирующие действия. Считается, что переходы между состояниями и сопровождающие их действия выполняются за нулевое время и не могут быть прерваны. Пребывание объекта в определенном состоянии и сопутствующая деятельность могут быть прерваны.

Глава 10. Проверка модели

Для чего нужна однородность

Согласно новому академическому словарю Вебстера слово «гомогенизировать» (homogenize) означает превращать в однородную массу, делать гомогенным, то есть однородным. По мере добавления новых прецедентов и сценариев необходимо добиваться, чтобы модель стала однородной. Это особенно актуально, когда несколько групп разработчиков создают различные части модели. Так как прецеденты и сценарии описываются обычными словами, для обозначения одной и той же вещи могут использоваться разные слова, смысл которых может трактоваться по-разному. На данном этапе возможно объединение, разделение или исключение классов из модели. Это процесс естественного развития и совершенствования модели в течение жизненного цикла проекта.

Однородность не возникает в определенной точке жизненного цикла — это длительный процесс. Проект, в котором синхронизация информационных фрагментов от разных групп разработчиков происходит на заключительном этапе, обречен на провал. Я пришла к выводу, что наиболее успешные коллективные проекты получаются, когда разработчики постоянно используют механизмы взаимодействия и согласования. Взаимодействие может быть простым (например, телефонный разговор) или формальным (плановые совещания) — все зависит от проекта и обсуждаемого вопроса. Очень важно, чтобы при этом группы разработчиков контактировали друг с другом.

Объединение классов

Когда разные группы разработчиков создают различные сценарии, одному классу могут быть присвоены разные имена. Конфликты имен должны быть разрешены. Это обычно делается с помощью проходов по модели. Проверьте каждый класс вместе с его описанием. Также проверьте атрибуты и операции, определенные для классов, и поищите синонимы. Если вы обнаружили, что два класса выполняют одно и то же, выберите из них класс с именем, более близким к терминологии, используемой заказчиками.

1 ... 15 16 17 18 19 20 21 22 23 ... 33
На этой странице вы можете бесплатно читать книгу Rational Rose 2000 и UML Визуальное моделирование - Терри Кватрани бесплатно.
Похожие на Rational Rose 2000 и UML Визуальное моделирование - Терри Кватрани книги

Оставить комментарий