コンポーネント設計
設計モデルの一種
アーキテクチャの構成要素を、コンポーネントの処理記述へ変換したもの
それぞれのソフトウェアコンポーネントの内部的な詳細を説明する
コンポーネントとは : コンピュータソフトウェアを構成するモジュール性の高い部品のこと
OMG Unified Model Language Specification での定義 : モジュール性の高くデプロイの容易なシステムにとって置き換え可能な部品として、実装をカプセル化し一連のインターフェイスを公開するもの
オブジェクト指向ソフトウェアエンジニアリングの手法では、コンポーネント設計において、問題ドメイン固有のクラスの精緻化と要求モデルに含まれるインフラストラクチャクラスの定義や洗練に注目
4 つの原則 (nobuoka.icon SOLID 原則から Single Responsibility Principle を抜いた 4 つだ)
開放閉鎖原則 (OCP)
リスコフの置換原則 (LSP : Liskov Substitution Principle)
依存関係逆転の原則 (DIP : Dependency Inversion Principle)
インターフェイス分離の原則 (ISP : Interface Segregation Principle)
Robert C. Martin によるパッケージングに関する原則 (コンポーネントにも適用可能)
再利用・リリース等価の原則 (REP : Reuse/Release Equivalency Principle)
閉鎖性共通の原則 (CCP : The Common Closure Principle)
全再利用の原則 (CRP : Common Reuse Principle)
コンポーネント設計の手順
1. 問題ドメインに関連するすべての設計クラスを特定する
要求モデルに含まれる分析クラスと、アーキテクチャモデルに含まれるコンポーネントを精緻化
2. インフラストラクチャドメインに関連するすべての設計クラスを特定
要求モデルやアーキテクチャモデルに登場しない場合が多い
3. 再利用可能になっていないすべての設計クラスを精緻化
協調動作するクラスやコンポーネントの交わすメッセージを詳細を具体化
それぞれのコンポーネントのインターフェイスを特定
関連
ソフトウェアコンポーネント設計
参考文献
実践ソフトウェアエンジニアリング 第 9 版