保守性を見るには2つの方法が考えられます(他の人が良い定義を思いつくことができればもっといいと思います。
理解せずに修正。
システム全体の動作を理解する必要なく、バグ修正プログラムをコードに入力して問題を修正できますか。
これは、包括的な単体テスト(回帰テスト)を提供することで実現できます。システムへの変更は、特定の適切な入力でのシステムの動作を変更しないことを確認できるはずです。
この状況では、バグ修正プログラムはシステムの最小限の知識のみで(単純な)バグを修正できるはずです。修正が機能する場合、回帰テストはいずれも失敗しません。回帰テストに失敗した場合は、ステージ2に移行する必要があります。
maintainabilty1 = K1 . (Code Coverage)/(Coupling of Code) * (Complexity of API)
理解のある修正。
バグ修正が自明ではなく、システムを理解する必要がある場合。次に、システムのドキュメントはどのようなものですか。外部APIのドキュメントについて話しているわけではありません(比較的役に立たない)。理解する必要があるのは、実装などで使用される巧妙な(読み取りハック)トリックでシステムがどのように機能するかです。
しかし、ドキュメントは十分ではなく、コードは明確で理解可能である必要があります。コードの理解度を測定するために、ちょっとしたトリックを使用できます。開発者がコーディングを終了した後、彼/彼女に何か他の作業をする月を与えます。次に、桟橋がシステムを理解できる程度に戻ってシステムを文書化するように依頼します。コードが比較的理解しやすい場合は、迅速に行う必要があります。それがひどく書かれている場合、彼らは彼らが構築したものを解決し、ドキュメントを書くのに長い時間がかかります。
そのため、これについて何らかの尺度を考え出すことができます。
maintainability2 = K2 . (Size of doc)/(Time to write doc)