软考-软件开发模型

来源:互联网 发布:博物馆文艺软件 编辑:程序博客网 时间:2024/05/16 02:33
软考中有开发模型知识,自己每次都会搞混,现在进行一下简单的总结.

1.瀑布模型:

    瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入下一阶段,就像是一个飞流直下的瀑布。

瀑布模型有以下优点:
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
瀑布模型有以下缺点:
1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才能看到结果。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

   适用于需求明确或很少变更的项目,也可用于在已有类似的项目开发经验的项目上。

   V模型是瀑布模型的一个变体,强调测试过程与开发过程的对应性和并发性,同样要求需求明确,而且很少有需求变更的情况发生。

2、增量模型

    融合了瀑布模型的解百纳成分和原型实现的迭代特征,假设可以将需求分段为一系列增量产品,每一增量可以开发。


增量模型的优点:

1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;

2)如果核心产品很受欢迎,则可增加人力实现下一个增量;

3)可先发布部分功能给客户,对客户起到镇静剂的作用。


增量模型的缺点:

1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;

2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

   

主要用于设计阶段,把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。新的增量构件不得破坏。增量模型需求了解一点,能做成成品交给用户去测试,通过后期不断增加功能,增量模型强调每一个增量均发布一个可操作的的产品,每个版本都要交给客户去检验。(个人理解)


3.演化模型

    演化模型是一种全局的软件(或产品)生存周期模型。属于迭代开发方法。根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。


演化模型优点:

1)任何功能一经开发就能进入测试以便验证是否符合产品需求。
2)帮助导引出高质量的产品要求。如果没有可能在一开始就弄清楚所有的产品需求,它们可以分批取得。而对于已提出的产品需求,则可根据对现阶段原型的试用而作出修改。
3)风险管理可以在早期就获得项目进程数据,可据此对后续的开发循环作出比较切实的估算。提供机会去采取早期预防措施,增加项目成功的机率。
4)大大有助于早期建立产品开发的配置管理,产品构建(build ),自动化测试,缺陷跟踪,文档管理。均衡整个开发过程的负荷。
5)开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率。
6)如果风险管理发现资金或时间已超出可承受的程度,则可以决定调整后续的开发,或在一个适当的时刻结束开发,但仍然有一个具有部分功能的,可工作的产品。

演化模型的缺点:
1)如果所有的产品需求在一开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性。
2)如果缺乏严格的过程管理的话,这个生命周期模型很可能退化为一种原始的无计划的"试-错-改"模式。
3)心理上,可能产生一种影响尽最大努力的想法,认为虽然不能完成全部功能,但还是造出了一个有部分功能的产品。
4)如果不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响。

增量模型与演化模型的对比:

    增量模型强调每一个增量均发布一个可操作的的产品,每个版本都要交给客户去检验。演化模型在内部开发阶段进行迭代,需要交给客户检验。

    典型的演化模型是原型模型和螺旋模型


3、原型模型:

    原型模型开始于沟通,目的是定义软件的总体目标,标识需求,然后快速制定原型开发的计划,确定原型的目标和范围,进行建模,构建原型。原型模型通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。是目前较流行的一种实用软件生存期模型。

     

原型模型的优点:

1)可以得到比较良好的需求定义,容易适应需求的变化;

2)有利于开发与培训的同步;

3)开发费用低、开发周期短且对用户更友好。


快速原型模型的缺点:

1)客户与开发者对原型理解不同;

2) 准确的原型设计比较困难;

3) 不利于开发人员的创新。


4、螺旋模型:

    螺旋模型将瀑布模型和演化模型结合起来,加入了风险分析,在每个迭代阶段构建
原型是螺旋模型用以减小风险的途径。


螺旋模型的优点:

1)设计上的灵活性,可以在项目的各个阶段进行变更;

2)以小的分段来构建大型系统,使成本计算变得简单容易;

3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;

4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。 
螺旋模型的缺点:

1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;

2)过多的迭代次数会增加开发成本,延迟提交时间。
螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。
软件开发模型:螺旋模型更适合大型的昂贵的系统级的软件应用。


对比联系:两个模型都是迭代开发方法,都是要分析构造一个原型。
区别:原型模型在有了一个大致的框架之后就可以进行开发,螺旋加入了风险分析,适用于大型的昂贵的系统级的软件应用。简短的总结就是瀑布模型适用于需求明确不变更的情况。

              

原创粉丝点击