如何在 OCL 中定义新的数据类型?(示例 - 日期)
OCL 已经有预定义的类型(整数、字符串、实数和布尔值)。但是我怎样才能定义一个新的数据类型呢?
示例:我有一个名为 Person 的类。Person 类具有以下属性,名称:字符串年龄:整数生日:日期
如何在 OCL 中定义新的数据类型?(示例 - 日期)
OCL 已经有预定义的类型(整数、字符串、实数和布尔值)。但是我怎样才能定义一个新的数据类型呢?
示例:我有一个名为 Person 的类。Person 类具有以下属性,名称:字符串年龄:整数生日:日期
在 OCL 表达式中,它们总是附加到形成其上下文的 UML 模型(通常是类模型),您可以使用模型中定义的类型。例如,在类模型中,您可以定义一个数据类型Date
,然后您可以Date
在您的 OCL 表达式中使用。
(+1)对于一个有效的问题,我没有看到谁在没有说明原因的情况下输入了“-1”。
OCL 和 UML 一起使用。新数据类型不是直接在 OCL 中定义的,而是在 UML 中首先定义的。稍后,您在 OCL 中使用了新声明的数据类型。
枚举值是声明新数据类型的示例。
假设您正在为车辆软件建模。你描述了车辆,有一个马达,每个马达都有一个“状态”或“状态”。
电机的状态受枚举、一组值的限制。
在 UML 类图中,新状态被描述为一个框,类似于一个类,带有值,并且可能有其他类,这些类引用这个新类型。
....................................................................
..+----------------------+.........+-----------------------------+..
..| <<enum>> |.........| <<class>> |..
..| EngineStatusEnum |.........| MotorClass |..
..+----------------------+.........+-----------------------------+..
..| * Unknown +---------+ [+] EngineStatusEnum Status |..
..| * Stopped |.........| [+] ... other members |..
..| * Running |.........+------------+----------------+..
..| * Testing |......................|...................
..| * Damaged |......................|...................
..+----------------------+.........+--------------+---------\--+....
...................................| \ |....
...................................| (Status <= Stopped &&) \|....
...................................| (Status >= Running) |....
...................................| |....
...................................+---------------------------+....
....................................................................
并且,在 OCL 中显示某些条件的注释,应用声明的新类型。