Rozwój, utrzymanie, cykl życia oprogramowania