软件生命周期(SLC)是软件组织中软件项目遵循的过程。它由详细计划组成,描述了如何开发,维护,替换和更改或增强特定软件。生命周期定义了一种用于提高软件质量和整个开发过程的方法。 系统开发生命周期由许多明确定义的不同的工作阶段组成,系统工程师和系统开发人员使用这些阶段来计划,设计,构建,测试和交付信息系统。像在装配线上生产的任何产品一样,SLC 的目标是根据客户的要求,通过在预定的时间框架和成本估计内交付系统,通过每个明确定义的阶段,生产出满足或超过客户期望的高质量系统计算机系统是复杂的,而且经常 (特别是随着面向服务的体系结构的兴起) 连接可能由不同软件供应商提供的多个传统系统。为了管理这种级别的复杂性,已经创建了许多 SDLC 模型或方法,例如瀑布式,螺旋式,敏捷软件开发,快速原型制作,增量式以及同步和稳定化。 软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。
软件的生命周期有问题定义、需求分析、设计、开发、测试、维护等阶段。
1、问题定义 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2、需求分析 该阶段对软件需求进行更深入的分析,划分出软件需要实现的功能模块,并制作成文档。需求分析在软件的整个生命周期中起着非常重要的作用,它直接关系到后期软件开发的成功率。在后期开发中,需求可能会发生变化,因此,在进行需求分析时,应考虑到需求的变化,以保证整个项目的顺利进行。
3、软件设计 该阶段在需求分析结果的基础上,对整个软件系统进行设计,如系统框架设计、数据库设计等。
4、软件开发 该阶段在软件设计的基础上,选择一种编程语言进行开发。在开发过程中,必须要制订统一的、符合标准的程序编写规范,以保证程序的可读性、易维护性以及可移植性。
5、软件测试 该阶段是软件开发完成后对软件进行测试,以查找软件设计与软件开发过程中存在的问题并加以修正。软件测试过程包括单元测试、集成测试、系统测试 3 个阶段;测试的方法以黑盒测试、白盒测试或者两者结合的形式进行。在测试过程中,为减少测试的随意性,需要制订详细的测试计划并严格遵守;测试完成之后,要对测试结果进行分析并对测试结果以文档的形式汇总。
6、软件维护 软件完成测试并投入使用之后,面对庞大的用户群体,软件可能无法满足用户使用需求,此时就需要对软件进行维护升级以延续软件的使用寿命。软件的维护包括纠错性维护和改进性维护两个方面。软件维护是软件生命周期中持续时间最长的阶段。