Managing Technical Debt: Reducing Friction in Software Development II-6
https://learning.oreilly.com/library/view/managing-technical-debt/9780135646052/
Part II: Analyzing Technical Debt
Chapter 6. Technical Debt and Architecture
Beyond the Code
最も高価な技術的負債は、ソフトウェア・システムのアーキテクチャに関連するものであり、返済が困難であるという証拠が増えつつある最も高価な技術的負債は、ソフトウェア・システムのアーキテクチャに関連するものであり、返済が困難であるという証拠が増えつつある。
アーキテクチャ上の負債は意図的なものである可能性が高い。
多くの場合、開発チームが将来システムがどのように進化するかを理解していなかったり、ビジネスコンテクストが大きく変化したために、プロジェクトの初期段階で決定されたことに起因する。
・Ask the designers about the health of the system or a problem.(システムの健全性や問題について設計者に尋ねる。)
・Examine the architecture.(アーキテクチャを調べる。)
・Examine the code to get insight into the architecture.(アーキテクチャーを理解するためにコードを調べる。)
原則:アーキテクチャの技術的負債は所有コストが最も高い
アーキテクチャーを理解するためにコードを調べる。
アーキテクチャーに関する記述がなくても、コードの依存関係や構造を理解するツールの助けを借りてコードを調べれば、アーキテクチャーに関する洞察を得ることができる。
個々の要素とその依存関係を分析するための関連技術に
・個々のソフトウェア要素の複雑さ
・ソフトウェア要素のインターフェース
・ソフトウェア要素間の相互関係
・システム全体の特性
・ソフトウェア要素と利害関係者の懸念の相互関係
ISO/IEC 25010規格で定義されている保守性
・モジュール性
・再利用性
・分析可能性
・変更可能性
・テスト可能性
品質標準 ISO/IEC 25010 で定義されているセキュリティ
・機密性
・完全性
・否認防止
・真正性
・説明責任
Book
Essential Software Architecture
https://amzn.to/45nuoKR
Software Architecture in Practice
https://learning.oreilly.com/library/view/software-architecture-in/9780136885979/
Designing Software Architectures
https://learning.oreilly.com/library/view/designing-software-architectures/9780138108069/
Documenting Software Architectures
https://learning.oreilly.com/library/view/documenting-software-architectures/9780132488617/
Building Evolutionary Architectures
https://learning.oreilly.com/library/view/building-evolutionary-architectures/9781492097532/