UMLクラス図の列挙型


145

クラス図をモデル化しています。クラスの属性は列挙です。これをどのようにモデル化しますか?通常、あなたはこのようなことをします:

- name : string

しかし、これを列挙型でどうやって行うのですか?

回答:


198

彼らは単にこのように示されています:

_______________________
|   <<enumeration>>   |
|    DaysOfTheWeek    |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
|_____________________|

そして、それとあなたのクラスとの間に関連付けがあります。


16
列挙型は実際にはUMLのクラスよりもデータ型のように機能するので、通常、属性が整数型であると宣言した場合よりも、関連付けは表示されません。モデリングツールが列挙型を明示的にサポートしている場合は、それを使用し、必要に応じてフォールバックとしてClass + << enumeration >>ステレオタイプ表記のみを使用する必要があります。
トム・モリス

ArgoUMLの<< enumeration >>ステレオタイプはどこにありますか?
Timofey 2016年

@Tim ArgoUMLは列挙型をファーストクラスでサポートしているため、ステレオタイプを使用する必要はありません
Tom Morris

<<enumeration>>実際にはステレオタイプではなくキーワードです。残念ながら、UMLの作成者は視覚的な区別を行いませんでした。
qwerty_so

68

UMLモデリングツールが列挙の指定をサポートしている場合は、それを使用する必要があります。それはおそらくより簡単で、あなたのモデルにより強い意味を与えます。視覚的には、結果は<<enumeration>>ステレオタイプのクラスに非常に似ていますが、UMLメタモデルでは、列挙は実際には別個の(メタ)タイプです。

+---------------------+
|   <<enumeration>>   |
|    DayOfTheWeek     |
|_____________________|
| Sunday              |
| Monday              |
| Tuesday             |
| ...                 |
+---------------------+

定義すると、データタイプや独自のクラスの名前と同じように、属性のタイプとして使用できます。

+---------------------+
|        Event        |
|_____________________|
| day : DayOfTheWeek  |
| ...                 |
+---------------------+

ArgoEclipseまたはArgoUMLを使用している場合、ツールバーにプルダウンメニューがあり、Datatype、Enumeration、Signalなどを選択して、独自の列挙を作成できます。次に、通常は属性を含むコンパートメントに、列挙値のEnumerationLiteralsを設定できます。

ArgoUMLのわずかに異なる例の画像を次に示します。 ここに画像の説明を入力してください


7
ArgoUMLスクリーンショットをありがとう。
Petri Tuononen、2012年

1

通常、列挙型自体をenumステレオタイプのクラスとしてモデル化します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.