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