软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。旧的解释是周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
随着新的面向对象的设计方法和技术的成熟,早期软件生命周期设计方法的指导意义正在逐步减少或需要调整。 不过从另一种意义来说,面向对象本身也是一种软件生命周期,传统的软件生命周期的概念仍是所有软件工程师非常重要的知识基础和工作指导。
软件生命周期的解释也应当调整。
以上旧的解释与下文的生命周期模型是不相容的,只与瀑布型生命周期模型及其衍生模型(比如V模型,W模型)相符合,而与迭代为基本特征的生命周期模型是不符合的。新的情况应当是把迭代加入到阶段当中,如下:软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。