目录
1.基本概念
2.软件开发模型的分类
1.瀑布模型
2.原型模型
3.演化模型
4.增量模型
5.螺旋模型
6.V模型
7.喷泉模型
8.快速开发模型(RAD)
9.构件开发模型(CBSD)
10.RUP统一过程开发模型
1.RUP的特点
2.RUP的阶段
3.RUP的优缺点
11.敏捷开发方法
1.敏捷开发的原则
2.12个最佳实践
3.敏捷开发优缺点
开发模型是软件开发过程中的开发体系,指导思想。
软件开发模型包含瀑布模型,原型模型,增量模型,演化模型,螺旋模型,V模型,统一过程RUP,敏捷开发方法。
结构化方法中的一种模型,现在用的比较少了,因为新项目使用瀑布模型风险比较高,失败几率较大。
瀑布模型的流程分为软件计划,需求分析,软件设计,软件编码,程序测试,运行维护阶段。
为什么说瀑布模型在新项目中容易失败呢?
因为在新项目中需求难以明确,最后做完用户看到发现和自己想的不一样,又得重新进行需求分析等阶段,最终项目超时。所以瀑布模型使用于需求明确的项目或者二次开发项目。当然也可以结合原型模型一起使用。
原型模型是在项目初期,快速构建一个简易的系统,用来和用户明确需求,适用于需求不明确的项目。
演化模型是在原型模型之上不断演化成最终产品的方式。
增量模型是结构化方法中模型的一种,其思想是先做一部分核心模块然后给用户看确认没问题,再做一部分模块,一直迭代增量开发,每一个增量都是一个可操作的系统,这种方式项目不会做到最后发现和用户需求不一致的情况。
螺旋模型是多个模型的组合,包括原型模型,演化模型,增量模型,因其形状是螺旋型,一圈一圈的出来,所以叫做螺旋模型,其最显著的特征是引入了风险分析。
V模型是一种强调测试的模型,其型像一个V字所以叫做V模型,V的左边是需求分析->概要设计->详细设计->软件编程,V的右边是单元测试->集成测试->系统测试->验收测试
在需求分析阶段会写验收测试和系统测试的测试计划,在概要设计阶段写集成测试的测试计划,在详细设计阶段写单元测试的测试计划,强调测试提前,测试贯穿始终,而不是最后再进行测试,这样可以提前发现问题。
喷泉模型是面向对象的一种模型,出现的比较早的一种面向对象模型,其有着一般面向对象模型的特点,迭代,无间隙。
RAD,快速开发模型,是瀑布模型和构件开发模型(CBSD)组合形成的模型,它的特点是快速开发应用,例如界面拖拽式开发。
构件开发模型(CBSD),现在应用的比较广泛,它的思路是把各个功能模块做成标准构建,构建完成之后进行构件组装得到我们需要的系统,因其构件库的建立使得软件的复用性得到很大的提高,复用性提高就会带来项目周期的缩短,成本的降低,可靠性的提升。
其分为需求分析和定义,软件架构设计,构件库建立,应用软件构建,测试和发布。
RUP统一过程开发模型是一种面向对象的开发模型,适合大型项目的开发,现在比较流行。
用例驱动,以架构为中心,迭代和增量
RUP的软件过程是一个迭代的过程,通过初始,细化,构建,交付四个阶段就是一个周期,每个周期产生一代软件,循环迭代下去演化成最终的版本,直至退役。
优点
缺点
过于庞大和复杂,不能适应需求快速变化,每个需求变更都要经过复杂的过程和额外的工作,对于小的项目和公司,使用敏捷方法会更合适。
敏捷开发方法是一种比较新的开发方法,适合中小项目,强调小步快跑,快速迭代。
发展历程:在最初我们还没有开发方法,开发模型的时候,我们开发的软件质量很难保证,但随着软件工程的兴起,越来越多的开发方法,开发模型,越来越多的开发文档及规范,开发人员的工作也越来越多,需要写很多的文档,这时候敏捷开发出现了,其思想就是给开发人员减负,抛弃不必须要的文档及流程,采用小步快跑,快速迭代的方式进行开发。
敏捷开发不是一个开发模型而是一组开发模型。包含自适应开发,水晶方法,特征驱动开发,SCRUM,极限编程。
五大原则
基本原则
优点:可以快速开发出基线版本,快速可持续的开发速度,能快速响应市场需求变化,客户前期满意度高。
缺点:需要团队中有经验高的人,不然容易遇到瓶颈,因为对文档要求精简,所以人员流通大会带来系统维护困难。