7章ソフトウェアアーキテクチャにおける計測の役割

Eoin Woods

ソフトウェアアーキテクチャには多くの定義があります。しかし、実際には、アーキテクチャ上の重要な決定のほとんどは、パフォーマンス、レジリエンス、セキュリティのような、ステークホルダーの期待を満たすシステムの品質を達成することに関連しています。そうしたシステムの品質は、品質特性やアーキテクチャ特性、非機能要件などと呼ばれます。

これらの重要で複雑な決定は、異なる品質間の重要なトレードオフを伴うため、しばしば決定がとても困難です。例えば、レジリエンスを優先させると、パフォーマンスが低下することがあります。自分たちに必要な品質特性が何かを知るのに、ステークホルダーはよく苦労します。

このような複雑な問題に対処する方法として、かつては、事前に先読みをしすぎた設計(Big Design Up Front:BDUF)を行い、要件を探り出し、さまざまなトレードオフを検討し、主要なアーキテクチャを決定し、その検証を行っていました。しかし、今日では、そうしたスタイルでは満たせないほど、より速く行動し、より効果的に変化に対応することが求められています。

継続的デリバリー[10]、RCDA†1、継続的アーキテクチャ†2など、多くのアプローチが、事前に先読みしすぎたアーキテクチャ活動を減らし、デリバリーライフサイクルの中で継続して行おうとしています。これにより、チームは、より多くの情報を入手できるようになった後で重要な決定を下し、システムを作り上げる中で生じる変更をサポートできます。

[†1] Eltjo R. Poort and Hans van Vliet, “RCDA: Architecting as a Risk- and ...

Get ソフトウェアアーキテクチャメトリクス ―アーキテクチャ品質を改善する10のアドバイス 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.