ウォーターフォールモデルは、ソフトウェア開発者が多く使用するプロジェクト管理手法の一つです。他の手法と同様に、このモデルにはメリットやデメリットがあります。この記事では ウォーターフォールモデルに関して調べましょう。
目次 |
1.ウォーターフォールモデルとは?
ウォーターフォールモデルとはシステム開発の手法の一つです。ソフトウェア開発の順番で、一つ一つのフェーズを完了させて進めていくというシステム開発モデルです。
2.ウォーターフォールモデルに向いているプロジェクト
ウォーターフォールモデルでは、仕様変更をしないように、要件定義はしっかりしないといけないです。要件定義のどおりにプロジェクトを進めれば、開発途中のリソースなどの管理もしやすいため、スケジュールのズレも削減できます。そのため、規模な大きなプロジェクトに適しています、また同じ理由のため、高い品質が求められるプロジェクトにも適しているでしょう。
3.ウォーターフォールモデルのメリット
メリット 1 : 全体的な計画を立てやすいです。
ウォーターフォールモデル開発は、全体的な計画を立てやすいのが最大のメリットがあります。プロジェクトのスタートの時に要件を定義し、詳細に落とし込んでいくので、最初にやるべき事項を洗い出してスケジュールを立てられます。
メリット 2 : 高い品質を保ちやすいです。
ウォーターフォールの開発工程では、機能テストや結合テストを繰り返す下流工程があるため、品質を保ちやすいこともメリットの一つです。短期間で納品して、あとから修正や品質を整えていくアジャイル開発と比べると、ウォーターフォールで開発されたものは高品質で納品できます。
メリット 3 : プロジェクトの進捗を管理しやすいです。
ウォーターフォールモデルでは、要件定義で必要なタスクを洗い出し、設計、テストを行います。行うべきタスクが明確になっているため、進捗を管理しやすいです。
4.ウォーターフォールモデルのデメリット
デメリット 1 : 途中の仕様変更に対応しにくいです。
プロジェクト全体の流れやすべての工程が最初から決まっているため、仕様変更がある場合に対応しにく、また仕様変更による工数も増加します。
デメリット 2 : ユーザーの意見を取り入れにくいです。
実際の開発が始まってからは仕様の変更を行いにくいため、途中でユーザーの意見を取り入れることがかなり難しいことです。ウォーターフォールモデルで開発を進めるときは、要件定義のフェーズでユーザーの意見を把握し、要件漏れがないようにすることが大事です。
5.ウォーターフォールモデルの工程(流れ)
システム開発は、実施するチームによって細かい工程が異なりますが、ウォーターフォール開発では、一般的に以下のような流れとなります。
5.(1). 要件定義(要求定義)
ウォーターフォールモデルにおける開発システムは要件定義というフェーズから始まります。システム開発を依頼する側や開発する側は打ち合わせを行い、システムの性能・機能や運用方法などの「要件」を決定します。このフェーズには、開発する側が要件定義の認識を合わせることが非常に重要です。
5.(2).基本設計
システム開発では要件定義フェーズで決定された事項を具体化するフェーズです。主な設計内容としては:ハードウェア、データベース、ソフトウェアの選定、データベース設計、テーブル設計などです。
5.(3).詳細設計
次は、基本設計フェーズで決定された事項を画面単位、帳票単位、プログラム単位などより詳細に機能分割して設計するフェーズです。例えば:画面、帳票のレイアウト及び機能設計、バッチ処理(自動実行処理)の設計などです。
5.(4).プログラミング
詳細設計で決定事項に基づいて、プログラミング言語を用いて、システムを構築する工程となります。ほとんど、プログラミングや次のフェーズでの単体テストを同時に行う場合が多いです。
5.(5).単体テスト
プログラミング工程が完了すると、実際に構築したプログラミングが作動するかテストします。テストの中で不具合があった場合はプログラマに不具合の内容を伝えて修正して再テストを実施します。
全てのテスト項目が完了すれば、次の結合テストフェーズに移ります。
5.(6).結合テスト
この工程では、各モジュールを結合してテストを行い、画面遷移やデータの受け渡しなど、画面・プログラム・サブシステム間の連携が正しく行われているかどうか確認します。
5.(7).総合テスト(システムテスト)
この工程では具体的に、ユーザーが要求する機能や性能を満たしているかテストします。また、処理速度や大量アクセスなどもテストします。
5.(8).運用テスト
システムテストの工程に問題が無ければ、最後に運用テストを実施します。運用テストでは実際にユーザーに使用してもらい、要求機能を満たしているか、操作感はスムーズか確認してもらうフェーズです。
5.(9).リリース
全てのテストをクリアすると、完成したシステムを本番環境にリリースする工程となります。
5.(10).運用・保守
このファイズはシステムを使用し続ける過程で、何かの不具合が生じる場合もあり、システムを効果的に活用し続けるために、常にシステムを監視し、不具合が生じたときにはすぐに修正する必要があります。
6.まとめ
上記はウォーターフォールモデルに関して解説しました。特徴があるため、すべてのプロジェクトがウォーターフォールモデルに適用できるわけではありません。
ヨパーズではで、ウォーターフォールモデルのデメリットや流れについてしっかり理解し、また、このモデルの開発にも多く経験が持っているため、開発したいプロジェクトがウォーターフォールモデルに適しているかどうかまだ悩んでいる方はご相談ください。