software life cycle process / ソフトウェアライフサイクルプロセス
ソフトウェアが最初に構想・企画され、開発・導入・運用を経て、最後に使用が終了するまでの過程のこと。ソフトウェアプロセス(注1)の全体像を示す。
ソフトウェアを導入・利用するに当たって、どのような段階(作業や役割)があるのかを表すもので、ソフトウェア開発や運用のプロセス管理を行う際には、最上位の管理概念として重要である。ソフトウェア工学(注2)においても最も基本となる概念の一つである。
ライフサイクルプロセスの考え方は、1970年にウィンストン・W・ロイス(Dr. Winston W. Royce)が著した論文『Managing the Development of Large Software Systems』に始まるとされる。この中でロイスは大規模ソフトウェアの開発を「システム要求」「ソフトウェア要求」「分析」「プログラム設計」「コーディング」「テスト」「オペレーション」のステップが連なるものとして説明した。これが後に「ライフサイクルプロセス」「ウォーターフォール・モデル」と呼ばれる(※)ようになる。
※ この論文では「ライフサイクル」「ウォーターフォール」という語は使われていない
工程がシーケンシャル(順次)に進んでいくウォーターフォールはソフトウェアライフサイクルプロセスの基本形だが問題点も指摘されるようになり、工程の粒度や実行順序に改良を加えた反復型開発やアジャイル開発が登場している。また、ソフトウェアライフサイクルプロセスにおける業務を網羅・詳細化した標準規格として、ISO/IEC 12207/JIS X 0160や共通フレームがある。
(注1)ソフトウェアプロセス
(注2)ソフトウェア工学
▼『共通フレーム2007――経営者、業務部門が参画するシステム開発および取引のために』 情報処理推進機構 ソフトウェア・エンジニアリング・センター=編/オーム社/2007年10月
▼『ソフトウェア開発――55の真実と10のウソ』 ロバート・L・グラス=著/山浦恒央=訳/日経BP社/2004年4月(『Facts and Fallacies of Software Engineering』の邦訳)
Copyright © ITmedia, Inc. All Rights Reserved.