Inżynieria oprogramowania nie zajmuje się tylko samym programowaniem, ale tworzeniem programów. Traktuje programy jako produkty (tak jak inne rzeczy w sklepach) i tak też podchodzi do ich wytwarzania. Powstawanie programu (albo szerzej: jego cykl życia) według tzw. modelu kaskadowego dzieli na fazy:
Faza strategiczna
Polega na podjęciu decyzji dotyczącej tego, co pisać.
Faza określania wymagań
Polega na określeniu wymagań, jakie ma spełniać program.
Faza analizy (modelowania)
Polega na określeniu, jak program ma działać, żeby spełniał postawione mu wymagania.
Projektowanie
Polega na zaprojektowaniu implementacji programu, czyli zaplanowaniu, jak będzie
wyglądał jego kod (podział na moduły, klasy, funkcje itp.).
Implementacja
Polega na napisaniu programu - to jest sedno programowania.
Dokumentacja
Odbywa się równolegle z innymi fazami i polega na sporządzeniu dokumentów opisujących
tworzony program.
Testowanie
Polega na znalezieniu i usunięciu błędów.
Instalacja
Polega na przekazaniu systemu końcowemu użytkownikowi.
Konserwacja
Polega na dalszym poprawianiu programu, pisaniu kolejnych wersji itp.