【ほしゅせい】

保守性 とは?

最終更新:
💡 あとから直す人が、安心して手を入れられる

ソフトウェアの問題を調べ、必要な修正や変更を行い、結果を確認しやすいかという性質。コードの読みやすさに加え、依存関係・テスト・設計の説明などが影響する。

📌 このページのポイント
保守性:送料ルールを直すとき「送料を変えたい。どこを直そう?」変更を追いにくい計算も通知も同じ場所へ影響する場所が不明確認方法も分からない変更を追いやすい送料の計算を見つけやすい依存関係を把握テストで振る舞い確認役割・名前・テスト・設計の理由が手掛かり行数や点数だけでは決まらない
変更しやすさを比べる一例。テストの数や分割の細かさだけで保守性が保証されるわけではありません。
ひよこ ひよこ
保守性って、コードがきれいなら高いの?
ペンギン先生 ペンギン先生
読みやすさは大切だけれど、それだけではないよ。たとえば送料のルールを変えるとき、どこを直すか、ほかに何が影響するか、正しい変更かを調べやすいことも大切。あとから手を入れる人を助ける性質なんだ。
ひよこ ひよこ
なぜ最初から意識するの?
ペンギン先生 ペンギン先生
公開後も、バグ修正や機能追加、周辺環境への対応で変更することがあるからだよ。変更のたびに全体を調べ直す必要があると大変だね。ただし、開発と保守に使う時間の割合は案件によるので、いつも何割と決めつけるものではないよ。
ひよこ ひよこ
どうすれば直しやすくなる?
ペンギン先生 ペンギン先生
意味が分かる名前を付け、役割を整理し、関係の薄い処理をむやみに結び付けないことだよ。送料の計算とメール送信を区別する、といった例だね。ただ細かく分割すればよいわけではなく、処理を追うために多くの場所を行き来する設計も見直そう。
ひよこ ひよこ
テストやコメントは、たくさんあればいい?
ペンギン先生 ペンギン先生
必要な振る舞いを確かめられるテストが役立つよ。コメントも、コードを読み上げるより、なぜその判断をしたかを残すと助けになる。数が多いだけで、変更が安全とは限らない。テスト自身が分かりにくい場合や、説明が古くなった場合も見直すんだ。
ひよこ ひよこ
数値でチェックできるの?
ペンギン先生 ペンギン先生
複雑度、依存関係、行数、保守性指数などが手掛かりになるよ。Visual Studioの保守性指数は、複雑度や行数などから計算する指標。ただし設計の理由やテストの有効性を、ひとつの点数だけで判断できない。数値とレビュー、実際の変更の困りごとを組み合わせよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「保守性」って出てきたら「あとから調べて、直したり改良したりしやすいか」と思えばだいたいOK!
📖 おまけ:英語の意味
「Maintainability」 = 保守のしやすさ
💬 maintain(維持する)に -ability(〜できること)をつけた言葉で、「メンテのしやすさ」を表すんだよ

参考資料

← 用語集にもどる