ソフトウェアデザイン
アーキテクチャ特性
[1] ではソフトウェアアーキテクチャを次の 4 つの組み合わせで構成されるものとしている。
構造: そのシステムを実装するアーキテクチャスタイルの種類 (マイクロサービスやレイヤード、マイクロカーネルなど)。しかし単に構造について語っただけではシステムのアーキテクチャを十分に説明できていない。
アーキテクチャ特性: システムがサポートしなければならない成功基準。ここでアーキテクチャ特性はシステムの機能に依存しないことに注意。
アーキテクチャ決定: ソフトウェアをどう構築すべきかのルール。システムの成約を作り、何が許されて何が許されないかに関する開発チームの指針となる。アーキテクチャ決定を適用できない一部のケースでは委員会やチーフアーキテクトなどの特例によって破ることができる。
設計指針: 開発者に対するガイドライン。サービス間のすべての条件、選択肢を網羅するアーキテクチャ決定 (ルール) を定めることは不可能であるため、設計指針として望ましいアプローチに関するガイドを提供する。
アーキテクト
アーキテクチャ決定を下す、アーキテクチャの継続的な分析、最新のトレンドを把握し続ける、決定の遵守を徹底する、多様なものに触れ経験する、事業ドメインの知識を持っている、対人スキルを持っている、政治を利用し舵取りをする。
参考文献
- RICHARDS, Mark; FORD, Neal. ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ. O'Reilly Media, 2020.