软件工程模型出现原由:1969年软件危机
软件危机:落后的开发方式无法再满足人们对软件的需求
软件开发模型
瀑布模型
优点:首次以模型的形式将开发过程进行说明,对软件开发进行管理指导。
缺点:
1、风险高,测试进入太晚,缺陷出现得越晚修复的成本越高;
2、不灵活,只能按部就班的开展工作,前一阶段的任务未完成下一阶段任务无法开始;
3、无法适应用户需求变更;
4、对于较大的系统,会一次占用大量的资源(人力资源);
5、不利于后期维护(需求更新、调整)
V模型
优点:测试过程与开发过程一一对应;测试较瀑布模型稍微提前,编码开展后便可开展测试(单元测试);将测试细分,体现测试与开发对等;测试保证质量,开发保证进程。
缺点:
1、风险高,测试进入还是比较晚,缺陷出现得越晚修复的成本越高;
2、不灵活;
3、不利于后期维护(需求变更、调整)
W模型
优点:
1、测试过程与开发过程一一对应;
2、在软件开发初期就开始了测试设计及相关工作,对文档进行测试设计避免了后期才能判定是否满足用户需求。
缺点:
1、初期的测试活动是针对于文档的,如果没有相关文档无法开展W模型;
2、开发周期长;
3、成本效益低;
4、需要较大人力投入;
5、适用于一次性开发;
6、要求团队素质高。
实施:将程序进行编译运行
交付:开发环境将程序打包移交到测试环境
迭代模型
迭代开发是软件开发的生命周期模型,是一种开发过程。
每次只设计和实现这个产品的一部分, 逐步逐步完成的方法叫迭代开发, 每次设计和实现一个阶段叫做一个迭代。适用于不断的调整与变更,适合小部分开发。(一个版本的更新就是一次迭代,周期较短,每一次迭代都包括了定义、需求分析、设计、实现与测试)。
敏捷开发
敏捷开发:以用户为中心,快速反应,及时交付,迭代、循序渐进的开发方法,允许产生错误。(有更新就会迭代)
特点:
1、个体和交互胜过过程和工具;
2、可以工作的软件胜过面面俱到的文档;
3、客户合作胜过合同谈判;
4、响应变化胜过遵循计划。
敏捷开发是一种开发思想、开发方法。迭代式开发几乎是所有敏捷开发所采用的一个主要的基础实践,敏捷开发与迭代开发是整体与局部的关系。敏捷开发是多种软件开发项目管理方法的集合,除迭代式开发外,还包含了其他许多管理与工程技术实践,因此执行敏捷开发方法需要能力素质高的管理,水平技术高的团队。