这篇把三个常被混着说的概念捋一遍:软件开发生命周期(SDLC)、瀑布模型、敏捷开发。搞清楚它们的包含关系——SDLC 是过程本身,瀑布和敏捷是不同的组织方式。
软件开发生命周期 SDLC
SDLC(Software Development Life Cycle)是计划、开发、测试、部署这些环节的集合,按阶段依次是:
- 需求分析:承接公司或客户提出的需求,收集信息、评估预算与收益、明确目标;
- 设计:确定系统架构和验收状态(要做成什么样、有什么功能),产出项目计划,可用图表、布局或文档表达;
- 实现:项目经理分配任务,开发者按设计阶段定义的目标写代码,周期视项目复杂度而定;
- 测试:功能测试、代码测试、压力测试等;
- 进化:根据使用情况做功能修改、bug 修复、功能新增等持续维护。

瀑布模型
瀑布模型源自制造业,是最早也最常见的开发模型:流程单向流动,像生产线。它诞生之初没有其他模型可选,很多事只能靠开发人员猜着做,因此只适合简单软件,已经不适台现代项目的分发场景(原文如此——意思是复杂需求下难以为继)。

优势:简单易用、好理解,一个节点完成后只需关注后续阶段,天然形成按阶段的检查点。劣势:阶段划分完全固定,阶段间产生大量文档,工作量增加;模型是线性的,用户要到末期才能见到成果,开发风险被放大;最突出的缺点是不适应用户需求的变化。
敏捷开发:迭代加增量
敏捷开发(Agile Development)的核心是迭代开发与增量开发。迭代是把传统的一个大周期(比如一年)拆成多个小周期,每次小开发走同样的流程;增量是每个版本都交付一个用户可感知的完整功能,按新增功能划分迭代。合起来的结论:敏捷开发是增量迭代式开发,每次迭代周期内都是一次完整的生命周期。

迭代并不等于省略流程:每次迭代仍是一个完整的软件开发周期,必须按工程方法论做正规流程管理。
敏捷的好处
两条:一是早期交付,第一个可用版本很快见天日,成本随之下降;二是降低风险,持续贴近市场需求,减少产品做出来的那天已经不适用的风险。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















暂无评论内容