Object-oriented-analysis-design-ooad-uml-structural-diagrams

提供:Dev Guides
移動先:案内検索

OOAD-UML構造図

UML構造図は、クラス図、オブジェクト図、コンポーネント図、展開図のように分類されます。

クラス図

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

システムのクラス図

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

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

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

銀行システムのクラス図

システム内のクラス

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

関係

  • 銀行は支店数を「持っている」-構成、1対多
  • ゾーナル本社の役割を持つ支部は、他の支部を監督します-単項協会、一対多
  • 支店は「アカウント数」を持っています-集約、1対多

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

  • 顧客は1つの当座預金口座を持つことができます-1対1の関連付け
  • 顧客は1つの普通預金口座を持つことができます-関連付け、1対1
  • 支店は「多数のローンを持っています」-集約、1対多
  • 顧客は多くのローンを引き受けることができます-協会、1対多

オブジェクト図

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

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

銀行システムのオブジェクト図

コンポーネント図

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

コンポーネント図で構成-

  • コンポーネント
  • インターフェース
  • 関係
  • パッケージとサブシステム(オプション)

コンポーネント図が使用されます-

  • フォワードおよびリバースエンジニアリングによるシステムの構築。
  • オブジェクト指向プログラミング言語を使用してシステムを開発しながら、ソースコードファイルの構成管理をモデリングします。
  • モデリングデータベースのスキーマを表します。
  • 動的システムの動作のモデリング。

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

コンポーネント図

配置図

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

配置図はに使用されます-

  • 通常、ソフトウェアを集中的に使用するハードウェアのコレクションで構成される組み込みシステムのモデルデバイス。
  • クライアント/サーバーシステムのトポロジを表します。
  • 完全分散システムをモデル化します。

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

展開図