システムを開発するには、ある一定の手順が確立されています。一般的には次のような手順を踏むことでシステムを開発していきます。
これらは開発モデルによってどのように施行されていくかは変わります。ウォーターフォールモデルのように上から順番に施行していき、後戻りが許されない場合もありますし、ラウンドトリップのように何度も要求定義とプログラミングを行き来する場合もあります。しかし、上記の手順を飛ばして次のステップに移る開発モデルは存在しえません。例えば、要求の定義を行わずにプログラミングはできませんし、プログラミングをしていないのにテストを行うことはできません。
上記の手順の内部設計より下の項目は「下流工程」と呼ばれ、それより上の項目を「上流工程」と呼びます。これらは上等か下等といった優劣の差ではなく、システムの完成という地点から見て近い位置にあるのか、遠い位置にあるのかの差と捉えたほうがよいでしょう。一般的には上流工程の、特に要求仕様の作成はシステム開発において大きなウェイトを占める工程だとされています。
手順のそれぞれの詳細については別のページを参照してください。