OOAD-UML基本表記
UMLは、ビルディングブロックごとに特定の表記法を定義します。
クラス
クラスは、3つのセクションを持つ長方形で表されます-
- クラスの名前を含む上部セクション
- クラス属性を含む中央のセクション
- クラスの操作を表す下部のセクション
属性と操作の可視性は、次の方法で表すことができます-
Public−パブリックメンバーは、システムのどこからでも見ることができます。クラス図では、接頭辞「+」が付いています。
Private−プライベートメンバーは、クラス内からのみ表示されます。クラス外からはアクセスできません。プライベートメンバーの前には記号「-」が付いています。
Protected−保護されたメンバーは、クラス内およびこのクラスから継承されたサブクラスからは表示されますが、外部からは表示されません。記号「#」が前に付きます。
抽象クラスのクラス名はイタリック体で書かれています。
Example−先に紹介したCircleクラスについて考えてみましょう。Circleの属性は、x座標、y座標、および半径です。操作は、findArea()、findCircumference()、およびscale()です。x-coordとy-coordがプライベートデータメンバーであり、radiusが保護されたデータメンバーであり、メンバー関数がパブリックであると仮定します。次の図は、クラスの図式表現を示しています。
オブジェクト
オブジェクトは、2つのセクションを持つ長方形として表されます-
上部のセクションには、オブジェクトの名前と、それがインスタンスであるクラスまたはパッケージの名前が含まれています。名前は次の形式を取ります-
object-name −クラス名
object-name −クラス名::パッケージ名
class-name −匿名オブジェクトの場合
下のセクションは、属性の値を表します。これは、attribute-name = valueの形式を取ります。
オブジェクトは、角の丸い長方形を使用して表される場合があります。
Example−c1という名前のクラスCircleのオブジェクトを考えてみましょう。c1の中心が(2、3)にあり、c1の半径が5であると仮定します。次の図はオブジェクトを示しています。
成分
コンポーネントは、一連のインターフェイスに準拠し、その実現を提供する、システムの物理的で交換可能な部分です。これは、クラスやインターフェイスなどの要素の物理的なパッケージを表します。
Notation − UMLダイアグラムでは、コンポーネントは、次の図に示すように、タブ付きの長方形で表されます。
インターフェース
インターフェイスは、クラスまたはコンポーネントのメソッドのコレクションです。これは、クラスまたはコンポーネントによって提供される可能性のある一連のサービスを指定します。
Notation−通常、インターフェースはその名前とともに円として描かれます。インターフェイスは、ほとんどの場合、それを実現するクラスまたはコンポーネントに接続されています。次の図は、インターフェイスの表記を示しています。
パッケージ
パッケージは、要素の編成されたグループです。パッケージには、クラス、コンポーネント、その他のパッケージなどの構造的なものが含まれている場合があります。
Notation−グラフィカルに、パッケージはタブ付きフォルダーで表されます。パッケージは通常、その名前だけで描かれます。ただし、パッケージの内容に関する追加の詳細が含まれている場合があります。次の図を参照してください。
関係
さまざまなタイプの関係の表記は次のとおりです。
通常、関係の要素は関係で特定の役割を果たします。ロール名は、特定のコンテキストに参加している要素の動作を示します。
Example−次の図は、クラス間のさまざまな関係の例を示しています。最初の図は、DepartmentとEmployeeの2つのクラス間の関連付けを示しています。ここで、Departmentには多数の従業員が働いている場合があります。ワーカーはロール名です。部門の横の「1」と従業員の横の「*」は、カーディナリティ比が1対多であることを示しています。2番目の図は、集約関係を表しています。大学は、多くの学部の「全体」です。