OCL で新しいデータ型を定義する方法は? (例 - 日付)
OCL には既に定義済みの型 (整数、文字列、実数、ブール) があります。しかし、新しいデータ型を定義するにはどうすればよいでしょうか?
例: クラス コール Person があります。Person クラスには次の属性があります。name: 文字列 age: 整数 birthday: 日付
OCL で新しいデータ型を定義する方法は? (例 - 日付)
OCL には既に定義済みの型 (整数、文字列、実数、ブール) があります。しかし、新しいデータ型を定義するにはどうすればよいでしょうか?
例: クラス コール Person があります。Person クラスには次の属性があります。name: 文字列 age: 整数 birthday: 日付
(+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 でいくつかの条件を表示するメモ。
コンテキストを形成する UML モデル (通常はクラス モデル) に常に関連付けられている OCL 式では、モデルで定義された型を使用できます。たとえば、クラス モデルで datatype を定義してから、 OCL 式Date
を使用できます。Date