Список используемых терминов
- Спецификационный класс
Класс, декларируемый с помощью SE_SpecificationClassDeclaration
- Медиаторный класс
Соответствует SE_MediatorClassDeclaration
- Сценарный класс
Соответствует SE_ScenarioClassDeclaration
- Инвариант
Соответствует SE_InvariantDeclaration
- Аксиома
Соответствует SE_AxiomDeclaration
- Эквивалентность
Соответствует SE_EquivalenceDeclaration
- Спецификационная операция
Соответсвует SE_OperationSpecification
- Спецификационный метод
Соответствует SE_MethodSpecification
- Спецификационная реакция
Соответствует SE_ReactionSpecification
- Предусловие
Соответствует SE_PreCondition
- Постусловие
Соответствует SE_PostCondition
- Точка привязки превыражения
Это место разделения ветвей, содержащих операторы branch, после схождения которых используется данное превыражение.
Более точно
- Если в постусловии, в котором используется превыражение, нет операторов branch, то эта точка - начало постусловия.
- Если операторы branch есть, и превыражение достижимо только после одного из них, эта точка непосредственно предшествует этому единственному оператору branch.
- Если операторы branch есть, и превыражение достижимо после нескольких из них, находим наименьший блок или инструкцию, включающий/ую все операторы branch, после которых оно достижимо. Эта точка непосредственно предшествует этому блоку или этой инструкции.
- Будем говорить, что к выражению в рамках операции, аксиомы, эквивалентности или функциональной ветви
определен доступ на только запись, если
- Это выражение имеет вид ( PrimaryExpression | QualifiedIdentifier | super | this ) . Identifier и присутствует в таком же виде в ограничениях доступа для операции, аксиомы, эквивалентности или функциональной ветви с модификатором writes.
- Это выражение имеет вид ( PrimaryExpression | QualifiedIdentifier | super | this ) . Identifier, и соответствующая конструкция ( PrimaryExpression | QualifiedIdentifier | base ) . ? или ( PrimaryExpression | QualifiedIdentifier | base ) . * присутствует в ограничениях доступа для операции, аксиомы, эквивалентности или функциональной ветви с модификатором writes.
- Медиаторный метод
Соответствует декларации Se_MediatorMethodDeclaration
- Спецификационные предки медиаторного класса
Это набор спецификационных классов, который получается транзитивным замыканием по отношениям "реализует" между медиаторными и спецификационными классами, "расширяет" между спецификационными классами и "расширяет" между медиаторными классами.
Т.е., сначала
строится множество медиаторных и спецификационных классов при помощи транзитивного замыкания по этим отношениям, затем из этого множества выбрасываются медиаторные классы. Оставшиеся спецификационные и называются спецификационными предками.
- Реализационное поле
Соответствует SE_ImplementationFieldDeclaration
- Набор реализационных полей класса
Является объединением наборов реализационных полей, декларированных в самом классе и всех его предках.
- Реализационный инициализатор
Соответствует SE_ImplementationInitializer
- Синхронизационный блок
Соответствует SE_UpdateBlockDeclaration
- Сценарный метод
Соответствует SE_ScenarioMethodDeclaration
- Блок вычисления обобщенного состояния
Соответствует SE_ScenarioStateBlock
- Элемент класса - его поле, метод, конструктор, вложенный именованный тип, спецификационный метод, реакция, обратный метод, инвариант, аксиома, эквивалентность, реализационная ссылка, медиаторный метод, сценарный метод.
- Сценарный контекст
Положение в рамках одной из следующих конструкций
- В SE_ScenarioMethodDeclaration
- Переменная обобщенного состояния
Переменная, декларированная в SE_StateVariableDeclaration.
- Итерационная переменная
Переменная, декларированная в декларационной части SE_Iterate или SE_CollectionIterate.
- Итерационный блок
Инструкция вида SE_Iterate, SE_CollectionIterate, SE_CoverageIterate или SE_CoverageCollectionIterate
- Групповая итерация
Инструкция вида SE_CoverageIterate или SE_CoverageCollectionIterate
- Инструкция фильтрации
Инструкция вида SE_ExpressionFilterStatement или SE_MethodInvocationFilterStatement
- Жесткая групповая итерация
Групповая итерация без модификатора casual
- Итерационный блок, входящий в групповую итерацию
Всякий итерационный блок, который вложен в блок групповой итерации,
(включая его самого) и содержит инструкцию фильтрации
- Несущественная инструкция или несущественный блок в SE_PostCondition или SE_PreCondition
Инструкция одного из следующих видов
- WhileStatement
- DoStatement
- ForStatement
- TryStatement
- SE_IrrelevantStatement
- Обработанная инструкция ThrowStatement
Инструкция ThrowStatement ::= throw Expression ; называется обработанной, если
она находится внутри блока, следующего сразу за оператором try в рамках TryStatement, имеющего CatchClause, подходящую для исключения Expression по правилам Java.
- Мы говорим, что элемент декларирован в $type_name, если текст его декларации находится внутри декларации типа $type_name.
- Если элемент декларирован в классе $class_name или в одном из его предков, мы говорим, что он декларирован в предках $class_name.
- Если элемент декларирован в предках $class_name, но не в самом $class_name, говорим, что он декларирован только в предках $class_name.