【アーキテクチャ アンチパターン】Stovepipe system

このアンチパターンは,stovepipe-enterpriseの単一システム版である.

どんな問題が起きる?

  • アーキテクチャのドキュメントとソフトウェアの実装の乖離が起きる.
  • アーキテクチャがシステムの統合についてどうすればよいかわからなくなる.
  • プロジェクトの予算オーバーとなり,スケジュールも間に合わなくなる.
  • 要件の変化による実装コストがかかるため,システム保守に非常にコストがかかる.
  • システムは書類上の要件に従うが,ユーザの要望は満たせない.
  • ユーザはシステムの制約に対処するために,別の方法を試す必要がある.
  • Complex system and client installation procedures are followed that defy attempts to automate.
  • 他のシステムとの相互運用性がない.
  • システムの変更は難しくなる.変更するときにはバグを生みがち.

どんなときに起きる?

  • サブシステムを統合するとき,共通のメカニズムがないとき.このとき,アーキテクチャを記述するのは難しくなる.
  • 抽象化の層がないとき.全てのインターフェースがそれぞれのサブシステムに固有になってしまう.
  • メタデータが十分に使用されてないとき.
  • 実装クラス間の結合性が高すぎるとき.このとき,サービスに固有のクライアントコードを必要としてしまう.
  • アーキテクチャの思想がないとき.

どう解決する?

コンポーネントアーキテクチャを使う
  • コンポーネントアーキテクチャでは,サブシステムが抽象的にモデル化されている.
  • そのためサブシステムの実装部分に比べて,小さいインターフェースをもち,モジュールの入れ替えを柔軟に行える.