ウォータフォール型開発プロセスは、前工程で得られた中間成果物を確定・固定化した後に、それを前提として該当する工程の作業を行う方式です。前工程での誤りが、後工程に持ち込まれると手戻り(フィードバック)を生じ、全体の工数も増加してしまうことになります。「ウォーターフォール型」という名前の由来も、工程を進めるということを、滝を下ることに見立てているところにあります。滝を逆に登るのが大変であることも、手戻りのコストが高いということをうまく表しています。 仕様化、システム設計、モジュール設計、プログラミングのそれぞれの工程の正しさを、出来上がった成果物=プログラムに照らし合わせて確認する工程がテスト工程です。このことをよりわかりやすく表したのが、「V字モデル」です。 ウォータフォール型開発プロセスをV字モデルによって解釈することによって、旧来の開発プロセスの欠点が明らかになります。それは、最初に行った意思決定の正しさが最後にならないとわからないことです。 V字モデルは、各工程が左側から右側へ時間的な順序を表わしていると見なせばウォータフォール型開発プロセスになりますが、時間的な関係を捨象してしまえば、段階的モデル(Incremental Model)や進化型モデル(Evolutionary Model)などの説明のモデルとしても使用することができるようです。 V字モデルの工程の個数や名称にさほど意味があるわけではありません。そこで、簡潔に、象徴的に以下のように表わすことにします。 Rは要求(Requirements)、Iは実現(Implementation)、Tはテスト(Test)を表わしています。「実現」とは実行可能なコード、および、そのコードを構築するための設計、さらに、その設計を確認するための内部テストも含みます。「要求」は実現されたコードの作用の対象となる実世界の現象に対する要望や願望です。その一部がコードに対する仕様に対応しています。「テスト」とは、「実現」が「要求」を満たしていることを、コードを実行することによって確認することです。 非常に簡単に言えば、Rという期待を持ち、Iを実行させ、Rの期待通りかどうかをTによって確かめるということです。 |