論理モデル: アプリケーション定義と計画
COM+ アプリケーション設計プロセスの第 2 段階は、概念モデルを 3 層アーキテクチャの論理層、つまり プレゼンテーション層(ユーザーサービス)、 ミドル層(ビジネスサービス)、 データ層(データサービス)に分割することです。 3 層アーキテクチャに慣れていない場合は、「3 層アーキテクチャ モデルの使用」を参照してください。
名詞と動詞の概念モデルを調べることで、このプロセスを開始します。 名詞は多くの場合、ビジネス オブジェクト (クラス) に変換でき、それに関連付けられている動詞はアクション (クラスのメソッド) に変換できます。 すべての名詞をビジネス オブジェクトとして定義することは困難な場合があります。論理的なモデルを完了すると、省略や間違いが明らかになります。
ほとんどのビジネス オブジェクトは最終的にビジネス サービス層に入り、再メインオブジェクトはユーザー サービス層のユーザー インターフェイス オブジェクトとデータ サービス層のデータ オブジェクトの間で分割されます。 3 層アーキテクチャを使用して論理モデルを作成する場合は、次の点に注意してください。
- 概念設計の名詞の中には、実際の物理的なデータを表すものではありませんが、システム上のアクションまたはシステム上のビジネス オブジェクトの役割を表す場合があります。 ビジネス オブジェクトは、セキュリティのためのログイン ID など、何らかのシステム制御を実行するサービスとしても使用できます。
- 概念モデルの "行間の読み取り" によって、あいまいなビジネス オブジェクトを 作成しないようにします。 このようなビジネス オブジェクトは正しくない可能性があるため、論理モデルに含める前に慎重に検討する必要があります。 正しく表示される場合は、それらを概念モデルに明示的に追加します。
- 同じ情報または機能を表すビジネス オブジェクトを作成しないでください。重複は、アプリケーションの速度とパフォーマンスの面でコストがかかる可能性があります。
- オブジェクトの依存関係を決定します。 概念モデルの一部の名詞は、単に他のビジネス オブジェクトの属性である場合があります。 属性が独立して存在できるかどうかを決定します。 その場合は、独自のビジネス オブジェクトになります。そうでない場合は、適切なビジネス オブジェクトと組み合わせる必要があります。
- やりすぎようとするビジネス オブジェクトの作成は避けてください。 ビジネス オブジェクトをオーバーロードすると、後でコードを分離する時間が長くなったり、メンテナンスの負担になる可能性があります。 概念モデル内の個別のオブジェクトを結合しないでください。 それらは別個のビジネス オブジェクトのままにしておく必要があります。 コードを使用して共通の関数をビジネス オブジェクトに委任することで、類似点を処理できます。
- 使用シナリオで使用されていないビジネス オブジェクトを削除します。 オブジェクトが将来の拡張に対応することを目的としている場合は、最初のアプリケーションの完了後にそれらを実装することを検討してください。
この時点で、コンピューターとコードの観点から考え始めることができます。 これらのビジネス サービスから、ユーザー サービスとして提供する必要がある表示および入力機能を決定します。 データ サービスとして提供する必要があるテーブルとストアド プロシージャを定義します。 論理モデルを完成させるために、各サービスのインターフェイスを定義し、各データ フィールドとその検証規則の定義を含めます。 また、すべての関数、その構文、およびパラメーターも含まれます。
サービスまたはオブジェクトの定義には、物理的な実装のどの側面も含めないようにする必要があります。 その目的は、論理コンポーネント ビルダーが実際に完了する前にコンポーネントを使用する可能性があるアプリケーションのコード部分に対して、他のプログラマが作業できるように、明確なガイドラインを提供することです。 論理モデル設計では、すべての画面、機能、およびオブジェクトを文書化する必要があります。 これらの条件を満たすまで、物理モデルまたは実装に進む必要はありません。 概念モデルと論理モデルが一致していない間に続行すると、開発サイクルの後半で重大な問題が発生します。
COM+ アプリケーションの段階的な開発は一般的です。 これには、最終的な既知のコンポーネントのサブセットを作成し、アプリケーションの各レイヤー (クライアント、ビジネス、データ層) からデータ ストレージまでテストする必要があります。 この作業モデルは、顧客による追加要件と実装に関する考慮事項に関する分析情報を提供します。 多くの場合、この作業モデルは 1 台のコンピューターでテストされます。
関連トピック