Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
69
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

Описание действия

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

Действия описываются на псевдокоде, выбранном аналитиком. Мы не предписывали законченный синтаксис для псевдокода, но нашли полезным установить следующие условные обозначения.

1. Для того чтобы создать событие, пишем

Порождает <метка события>:<значение события> (<данные события>).

Например:

Порождает Э1: подается напряжение на силовой элемент (ID элемента).

2. Указание атрибута как <название объекта>.<название атрибута>

Например:

Счет. ID Клиента.

3. Обращение к величине атрибута определенного экземпляра, как <название объекта>.<название атрибута> (идентификатор).

Например:

Счет.Сальдо(ID счета).

4. Обозначение определенного значения для атрибута заключением значения в кавычки.

Например:

Печь.Статус(ID Печи):= "приготовление пищи прервано".

Действия, события и время

В ООА делаются определенные предположения о времени:

1. Только одно действие данного конечного автомата может выполняться в любой точке времени. Если действие начато, оно должно завершиться прежде, чем конечным автоматом этого экземпляра будет получено другое событие.

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

3. События никогда не теряются.

4. Если событие порождено для экземпляра, который в настоящее время выполняет действие, данное событие не будет принято, пока действие не закончено.

5. Каждое событие прекращается, когда оно представляется для конечного автомата, событие тогда исчезает как событие.

Запоминание событий

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

Рис.3.5.1 показывает часть предприятия которое производит изделия для ухода за волосами и кожей типа шампуней и лосьонов. Бак-смеситель сначала заполняется продуктами-игредиентами. Далее смеситель включается на определенный период времени, после чего изделие готово к перемещению в бак-хранилище.

Рис.3.5.1. Часть предприятия по производству косметики.

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

МЗ: Смешивание завершено (ID бака-смесителя).

М4: Бак для хранения готов (ID бака-смешивания).

То есть Вы не можете абстрагировать событие –

М1ОО: Смешивание завершено, и бак для хранения готов для продукта

– для представления составного условия.

Так как каждая часть составного условия может быть выполнена независимо одна от другой, жнзненый цикл бака для смешивания необходимо согласовать с наступлением событий МЗ и М4 в том или ином порядке (рис.3.5.2). В этом решении при более раннем наступлении события М4 бак-смеитель займет состояние Смешивание До Готовности К Опорожнению (событие М4 запоминается).

Альтернативное решение требует дополнительный объект

Перемещение Продукта (ID бака-источника, ID предназначенного бака).

Когда бак для хранения подготовлен для продукта, он создает экземпляр Перемещение Продукта дополнительно к созданию события М4 Жизненный цикл бака для смешивания изменяется.

Рис.3.5.2. Модель состояний бака-смесителя. Состояния 4 и 5 учитывают наступление событий МЗ и М4 в любом порядке.

Если событие М4 наступает, когда бак-смеситель находится в состоянии Смешивание Продукта, оно игнорируется, но позже восстанавливается баком-смесителем из следа данных более раннего события, оставленного в Перемещении Продукта. При использовании такой стратегии не забывайте, что бак-смеситель должен удалять экземпляр Перемещение Продукта, чтобы он не пытался многократно использовать след на другом проходе через свой жизненный цикл.

Рис.3.5.3. Модификация в модели состояний для бака-смесителя. Если событие М4 наступает прежде события М3, оно игнорируется, но его запись остается в экземпляре Перемещение Продукта.