
9 - Диаграммы состояний, активности.ppt
- Количество слайдов: 33
UML Диаграмма состояний (statechart diagram)
Моделирование поведения в UML • Каждая прикладная система характеризуется не только структурой составляющих ее элементов, но и некоторым поведением или функциональностью. • Для моделирования поведения на логическом уровне в языке UML могут использоваться сразу несколько канонических диаграмм: состояний, деятельности, последовательности и кооперации, каждая из которых фиксирует внимание на отдельном аспекте функционирования системы.
Назначение диаграммы состояний • Описание возможных последовательностей состояний и переходов, которые в совокупности характеризуют поведение элемента модели в течение его жизненного цикла.
Применение Диаграммы состояний используются для описания поведения: • отдельных экземпляров классов (объектов); • вариантов использования; • акторов; • подсистем, операций, методов и др.
Нотация Вершины графа – состояния Стрелки - переходы
Простейший пример диаграммы состояний для технического устройства типа компьютер
Особенности автомата • Автомат не запоминает историю перемещения из состояния в состояние • В каждый момент времени автомат может находиться в одном и только в одном из своих состояний • Хотя процесс изменения состояний автомата происходит во времени, явно концепция времени не входит в формализм автомата • Количество состояний автомата должно быть обязательно конечным • Граф автомата не должен содержать изолированных состояний и переходов • Автомат не должен содержать конфликтующих переходов, т. е. таких переходов из одного и того же состояния, когда объект одновременно может перейти в два и более последующих состояния
Состояние • В языке UML под состоянием понимается абстрактный метакласс, используемый для моделирования отдельной ситуации, в течение которой имеет место выполнение некоторого условия. • Состояние может быть задано в виде набора конкретных значений атрибутов класса или объекта, при этом изменение их отдельных значений будет отражать изменение состояния моделируемого класса или объекта.
Графическое отображение состояния • Имя состояния • Список внутренних действий
Список внутренних действий • entry – действие, которое выполняется в момент входа в данное состояние (входное действие); • exit – действие, которое выполняется в момент выхода из данного состояния (выходное действие); • do – деятельность ( «do activity» ), которая выполняется в течение всего времени, пока объект находится в данном состоянии, или до тех пор, пока не закончится вычисление, специфицированное следующим за ней выражением действия.
Начальное состояние • Начальное состояние представляет собой частный случай состояния, которое не содержит никаких внутренних действий (псевдосостояния). • В этом состоянии находится объект по умолчанию в начальный момент времени.
Конечное состояние • Конечное (финальное) состояние представляет собой частный случай состояния, которое также не содержит никаких внутренних действий (псевдосостояния). • В этом состоянии будет находиться объект по умолчанию после завершения работы автомата в конечный момент времени.
Переходы Простой переход (simple transition) представляет собой отношение между двумя последовательными состояниями, которое указывает на факт смены одного состояния другим. Переход может быть направлен в то же состояние, из которого он выходит. В этом случае его называют переходом в себя. Каждый переход может помечен строкой текста, которая имеет следующий общий формат: • ‹сигнатура события› ['‹сторожевое условие› ]' ‹выражение действия›.
Событие (event) представляет собой спецификацию некоторого факта, имеющего место в пространстве и во времени. Имя события идентифицирует каждый отдельный переход на диаграмме состояний и может содержать строку текста, начинающуюся со строчной буквы. В этом случае принято считать переход триггерным, т. е. таким, который специфицирует событие‑триггер.
Сторожевое условие • Сторожевое условие (guard condition) представляет собой некоторое булевское выражение. • Если сторожевое условие принимает значение «истина» , то соответствующий переход может сработать, в результате чего объект перейдет в целевое состояние. • Каждое из сторожевых условий необходимо вычислять всякий раз при наступлении соответствующего события‑триггера.
Выражение действия • Выражение действия (action expression) выполняется в том и только в том случае, когда переход срабатывает. • Представляет собой атомарную операцию (достаточно простое вычисление), выполняемую сразу после срабатывания соответствующего перехода до начала каких бы то ни было действий в целевом состоянии.
Составное состояние и подсостояние • Составное состояние (composite state) – такое сложное состояние, которое состоит из других вложенных в него состояний.
Последовательные подсостояния • Последовательные подсостояния (sequential substates) используются для моделирования такого поведения объекта, во время которого в каждый момент времени объект может находиться в одном и только одном подсостояний.
Параллельные подсостояния • Параллельные подсостояния (concurrent substates) позволяют специфицировать два и более подавтомата, которые могут выполняться параллельно внутри составного события. • Каждый из подавтоматов занимает некоторую область (регион) внутри составного состояния, которая отделяется от остальных горизонтальной пунктирной линией.
Пример составного состояния с вложенными параллельными подсостояниями
Историческое состояние • Историческое состояние (history state) применяется в контексте составного состояния. Оно используется для запоминания того из последовательных подсостояний, которое было текущим в момент выхода из составного состояния. • Две разновидности исторического состояния: недавнее и давнее
Сложные переходы • Параллельный переход – переход, который имеет несколько состояний‑источников и несколько целевых состояний. • Если параллельный переход имеет две или более входящих дуг, то его называют соединением (join). • Если же он имеет две или более исходящих из него дуг, то его называют ветвлением (fork).
Синхронизирующие состояния • используются совместно с переходом‑соединением или переходом‑ветвлением для того, чтобы явно указать события в других подавтоматах, оказывающие непосредственное влияние на поведение данного подавтомата.
Пример синхронизирующих состояний
UML Диаграмма деятельности (activity diagram)
Назначение и семантика диаграммы деятельности • Диаграммы деятельности используются для моделирования процесса выполнения операций. • Диаграмма деятельности - частный случай диаграммы состояний. • Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, а переход в следующее состояние срабатывает только при завершении этой, операции в предыдущем состоянии.
Состояние действия • Состояние действия (action state) является специальным случаем состояния с некоторым входным действием и по крайней мере одним выходящим из состояния переходом.
Переходы • При построении диаграммы деятельности используются только нетриггерные переходы, т. е. такие, которые срабатывают сразу после завершения деятельности или выполнения соответствующего действия. • Этот переход переводит деятельность в последующее состояние сразу, как только закончится действие в предыдущем состоянии.
Пример диаграммы деятельности
Графическое изображение разделения и слияния параллельных потоков управления
Дорожки (partitions)
Объекты • В общем случае действия на диаграмме деятельности выполняются над теми или иными объектами. • Для графического представления объектов используется прямоугольник класса. • Такие прямоугольники объектов присоединяются к состояниям действия отношением зависимости пунктирной линией со стрелкой.
Границы применения • Диаграмма деятельности, так же как и другие виды канонических диаграмм, не содержит средств выбора оптимальных решений. • Используют дополнительные средства и методы, ориентированные на аналитико‑имитационное исследование моделей системы на этапе разработки ее проекта.