Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИСТЕМОТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ.doc
Скачиваний:
73
Добавлен:
01.05.2014
Размер:
1.47 Mб
Скачать

Спецификация использования события

Спецификация использования событий может быть представлена следующим образом:

объект.<имя объекта>

{испльзует/ use}

{событие/event}. <имя события>[; <имя события>]

end

Спецификация предоставления события

Спецификация предоставления событий может быть представлена следующим образом:

объект.<имя объекта>

{предоставляет/ let}

{событие/event}. <имя события>[; <имя события>]

end

Состояния

Состояние(state) - это объект, который характеризует фазы, этапы, через которые проходит конкретный элемент, и правила переходов между состояниями.

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

объект.Автомат

состав

wr.Ид_автомата;

Имя ; ; ;

inside.Нач_состояние : Позиция ; ; ;

Тек_состояние : Позиция ; ; ; ; ;

inside.Позиции : Позиция ; ;

имеет

вид_связи.1_М; ; ; ; ;

primary_key.Основной

содержит

Ид_автомата

end

объект.Позиция

состав

reference.Для_автомата: Автомат; ; ; ; ;

wr.Ид_позиции;

Имя; ; ;

inside.Переходы : Переход ; ; ; ; ;

[ copy.Структура : Автомат ; ; ; ; ; ]

[ copy.Выполняемое_действие : Работа ; ; ; ; ; ]

primary_key.Основной

содержит

Для_автомата ; Ид_позиции

end

объект.Переход

состав

reference.Для_исх_позиции: Позиция; ; ; ; ;

wr.Ид_перехода;

Имя; ; ;

reference.След_позиция: Позиция; ; ; ; ;

primary_key.Основной

содержит

Для_позиции ; Ид_перехода ; ; ; ; ;

reference.Условие_перехода: <функция перехода> ; ; ;

Ид_события : <имя события перехода>

end

объект.Функция

состав

wr.Ид_функции;

Имя_функции; ; ;

inside.Параметры : Параметр ; ; ; ; ;

primary_key.Основной

содержит

Ид_функции

end

объект.Параметр

состав

wr.Ид_функции;

Ид_параметра;

Имя_параметра; ; ;

reference.Тип_параметра : <имя объекта> ; ; ; ; ;

primary_key.Основной

содержит

Ид_функции ; Ид_параметра

end

/**объект.Вызов_функции

состав

wr.Ид_вызова;

Ид_функции;

Ид_параметра;

reference.Фактическое_значение : <> ; ; ; ; ;

primary_key.Основной

содержит

Ид_вызова; Ид_функции ; Ид_параметра

end

**/

Составной автомат может быть декларирован следующим образом:

объект.Автомат

состав

wr.Ид_автомата;

Имя ; ; ;

inside.Позиции : Позиция

состав

wr.Ид_автомата;

Ид_позиции;

Имя; ; ;

inside.Переходы : Переход ; ; ; ; ;

copy.Структура : Автомат ; ; ; ; ;

....................................................................................................................................

end

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

объект.<имя объекта>

состав

wr.<ид. объекта>

..............................................

[copy.<имя атрибута состояния> : Автомат ; ; ; ; ;]

..............................................................................................

end

Ниже представлен простой вариант спецификации состояния и соответствующей диаграммы переходов. Функции активизации задают правила переходов в соответствующее состсояние. Функция активизации некоторого состояния Si может быть определена следующим образом:

S : Позиция ; {Текущая позиция}

если(S = Sj and f1(D) and событие.Em or

S = Sr and f2(D) and событие.Eg or

.................................

S = Sn and fn(D) and событие.Ev)

тоS := Sp.

fi(D) : boolean - функции, определенные на данных D.

Для реализации удобно рассматривать не функции активизации, а функции переходов. Функция активизации некоторого состояния является дизъюнкцией всех функций переходов, приводящих в данное состояние. Функции переходов можно представить следующим образом :

если(S = Sj and f1(D) and событие.EmтоS := Sp;

если S = Sj and f2(D) and событие.Eg то S := Sr;

.................................

если S = Sj and fn(D) and событие.Ev) то S := Sn;