このトピックでは、UMLを利用した情報システムの開発を代表として、ビジネス要件とアーキテクチャとの二つの側面からモデリングの流れを説明します。
ビジネス要件を実現するには、以下のモデルを順に作成していきます。
ドメイン分析モデルは問題領域モデルであり、ユーザが「やりたいことのモデル」の中の「現実世界」をモデル化します。
ドメイン分析では、「現実世界」を静的モデルと動的モデルの両面からモデル化します。
ドメイン分析で重要なのは「現実世界」の静的構造をクラス図としてモデル化することです。ドメイン分析で作成した静的構造のモデルは、要求分析で使用するボキャブラリとなり、続けてシステム分析以降の静的モデルの基盤となります。
要求分析モデルは問題領域モデルであり、ユーザが「やりたいことのモデル」の中の「やりたいこと」をモデル化します。
要求分析では、ユーザの“やりたいこと”をユースケースとしてモデル化します。ユースケースは、システムを使用する人や物の目的を達成するための、人や物とシステムの間のインタラクションをモデル化したモデル要素であり、動的モデルとなります。このユースケースから、システム分析でシステム内の動的モデルを抽出し、このモデルがシステム分析以降の動的モデルの基盤となります。
システム分析モデルは解決領域モデルであり、ITシステムでの実現方法を、プラットフォームやプログラミング言語に特化しない抽象的な形でモデル化します。
システム分析では、ユーザの“やりたいこと”を実現するためのITシステムの構造と挙動をモデル化します。
設計モデルは解決領域モデルであり、ITシステムでの実現方法を、プラットフォームやプログラミング言語に特化する具体的な形でモデル化します。
設計モデルは解決領域モデルであり、ITシステムでの実現方法を、プログラムや定義ファイルという形で実装したものです。
ドメイン分析から設計までは、静的モデルと動的モデルという形でモデル化を行う観点を分けていました。
しかし、オブジェクト指向による実装では、クラスを軸にモデル化を行います。クラスの静的側面と動的側面としてプログラミングします。
また、ドメイン分析から派生してきた静的モデルは、データベースに格納して管理するための実装も必要になってきます。
アーキテクチャは、解決領域のことですので、アーキテクチャの側面から、システム分析、システム設計、システム実装について説明します。
システム分析では、以下の3種類の分析オブジェクトを使用してモデルを作成します。
設計では、ドメイン層、アプリケーション層、プレゼンテーション層のモデルを作成します。
ドメイン層、アプリケーション層、プレゼンテーション層はそれぞれシステム分析のエンティティ・オブジェクト、コントロール・オブジェクト、バウンダリ・オブジェクトを詳細化したものです。
実装では主にオブジェクト指向プログラミングによって、ドメイン層、アプリケーション層、プレゼンテーション層を作成します。また必要に応じて定義ファイルなども作成します。