瀑布模型
特点:线性结构,由前至后,互相连接,逐级下落。
优点:易于理解,阶段清晰,便于管理跟踪控制。
不足:早期阶段要求用户需求明确完整,开发过程可逆性差,开发过程中的问题容易累积扩散。各个阶段的划分是完全固定的,因此需要大量的文档(也有一种说法,该模型是由文档来驱动的),工作量大。
适用范围:
- 开发过程中需求变化小或者无变化。
- 开发环境稳定。
- 低风险项目。
快速原型模型
特点:快速构建可执行版本,实现用户部分需求,在用户进行试用后,根据该版本来提出修改意见或者变更需求,根据新的需求再进行开发。
优点:容易适应需求的变化,降低开发风险。
不足:在该模型中,每次开发的版本一旦确定了用户需求,该版本往往会被抛弃不用,因此快速开发原型软件是开发的重点。
适用范围:
- 需求不明确。
- 用户容易变更需求。
增量模型
特点:以线性开发的方式完成第一构件(增量),在第一增量中,完成软件最核心的功能,并进行测试交付,完成第一构件后,再在原软件基础上,根据需求进行改进开发,交付下一版本(下一增量)。在该模型的开发过程中,要特别注意接口的定义,以便后续版本对此进行更改拓展。
优点:
- 短时间内可以向客户交付具有核心功能的产品。
- 在后续增量中可以逐步增加功能来完善产品交付客户,降低了开发风险。
- 开放性的结构可维护性更好。
不足:
- 容易退化为边做边改模型,软件控制过程失去整体性。(即软件结构越改越糟)
- 在增量中,可能会出现和之前相交部分,从而出现冲突或者冗余。
适用范围:
- 系统易于拆分
- 开发人员少
- 比较适用于商业软件
螺旋模型
特点:重视风险分析,渐进式开发,开发过程分为几个螺旋周期,每个周期与呈线性结构,分为4个工作步骤:
- 制定计划。分析需求,确定目标,明确开发限制条件。
- 风险分析。分析方案的风险,并消除风险。
- 实施工程。进行软件开发。
- 用户评估。用户对现阶段开发工作进行评价,提出修改建议,并建立下一周期的开发计划。
优点:该模型开发过程以风险驱动,强调风险分析。且设计上较于瀑布模型更加灵活,可以在项目的各个阶段进行更改。客户参与每个阶段开发的评估,使项目开发过程的可控性更强。
不足:
- 建设周期长,可能会出现开发完成后,与当前技术水平相差较大的情况。
- 这种模式强调风险风险,而要求多数客户相信风险风险并作出相关反应并不容易。
- 对开发人员寻找风险和分析解决风险的要求高。
适用范围: 庞大,复杂且高风险系统的开发。
喷泉模型
特点:以用户需求为动力,对象为驱动的模型,在该模式中,因为是以对象为主体,因此各个活动没有明显的便捷,软件的某个部分常常被重复工作多次,相关对象在每次迭代中最值加入渐进的软件成分。
优点:各个阶段之间没有明显的界限,因此开发可以同步进行,提高开发效率,节省开发时间。
不足:开发过程中人员需求量大,不便于项目管理,文档管理严格,审核难度加大。
适用范围:面向对象的软件开发过程。
来源:CSDN
作者:WILKlk
链接:https://blog.csdn.net/qq_38891385/article/details/104543259