软件开发模式大概有11种,如下所示:
• 边做边改模型(Build-and-Fix-Model)
• 瀑布模型(Waterfall-Model)
• 快速原型模型(Rapid-Prototype-Model)
• 增量模型(Incremental-Model)
• 迭代模型(Stagewise-Model)
• 螺旋模型(Spiral-Model)
• 敏捷开发模型(Agile-Development-Model)
• 演化模型(Evolutionary-Model)
• 喷泉模型(Fountain-Model)
• 智能模型(4GL)
• 混合模型(Hybrid-Model)
我们一般常用的为4种,分别是“瀑布模型”、“快速原型模型”、“迭代模型”、“敏捷开发模型”。鉴于11种需要的篇幅太多,这里我们我们来一一说明常用的这4种的特点。
1.瀑布模型
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
2.快速原型模型
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需 求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。
3.迭代模型
在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。
4.敏捷开发模型
敏捷开发的4个核心思想:
(1)强调面对面的沟通,人和人的相互交流胜于任何流程和工具
(2)把精力集中在可执行的程序上,可以运行的产品胜于编制综合性文档,强调了原型、模型、demo等的重要性
(3)团队合作和团队激励,合作胜于谈判,敏捷开发能将需求、开发、测试等全部团队成员融合成一个整体,大家都是一条线上的蚂蚱
(4)超强的适应能力,适应变化胜于按部就班,敏捷开发的特点就是快速
敏捷软件开发要注意项目规模,规模增长,团队交流成本就上去了,因此敏捷软件开发暂时适合不是特别大的团队开发,比较适合一个组的团队使用。