软考复习之路—从瀑布模型到极限编程,敏捷开发

           软件开发是一门技术,也是一门艺术。

          瀑布模型、极限编程、敏捷开发是有代表性的开发模式,在对开发者、客户、最终的产品的关注上的变化,体现了软件开发管理者在管理模式上的变化。

 

瀑布模型

         是一种理想化的开发模型,要求有明确的需求分析,无法解决软件需求不明确或不准确的问题。

         瀑布模型像工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与

人员的多少进一步细分成更细的工序。更符合分层的设计思想,比较适合于大型软件的开发。也因此瀑布模型

是使用最多的开发模型。


 软考复习之路—从瀑布模型到极限编程,敏捷开发_第1张图片

 

          瀑布模型将复杂的问题简单化,分层化,便于分工协作,采用结构化的分析与设计方法将逻辑实现与物理

实现分开。

 

特点:

1、强调文档,前一个阶段的输出就是下一个阶段的输入。文档是各个阶段衔接的重要信息,所以文档

为重中之重。但是各个阶段之间产生大量的文档,极大地增加了工作量。

 

2、没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,意味着使用

了瀑布模型,最好不要走回头路,否则付出的代价会很大的。

 

3、管理人员较开发人员更喜欢瀑布。文档很适合向领导汇报用,即使不了解项目的人也能看懂项目的

进度情况;同时它也束缚了开发人员的创造性。

 

4、由于开发流程是一个阶段顺序进行的,只有等到开发完成,用户才能见到结果,增加了开发的风险

;同时由于这种特性,程序中早期的错误可能要等到开发后期的测试阶段才能发现。

 

5、瀑布模型对人员的要求是,只要会基本的编程就可以。

 

         由于瀑布模型不适合客户需求不断变化的软件开发,并且把开发者编程流水线上的机器,大量重复性工作让编程人员提不起兴趣,编程成了一种没有创意的机械劳动,于是极限编程带来了新鲜的空气。

 


极限编程

         注重用户反馈。有了反馈,开发时间变短,迭代就出现了,快速迭代。

         是一种开发管理模式.

    强调:

1、角色定位:明确的把客户加入到开发团队中。用户在软件开发过程中的责任被提到与开发者同样的

重要程度。

 

2、敏捷开发:追求合作与响应变化。迭代就是缩短版本的发布周期,缩短到周、日,完成一个小的功

能模块,可以快速测试、并及时展现给客户,以便及时反馈。小版本加快了客户沟通反馈的频率,功

能简单,在设计、文挡环节大大简化。极限编程中文挡不再重要的原因就是因为每个版本功能简单,

不需要复杂的设计过程。极限编程追求设计简单,实现客户要求即可,无需为扩展考虑太多,因为客

户的新需求随时可以添加。

 

3、追求价值:极限编程把软件开发变成自我与管理的挑战,追求沟通、简单、反馈、勇气,体现开发

团队的人员价值,激发参与者的情绪,最大限度地调动开发者的积极性,情绪高涨,认真投入,开发

的软件质量就大大提高。

 


敏捷开发

    核心是迭代。最终目标是让客户满意,所以能主动接受需求变更,这样就使设计出来的软件有灵活性,可

扩展性。

 

    特点:

1、迭代:软件的功能是客户的需求,对迭代强调的是缩短了软件版本的周期。

2、项目团队的人数不能太多

3项目经常发生变更

4高风险的项目实施

5开发人员可以参与决策

 

   注意:

1、客户最关心的功能最先完成

2、小版本。快速功能的展现。

3、敏捷开发不等于不写文档,而是减轻了繁重的文档,不以文档为驱动。

 

 

    瀑布模型由于其过程的不可回溯性,自 然决定了它无法应对需求的变化,对软件开发过程无法及时反馈与

修改,或者说对于应对变化的成本较大。因此瀑布模型是面向过程的;而敏捷开发是面向人的,在开发过程中,

人是第一位。使软件利用人的特点,充分发挥人的创造能力。


    不论是瀑布还是敏捷开发,在推行的时候还要认真分析要面对的团队。有很多人现在执迷于敏捷开发,但

是没有传统的瀑布模型,怎么会有敏捷开发,又怎么会体会到敏捷开发的乐趣?况且,对于一个比较大型的需

求确定的项目,还是用瀑布模型比较有优势。

 

你可能感兴趣的:(软考复习之路—从瀑布模型到极限编程,敏捷开发)