1、软件生命周期
需求分析--->概要设计--->详细设计--->编码--->测试--->验收
2、软件生命周期模型
(1)瀑布模型
是最早提出的软件开发的过程模型。将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,从系统需求分析开始知道产品发布和维护,每个阶段都会产生循环反馈,项目开发进程从一个阶段“流动”到下一个阶段。
缺点:①瀑布模型强调时间顺序的严格执行。前阶段不完成,后阶段不开始。
②将测试放在了编码之后。没有体现出测试贯穿软件生命周期的原则,可以避免需求类的问题一直延续到代码完成才暴露或者被发现,所以软件测试需要从一开始的需求阶段就参与到其中了。
③不适应用户需求的变化。
优点:①为项目提供了按阶段划分的检查点
②当前一阶段完成后,只需要去关注后续阶段
(2)快速原型模型
可以模拟操、简单运行的模型。典型工具是:Axure
(3)增量模型
把软件分割成独立的模块,分批次地完成和交付。每次更新会增加新功能或修复bug。
缺点:需要打破原有的软件结构和框架,可能会带来一定的风险。一般会和迭代模型一起运用。
(4)迭代模型
强调开发的深入、优化,是一次完整地经过所有工作流程的过程:需求分析、设计、施舍和测试工作流程,降低了产品无法按照既定进度进入市场的风险,加快了整个开发工作的进度,更容易适应需求的变化。
(5)螺旋模型
是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。它引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失,更适合大型的昂贵的系统级的软件应用。