敏捷开发瀑布型开发_敏捷开发 瀑布开发 - CSDN
  • 什么是敏捷开发瀑布开发

    万次阅读 2017-01-13 15:48:44
    敏捷开发(AD:Agile Development )以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可...

    一:敏捷式开发(极限编程思想的体现)
    敏捷开发(AD:Agile Development )以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
    敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。
    下图简单说明了敏捷开发的关键要素:

    总图:

    这里写图片描述
    这里写图片描述

    这里写图片描述

    这里写图片描述
    相关概念解释:AM:(敏捷建模)

    二:瀑布式开发(传统开发模式)
    瀑布式(WM:Waterfall Model)开发是一种老旧的,正在过时的计算机软件开发方法。最开始的软件行业普遍采用这种方法,但是这种方法套用自传统工业生产,不适应计算机软件开发的具体情况。
    大体分为这几个阶段:制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动。
    这里写图片描述

    个人体会:
    楼主个人参与的系统为 工程项目管理系统,是施工企业的业务管理系统。施工企业业务非常复杂且多变化,想要一次性进行完整的调研几乎是不可能的,因此使用传统的瀑布开发模式会带来极大的工作量,延长项目周期。而采用敏捷式开发模式,可以与业主就业务系统及时反复的多次沟通,小版本多次迭代,更能保证项目执行的质量和进度。

    展开全文
  • 敏捷开发 以人为核心、迭代、循序渐进的开发方式 简化文档,提取文档重点,主要在于人与人之间的沟通, 对开发产品进行迭代,最终完成开发。 迭代:迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小...

    一. 敏捷开发

    以人为核心、迭代、循序渐进的开发方式

    简化文档,提取文档重点,主要在于人与人之间的沟通,

    对开发产品进行迭代,最终完成开发。

    迭代:迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。

    敏捷开发的一种实现方式就是Scrum方式:

    Scrum开发流程中的三个项目角色

    • 产品负责人(PO):主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

    • 流程管理员(SM):主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

    • 开发团队(ST):主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须有很强的自我管理能力,同时具有一定的表达能力。

    sprint:是短距离赛跑的意思,这里面指的是一次迭代,而一次迭代的周期是1个月时间(即4个星期),也就是我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为 Sprint。

    1.首先我们需要确认一个 PB ( Product Backlog , 即按优先顺序排列的一个产品需求列表) ,这是由 PO(Product Owner) 负责的

    2.ST(Scrum Team) 会根据 PB 列表,进行工作量的预估和安排

    3.有了 PB 列表,我们需要通过 Sprint Planning Meeting( Sprint 计划会议)来从中挑选出一个 Story 作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog

    4.Sprint Backlog 是由 ST 去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成)

    5.在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图)

    6.做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;很多人可能还没有用过自动化的每日集成,其实TFS就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译,如果通过则马上再执行单元测试代码,如果也全部通过,则将该版本发布,这时一次正式的签入操作才保存到TFS中,中间有任何失败,都会用邮件通知项目管理人员。

    7.当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消)

    8.最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中。、

    二. 瀑布式开发

    严格按照需求文档,明确个人目标的一种开发模式

    • 需求非常明确,
    • 工作量十分可控,
    • 对质量要求比较低,
    • 业务建模也比较简单,
    • 功能构成较少

    这种开发模式如果范围控制和风险控制做的比较好的话,就真的如瀑布一般,‘飞流直下三千尺’,迅速完成客户期望,部署运行,一般都是在外包公司常见

    阶段

    1. 计划
    2. 需求分析
    3. 概要设计
    4. 详细设计
    5. 编码
    6. 单元测试
    7. 测试
    8. 运维

    有个缺点就是瀑布模型的周期是环环相扣的。每个周期中交互点都是一个里程碑,上一个周期的结束需要输出本次活动的工作结果,本次的活动的工作结果将会作为下一个周期的输入。这样,当某一个阶段出现了不可控的问题的时候,就会导致返工,返回到上一个阶段,甚至会延迟下一个阶段。

    三. 螺旋型开发

    尤其注重风险分析阶段,适用于庞大且复杂,高风险的项目,“螺旋模型”的核心就在于不需要在刚开始的时候就把所有事情都定义的清清楚楚。轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品。 

    通常由四个阶段组成

    1. 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
    2. 风险分析: 分析评估所选方案,考虑如何识别和消除风险; 
    3. 实施工程;实施软件开发和验证; 
    4. 客户评估;评价开发工作,提出修正建议,制定下一步计划。

    螺旋模型中,发布的第一个模型甚至可能是没有任何产出的,可能仅仅是纸上谈兵的一个目标,但是随着一次次的交付,每一个版本都会朝着固定的目标迈进,最终得到一个更加完善的版本。很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

    四. 迭代开发

    也被称作迭代增量式开发迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。
    什么是迭代式开发?
    每次只设计和实现这个产品的一部分, 
    逐步逐步完成的方法叫迭代开发, 
    每次设计和实现一个阶段叫做一个迭代. 

    在迭代式开发方法中,整个开发工作被组织为一系列的短小的、
    固定长度(如3周)的小项目,被称为一系列的迭代。
    每一次迭代都包括了需求分析、设计、实现与测试。
    采用这种方法,开发工作可以在需求被完整地确定之前启动,
    并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。
    再通过客户的反馈来细化需求,并开始新一轮的迭代。

    迭代式开发的优点:
      1、降低风险
      2、得到早期用户反馈
      3、持续的测试和集成
      4、使用变更
      5、提高复用性
     

    五. devOps开发模式

    https://blog.csdn.net/petpig0312/article/details/79616962å¨å¼æºæ¶æä¸DevOpsçå®è·µå¨å¼æºæ¶æä¸DevOpsçå®è·µ

     

    展开全文
  • 联系信箱:feixiaoxing @163.com】 软件开发有很多的模式,一般认为有三种模式,分别是瀑布、迭代开发、敏捷开发瀑布模型是最基本的开发方式,它有严格的处理流程,分别是需求、设计、开发、测试、交付。瀑布...

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


        软件开发有很多的模式,一般认为有三种模式,分别是瀑布、迭代开发、敏捷开发。瀑布模型是最基本的开发方式,它有严格的处理流程,分别是需求、设计、开发、测试、交付。瀑布模型看上去合理,但是它开发周期长、对变更需求响应慢,很难适应市场需求。因此,在此基础上,软件专家们提出了迭代开发。针对传统开发的缺点,迭代开发通过迭代改进的措施,不断改进流程和质量,最终满足客户的要求。为了达到迭代开发的要求,大家还发明了uml和rup的理念。对于中、大型软件,迭代开发的理念是很合适的。但是对于中小软件,大家普遍认为迭代开发还是慢,它对开发的同学要求高,不仅每次迭代时要求所有的工作流都要参与,还要求同学们熟悉uml等各种工具,增加了学习的负担。为此,软件专家们引入了故事墙、结对编程、测试驱动、每日改进、白板进度表、燃尽图等很多措施,除了保留迭代开发中的必要环节,对剩下来的流程,要么删除、要么缩减,进一步提出了敏捷开发(包括scrum、xp编程、测试驱动开发等等)的概念,这也是软件开发的发展流程。


    1、你的建议是什么?

        优先学习好rup、uml,有选择地学习敏捷开发。


    2、为什么要学完uml、再学rup?

        rup其实是实现uml的方法论,本身是基于迭代开发模型的。在rup中,横向是初始、细化、构造和交付的时间轴,纵向是核心工作流和支持工作流。在时间轴上会有若干个迭代周期,每个迭代周期需要各工作流一起合作。在此过程中,每个工作流可以按照自己的特点用uml进行设计和绘制。这就是rup的基本理念。


    3、rup的图形如何表示?



    4、能不能跳过rup,直接学习敏捷开发?

        学习软件开发的整个历史,有助于自己更好地了解软件开发的全过程。


    5、个人开发软件需不需要uml、rup?

        建议个人开发软件的时候,也要画uml图,更要学会逻辑提炼和设计模块接口。


    6、除了瀑布、迭代和敏捷开发,还要学习什么?

        对于架构师来说,不光要设计出软件,也要了解为什么设计这款软件,如何运维这款软件,很多时候了解需求比实现需求更重要。


    7、如何提高代码架构水平?

        实践、实践、再实践,首先从uml+rup开始。


    8、三种开发模式解决的是什么问题?

        软件工程的问题。


    9、uml图形是不是只能用于一种rup工作流?

        不是,比如流程图既可以用于需求分析、也可以用于详细设计,这取决于是哪一种工作流。

        如果是架构师,那么uml主要用来进行需求分析、业务分析和架构设计。

        如果是软件开发者,那么uml则主要用来进行软件设计本身。

        如果是测试开发的同学,那么uml可以用来进行测试用例的开发、设计,也可以进行测试框架的架构设计。

        所以,uml只是一个工具,架构师、开发者、测试者都可以使用。


    10、设计模式什么时候使用?

        一般是uml开发过程中对流程和接口进行抽象的时候使用。与此类似的方法还有分层分块、插件管理、微内核、微服务、mvc等技术。




    展开全文
  • 敏捷开发瀑布式开发的区别

    千次阅读 2019-03-04 11:30:30
    敏捷方法与传统方法的区别与联系 首先,说一下传统开发的方式流程,传统开发也就是本文最开始所说的来自于工程学的软件开发方式,是一种瀑布式的流程,在工程的起始阶段,... 其次,说一下敏捷开发的方式流程,敏捷...

    敏捷方法与传统方法的区别与联系
      首先,说一下传统开发的方式流程,传统开发也就是本文最开始所说的来自于工程学的软件开发方式,是一种瀑布式的流程,在工程的起始阶段,进行详尽的需求调研,根据需求进行完全的架构设计,之后进入开发过程,在开发过程中,不再进行设计层面的事情,不再处理需求变化的问题,在这个阶段的任务就是对前期设计的功能实现,然后是测试,部署等等。 
      其次,说一下敏捷开发的方式流程,敏捷开发是在上个世纪90年代,传统开发方式不能够满足现实开发的需要,对传统方式进行总结,对成功失败的开发案例进行研究后,得到的一种不同于传统方式的开发流程,主要的特点是迭代式进行,这种方式把一个软件开发过程分成了若干个小的迭代过程,每一迭代完成一部分功能,每一次迭代过程的工作内容按照功能的重要程度不同而排列,首先完成重要的,同时也是风险比较大的功能,而后是次重要的,依此类推,同时在每次迭代中,都要进行分析、设计、开发、测试,因为分成了一个个小过程,一步步的逼近目标,所以,可以使得产品的用户能够逐渐得明白自己的真实需求从而能够提出真正的需求,而开发团队也可以根据更正后的需求进行下一次迭代的设计。 

      其一,敏捷开发是以人为中心,而传统开发以过程为中心。并不是说传统开发就没有人的参与,或者说人不是一个重要因素。应该说的是,敏捷开发和传统开发的侧重点、中心不同。那么为什么会是这个样子呢,或者说Martin   Fowler为什么要这么说呢?因为,传统开发中,设计已经是在初始阶段完成了,在实现阶段不再修改,换句话说,实现阶段就是对设计的完成,设计方案是不可改变的了。这样就忽略了用户的反馈、忽略了开发员的设计的主观能动性,使得开发员只是专注于代码层面的事情,这是很要命的事情,非常的考究需求工程师、设计师的能力,用一句话来形容这种设计-实现效果就是差之毫厘谬以千里。而敏捷开发提倡的是迭代,在每次迭代中都有分析、设计,也就意味着迭代阶段,可以把一部分完成的系统给用户演示,允许用户提意见、需求,也允许开发员将上一次迭代中得到的想法提出来,并且把这些需求意见想法融入到迭代的分析、设计中,从而在根本上、在理念上,促进了造、用双方的一个交流沟通,发挥了用户的分析评价和开发员设计的主观能动性。 
    其二,敏捷开发是adaptive的,而传统开发是plan驱动的。传统开发,设计阶段完成了,整个的过程就是按照设计方案进行,在设计阶段的后续过程中,无法再对设计方案进行修改,而敏捷开发需要一次次的迭代完成,正是这些迭代完成了对客户真实需求的软件的演进。

      一个控制大的流程,一个处理软件开发细节

    原文地址:https://blog.csdn.net/sghdls/article/details/64441512

    展开全文
  • 瀑布式开发和敏捷开发区别

    万次阅读 2017-09-27 21:42:41
    瀑布开发模式: 瀑布开发模式有以下显著的特点: 1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格...
  • 开发模式(敏捷开发瀑布式开发,螺旋开发,迭代开发,devOps开发 https://blog.csdn.net/sinat_35566306/article/details/90404606
  • Deere公司,采用双速IT模式促使敏捷开发法和瀑布式开发法同时发挥作用。这家公司并没有被视为圣地亚哥地区大数据方面的巨头。但该公司最新的农业设备却能在无需人工操作员的情况下,能够把最好的种子种植在可利用的...
  • 什么是敏捷开发瀑布式开发?

    千次阅读 2019-06-13 11:15:41
    瀑布开发模式: 瀑布开发模式有以下显著的特点: 1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格定义了各...
  • 所谓敏捷开发瀑布开发0.写在前面1.常见的开发模式2.什么是敏捷开发?2.1 敏捷开发宣言:2.2优点:2.3 确点:3.什么是瀑布开发?3.1 优点:3.2 缺点: 0.写在前面 项目管理者面临的一个大BUG是:程序员开发的是客户...
  • 瀑布开发模式: 瀑布开发模式有以下显著的特点: 1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格定义了各...
  • 瀑布模型开发与敏捷开发的对比

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

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

    千次阅读 热门讨论 2014-05-19 17:45:34
    在去年12月底开始接触高校平台项目... 在一开始接触敏捷开发时,有些兴奋,有些期许,但是在真正用来做项目时,由于瀑布模式已经根深蒂固,再加上对需求不熟悉,对开发环境不熟悉,新方式的开发反而让人感到别扭,麻烦
  • 瀑布开发模式和敏捷开发模式的区别和思考

    万次阅读 多人点赞 2017-04-12 14:18:54
    瀑布开发模式: 瀑布开发模式有以下显著的特点: 1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。 使用里程碑的方式,严格定义了...
  • 一、敏捷开发 原理 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的...
  • 敏捷开发瀑布模型对比  瀑布、迭代、螺旋、敏捷——在这里讨论的敏捷,都属于过程模型  ...
  • 现在很多项目开发都是采用敏捷模式了,相对于瀑布模式,看看下面两张图,敏捷瀑布的区别一目了然: 瀑布流:带着明显的计划思维,以自我为中心,事先规划好一切,最后验证产品和市场。成功收获不一定更大,失败的...
  • 敏捷开发 瀑布开发 很多支持敏捷的同学会说瀑布缺乏与业务的沟通和迭代次数,所以如果在项目的后期才发现要更改需求的话,则项目可能会失败或需要重新启动。这张图好像也解释了瀑布开发经常所面临的困境。...
  • 敏捷开发瀑布开发的区别

    万次阅读 2018-01-17 07:56:23
    瀑布敏捷式 用户知道功能 用户不知道功能 要件–概要–设计–开发–测试–导入 最小系统 任务优先级 来源张永光的博客
1 2 3 4 5 ... 20
收藏数 13,393
精华内容 5,357
关键字:

敏捷开发瀑布型开发