7 十二
2011
Posted in: 项目需求分析
By    1 Comment

软件设计和开发模型:增量模型(Incremental Model)

什么是增量模型

增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。采用增量模型的软件过程如下图所示:

增量模型与原型实现模型和其他演化方法一样,本质上是迭代的,但与原型实现不一样的是其强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但提供了为用户服务的功能,并且为用户提供了评估的平台。

增量模型的特点

增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。

增量模型的优缺点

1、增量模型的优点

采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户,对客户起到镇静剂的作用。此外,增量能够有计划地管理技术风险。

2、增量模型的缺点

增量模型存在以下缺陷:

1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

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

3)如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。

1、增量模型的优点:

  • 整个项目的资金不会被提前消耗,因为首先开发和交付了主要功能和高风险功能。
  • 每个增量交付一个可操作的产品。
  • 每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对建立好的模型作出反应。
  • 采用连续增量的方式,可把用户经验融入到细化的产品,这比完全重新开发要便宜得多。
  • “分而治之”的策略,使问题分解成可管理的小部分,避免开发团队由于长时间的需求任务而感到泪丧。
  • 通过同一个团队的工作来交付每个增量,保持所有团队处于工作状态,减少了员工的工作量,工作分布曲线通过项目中的时间阶段被拉平。
  • 每次增量交付的结为,可以重新修订成本和进度的风险。
  • 便于根据市场作出反应。
  • 降低了失败和更改需求的风险。
  • 更易于控制用户需求,因为每次曾两开发的时间很短。
  • 由于不是一步跳到未来,所以用户能逐步适应新技术。
  • 切实的项目进展,有利于进度控制。
  • 风险分布到几个更小的增量中,而不是集中于一个大型开发中。
  • 由于用户能够从早期的增量中了解系统,所以更加理解后面增量中的需求。

2、增量开发必须注意的问题:

  • 良好的可扩展性架构设计,是增量开发成功的基础。
  • 由于一些模块必须在另一个模块之前完成,所以必须定义良好的接口。
  • 与完整的系统相比,增量方式正式的回顾和评审更难于实现,所以必须定义可行的过程。
  • 要避免把难题往后推,首先完成的应该是高风险和重要的部分。
  • 客户必须认识到总体成本不会更低。
  • 分析阶段采用总体目标而不是完整的需求定义,可能不适应管理。
  • 需要更加良好的计划和设计,管理必须注意动态分配工作,技术人员必须注意相关因素的变化。
增量和迭代的概念:
假设现在要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;
而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后,采用增量开发,开始时候A,B全部开发完成,而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的基础功能都已经完成.

无觅相关文章插件,快速提升流量

|2|left|yes

1 Comment

  • 迭代模型和增量模型都属于并行开发的软件生命周期模型,但是这两个模型大家往往容易混淆或者不好理解。下面对两个模型的区别和相同之处做一下介绍。

    迭代是不能并行的,迭代的并行是指迭代任务,比如从3.1-3.31号是一个迭代计划,该迭代计划需求人员可以分析功能点5-功能点10,设计人员可以做功 能点3-功能点7的设计,开发人员可以做功能点2-功能点4的开发,测试人员可以做上个迭代周期发布的代码。 迭代的并行是指工作流的并行。
    大家看到迭代计划是比较复杂的,因此对项目经理的经验要求很高。

    增量模型一般是指具有底层框架和平台的项目,在该稳定的框架和平台上,来开发和增加具体的业务功能。每个增量之间相对独立,各个增量可以并行开发, 比如:3.1-31号实现增量1(包含5的功能点),3.20-4.15开发增量2(包含另外的4个功能点)。增量内部是瀑布模型。

    两种类型的区别在于迭代是基于IBM的RUP的以架构为核心,用例为驱动,角色职责划分不同,在同一时刻项目内部需求、设计、编码、测试的活动都在发生。迭代适合需求不明确、架构风险大的项目,增量适合需求比较明确,架构比较稳定,而且增量功能的实现基本不影响架构。
    还有一个不同就是迭代计划是基于角色的,增量计划是基于任务的。

    两种类型的相同之处,每个迭代和增量结束后都有产品发布。

So, what do you think?

使用新浪微博登陆