★初めに★
ソフトウェア開発における代表的な手法には、ウォーターフール開発とアジャイル開発というものがあります。今回は、ウォーターフール開発について紹介したいと思います。
★ウォーターフール開発★
本来、ウォーターフール開発における作業工程は、以下の8つの工程に分割されます。
1.要求定義 2.基本設計 3.詳細設計 4.実装 5.単体テスト 6.結合テスト 7.総合テスト 8.導入
ウォーターフール開発では、一つの工程を確実に遂行してから次の工程へと進めます。該当の開発手法は、アジャイル開発と違い、一つの工程を確実に終わらせなければ次の段階へと進めません。再度、作業工程段階で、ミスが発生することを極力防ぎ、作業を1からスタートさせることは視野に入れていません。そのため、作る成果物がはっきりと決まっている場合や大規模なシステム開発などに向いている手法と言えます。
★作業工程の概要★
1.要求定義
顧客がどういうシステムを制作してほしいのかについてヒアリングする作業。保存するデータの種類やデータの保存場所、システムを作る目的や機能について決定します。
2.基本設計
要求定義の内容をシステム化するための方法をまとめたものです。
3.詳細設計
基本設計書を更に具体的に記述した設計書です。
4.実装
設計書を元に実際にプログラミングをして、機能を組み込みます。
5.単体テスト
プログラミング後にバグがないかを検査し、バグが検出されたら修正作業を行います。
6.結合テスト
複数のモジュールを結合させて、機能が正常に動作しているかのテストを実施します。
7.総合テスト
システムとして完成したかどうかをテストします。
8.導入
実際にシステムを稼働させます。
以上の流れが一般的な開発工程の流れです。要求定義の段階で、ヒアリングミスが起こると、全体的に影響が及びますので、開発工程の土台となる仕事といえます。
★メリット/デメリット★
★終わりに★
ウォーターフォール開発では、無駄な時間を省き、効率的に高品質なシステムの完成を視野に入れています。しかし、各工程にて、ミスが発生すると、最初から作業を進めることになるため、変化に柔軟に対応することが難しい手法と言えます。そのため、日々の変化が激しい現代社会において、ウォーターフォール開発のメリットが十分生かせない状況となっております。ウォーターフォール開発に向いているシステムもありますので、一番大切なのは、作りたいシステムの内容をはっきりと決めることが重要であると思います。