10.3.1 Evaluations包概念的定义
该小节以字母序列举Evaluations包中的概念定义。
EvalEnvironment
EvalEnvironment是一个NameValueBindings的集合,它构成了OCL表达式计算的环境。EvalEnvironment有三个操作,它们在“Evaluations包的其它操作”小节中定义。
关联 | 说明 |
---|---|
bindings | 命名空间内的元素 |
IterateExpEval
IterateExpEval是一个表达式计算,它为集合值中的每个元素计算它的body表达式,并在result变量中对值进行聚集。它产生一个IterateExp。
IteratorExpEval
IteratorExp是一个表达式计算,它为集合中的每个元素计算它的body表达式。
ExpressionInOclEval
ExpressionInOclEval是一个OCL表达式的上下文的计算。它与第12章(UML模型中Ocl表达式的使用)中定义的ExpressionInOcl元类的对应的。把它包括在这里只是为了判定OCL表达式的环境。
LiteralExpEval
Literal表达式计算是对一个字面量表达式的计算。
LoopExpEval
循环表达式计算时对一个Loop表达式的计算。
关联 | 说明 |
---|---|
bodyEvals | 对源集合中每个元素都执行的body表达式对应的计算 |
iterators | 循环表达式中迭代器变量的名称 |
ModelPropertyCallExpEval
模型属性调用表达式计算是对一个ModelPropertyCallExp的计算。图10.8展示了ModelPropertyCallExpEval的不同子类。
操作 | 说明 |
---|---|
atPre | 如果该属性调用被标记为在前置条件时间执行那么该操作返回真 |
OclExpEval
ocl表达式计算是对一个OclExpression的计算。它有一个结果值,它与一个称为环境的名值绑定集合相关联。这些绑定代表了该计算可见的值和它可以访问的名称。另一个名值绑定的集合被用来计算操作atPre返回真的任意子表达式,它称为beforeEnvironment。
注意,正如在第9章(具体语法)和第12章(UML模型中的Ocl表达式的使用)中所解释的那样,这些绑定需要依据OCL表达式在UML模型中的位置进行构建。不变式的绑定不需要beforeEnvironment,并且它与用作前置条件的相同表达式具有不同的绑定。
关联 | 说明 |
---|---|
environment | 构成ocl表达式上下文的名称值绑定的集合 |
beforeEnvironment | 为了计算操作atPre返回真条件下类型为ModelPropertyCallExp的任意子表达式,在该操作的前置条件时刻的名称值绑定集合 |
resultValue | 计算OclExpression的结果值 |
OclMessageExpEval
ocl消息表达式的技术在子章节10.3.1.3 定义。
PropertyCallExpEval
属性调用表达式计算时一个PropertyCallExp的计算。
关联 | 说明 |
---|---|
source | source表达式计算的结果值是执行该属性调用的实例 |
VariableDeclEval
变量声明计算代表了一个变量声明的计算。注意,它不是OclExpEval的子类,因此没有结果值。
关联 | 说明 |
---|---|
name | 变量名 |
initExp | 该计算名初始化要绑定到的值 |
VariableExpEval
变量表达式计算是VariableExp的计算,本质上它是在表达式的环境中寻找绑定到该变量名的值。
关联 | 说明 |
---|---|
variable | 指向该计算的结果值的名称 |