プロセスモデル

■プロセスモデル

プロセスモデルとはソフトウェア開発をいかに効率よく行うかという
観点から考えられた開発方法のことです。
プロセスモデルのウォーターフォール、プロトタイプ、スパイラルモデルを紹介したいと思います。

■ウォーターフォールモデル

	
ウォーターフォールモデルとはシステム開発工程をいくつかに分け、
段階を追って開発を進めていく方法です。
上から下へ工程が実行されるという流れが滝から水が上から下へ流れ落ちる様子と同じということで
ウォーターフォールと呼ばれています。

pgtheory_0005

ウォーターフォールのメリット、デメリットは次のようなものがあります。
	メリット:
		・開発方法として単純なので理解しやすい
		・工程管理がやりやすい
		・各工程で仕様書を作成するので、開発履歴がはっきりする
		・工程ごとの区切りが明確で、作業内容も把握しやすいためテストがしやすい

	デメリット:
		・大規模で複雑な開発を開発初期の要求、要件定義で明確にするのが難しい
		・開発初期に仕様を決定し、その内容で進行するので
		 開発途中に仕様変更があった場合修正が難しく、最悪開発をやり直すことになる
		・各工程ごとで資料を作成するので資料が膨大になり管理が難しい

ウォーターフォールモデルの開発は初期仕様と開発中の仕様の差が大きければ大きいほど
開発工程の遅延が発生しやすくなります。
デメリットの箇所にも記述していますが、大規模で複雑な開発の仕様を開発初期に明確にするのは
難しく仕様の誤差もでやすいです。

■プロトタイプモデル(プロトタイピングモデル)

プロトタイプモデルは開発初期にプロタイプ(試作品)を作成しクライアントに
体験してもらいます。その結果を要求仕様に反映させ、設計、実装を行う開発方法です。
プロトタイプ(試作品)を使用した開発方法からプロトタイプモデルと呼ばれています。
開発するプロトタイプは2種類あり試作目的のためだけに作成されたプロトタイプを使い捨て型、
実際の開発で使用することを前提に作成されたプロトタイプを改良型(積み上げ型)といいます。

pgthory_0006

プロトタイプモデルのメリット、デメリットは次のようなものがあります。
	メリット:
		・クライアントの意見を早めに取り入れられることができるので
		 クライアントと開発側のシステムに対する認識の齟齬を少なくすることができる
		・プロトタイプ作成によってシステムのイメージを明確にすることができる

	デメリット:
		・クライアントとの意見の調整が上手くいくまで開発が進まない
		・プロトタイプの作成で時間をとられると全体の開発期間に影響がある(長くなる)

プロトタイプは試作品を作る必要があることから小規模のシステム開発に適しています。

■スパイラルモデル

スパイラルモデルはウォーターフォールとプロトタイプモデルを合わせた開発方法です。
システムを一気に開発するのではなく、独立性の高いシステムごと分割します。
そのシステムをウォーターフォールモデルで開発し、完成した成果物をプロトタイプとして
クライアントに確認してもらいます。その評価によっては要求定義からやり直します。
完成されたシステムは別のシステムと統合して徐々にシステムを大きくしていきます。

pgtheory_0049

スパイラルモデルのメリットとデメリットは次のようなものがあります。
	メリット:
		・仕様変更にも柔軟に対応できる
		・システムを分割するのでリスクを分散させることができる
		・クライアントの要求が反映されやすく最終実装が要求と剥離しにくい

	デメリット:
		・各システムごとに「設計」「実装」「テスト」を繰り返すことになるので
		 全体の開発期間やコストの見積もりに問題が出る可能性がある。