软件测试基础之软件生命周期模型之增量迭代模型

上一篇 / 下一篇  2012-05-01 12:42:33 / 个人分类:基础知识

增量迭代模型
一、特点
1、允许需求的变化
2、集成不是在项目后期进行的“大动作”
3、早期的迭代可以降低风险
4、对产品的管理能够采取战术性的变化
5、重用更加容易
6、在每一个迭代中发现并更正错误
7、更好地利用项目的人力资源
8、团队成员技能得到不断提高
9、不断改进开发过程
 
二、常见的增量迭代模型包括:螺旋模型、RUP(Rational Unified Process)和敏捷开发。
1、螺旋模型:兼顾了快速原型迭代的特征以及瀑布模型的系统化与严格监控。
   1.1 特点:在于引入了其它模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。在每个替代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的系统级的应用软件。
   1.2 一个典型的迭代包括以下步骤:
       明确本次迭代的目标、备选方案以及应用备选方案的限制。
       对备选方案进行评估,明确并解决存在的风险,建立原型。
       当分先得到很好的评估与解决后,应用瀑布模型进行本次迭代的开发与测试
       对下一次迭代进行计划于部署。
       项目利益相关者对本次迭代的交付物进行评审,同时检查下一阶段的计划。
    1.3 优点
       风险低
       可以演化成瀑布模型
       可以在项目前期考虑对已经存在的软件进行重用
       在软件产品开发过程中考虑了软件质量目标
       关注于缺陷预防,并能够尽早地发现缺陷
       更好地控制项目活动的资源和相关成本
    1.4 缺点
       过分依赖风险评估,一旦在风险管理过程中出现偏差,讲造成重大的损失
       过于灵活的开发过程不适合开发者与客户之间有明确合同约定的情况
       该模型本身的文档和推广需要大量的工作
2、RUP模型:是有IBM开发和维护的过程产品
    2.1 整个开发过程可以用二维结构来表达,横轴代表了制定开发过程的时间,体现了过程的动态结构,纵轴表示九个核心工作流程,代表了所有角色和活动的逻辑分组情况。 
    2.2 将整个软件开发生命周期划分为四个阶段
        初始阶段:目标是为系统建立商业案例和确定项目的边界。
        精化阶段:目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。
        构建阶段:所有涉及的构件和应用程序功能被开发集成为产品,并想尽测试所有的功能。
        产品化阶段:是将软件产品交付给用户群体
3、敏捷开发
    3.1 开发宣言
        个体和交互胜过过程和工具
        可以工作的软件胜过面面俱到的文档
        客户合作胜过合同谈判
        响应变化胜过遵循计划
    3.2 特征
        最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意
        即使到了开发的后期,也欢迎需求的变更,敏捷开发利用变化为客户创造竞争优势。
        不断地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。
        在整个项目开发生命周期,业务人员和开发人员必须天天都在一起工作
        围绕被激励起来的个人来构建项目,给他们提供所需要的环境和支持,并且信任他们能够完成工作
        在团队内部,最具有效果并且富有效率的传递信息的方法就是面对面的交谈
        能够工作的软件是首要的进度度量标准
      敏捷开发提倡可持续的开发速度,责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度
        简单是根本
        不断地关注优秀的技能和好的设计会增强敏捷能力
        最好的构架、需求和设计出自于组织的团队
        每个一定时间,团队会在如何才能跟有效地工作方面进行反省,然后相应的对自己的行为进行调整。 

TAG:

 

评分:0

我来说两句

Open Toolbar