名词百科
什么是软件生命周期(SDLC)?
一句话定义
SDLC(Software Development Life Cycle,软件生命周期)是软件从需求产生到退役的完整过程,通常划分为规划、需求、设计、开发、测试、部署、维护七个阶段。
它到底是什么
SDLC 描述的是阶段的划分,不是具体的执行方式。同一套阶段,可以用瀑布线性推进,也可以用敏捷迭代循环——阶段本身不变,变的是每个阶段的时长和重复次数。
它的实用价值在于定位成本:缺陷发现得越晚,修复代价越高。需求阶段的一句话歧义,到维护阶段可能要改数据结构、迁移历史数据、重跑回归测试。
怎么运作的
规划:可行性、预算、范围初判。产出项目章程。
需求:收集并确认功能与非功能需求(性能、安全、兼容性)。非功能需求最容易被漏,也最贵。
设计:架构、数据模型、接口、界面。产出可评审的设计文档。
开发:编码与单元测试。
测试:功能、集成、性能、安全、验收。
部署:上线、数据迁移、回滚预案。
维护:缺陷修复、功能迭代、性能优化,直到系统退役。这一阶段通常占生命周期总成本的最大份额。
容易混的几个概念
- 瀑布模型:SDLC 的一种线性执行方式。
- 敏捷 / Scrum:SDLC 的一种迭代执行方式。
- DevOps:聚焦开发与运维衔接的实践集合,不是阶段划分。
- 产品生命周期:指产品从上市到退市,范围比软件生命周期更宽。
常见问题
SDLC 一定要按七步走吗?
阶段划分可以按项目特点调整,但每个阶段的产出物不能省。小项目可以把设计与需求合并成一份文档,却不能跳过——省掉的评审会在测试或上线时以更高成本补回来。
维护阶段为什么成本最高?
因为它是唯一持续发生的阶段,且要应对外部环境变化:依赖升级、浏览器与系统更新、安全漏洞、业务规则调整。开发是一次性投入,维护是长期支出。
A 交付方式 · 同组词条
敏捷开发敏捷开发是一组以短周期迭代、持续交付可用软件为核心的开发方法,Scrum 是其中应用最广的一种框架。它们共同的前提是接受需求会变化。驻场开发驻场开发是开发人员到客户现场办公的交付方式,远程协作则是团队分散在不同地点通过网络协同。两者的差别在于沟通密度与知识传递方式。MVPMVP(Minimum Viable Product,最小可行产品)是用最小功能集验证核心假设的产品形态。它要验证的是「有人愿意为这个解决方案付费」,而不是展示完整的产品构想。技术栈技术栈是构建一个软件系统所使用的一系列技术的组合,通常包括前端框架、后端语言与框架、数据库、中间件、部署环境等层次。买断买断是一次性付费获得软件永久使用权(或含源码)的交付方式;订阅是按周期付费获得使用权的模式。两者的差别在于是否拥有程序副本。技术债务技术债务是为了短期交付速度而在代码质量或设计上做出的妥协,它会在后续迭代中以更高的修改成本偿还。这个概念由 Ward Cunningham 提出,借用金融债务的比喻。源码交付源码交付是软件开发方把源代码及其相关资产移交给客户的行为。它决定了客户在合同结束后能否自行修改、部署和继续维护系统。开源系统开源系统是源代码公开、允许他人使用、修改和再分发的软件。开源不等于免费,也不等于可以随意商用——具体权限由许可证决定。