7章アーキテクチャ特性のスコープ
ソフトウェアアーキテクチャの世界では、アーキテクチャ特性はシステムレベルのスコープで実現する必要があるものだというのが一般的な前提となっている。たとえば、アーキテクトがスケーラビリティについて語るときは通常、システム全体のスケーラビリティを指している。しかし、これは10年前、ほとんどのシステムがモノリシックであった頃の前提だ。現在のエンジニアリング技術と、それが可能にしたマイクロサービスのようなアーキテクチャスタイルの出現によって、アーキテクチャ特性のスコープはかなり狭まっている。これは、進化し続けるソフトウェア開発のエコシステムにおいて、公理がいかにゆっくりと時代遅れになっていくかを示す典型的な例だ。
『進化的アーキテクチャ』[2]を執筆する中で、著者らは特定のアーキテクチャスタイルの構造的な進化性を計測する技術を必要としていた。既存の計測法は、どれも適切なレベルの詳細を提供していなかった。「6.1.2 構造面の計測」では、アーキテクトがアーキテクチャの構造的側面を分析するための、さまざまなコードレベルのメトリクスについて説明した。しかし、これらのメトリクスはすべて、コードに関する低レベルの詳細のみを明らかにするものであり、コードベース外の依存コンポーネント(データベースなど)については評価できない。たとえば、アーキテクトがどれだけ高パフォーマンスあるいは弾力性に優れたコードベースを設計したとしても、システムがそれらの特性にマッチしないデータベースを使用していたら、アプリケーションが成功することはない。
運用特性を評価する場合には、アーキテクトは、それらの特性に影響を与えるコードベース外の依存コンポーネントについても考慮しなければならない。したがって、アーキテクトはそうした依存性を計測する別の方法を必要とする。『進化的アーキテクチャ』の著者らは、これを ...
Get ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.