Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Создание диаграмм состояний





Класс ЭлементЗаказа имеет более простое поведение. Элементы заказа являются неотъемлемой частью заказа, создаются и уничтожаются вместе с ним. Диаграмма состояний для класса ЭлементЗаказа показана на рис. 72.

Рис. 72. Диаграмма состояний для класса ЭлементЗаказа

 

Для построения диаграммы состояний для класса ЭлементЗаказа:

1) найдите в браузере класс ЭлементЗаказа;

2) щелкните на классе правой кнопкой мыши и в открывшемся меню выберите команду New > Statechart Diagram;

3) нажмите кнопку Start State панели инструментов и поместите начальное состояние на диаграмму;

4) нажмите кнопку End State панели инструментов и поместите конечное состояние на диаграмму;

5) добавьте суперсостояние – нажмите кнопку State панели инструментов и поместите это состояние на диаграмму и назовите его Сформирован;

6) поместите на диаграмму состояния Изготовлен и Отложен;

7) на панели инструментов нажмите кнопку State, поместите состояние на диаграмму внутрь суперсостояния и назовите новое состояние Создан;

8) поместите внутрь суперсостояния новое состояние Оформлен.

Чтобы подробно описать состояния:

1) дважды щелкните мышью на состоянии Оформлен, перейдите на вкладку Detail и щелкните правой кнопкой мыши в окне Actions;

2) в открывшемся меню выберите пункт Insert;

3) дважды щелкните мышью на новом действии и назовите его Установить готовность (false);

4) укажите в окне When пункт On Entry и закройте спецификацию;

5) дважды щелкните мышью на состоянии Изготовлен;

6) повторив шаги 2–5, добавьте действие Изменить готовность (true), укажите On Entry и закройте спецификацию.

 

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

1) нажмите кнопку State Transition панели инструментов;

2) щелкните мышью на начальном состоянии и проведите линию перехода к состоянию Создан;

3) повторив шаги 1–2, создайте следующие переходы:

· от состояния Создан к состоянию Оформлен;

· от суперсостояния Сформирован к состоянию Изготовлен;

· от суперсостояния Сформирован к состоянию Отложен;

· от состояния Отложен к состоянию Изготовлен;

· от состояния Изготовлен к конечному состоянию;

· от состояния Отложен к конечному состоянию.

Чтобы подробно описать переходы:

1) дважды щелкнув мышью на переходе от начального состояния к состоянию Создан, откройте окно спецификации перехода;

2) в поле Event введите Создание;

3) перейдите на вкладку Detail, в поле Action введите Создать элемент заказа, в поле Guard Condition введите условие перехода Создан заказ и закройте окно;

4) дважды щелкнув мышью на переходе от состояния Создан к состоянию Оформлен, откройте окно спецификации перехода;

5) в поле Event введите Оформление;

6) перейдите на вкладку Detail, в поле Action введите Выбрать материал и ввести количество и закройте окно спецификации;

7) дважды щелкнув мышью на переходе от суперсостояния Сформирован к состоянию Изготовлен, откройте окно спецификации;

8) в поле Event введите событие Изготовление;

9) перейдите на вкладку Detail, в поле Action введите Уменьшить запас, в поле Guard Condition введите условие перехода (запас – кол >= 0) и закройте окно;

10) дважды щелкнув мышью на переходе от суперсостояния Сформирован к состоянию Отложен, откройте окно спецификации;

11) в поле Event введите событие Откладывание;

12) перейдите на вкладку Detail и в поле Guard Condition введите условие перехода (запас – кол) < 0 и закройте окно спецификации;

13) дважды щелкнув мышью на переходе от состояния Отложен к состоянию Изготовлен, откройте окно спецификации;

14) в поле Event введите событие Изготовление;

15) перейдите на вкладку Detail, в поле Action введите Уменьшить запас, в поле Guard Condition введите условие перехода (запас – кол) >= 0 и закройте окно;

16) дважды щелкнув мышью на переходе от состояния Изготовлен к конечному состоянию, откройте окно спецификации;

17) в поле Event введите событие Уничтожение;

18) на вкладке Detail в поле Action введите Удалить элемент заказа, в поле Guard Condition введите условие перехода Уничтожен заказ и закройте окно;

19) дважды щелкнув мышью на переходе от состояния Отложен к конечному состоянию, откройте окно спецификации;

20) в поле Event введите событие Уничтожение;

21) на вкладке Detail в поле Action введите Удалить элемент заказа, в поле Guard Condition введите условие перехода Уничтожен заказ и закройте окно.

 

Поведение класса Заказ зависит от поведения класса ЭлементЗаказа. Состояние заказа определяется состоянием его элементов. Диаграмма состояний для класса Заказ показана на рис. 73.

Для построения диаграммы состояний для класса Заказ:

1) найдите в браузере класс Заказ, щелкните на классе правой кнопкой мыши и в открывшемся меню выберите команду New > Statechart Diagram;

2) с помощью кнопок Start State и End State панели инструментов поместите на диаграмму начальное состояние и конечное состояние;

3) добавьте суперсостояние – нажмите кнопку State панели инструментов и поместите это состояние на диаграмму и назовите его Сформирован;

4) поместите на диаграмму состояния Изготовлен, Отложен, Выполнен, Удален элемент заказа;

5) на панели инструментов нажмите кнопку State, поместите состояние на диаграмму внутрь суперсостояния и назовите новое состояние Создан;

