よいアーキテクチャはどのようにして実現されるのか? 複数の視点を持つメリット
『Design It!』では、ソフトウェアシステムを分割することにより、アーキテクトが品質特性を含むシステム要求を満たす戦略を立てられると説明されている。しかし島田氏は、システムの構造には多様性があり、単一の形態に限られないという基本的な前提がある点に注意が必要であると説明した。
書籍『実践ソフトウェアアーキテクチャ』では、ソフトウェアアーキテクチャをソフトウェア要素間の関係で構成されるシステムの構造、または複数の構造として定義している。システムの複数の構造を検討することがこの分野の重要な作業であり、これに取り組むための一つの方法として、「4+1ビュー」というモデルがある。このモデルはシステムをさまざまな視点から見ることを促し、システムがどのように使われるか、どのような状態になるかに基づいて、その構造を総合的に理解する手法である。
「4+1ビュー」では、論理ビュー、プロセスビュー、実装ビュー、デプロイメントビューという異なる視点がある。論理ビューでは、ソフトウェアのモジュール構成やデータベースの論理モデルを考慮する。プロセスビューでは、実行単位の相互作用や通信のタイミングを検討する。実装ビューでは、ソフトウェアモジュールの構成管理、ファイルディレクトリ構造、ソースコードのリポジトリ管理、ビルド単位の決定、依存物の管理が行われる。デプロイメントビューでは、ビルド単位やアーティファクトをインフラストラクチャー構造にどのように対応付けてデプロイするかが検討される。
これらのさまざまなビューを通してソフトウェアアーキテクチャにおけるシステムの構造を検討する。全体を横断して設計の整合性を取りながら構造を決定することが重要である。たとえあるビューでは問題がないように見えても、別のビューからは異なる問題が浮き彫りになる可能性があるからだ。