ウォーターフォールモデルとは?|開発手順をわかりやすく解説

古くからシステムやソフトウェア開発で用いられている、ウォーターフォールモデルという開発手法をご存知でしょうか? ウォーターフォールモデルとはその名の通り、上流から下流まで滝が落ちるように工程を進める手法です。 古くから存在している開発手法ではありますが、その分かりやすさから現在でも開発現場で用いられています。 しかしながら、

  • どのような開発手法なのか知らない
  • チャートの流れが分からない

という方もいるのではないでしょうか? そこで今回は、ウォーターフォールモデルの開発手法について、改めて解説していきます。 段階ごとに1つずつ解説しますので、ご安心ください。 この記事を読めば、ウォーターフォールモデルでの開発方法が分かりますよ。

1.要件定義(要求定義)

要件定義は開発するシステム全体の機能を、クライアントと話し合って具体化する段階です。 整理した情報をもとに、どのような機能を搭載するのかを決めて、認識に違いがないか確認をします。 この段階で認識に違いがあると、後になって手直しが発生するので、ウォーターフォールモデルにおいて重要な手順です。

2.外部設計(概要設計)

外部設計はUIのようなユーザーが実際に利用する部分の設計を行う段階で、基本設計や概要設計とも呼ばれます。 どのような機能を作成し、どのようなハードウェアやミドルウェアを組み合わせる必要があるのか、しっかりと洗い出しましょう。 操作画面や帳票などのサンプルを作成して、クライアントに見てもらって問題がないか、しっかりと確認を行います。

3.内部設計(詳細設計)

外部設計で決めた事項に基づいて、より詳細な機能を詰めていく段階が内部設計です。 通常ユーザーが目にすることはない、開発者や内部者に向けたプログラム面での設計を行っていきます。 基本設計の段階で見えていない要件や不完全なものがあれば、この段階で修正を行い仕様を確定しなければなりません。

4.プログラミング(実装)

上流工程での設計が完了後、設計書をもとにプログラミングを行っていきます。 プログラマーやエンジニアが設計書に沿って機能の実装を行っていき、基本的には共通部の作成が優先です。 たいていのケースでは、プログラミングとテストを同時並行で行っていきます。

5.テスト

プログラミングしたシステムが正常に機能するのかどうか、運用前に確認を行う段階です。 テストには大きく分けて、次の4種類があります。

  • 単体テスト
  • 結合テスト
  • 総合テスト
  • 運用テスト

アジャイル型開発はテストまで何度も繰り返しますが、ウォーターフォール型の場合はテストをしっかりと行って後戻りしないようにするのが重要です。 次にそれぞれのテストについて解説をしますので、ご覧ください。

5-1.単体テスト

単体テストでは機能単体で、エラーなく正常に動作するのかをテストを行います。 仕様書を元にテストを実施し、不具合があれば修正した上での再テストです。 簡単なテストの場合はスクリプトを作成して、自動化ツールで効率化を図ります。

5-2.結合テスト

単体テストで正常に動作した機能同士を連携させたうえで、正常に動作するかテストするのが結合テストです。 単体テストでは問題がなくとも、連携方法などに問題があればこの段階で発見されます。 業務フローを元に、実際の業務を想定しながら実施を行うテストです。

5-3.総合テスト

総合テストでは実際にシステムすべてを連結させた上で、正常に動作するか確認します。 すべてのシステムと連結してもエラーなく、正常に処理が行われるのか確認を行うテストです。 もし異常が発生してしまった場合は、前の段階に戻ってエラー箇所を修正しなければなりません。

5-4.運用テスト

運用テストでは実際の環境でユーザーに利用してもらい、問題なく動作するかどうかを確認します。 結合テストでは正常に動作していても、環境の違いによりエラーが発生してしまう可能性もあるので、特に注意しなければなりません。 また、ユーザーに利用してもらって機能や操作感などの確認も同時に行います。

6.システム移行(リリース)

すべてのテストを問題なくクリアしたならば、いよいよ新しいシステムを本番環境にリリースする段階です。 リリースする方法としては、

  • 並行稼働
  • 部分移行
  • 一斉移行

の3種類があります。 それぞれ移行時の手間やリスクが異なるので、必要に応じて最適な手段を選ばなければなりません。

7.運用・保守

リリースが完了し、運用を始めた後も正常に動作しているかどうか、保守を行う段階です。 運用中に不具合が生じた場合は、速やかに修正を行います。 また、クライアントから新しく機能要求が上がってくる可能性もあるので、必要に応じて追加開発などを行って保守しなければなりません。

まとめ

ウォーターフォールモデル開発のチャートについて解説しました。 ウォーターフォールモデルはスケジュールが立てやすい一方、手戻りのリスクが大きいといったデメリットがあります。 現在ではウォーターフォールモデル以外にも、アジャイルやスクラムなどといった手法があるので、目的に応じて適切な開発手法を選んでみてください。