ソフトウェアのライフサイクルと
開発工程

■ソフトウェアのライフサイクル

ソフトウェアを開発するにはさまざまな工程が必要になり、それらの工程をまとめて
ライフサイクルと呼びます。
pgtheory_0004

■要求定義と要件定義

開発初期に要求定義要件定義で仕様のすりあわせをしっかりと行い
目的のソフトウェアを開発するために必要なことを分析し作業を明確にする必要があります。

●要求定義
	要求定義とはクライアントの~がしたい、~がやりたいことをまとめる作業のことです。
	これは「できる、できない」は抜きにして単純に開発してほしいソフトウェアの
	内容がまとめられています。

●要件定義書とは
	要求定義書を受けて実現に向けて開発側が必要な機能や課題等をまとめたものです。
	
要求定義と要件定義には予算とスケジュールも決めることがあります。
もし、機能実装のために必要なシステム、ミドルウェアがあれば、
開発のために必要ということを要件定義を通してクライアントに伝える必要があります。

■設計

設計とはソフトウェアを開発上で必要な機能をまとめたもので
コンピュータを意識しない外部設計と開発者に向けた内部設計があります。

●外部設計
	外部設計は要件定義と内部設計の中間に位置する作業で
	利用者から見てシステムがどのように動作するかを決めていきます。
	具体的には操作画面や操作方法、どのような画面遷移をするかなどです。
		
●内部設計
	内部設計は外部設計と実装の中間に位置する作業です。
	外部設計で決まった機能や操作、表示方法をプログラムやシステムを使用して
	どのように実現するかを具体的に決定していきます。

■実装

実装は設計で決まった内容をプログラム言語を使用してコーディングしていきます。

■テスト

テストは実装で作成したプログラムがクライアントの要求どおりに
動作しているかを確認するためのものです。
テストに機能単位で行う単体テストや複数の機能をつなげて行う結合テストなどがあります。
テストで発見された不具合のことをバグと呼び、バグを取り除く作業のことをデバッグといいます。

■運用・保守

テストを通過し、クライアントに納入されて実際に使用されることを運用といいます。
また、運用中に発生したバグを直したり、アップデート作業を行うことを保守といいます。

■プロジェクト管理

ライフサイクルをスムーズに行うための活動をプロジェクト管理と呼ばれ
決められた予算と期間内にプロジェクトを終了させるために重要視されています。