敏捷开发和瀑布模型_瀑布模型和敏捷开发 - CSDN
  • 瀑布模型开发与敏捷开发的对比     瀑布模型开发: 严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格定义...

    转自http://www.cnblogs.com/zh2000g/archive/2010/02/22/1671286.html

     

    瀑布模型开发与敏捷开发的对比

     

     

    瀑布模型开发:

    严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。

    使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。

     

    强调文档,在开发的后期才会看到软件的模样。在这种情况下,文档的重要性仿佛已经超过了代码的重要性。

     

    瀑布模型把开发人员定义为流水线上的工人。由于各阶段的开发人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等。对于客户需求变更,编码人员会比设计人员更容易产生很强的抵触情绪。

    在每个开发阶段都会有一些信息刻意的不让其他开发阶段的人员知道(本意是为了提到效率,但实际上有时候产生的是互相的理解偏差)。

     

    瀑布模型产生的管理文档(计划书,进度表)等,能让不太了解该项目的人也能看懂项目的进度情况(只有能看懂百分比就行),很适合向领导汇报用。所以管理人员比较喜欢瀑布模型,但是开发人员不喜欢,因为它束缚了开发人员的创造性。

     

    既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。

    软件生命周期前期造成的Bug的影响比后期的大的多。

     

     

    敏捷开发:

    核心是迭代。

    因为最终目标是让客户满意,所以能够主动接受需求变更,这就使设计出来的软件有灵活性,可扩展性。

     

    宣言:

    个体和交互 胜过 过程和工具

    可以工作的软件 胜过 面面俱到的文档

    客户合作 胜过 合同谈判

    响应变化 胜过 遵循计划

     

    简单设计,重复迭代。减少不必要的文档。

    客户最关心的功能最先完成。

    要求客户有时间对每次迭代的成果进行确认,提出改进意见。

     

    沟通是非常重要的,所有的开发人员对项目活动的理解应该是一致的。

     

    开发团队有两个队伍,业务团队和技术团队。如果任何一方控制了沟通,那么项目注定会失败。如果业务一方控制,项目会议上就会不断的要求功能和交付日,而不太担心开发人员是否能够全部完成或开发人员是否明白他们的真正要求;如果开发人员控制了沟通,那么项目会议上技术术语会代替面向客户的业务语言,开发人员也失去了通过倾听来了解客户真正需求的机会。

     

    PMBOK的项目管理是自上而下的命令式管理,而敏捷的管理是团队的自我管理和项目经理的服务式管理。

     

    敏捷开发不能在一开始就给出项目的成本计划。

     

    在有技术问题还没有解决的情况下不适合展开迭代。

    展开全文
  • 敏捷开发和瀑布模型对比  瀑布、迭代、螺旋、敏捷——在这里讨论的敏捷,都属于过程模型  ...

                                   敏捷开发和瀑布模型对比


                   瀑布、迭代、螺旋、敏捷——在这里讨论的敏捷,都属于过程模型

     

    展开全文
  • 瀑布开发模式: 瀑布开发模式有以下显著的特点: 1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格定义了...

    瀑布开发模式:

    瀑布开发模式有以下显著的特点:

    1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。

    使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。

    2.重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。

    在这种情况下,文档的重要性仿佛已经超过了代码的重要性。

    3.瀑布模型把每个开发阶段都定义为黑盒,希望每个阶段的人员只关心自己阶段的工作,不需要关注其他阶段的工作。

    好处是:可以让开发人员能够更专注于本职工作,提高阶段效率。

    坏处是:

    a.由于各阶段的开发人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。

    b.对于客户需求变更,编码人员会比设计人员更容易产生很强的抵触情绪。

    c.在每个开发阶段都会有一些信息刻意的不让其他开发阶段的人员知道(本意是为了提到效率,但实际上有时候产生的是互相的理解偏差)。

    4.瀑布模型产生的管理文档(计划书,进度表)等,能让不太了解该项目的人也能看懂项目的进度情况(只有能看懂百分比就行),很适合向领导汇报用。所以管理人员比较喜欢瀑布模型,但是开发人员不喜欢,因为它束缚了开发人员的创造性。

    5.既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。

    软件生命周期前期造成的Bug的影响比后期的大的多。

    代价比较大的主要原因还是每个开发阶段的步子过大,每一次调整都可能伤筋动骨。

    6.更适合需求相对稳定的大型项目。



    敏捷开发模式:

    核心是快速迭代,拥抱变化。

    因为最终目标是让客户满意,所以能够主动接受需求变更,这就使设计出来的软件有灵活性,可扩展性。

     

    宣言:

    个体和交互 胜过 过程和工具

    可以工作的软件 胜过 面面俱到的文档

    客户合作 胜过 合同谈判

    响应变化 胜过 遵循计划


    敏捷开发模式有以下显著的特点:

    1.story细化。

    2.简单设计,避免过度设计。

    3.重复迭代。

    4.减少不必要的文档。

    5.客户最关心的功能最先完成。

    6.要求客户有时间对每次迭代的成果进行确认,提出改进意见。

    7.showcase。

    8.沟通是非常重要的,所有的开发人员对项目活动的理解应该是一致的。加强团队之间和客户之间的沟通。

    9.测试驱动开发(TDD)

    10.需要更强的个人和团队能力。

    11.敏捷的管理是团队的自我管理和项目经理的服务式管理。

    12.敏捷开发不能在一开始就给出项目完整的成本计划。

    13.在有技术问题还没有解决的情况下不适合展开迭代。

    14.敏捷实践:晨会,deadline,负责人制等等。


    瀑布+敏捷开发模式:

    核心是减小瀑布模型的粒度,采用敏捷开发的优秀实践方式,提高开发的沟通效率,提供项目的全景视图。


    敏捷开发,首先把客户最关注的软件原型先做出来,交付或者上线,在实际场景中去修改弥补需求中的不足,快速修改,再次发布版本。再次上线或者交付。通过一些敏捷实践方式,细化story,可以提供更小的迭代。如此循环,直到用户(客户)满意。适用于需求不明确的项目、创新性的项目或者需要抢占市场的项目。
    瀑布式开发,要求明确的需求,大家按照需求一步步做好规划,在项目运作过程中严格产出各种文档,按着流程一步步走下去。这种模式一般适用于需求比较明确、to B端项目
    但总的来说,在现在管理项目过程中,并没有严格的按照完全的敏捷或者完全的瀑布模式,都是各自掺杂了其他的方式。在实际项目过程中,过于强调模式并没有意义,重要的是能不能预防问题的发生,在问题发生之后能不能用最小的成本解决,模式更多起一个参考作用

    最后借用民国时候的一句话:少研究一些主义,多关注一些实际问题。
    文章中部分内容是借鉴于其他文章。

    展开全文
  • 载。 瀑布开发模式: ...瀑布开发模式有以下显著的特点: ...1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义...2.重视强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的
    
    

    瀑布开发模式:

    瀑布开发模式有以下显著的特点:

    1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。

    使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。

    2.重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。

    在这种情况下,文档的重要性仿佛已经超过了代码的重要性。

    3.瀑布模型把每个开发阶段都定义为黑盒,希望每个阶段的人员只关心自己阶段的工作,不需要关注其他阶段的工作。

    好处是:可以让开发人员能够更专注于本职工作,提高阶段效率。

    坏处是:

    a.由于各阶段的开发人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。

    b.对于客户需求变更,编码人员会比设计人员更容易产生很强的抵触情绪。

    c.在每个开发阶段都会有一些信息刻意的不让其他开发阶段的人员知道(本意是为了提到效率,但实际上有时候产生的是互相的理解偏差)。

    4.瀑布模型产生的管理文档(计划书,进度表)等,能让不太了解该项目的人也能看懂项目的进度情况(只有能看懂百分比就行),很适合向领导汇报用。所以管理人员比较喜欢瀑布模型,但是开发人员不喜欢,因为它束缚了开发人员的创造性。

    5.既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工,付出的代价会很大。

    软件生命周期前期造成的Bug的影响比后期的大的多。

    代价比较大的主要原因还是每个开发阶段的步子过大,每一次调整都可能伤筋动骨。

    6.更适合需求相对稳定的大型项目。



    敏捷开发模式:

    核心是快速迭代,拥抱变化。

    因为最终目标是让客户满意,所以能够主动接受需求变更,这就使设计出来的软件有灵活性,可扩展性。

     

    宣言:

    个体和交互 胜过 过程和工具

    可以工作的软件 胜过 面面俱到的文档

    客户合作 胜过 合同谈判

    响应变化 胜过 遵循计划


    敏捷开发模式有以下显著的特点:

    1.story细化。

    2.简单设计,避免过度设计。

    3.重复迭代。

    4.减少不必要的文档。

    5.客户最关心的功能最先完成。

    6.要求客户有时间对每次迭代的成果进行确认,提出改进意见。

    7.showcase。

    8.沟通是非常重要的,所有的开发人员对项目活动的理解应该是一致的。加强团队之间和客户之间的沟通。

    9.测试驱动开发(TDD)

    10.需要更强的个人和团队能力。

    11.敏捷的管理是团队的自我管理和项目经理的服务式管理。

    12.敏捷开发不能在一开始就给出项目完整的成本计划。

    13.在有技术问题还没有解决的情况下不适合展开迭代。

    14.敏捷实践:晨会,deadline,负责人制等等。


    瀑布+敏捷开发模式:

    核心是减小瀑布模型的粒度,采用敏捷开发的优秀实践方式,提高开发的沟通效率,提供项目的全景视图。


    敏捷开发,首先把客户最关注的软件原型先做出来,交付或者上线,在实际场景中去修改弥补需求中的不足,快速修改,再次发布版本。再次上线或者交付。通过一些敏捷实践方式,细化story,可以提供更小的迭代。如此循环,直到用户(客户)满意。适用于需求不明确的项目、创新性的项目或者需要抢占市场的项目。
    瀑布式开发,要求明确的需求,大家按照需求一步步做好规划,在项目运作过程中严格产出各种文档,按着流程一步步走下去。这种模式一般适用于需求比较明确、to B端项目
    但总的来说,在现在管理项目过程中,并没有严格的按照完全的敏捷或者完全的瀑布模式,都是各自掺杂了其他的方式。在实际项目过程中,过于强调模式并没有意义,重要的是能不能预防问题的发生,在问题发生之后能不能用最小的成本解决,模式更多起一个参考作用

    1.瀑布模型

      1.1 瀑布模型介绍

      1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。

      1.2 瀑布模型核心思想

      瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

      1.3 瀑布模型有以下优点

      (1)为项目提供了按阶段划分的检查点。
      (2)当前一阶段完成后,您只需要去关注后续阶段。
      (3)可在迭代模型中应用瀑布模型。
      增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。

      1.4 瀑布模型有以下缺点

      (1)在项目各个阶段之间极少有反馈。
      (2)只有在项目生命周期的后期才能看到结果。
      (3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
      (4)瀑布模型的突出缺点是不适应用户需求的变化。
    --------------------------------------------------------------------------------------

    2.迭代模型

      2.1 什么是迭代模型

      在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:需求、分析设计、实施和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。

      2.2 迭代模型的使用条件

      (1)在项目开发早期需求可能有所变化。
      (2)分析设计人员对应用领域很熟悉。
      (3)高风险项目。
      (4)用户可不同程度地参与整个项目的开发过程。
      (5)使用面向对象的语言或统一建模语言(Unified Modeling Language,UML)。
      (6)使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose是非常受欢迎的物件软体开发工具。)。
      (7)具有高素质的项目管理者和软件研发团队。  

      2.3 迭代模型的优点  

      与传统的瀑布模型相比较,迭代过程具有以下优点:
    (1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
    (2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
    (3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
    (4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
    --------------------------------------------------------------------------------------

    3.敏捷开发模型

      3.1 什么是敏捷开发

      是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本。能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。敏捷建模(Agile Modeling,AM)的价值观包括了XP的四个价值观:沟通、简单、反馈、勇气,此外,还扩展了第五个价值观:谦逊。

      3.2 敏捷开发特点  

      (1)人和交互 重于过程和工具。
      (2)可以工作的软件 重于求全而完备的文档。
      (3)客户协作重于合同谈判。
      (4)随时应对变化重于循规蹈矩。  
      项目的敏捷开发,敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果:关注业务优先级; 检查与调整。
      
      最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,
    因此敏捷方法更适用于较小的队伍,40、30、20、10人或者更少。

    4.螺旋模型

      详见 http://baike.baidu.com/view/551040.htm  

    5.快速原型模型

      详见 http://baike.baidu.com/view/1449532.htm  

    6.几种模型间的对比

    传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。
    特别是前期阶段,设计的越完美,提交后的成本损失就越少。

    迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,
    最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。

    螺旋开发,很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

    敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。
      敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。 

    适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化。


    展开全文
  • 瀑布模型和敏捷开发

    2020-02-24 10:14:06
    目录1、瀑布模型2、敏捷开发 1、瀑布模型   个人理解是瀑布模型就是一个有序的开发流程。一旦开发文档确定,就要严格按照开发文档规定的内容实现,如果想要临时变更内容或者功能的实现,就要等二次开发或者重新...

    1、瀑布模型

      个人理解是瀑布模型就是一个有序的开发流程。一旦开发文档确定,就要严格按照开发文档规定的内容实现,如果想要临时变更内容或者功能的实现,就要等二次开发或者重新立项,比较麻烦。
    在这里插入图片描述
    优点:文档完善,整个开发过程很严谨,相对比较可控。
    缺点:开发周期长,从立项到上线有较长的时间。

    2、敏捷开发

      同样是个人理解,敏捷开发就是没有特定的文档,没有明确的需求,只有大体的开发方向和功能,客户会随时提出需求,随着开发而不断迭代升级,随时可能扩展或者删除功能。
    在这里插入图片描述
      即使项目总体是敏捷开发,但是模块内部基本上还是瀑布模型,因为提出一个新的设想或者功能的实现,还是少不了需求的分析,概要的设计和详细设计。

    展开全文
  • 瀑布模型 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。 将...
  • 瀑布模型的特点 (传统的开发方式) 1、强调文档 前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到开发的后期才可以看到...
  • 瀑布模型&敏捷开发

    2016-02-29 13:35:43
  • 在项目的开发过程中,我们或多或少都会遵循...遵循瀑布模型的好处是我们能够严格按照软件开发的工序顺序进行,瀑布模型的好处是能够清晰划分软件开发整个生命周期的各个阶段,便于控制开发进度,只需要关注当前阶段(当
  •  技术交流会中,让我印象最深的是:大勇学长丹姐在切磋实际项目中用到的“敏捷开发”,后来由向阳学长对照两人的观点发问“敏捷开发和瀑布模型的优缺点?人员要求?流程?”终于由我们敬爱的米老师做高层次的总结...
  • 瀑布模型:  瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写...
  • 敏捷开发 PK 瀑布模型

    2014-05-19 17:45:34
    以前都是遵循传统的瀑布模型,而新方式的开发思路直接与传统的开发思路来了个正面碰撞,擦出了阵阵“火花”。  在一开始接触敏捷开发时,有些兴奋,有些期许,但是在真正用来做项目时,由于瀑布模式已经...
  • 瀑布模型自上而下完成,软件开发进行到下一阶段之前彻底完成上一个阶段。 遵循以下顺序: 需求分析规范 架构设计 实现综合 验证 操作维护 瀑布模型适合开发需求特别明确的任务,缺点是一旦需求发生变化,...
  • 文章目录瀑布模型/改进的瀑布模型螺旋模型增量迭代模型原型法快速和敏捷开发关于选择生命周期模型的最后的总结 瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的最效...
  •  1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。    1.2 瀑布模型核心思想    瀑布模型核心思想是按工序将问题化简,将功能的...
  • Content瀑布模型(生命周期...2.软件工程 瀑布模型、原型模型、喷泉模型和V模型的优缺点及适用场景. 3.什么是敏捷开发瀑布模型(生命周期模型) 优点 前一阶段完成后,您只需要去关注后续阶段 缺点 各个阶段之间...
  • 敏捷开发(AD:Agile Development )以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可...
  • 文章目录0. 软件的生命周期1. 瀑布模型2. 螺旋模型3. 迭代模型4. 增量模型5....  瀑布模型是最早出现的软件开发模型,是所有其他软件开发模型的基础框架。与软件的生命周期不同的是,它缺少了软...
1 2 3 4 5 ... 20
收藏数 8,811
精华内容 3,524
关键字:

敏捷开发和瀑布模型