在OCL中定义数据类型

时间:2014-10-11 02:26:14

标签: types uml specifications ocl predefined-variables

如何在OCL中定义新数据类型? (例子 - 日期)

OCL已经有预定义的类型(整数,字符串,实数和布尔值)。但是如何定义新的数据类型呢?

示例:我有一个类调用Person。 Person类具有以下属性, name:String 年龄:整数 生日:日期

2 个答案:

答案 0 :(得分:1)

在OCL表达式中,它们始终附加到形成其上下文的UML模型(通常是类模型),您可以使用模型中定义的类型。例如,在类模型中,您可以定义数据类型Date,然后可以在OCL表达式中使用Date

答案 1 :(得分:1)

(+ 1)对于一个有效的问题,我没有在没有说明原因的情况下看到谁输了“-1”。

OCL& UML用于指导。新的数据类型不是直接在OCL中定义的,而是在UML中首先定义的。稍后,您在OCL中使用了新声明的数据类型。

枚举值是声明新数据类型的示例。

支持您正在为车辆软件建模。你描述车辆, 有一个电机,每个电机都有“状态”或“状态”。

电机的状态受枚举(一组值)的限制。

在U.M.L.类图,新的状态被描述为一个盒子, 类似于一个类,带有值,并且可能有其他类, 引用这种新类型。

....................................................................
..+----------------------+.........+-----------------------------+..
..|       <<enum>>       |.........|          <<class>>          |..
..|   EngineStatusEnum   |.........|          MotorClass         |..
..+----------------------+.........+-----------------------------+..
..| * Unknown            +---------+ [+] EngineStatusEnum Status |..
..| * Stopped            |.........| [+] ... other members       |..
..| * Running            |.........+------------+----------------+..
..| * Testing            |......................|...................
..| * Damaged            |......................|...................
..+----------------------+.........+--------------+---------\--+....
...................................|                         \ |....
...................................| (Status <= Stopped &&)   \|....
...................................| (Status >= Running)       |....
...................................|                           |....
...................................+---------------------------+....
....................................................................

并且,在OCL中显示某些条件的注释,应用声明的新类型。