UMLで、インターフェイスを示すアイコンは図5となります。
これは、クラスアイコンをベースに以下の修正を施したものです。
インターフェイスアイコンから分かるUMLインターフェイスのメタモデルは図6となります。
図6のUMLインターフェイスのメタモデルは、UMLインターフェイスが以下の構造になっていることを示しています。
つまり、UMLインターフェイスは、ステレオタイプとしてinterfaceがあらかじめ指定されている点と、属性を持たない点を除けば、UMLクラスと同等の情報を持っています。
インターフェイスが独自に定義している標準ステレオタイプはありません。ただし、インターフェイスは分類子の一種ですから、仕様上は以下の標準ステレオタイプが存在します。
ただし、インターフェイスの機能上、これらのステレオタイプを使用することはないと考えられます。
インターフェイスが独自に定義している標準プロパティはありません。ただし、インターフェイスは分類子の一種ですから、仕様上は以下の標準ステレオタイプが存在します。
しかし、インターフェイスの機能上、これらのプロパティを使用することはないと考えられます。
例外はシグナルの一種で、オペレーションの実行時に異常を通知するために送信される分類子です。
UMLで、例外(シグナル)を示すアイコンは図7となります。UMLにおける例外はステレオタイプexceptionが指定されている以外は、通常のクラスと同じ構成を持ちます。
UML例外のメタモデルは図8となります。メタモデル上も通常のクラスと同じ構成になります。
UMLにおける例外とクラスの違いは、「例外はシグナルの一種であり非同期のイベント通知に用いることができる」という点にあります。もちろん例外が送信される非同期のイベント通知とは、オペレーション実行中の異常状態の通知ということになります。
例外が独自に定義している標準ステレオタイプはありません。ただし、例外は分類子の一種ですから、仕様上は以下の標準ステレオタイプが存在します。
しかし、例外の機能上、これらのステレオタイプを使用することはないと考えられます。
例外が独自に定義している標準プロパティはありません。ただし、例外は分類子の一種ですから、仕様上は以下の標準ステレ オタイプが存在します。
しかし、例外の機能上、これらのプロパティを使用することはないと考えられます。
UMLにおける属性のメタモデルは図9となります。
図9より以下のことが分かります。
このメタモデルで定義されたモデルを文字列として記述したものが図10です。使用頻度が高くない部分は灰色で表現しています。
スコープは、属性の有効なスコープを示すもので、インスタンスまたはクラスのいずれかとなります。スコープは属性定義の文字列に下線を引くことで表現します。下線が引かれていなければインスタンススコープ、下線が引かれていればクラススコープです。
changeabilityは属性の更新についての性質で、以下の値を取ります。
Changeable | 属性の更新について制約はない |
---|---|
frozen | 属性の更新は行われない |
addOnly | 追加のみ可能 |
persistenceは属性の永続性についての性質で、以下の2つの値を取ります。
transitory | インスタンスオブジェクトが消去されたとき、属性に格納されているオブジェクトも同時に消去される |
---|---|
persistent | インスタンスオブジェクトが消去されても、属性の格納されているオブジェクトは消去されない |
属性にはステレオタイプを指定することもできます。ただし、属性に指定するステレオタイプは標準では定義されていません。
UMLにおけるオペレーションのメタモデルは図11となります。図11より以下のことが分かります。
図11 オペレーションメタモデル(クリックすると拡大します)
UMLのオペレーションは文字列で記述されますが、その記法は図12となります。
スコープと可視性は属性と同様の意味を持ちます。すなわち、スコープはオペレーションの有効なスコープを示し、可視性は、属性が外部のモデル要素に対して公開されている度合いを示します。記法も属性の場合と同じです。
オペレーション名は、オペレーションの名前を文字列で表します。 返却値型は、オペレーションが返却するオブジェクトの型を表します。返却値が省略された場合は、オペレーションはオブジェクトを返却しないということを示します。
パラメタは、オペレーション実行時に使用されるパラメタです。プロパティ文字列は、制約とタグ付き値を使ってオペレーションの性質を表します。標準ではquery、concurrency、abstract、root、leafが定義されています。なお、abstractに関してはプロパティ文字列ではなくオペレーションの記述をイタリック体で表現することもでき、通常はこちらの用法が用いられています。
オペレーションにはステレオタイプを指定することもできます。標準ではcreateとdestroyの2つのステレオタイプが定義されています。
ステレオタイプ | 意味 | 1.3 | 1.4 | Java | 理由 |
create | インスタンスを作成 | ○ | ○ | ◎ | Javaに対応機能あり |
destroy | インスタンスを破壊 | ○ | ○ | - | Javaに対応機能なし |
オペレーションにはプロパティを指定することができます。標準では下記の表に示すプロパティが定義されています。
プロパティ | 意味 | 1.3 | 1.4 |
query | 内部状態を変更しない | ○ | ○ |
concurrency | 並行性の性質 | ○ | ○ |
abstract | 抽象オペレーション | ○ | ○ |
root | 同じオペレーションを継承しない | ○ | ○ |
leaf | 子孫に上書きされない | ○ | ○ |
semantics | 意味規定 | ○ | ○ |
Copyright © ITmedia, Inc. All Rights Reserved.