Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по ТООМ.doc
Скачиваний:
124
Добавлен:
02.05.2014
Размер:
2.1 Mб
Скачать

9. Диаграмма состояний. [1/4]

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

Состояние (state). В языке UML под состоянием понимается абстрактный метакласс, используемый для моделирования отдельных ситуаций, в течение которых имеет место выполнения некоторого условия.

Обозначается состояние следующим образом:

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

Следующая секция содержит перечень внутренних действий или деятельностей, которые выполняются в процессе нахождения моделируемого объекта в данном состоянии < метка – действия «/» выражение действия >.

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

- entry – указывает на действие, специфицированное следующей за ней выражение действия, которое выполняется в момент входа в данное состояние;

- exit – выходное действие;

*9. Диаграмма состояний. [2/4]

- do – специфицирует выполняющуюся деятельность («do activity»), которое выполняется в течение всего времени пока объект находится в данном состоянии и до тех пор пока не закончатся вычисления. При завершении события генерируется соответствующий результат;

- include – используется для обращения к подавтомату, при этом следующая за ней выражение действия содержит имя этого подавтомата.

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

Конечное или финальное состояние.В этом состоянии будет находиться объект по умолчанию после завершения работы автомата в конечный момент времени.

Все диаграммы состояний начинаются со значка Start State и должны заканчивать значком End State. При этом значок начала работы может быть только один, а значков окончания может быть сколько угодно.

Переход. Простой переход (Simple transition) представляет собой отношение между двумя последовательными состояниями, которые указывают на факт смены одного состояния другим. Переход осуществляется при наступлении некоторого события: окончание выполнения деятельности; получения объектом сообщения или приемом сигнала. На переходе указывается имя события. Кроме того на переходе могут указываться действия, производимые объектом в ответ на внешние событие при переходе из одного состояния в другое. Срабатывание перехода может зависит так же от выполнения определенного условия называемого сторожевым условием. Объект переедет из одного состояния в другое в том случаи если произошло указанное событие и сторожевое условие приняло значение «истина». Переход может быть направлен в то же состояние, из которого он выходит. На диаграмме показывается целевой направленной линией. Имя события идентифицирует в каждый отдельный переход на диаграмме состояния и может содержать строку текста. В этом случаи принято считать переход триггерным. Если рядом со стрелкой перехода не указана ни какая строка текста, то соответствующий переход является не триггерным и в этом случаи из контекста диаграммы состояния должно быть ясно, что после окончания каждой деятельности он срабатывает.

Сторожевое условие (guard condition). Если оно есть, то всегда записывается в прямых скобках после события триггера и представляет собой некоторое булевское выражение. Введение для перехода сторожевого условия позволяет явно специфицировать семантику его срабатывания.

*9. Диаграмма состояний. [3/4]

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

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

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

Допустимо одновременное нахождение объекта в подсостояниях 1,3,4. Выход из составного состояния будет возможен лишь в том случае, когда все подавтоматы будут находиться в своих конечных подсостояний.

Сложные переходы. Рассмотренное выше понятие перехода является вполне достойным для большинства типичных расчетновычислительных задач. В отдельных случаях переход может иметь несколько состояний источника и несколько целевых состояний, это параллельный переход.

*9. Диаграмма состояний. [4/4]

Введение в рассмотрение параллельного перехода обусловлено необходимости синхронизированности и/или разделить определенные подпроцессы на отдельные нити без спецификации дополнительной синхронизации параллельных подканалов.

Если параллельные переход имеет две и более входящих дуг, то его называют соединением. Если же он имеет две или более исходящих дуг, то его называют ветвлением.

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