|
||||
前2回で、オブジェクト指向を「テスト容易性」と「変更容易性」を中心に再定
義したい、という話をした。継承、カプセル化、情報隠蔽、ポリモーフィズム、
といった従来オブジェクト指向の説明に使われている概念、およびそこから得
られる(といわれている)再利用性という品質からではなく、 テスト容易性:EoT = Ease of Testing 変更容易性 :EoC = Ease of Change という2つの概念が(現代的な)オブジェクト指向設計の焦点であることを、 この連載では議論していくつもりである。今回は、この2つの鍵概念と、ソフト ウェア品質の関係を上位から考えてみる。 「ISO/IEC9126」では6つのソフトウェア品質特性が定義されている。 機能性:ユーザ要求を満足する一連の機能 信頼性:一定の期間・条件下での所定性能を維持する能力 使用性:分かりやすさ、使い勝手の良さ 効率性:一定条件下での性能・資源効率 保守性:変更、修正のしやすさ 移植性:別環境への移しやすさ この中で、「保守性」に注目したい。その他の品質特性は、この「保守性」に 依存している、ということはできないだろうか?ソフトウェアは常に変更にさ らされている。Bertland Meyerは、品質を内部品質と外部品質に分け、外部品 質の達成のためには、内部品質が必要だと言った。私は、2004年のソフトウェ ア開発という文脈では、内部品質であるこの「保守性」にフォーカスすること が最も重要だと考えている。 保守性には、以下の副品質特性がある。 解析性:障害や改訂の対象箇所の識別しやすさ 変更性:実際の改訂、障害除去のしやすさ 安定性:改訂時の予期せぬ影響の出にくさ 試験性:改訂時の妥当性検証のしやすさ この中で、解析性、変更性、安定性は EoCに、試験性は、EoTにあたる、と言い たい。ここまでの議論で、すべての品質特性の依存先を、EoCとEoTに向かわせ ることができた。そこで、「よい品質のものを作るには、結局EoCとEoTが大事 なんだ」と言うのがこの議論の結論だ。 特に、XPでは初期イテレーションを除けば、開発イテレーションはすべて保守 フェーズだと捕らえている。現代的ソフトウェア開発においては、「保守」す なわち進化型設計が中心にあり、そこで重要なのは EoC(変化を受け入れるこ と)とEoT(テスト)なのだ。 |
||||
ISOの品質特性とEoT/EoC
|
||||
つづき |