TL;DR
想定した保守担当者が、ソフトウェアを効果的かつ効率的に変更できる度合い。ISO/IEC 25010 で定められた品質特性の 1 つである。
なぜ必要か
手を動かしてわかるクリーンアーキテクチャでは、変更が容易であること(保守性が高いこと)を「保守容易性」と呼ぶ。保守容易性は非機能要件の 1 つだが、機能要件やほかの非機能要件よりも重要だとしている。保守容易性は開発者の満足度を上げ、満足度は生産性と相互に影響する。問題の解決策が複数あるときは、一般に保守容易性が一番上がる手段を選べばよい。
仕組み
arc42 の品質モデルは保守性の定義をいくつか挙げている。ISO/IEC 25010:2023 では「想定した保守担当者が、効果的かつ効率的に製品を変更できる能力」と定義され、更新やアップグレードの導入も含む。McCall(1978)は「運用中のプログラムで、エラーを見つけて直すのに必要な労力」と定義している。
手を動かしてわかるクリーンアーキテクチャによると、保守容易性を保つには、アーキテクチャを構築し、それを維持することが重要である。
例
手を動かしてわかるクリーンアーキテクチャ 第2章によると、従来のレイヤードアーキテクチャは変更に弱く、保守性がすぐに下がる。正しく扱えば堅牢にもなるが、それを強制する仕組みがない。