6) поместите внутрь суперсостояния состояние Добавлен элемент заказа;

7) поместите внутрь суперсостояния состояние Оформлен.

 

Чтобы подробно описать состояния:

1) дважды щелкните мышью на состоянии Создан, перейдите на вкладку Detail;

2) щелкните правой кнопкой мыши в окне Actions и в открывшемся меню выберите пункт Insert;

3) дважды щелкнув мышью на действии, назовите его Собрать клиентскую информацию (убедитесь, что в окне When указан пункт On Entry);

4) нажмите на ОК, чтобы закрыть спецификацию;

5) дважды щелкните мышью на состоянии Оформлен и добавьте действия: Изменить статус (сформирован) (в окне When – пункт On Entry), Ввести дату и код заказа (в окне When – пункт On Entry), Добавить заказ клиенту (в окне When – пункт On Entry), Получить предоплату (в окне When – пункт Do);

6) дважды щелкните мышью на состоянии Изготовлен и добавьте действие Получить оставшуюся часть оплаты (в окне When – пункт Do);

7) дважды щелкните мышью на состоянии Выполнен и добавьте действие Сохранить дату выполнения заказа (в окне When – пункт Do).

Рис. 73. Диаграмма состояний для класса Заказ

 

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

1) нажмите кнопку State Transition панели инструментов;

2) проведите линию перехода от начального состояния к состоянию Создан;

3) повторив шаги 1–2, создайте следующие переходы:

· от состояния Создан к состоянию Добавлен элемент заказа;

· от состояния Добавлен элемент заказа к состоянию Оформлен;

· от суперсостояния Сформирован к состоянию Изготовлен;

· от суперсостояния Сформирован к состоянию Отложен;

· от состояния Отложен к состоянию Изготовлен;

· от состояния Изготовлен к состоянию Выполнен;

· от состояния Выполнен к состоянию Удален элемент заказа;

· от состояния Отложен к состоянию Удален элемент заказа;

· от состояния Удален элемент заказа к конечному состоянию;

4) на панели инструментов нажмите кнопку Transition to Self и щелкните мышью на состоянии Добавлен элемент заказа;

5) аналогичным образом создайте переход на состоянии Удален элемент заказа (чтобы дуга перехода располагалась справа от состояния, в контекстном меню перехода выберите команду Position > Right).

 

Чтобы подробно описать переходы:

1) откройте окно спецификации перехода от состояния Создан к состоянию Добавлен элемент заказа и в поле Event введите Оформление;

2) перейдите на вкладку Detail, в поле Action введите Добавить элемент заказа и закройте окно спецификации;

3) откройте окно спецификации рефлексивного перехода состояния Добавлен элемент заказа и в поле Event введите Оформление;

4) перейдите на вкладку Detail, в поле Action введите Добавить элемент заказа, в поле Guard Condition введите условие Остались незаполненные позиции;

5) откройте окно спецификации перехода от состояния Добавлен элемент заказа к состоянию Оформлен и в поле Event введите Оформление;

6) перейдите на вкладку Detail, в поле Action введите Вычислить сумму и предоплату, в поле Guard Condition введите условие перехода Не осталось незаполненных позиций и закройте окно спецификации;

7) откройте окно спецификации перехода от суперсостояния Сформирован к состоянию Изготовлен и в поле Event введите событие Изготовление;

8) перейдите на вкладку Detail, в поле Action введите Изменить статус (изготовлен), в поле Guard Condition введите условие Все элементы готовы;

9) откройте окно спецификации перехода от суперсостояния Сформирован к состоянию Отложен и в поле Event введите событие Откладывание;

10) перейдите на вкладку Detail, в поле Action введите Изменить статус (отложен), в поле Guard Condition введите условие перехода (не все элементы готовы) and (запас может быть увеличен) и закройте окно спецификации;

11) откройте окно спецификации перехода от состояния Отложен к состоянию Изготовлен и в поле Event введите событие Изготовление;

12) на вкладке Detail в поле Action введите Изменить статус (изготовлен), в поле Guard Condition введите условие перехода Все элементы готовы;

13) откройте окно спецификации перехода от состояния Изготовлен к состоянию Выполнен и в поле Event введите событие Выполнение;

14) на вкладке Detail в поле Action введите Изменить статус (выполнен);

15) откройте окно спецификации перехода от состояния Отложен к состоянию Удален элемент заказа и в поле Event введите событие Уничтожение;

16) на вкладке Detail в поле Action введите Удалить элемент заказа, в поле Guard Condition введите условие перехода (не все элементы готовы) and (запас не может быть увеличен) и закройте окно спецификации;

17) откройте окно спецификации перехода от состояния Выполнен к состоянию Удален элемент заказа и в поле Event введите событие Уничтожение;

18) на вкладке Detail в поле Action введите Удалить элемент заказа;

19) откройте окно спецификации рефлексивного перехода состояния Удален элемент заказа и в поле Event введите событие Уничтожение;

20) на вкладке Detail в поле Action введите Удалить элемент заказа, в поле Guard Condition введите условие перехода Остались неудаленные позиции;

21) откройте окно спецификации перехода от состояния Удален элемент заказа к конечному состоянию и в поле Event введите событие Уничтожение;

22) на вкладке Detail в поле Action введите Уничтожить заказ, в поле Guard Condition введите условие перехода Не осталось неудаленных позиций.

 

 

Date: 2015-12-10; view: 523; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию