OOAD-UML構造図

UML構造図は、クラス図、オブジェクト図、コンポーネント図、配置図に分類されます。

クラス図

クラス図は、システムの静的ビューをモデル化します。これは、システムのクラス、インターフェース、およびコラボレーションで構成されています。そしてそれらの間の関係。

システムのクラス図

単純化された銀行システムについて考えてみましょう。

銀行には多くの支店があります。各ゾーンでは、1つの支店が、そのゾーンの他の支店を監督するゾーン本社として指定されています。各支店は、複数の口座とローンを持つことができます。アカウントは、普通預金口座または当座預金口座のいずれかです。顧客は普通預金口座と当座預金口座の両方を開くことができます。ただし、顧客は複数の普通預金口座または当座預金口座を持ってはなりません。顧客は銀行からローンを調達することもできます。

次の図は、対応するクラス図を示しています。

システム内のクラス

銀行、支店、口座、普通預金口座、当座預金、ローン、および顧客。

関係

  • A Bank “has–a” number of Branches −構成、1対多

  • A Branch with role Zonal Head Office supervises other Branches −単項関連、1対多

  • A Branch “has–a” number of accounts −集約、1対多

クラスAccountから、2つのクラス、つまり普通預金口座と当座預金口座が継承されました。

  • A Customer can have one Current Account −関連付け、1対1

  • A Customer can have one Savings Account −関連付け、1対1

  • A Branch “has–a” number of Loans −集約、1対多

  • A Customer can take many loans −関連付け、1対多

オブジェクト図

オブジェクト図は、ある時点でのオブジェクトのグループとそのリンクをモデル化します。クラス図で物事のインスタンスを示します。オブジェクト図は、相互作用図の静的な部分です。

Example −次の図は、銀行システムのクラス図の一部のオブジェクト図を示しています。

コンポーネント図

コンポーネント図は、コンポーネントのグループ間の編成と依存関係を示しています。

コンポーネント図は、次のもので構成されます。

  • Components
  • Interfaces
  • Relationships
  • パッケージとサブシステム(オプション)

コンポーネント図は次の目的で使用されます-

  • フォワードエンジニアリングとリバースエンジニアリングによるシステムの構築。

  • オブジェクト指向プログラミング言語を使用してシステムを開発しながら、ソースコードファイルの構成管理をモデル化します。

  • モデリングデータベースのスキーマを表します。

  • 動的システムのモデリング動作。

Example

次の図は、C ++を使用して開発されたシステムのソースコードをモデル化するためのコンポーネント図を示しています。myheader.h、otherheader.h、priority.cpp、other.cppの4つのソースコードファイルが表示されます。myheader.hの2つのバージョンが表示され、最近のバージョンからその祖先までトレースされます。ファイルpriority.cppは、other.cppにコンパイル依存関係があります。ファイルother.cppは、otherheader.hにコンパイル依存関係があります。

配置図

配置図は、ランタイム処理ノードとそれらに存在するコンポーネントの構成に重点を置いています。これらは通常、ノードと依存関係、またはノード間の関連付けで構成されます。

配置図は次の目的で使用されます-

  • 通常、ソフトウェアを多用するハードウェアのコレクションで構成される組み込みシステムのモデルデバイス。

  • クライアント/サーバーシステムのトポロジを表します。

  • 完全分散システムをモデル化します。

Example

次の図は、クライアント/サーバーアーキテクチャに従うコンピューターシステムのトポロジを示しています。この図は、プロセッサで構成されるサーバーとしてステレオタイプ化されたノードを示しています。この図は、4つ以上のサーバーがシステムにデプロイされていることを示しています。サーバーに接続されているのはクライアントノードで、各ノードはワークステーション、ラップトップ、スキャナー、プリンターなどの端末デバイスを表します。ノードは、実際の同等物を明確に表すアイコンを使用して表されます。