プログラミ開発には、ウォーターフォールという形があります。プログラム開発で主に使われるまさに王道と呼ばれるような開発手法です。
開発をフェーズに区切り、一つずつ工程を移していく手法で、関わる人数が多くなればなるほどこのような形に落ち着く傾向にあります。管理が楽になるからですね。
では、この手法について見ていきましょう。
目次
ウォーターフォールの各種フェーズ
1.要件定義
システムが持つべき大まかな機能や、開発に関わる人員などを決定するフェーズです。
このフェーズはプロジェクト全体に比べてごく少数が関わることになります。
2.基本設計
機能を実現するための手法を大まかに決めます。要件定義で大まかに実装のイメージがあるかもしれませんが、このフェーズでシステムの構成や設計手法なども含めて決めていきます。
基本設計を行うと、システムの大枠が見えてくるようになります。
3.詳細設計
基本設計で決めた構成を更に落とし込んで行きます。主にプログラミング観点で設計が行われ、クラス設計図や正常系、異常系の処理についてもこのフェーズで決めることになります。
4.実装
実装を行い、大まかにうまく動いているのか開発者が確認します。
5.単体テスト
単体テストを行います。作った機能が単体レベルで動作するのかを評価します。
評価結果のエビデンスが必要になる場合が多く、実装担当者とテスト担当者を分けるケースもあります。
6.結合テスト
各機能を連携させて、一連の流れをテストします。A->B->Cの流れが正常に動くのかを確認します。
評価結果のエビデンスは必須になり、実装担当者とテスト担当者は分けます。
7.総合テスト
製品として必要な機能が全体を通して動作するのか確認します。
8.受け入れテスト/運用
本番環境で動作確認を行い、運用を開始します。
ただ、、、この形式で運用を行ってうまくいくケースはほぼ有りません。
プログラミングは想定外の出来事が必ず起こるので、期限が過ぎてしまいます。
この手法でうまくいくケースは経験上かなり少ないです。
まとめ
ウォーターフォールで定義される各種フェーズを書いてきました。
ただ、このフェーズを守る運用を続けていくことは難しいので、知識として覚えておく程度に留めておくと良いでしょう。