Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_proektirovanie_2012.docx
Скачиваний:
58
Добавлен:
16.03.2015
Размер:
2.03 Mб
Скачать

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

StateChart Diagram (конечные автоматы).

Составное состояние – состояние, состоящее из других состояний, вложенных в это состояние.

2 псевдосостояния (существуют только для композитных состояний, они уменьшают количество переходов):

Внутренний подавтомат может иметь или не иметь начальное и конечные состояния. Допустим только 2 вложения.

Пример: параллельные процессы.

Основная часть моделей конечных автоматов – модели без памяти. Однако, иногда бывает необходимо отобразить историю процессов, т.е. использовать автомат с памятью. Это можно реализовать за счёт специального состояния, называемого историческим.

Различают следующие исторические состояния:

- недавнее (неглубокое) состояние (shallow state) – H (!!!обведи кружочком!!!);

- давнее (глубокое) состояние (deep state) – H* (!!!обведи кружочком!!!).

Применяются эти состояния только в композитных состояниях.

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

Пример: Редактирование текста

При выходе по финальному состоянию в H заносится 0.

При выходе по прерыванию H запоминает то состояние, в котором был автомат. При повторном входе анализируется историческое состояние, автомат переходит в заполненное состояние.

Если поставим H*, то :

Глубокое историческое состояние хранит всю иерархию состояний, из которых был последний выход. Историческое состояние может быть только 1 на весь автомат. H* может быть промоделировано массой неглубоких исторических состояний.

Сложные переходы возможны при параллельной работе автоматов.

Переход в T возможен только синхронно, после завершения работы S11 и S12. Пока к-либо из них не завершено, переход не состоится.

Переход в несколько рабочих состояний.

Виды сложных переходов

Разветвление

Слияние

Обычный

Синхронный

Fork (развилка)

Join (объед-е)

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

11.Диаграмма деятельности и правила ее построения. «Плавательные дорожки». Примеры.

Модель проектирования.

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

В модель проектирования входит:

-- для UML 1.6

  1. Диаграмма активностей (Activity diagram)

  2. Диаграмма последовательностей (Sequence diagram)

  3. Диаграмма кооперации (Cooperation diagram)

  4. Модель данных (data model)

  5. Диаграмма классов проектирования (classdiagram)

- для UML 2.0

  1. Диаграмма композитной структуры

  2. Временная диаграмма

  3. Диаграмма организации взаимодействия

  4. Диаграмма коммуникаций (вместо коопераций)

В основе диаграмм активностей UML2.0 положены сети Петри и стали строиться в горизонтальном исполнении

Диаграмма последовательности дополнена д. организации взаимодействия, введены понятия фрейм, концепция потоков, объектов (workflow)

Диаграмма активностей (activity diagram)

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

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

Стрелки переходов характеризуют направление потоков управления, т.е. это частный и узкий случай общей диаграммы состояния. Из нее сюда переходят понятия сторожевого условия ([x>0]);do/ - основная деятельность.

Как правило, граф активности рисуется для лучшего понимания логики процессов, в кодогенерации не участвует, он эквивалентен схемам алгоритма программ.(по ГОСТу РФ)

Различают состояния действия(actionstate) и деятельности (activitystate).

Действие – совершается мгновенно и не прерывается.

Деятельность – состоит из множества действий. Протекает определенное время и может быть прервана. Но в диаграмме активности прерывание соответствует другим потокам управления, может быть показано отдельной диаграммой.

Состояние деятельности отличается от обычного состоянии (большая загруженность и вытянутость символа):

На диаграмме могут изображаться последовательные действия и параллельные.

Обычное состояние может не характеризоваться действиями, а могут быть только состояния.

Названия у стрелок не нужны, но если их несколько, то должны быть сторожевые условия.

Пример диаграммы состояний: вычисление корней квадратного уравнения.

Ax2+bx+c=0 (а*х*х+b*х+с=0)

Пример: выполнение заказа

Всегда только 1 конечное и одно начальное состояние.

Плавательные дорожки.

Swimlanes(плавательные дорожки). На примере деятельности торговой компании. Под плавательной дорожкой понимается группировка действий (деятельности) по определенному признаку (например, по выполнению этих действий по подразделениям)

В месте перехода может стоять сторожевое условие -> [].