ウォーターフォール/アジャイル

ウォーターフォール/アジャイル

ウォーターフォールとは

従来の要件定義 → 設計 → 製造 → テストの順番で作業する開発手法は、ウォーターフォールモデルと呼ばれています。
ウォーターフォール(Waterfall)とは「滝」を意味する英単語であり、決められた工程を上流から下流に遂行していく開発モデルです。
ウォーターフォールモデルは、1970年に発表された論文がもとになったと言われており、従来の開発手法と比較して、スケジュール管理のしやすさや品質を担保できる点が評価され、現在でも多くの現場で採用されている開発手法です。

アジャイルとは

アジャイル(Agile)とは、「素早い」、「機敏な」という意味です。
アジャイル開発は、システムやソフトウェアの開発手法の一つであり、小単位でシステムを区切り、実装とテストを繰り返すため、従来の開発手法と比較してスピーディに開発を進められます。
「開発期間が短い」「手戻り作業のリスクが抑えられる」といったメリットがあります。

【図1】ウォーターフォール/アジャイルの比較

スクラム

スクラムとは、アジャイル開発手法の中で最も採用されており、米国の技術者が1995年に提唱した、チームで仕事を進めるための方法論を指します。
スクラムとはラグビーで用いられるフォーメーションの一つであり、チームでのコミュニケーションを重要視している点が特徴です。
イテレーション(iteration)と呼ばれる1週間から2週間の小単位に分割された開発を行うため、プロジェクトの状況に応じてチームで協力して対応していくことが重要になります。

ウォーターフォール開発の進め方

要件定義 → 設計 → プログラミング → テストの流れで進められます。
 
【要件定義】
・業務要件定義
「業務要件定義」とは、要件定義の初期段階に定義される、システム化の対象となる業務に必要な要件の定義を行うことです。
 
・機能要件定義
「機能要件定義」とは、業務要件を実現する上で搭載するべき機能の定義を行うことです。
 
・非機能要件定義
「非機能要件定義」とは、業務要件を実現する上で機能面以外の要件の定義を行うことです。
 

 
【設計】

・外部設計
要件定義をもとに、操作画面や操作方法などのインターフェースを設計していく工程です。
 
・内部設計
外部設計で定められた操作画面や操作方法などのインターフェースをプログラムやシステムとして、どのように実現していくかといった、ユーザーに見えない内部の設計をしていく工程です。
 

 
【プログラミング】

設計書に基づき、プログラミングを行います。
 

 
【テスト】

実際に稼働させ、問題なくプログラムが動くのかについて以下の順番でテストします。
1.単発テスト(モジュールレベルの検証)
2.結合テスト(モジュールを結合した際の検証)
3.システムテスト(機能、非機能要件の検証)
4.運用テスト(実際の運用と同じ条件下での検証)
5.受入テスト(利用者による検証)