Методы и средства инженерии программного обеспечения

Модель состояний


 

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

– состояние объекта, которое  определяется текущими значениями отдельных его атрибутов;

– состояние объекта изменяется в результате  произошедших действий или стимулов;

– состояние домена, которое определяется совокупностью состояний его объектов;

– изменение состояния объекта сопровождается некоторыми процессами, которые определены для каждого состояния.

Для фиксации  динамических  аспектов  требований   как отражения поведения объектов в рассматриваемом  методе предложены  две альтернативные нотации: графическая, которая   называется диаграммой  переходов  состояний (ДПС) и табличная, которая  называется  таблицей переходов состояний (ТПС).

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

Для каждого из выделенных  объектов определяются:

1) множество состояний, в которых объект может находиться;

2) множество инцидентов или событий, которые побуждают экземпляры класса изменять свое состояние;

3) правила перехода для каждого из зафиксированных состояний, как указание на новое состояние экземпляра данного класса, если произойдет некоторое событие из множества событий тогда, когда объект находится в данном состоянии;

4) действия или процессы для каждого из определенных состояний, которые  выполняются  при   переходе   в   данное состояние.



Для представления  этой информации в нотации диаграммы перехода состояний предусматривается следующее:

– каждое состояние, определенное для класса объектов, получает название и порядковый номер,  уникальную метку и название;


– состояние  обозначается  рамкой, содержащей номер и название состояния;

– переход от состояния к состоянию изображается направленной дугой, помеченной меткою и названием события, обусловившего переход;

– начальное    состояние    обозначается     стрелкой, направленной к соответствующей  рамке и является состоянием,  которое экземпляр объекта приобретает после его создания (или инициализации);

– заключительное состояние задает  конец жизненного цикла экземпляра объекта, если    экземпляр  продолжает  существовать или разрушается, обозначается оно пунктирной рамкой;

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

Для изменения состояния экземпляра класса объектов выполняются действия:

–        обработка  информации,  переданной  в  сообщении  о событии;

–        изменение определенного атрибута  объекта;

–        вычисления;

–        генерация операции для некоторого экземпляра класса;

–        генерация события, сообщение о котором должно передается внешнему по отношению к данному домену объекту (например, человеку-оператору другой системе);

–        передача сообщения о событии от внешних объектов;

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

Атрибутами таймера являются:

–        уникальный идентификатор экземпляра таймера;

–        интервал времени, через который будет подан сигнал о наступлении некоторого события;

–        метка наступающего события, при условии, что  остаток времени  равен нулю;



–        идентификатор экземпляра объекта, для которого устанавливается  таймер.                   

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

Системные часы представляют собой также  встроенный  в метод объект,  для  которого  можно  читать  его  атрибуты - показатели системного времени (минуты,  часы, день, месяц, год).

 

Альтернативой для графической  нотации  диаграммы перехода состояний    является  соответствующая табличная нотация, каждое из возможных для класса объектов состояний представляется строкою этой таблицы,  а  каждое  из  воздействующих  на объект событий - столбцом. Клетка таблицы перехода состояний определяет состояние, которое приобретает объект, если соответствующее столбику событие произойдет, когда он находился в состоянии, соответствующему строке. При этом допускается, чтобы некоторые комбинации событие / состояние не приведут  к изменению состояния экземпляра объекта. Такие клетки таблицы содержат указание "событие игнорируется".

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

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

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



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

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



                         Рис. 4.2. Схема взаимодействия моделей поведения объектов         


Содержание раздела