由于项目,需求的模块不同,所以在软件生命周期过程中选择的软件开发模型也会有所不同,在历史上,软件开发模型经历了“边做边改“,
瀑布,原型,螺旋,敏捷等模式的变更。
瀑布模型:设计-》需求分析-》设计-》编码-》测试-》运行维护
特点:
1,软件开发的各项活动严格按照线性方式运行。
2,当前活动接受上一项活动的工作结果。
3,当前活动的工作结果需要进行验证。
缺点:
1,由于开发模型是线性的,增加了开发的风险。
2,早期的错误可能要等到开发后期的阶段才能发现
原型模块:
客户与开发公司紧密联系,开发周期长,开发会受到需求变更的影响
特点:
1,实现客户与系统的交互。
2,进一步细化待开发软件需求。
3,开发人员可以确定客户的真正需求的是什么
螺旋模型:制定计划-》风险分析-》实施工程(需求确定,软件需求,软件产品设计,设计确定与认证,设计确定与认证,详细设计,开发,测试)-》客户评价
特点:
1,螺旋模型是将瀑布模型与快速原型模型结合起来
2,强调了其他模型所忽视的风险分析
3,每一次螺旋包括4个步骤:制定计划,分线分析,实施工程,客户评估
缺点:
1,强调风险分析,但要求许多客户接受并相信这种分析,是不容易的
敏捷模型:
敏捷开发是一种以人为核心,迭代,循序渐进的开发方法
特点:
1,短周期开发
2,增量开发
3,由程序员和测试人员编写的自动化测试来监控开发进度
4,通过口头沟通,测试和源代码来交流系统的结构和意图
5,编写代码之前先写测试代码,也叫做测试先行
缺点:
1,团队的组建较难,人员素质要求较高
2,对测试员要求完全掌握各种脚本语言编程,能执行单元测试,自动化测试