Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
387934.rtf
Скачиваний:
28
Добавлен:
13.02.2016
Размер:
7.86 Mб
Скачать

7. Создание диаграммы состояний для классов и диаграммы компонентов

Диаграмма состояний (Statechart) предназначена для отображения состояний объектов системы, имеющих сложную модель поведения. Это одна из двух диаграмм State Machine, доступ к которой осуществляется из одного пункта меню. Этот тип диаграмм позволяет проектировать алгоритмы поведения объектов любой сложности, в том числе может использоваться для составления блок-схем.

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

Многие требования к классу InputInformation значительно изменяются при изменении состояния его экземпляра.

На рисунке 7.1 приведена диаграмма состояния для класса InputInformation. Этапы создания диаграммы состояний:

  1. Найти в браузере класс InputInformation.

  2. Щелкнуть на классе правой кнопкой мыши и в открывшемся меню указать пункт Open State Diagram (Открыть диаграмму состояний).

Добавление начального и конечного состояний:

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

  2. Поместить это состояние на диаграмму.

  3. Нажать кнопку End State (Конечное состояние) панели инструментов.

  4. Поместить это состояние на диаграмму.

Добавление состояний:

  1. На панели инструментов нажать кнопку State (Состояние).

  2. Поместить состояние на диаграмму.

  3. Назвать состояние Otmenen.

  4. На панели инструментов нажать кнопку State (Состояние).

  5. Поместить состояние на диаграмму.

  6. Назвать состояние Vipolnen.

  7. На панели инструментов нажать кнопку State (Состояние).

  8. Поместить состояние на диаграмму внутрь суперсостояния.

  9. Назвать состояние Inizializaziya.

  10. На панели инструментов нажать кнопку State (Состояние).

  11. Назвать состояние Priostanovlen.

Рисунок 7.1 – Диаграмма состояния для класса InputIformation

Описание состояний:

  1. Дважды щелкнуть мышью на состоянии Inizializaziya.

  2. Перейти на вкладку Detail (Подробно).

  3. Щелкнуть правой кнопкой мыши в окне Actions (Действия).

  4. В открывшемся меню выберать пункт Insert (Вставить).

  5. Дважды щелкнуть мышью на новом действии.

  6. Назвать его StoreDate.

  7. Убедиться, что в окне When (Когда) указан пункт On Entry (На входе).

  8. Повторив шаги 3 — 7, добавить следующие действия:

  • Collect Student Info, в окне When указать Entry until Exit (Выполнять до завершения);

  • Add Information Items, указав Entry until Exit (Выполнять до завершения);

  1. Нажать два раза на ОК, чтобы закрыть спецификацию.

  2. Дважды щелкнуть мышью на состоянии Otmenen.

  3. Повторив шаги 2 — 7, добавить действие Store cancellation data, указав On Exit (На выходе)

  4. Нажать два раза на ОК, чтобы закрыть спецификацию.

  5. Дважды щелкнуть мышью на состоянии Vipolnen.

  6. Повторив шаги со второго по седьмой, добавить действие Create Otchet, указав Entry until Exit

  7. Нажать два раза на ОК, чтобы закрыть спецификацию.

Добавление переходов:

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

  2. Щелкнуть мышью на начальном состоянии.

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

  4. Повторив шаги с первого по третий, создать следующие переходы:

  • от состояния Inizializaziya к состоянию Priostanovlen;

  • от Priostanovlen к состоянию Vipolnen;

  • от состояния Inizializaziya к состоянию Otmenen;

  • от состояния Otmenen к конечному состоянию;

  • от состояния Vipolnen к конечному состоянию;

  1. На панели инструментов нажать кнопку Transition to Self (Переход к себе).

  2. Щелкнуть мышью на состоянии Priostanovlen.

Описание переходов:

  1. Дважды щелкнув мышью на переходе от состояния Inizializaziya к состоянию Priostanovlen, открыть окно спецификации перехода.

  2. В поле Event (Событие) ввести фразу Dobavit' Informaciu.

  3. Щелкнув на кнопке ОК, закрыть окно спецификации.

  4. Повторив шаги с первого по третий, добавить событие Otmenit' zapolnenie к переходу между стоянием Inizializaziya и состоянием Otmenen.

  5. Дважды щелкнув мышью на переходе от состояния Priostanovlen к состоянию Vipolnen, открыть окно его спецификации.

  6. В поле Event (Событие) ввести фразу Dobavit' k zapisi novuu informaciu.

  7. Перейти на вкладку Detail (Подробно).

  8. В поле Condition (Условие) введите Ne ostalis nezapolnenie polya.

  9. Щелкнув на кнопке ОК, закрыть окно спецификации.

  10. Дважды щелкнуть мышью на рефлексивном переходе (Transition to Self) состояния Priostanovlen.

  11. В поле Event (Событие) ввести фразу Dobavit' k zapisi novuu informaciu.

  12. Перейти на вкладку Detail (Подробно).

  13. В поле Condition (Условие) ввести ostautsya nezapolnenie polya.

  14. Щелкнув на кнопке ОК, закрыть окно спецификации.

Была также создана диаграмма компонентов, отображающая распределение классов и объектов по компонентам при физическом проектировании. Как видно на рисунке 7.2 система была разложена на два компонента: сервер и клиент. К клиентской части приложения относятся классы FormStudent и FormExems и объекты этих классов. К серверной части приложения отнесены все остальные классы и объекты этих классов.

Рисунок 7.2 – Диаграмма компонентов

Выводы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]