前稿でソフトウェア工学は「ソフトウェアの開発・運用・保守に対する系統的で統制され定量化可能な方法」と説明しました(IEEEの定義ですが…)。
この定義で、ソフトウェア工学の対象範囲がシステムのライフサイクル全体をカバーしている事は解りますが、具体的には何が視野に含まれているのかを以下に概説します。
ソフトウェア工学が扱う対象物は「プロセス」と「プロダクト」です。
・プロダクト…エンジニヤリングの過程で作り出される中間製品や文書を含めたすべての成果物を指す
・プロセス…プロダクトを生み出す工程を指す
ソフトウェア工学では、「ソフトウェアのライフサイクル」という概念に基づいて、プロセスを整備する事に重点を置きます。
ここで、ライフサイクルは一般的な用法通り、ソフトウェアの誕生~消滅までの全過程を意味します。
また、プロセスを整備する目的は、
a)標準的な作業手順を定めて作業者をガイドする事、
b)開発作業を管理する仕組みを組み立てる事、
c)使用するツールや環境などを決めるための指標を提供する事、にあります。
ソフトウェアのライフサイクルにおける開発フェーズに対応する開発プロセスには下記の様なモデルがあり、プロジェクトの特性や適用フェーズに応じて使い分けられています。
a)落水型モデル(ウォーターフォールモデル)
b)プロトタイピング型モデル
c)逐次進化型モデル
また、ベンダー各社からこれらのモデルに対応した開発手順論や開発ツールが提供されています。
次稿では、ウォータフォール型モデルを例にとって内部過程とその(上級SEにとっての)留意点を概説していきます。