10.3 Evaluations包
本子章节定义OCL表达式的技术。计算包是来自抽象语法的表达式包的一个镜像。图10.6展示了OCL表达式的环境是如果被构建的。该环境由UML模型中的表达式所处位置来决定(在第12章 UML模型中Ocl表达式的使用 描述)。环境的计算是在ExpressionInOclEval中完成的,这在此处并未定义。
图10.6 The environment for ocl evaluations
图10.6展示了Evaluations包的核心部分。在图10.7中定义了OclExpEval的不同子类。OclExpEval总是有一个结果值和一个把名称绑定到值的命名空间。
图10.7 Domain model for ocl evaluations
大多数的OCL表达式可以被简单的计算,即,它们的值可以根据一个不可变的名称值绑定集合推断出来。然而,操作调用表达式需要被调用操作的执行。操作的执行语义在UML基础设施中被定义。为了我们当前的目标,我们假定操作执行会在OCL表达式的环境中增加绑定到一个特定值的‘result’。为了使术语不相互混杂,我们在后面使用术语evaluation(计算)来表示‘一般的’OCL计算和操作调用表达式的执行。
OclExpEval将在10.3.1.1到10.3.1.5子节进行定义。