软件工程-----软件开发的增量模型

来源:互联网 发布:linux 重启服务器 编辑:程序博客网 时间:2024/04/29 19:04
软件工程-----软件开发的增量模型
 

一.概述
1.瀑布模型的局限性:
   瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而有在开发过程中用户很难参与进去,只有到开发结   束时才能看到整个软件系统。这种理想的线性开发过程,缺乏灵活性,不适应实际的开发过程。
2.增量模型的基本思想:
   增量模型是在项目的开发过程中以一系列的增量方式开发系统。
   增量方式包括增量开发和增量提交。增量开发是指在项目开发周期内,以一定的时间间隔开发部分工作软件;增量提交是指在项目开发周期内,以一定的时间间隔向用户提交工作软件及相应文档。增量开发和增量提交可以同   时使用,也可以单独使用。
3.增量模型分类:
   按增量模型的方式和形式不同,分为渐增模型和原型模型。
   渐增模型(瀑布模型的变种):
    增量构造模型:
      在前面的开发阶段(需求分析和设计阶段)按瀑布模型进行整体开发,在后面的开发阶段(编码和测试阶段)按增量方式开发。
    演化提交模型(是增量模型的极端形式,更易进行扩充修改):
      所有阶段都按增量模型开发,也就是不仅是增量开发也增量提交。
      先对一部分功能进行需求分析设计编码测试,完成这一部分功能的软件并交给用户后再进行另一部分功能      的开发,再提交用户直到全部增量开发完毕。
   原型模型:
    原型模型又称为快速原型模型,它是增量模型的另一种形式。它是在开发真实系统之前,先构造一个原型 ,在该原型的基础上,完成整个系统的开发工作。
    根据原型的不同作用,又分为三类原型模型:
     探索型原型:
      把原型用在需求分析阶段。目的是要弄清用户的需求,确定所期望的特性,并探索出各种方案的可行性。主要针对开发目标模糊,开发者和用户都对项目缺乏经验的情况。
     实验型原型:
      把原型用在设计阶段,考核实现方案是否合适,能否实现。对于大型系统,若对设计方案没有把握时,可      用这种原型来验证设计方案的正确性。
     演化型原型:
      及早向用户提交一个原型系统,得到用户认可后,将原型系统不断扩充演变成为最终的软件系统。它将原型的思想扩展到软件开发的全过程。
二.快速原型模型(是在研究需求阶段的方法和技术中产生的)
1.基本思想
   1)原理:
    利用原型辅助软件开发的一种新思想。经过简单快速的分析,快速实现一个原型,用户与开发者在试用原型的过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补遗漏,适应变化,最终提高软件质量。
   2)原型运用方式:
    根据原型的目的和方式不同,使用原型时也采用不同的策略,有抛弃策略和附加策略。
    抛弃策略:是将原型用于开发过程中的某一阶段,当这一阶段开发完成后原型随之废弃。
         如:探索型原型和实验型原型就是采用此策略。
    附加策略:将原型用于开发的全过程。原型由最基本的核心开始,逐步扩充完善成为用户满意的最终系统。 如:演化型原型。
2.快速原型模型表示
   探索型原型:
    用原型过程来代替需求分析,原型作为需求说明的补充形式,但整体上仍采用瀑布模型。
   实验型原型:
    用原型来代替设计阶段,即在设计阶段引入原型。原型成为设计阶段的总体框架或设计结果的一部分。
   演化型原型:
    用原型来代替全部开发阶段。典型的演化提交模型的形式。它是在强有力的软件工具和环境支持下,通过原型    过程反复循环,直接得到软件系统。不强调开发的严格阶段性和高质量的阶段性文档,不追求理想的开发模式。
3.原型开发过程
   1)原型的特征分类:
    根据原型的目的和方式不同,构造原型的内容的取舍不同,体现出原型特征有如下类别:
    系统的界面形式
    系统的总体结构
    系统的主要处理功能和性能
    数据库模式
   2)原型开发步骤
    快速分析
    构造原型
    运行原型
    评价原型
    修改
4.快速原型的开发技术和开发环境
   1)构造原型的技术
    可执行的规格说明
    基于脚本的设计
    采用非常高级语言或专门语言
    能重用软件
   2)构造原型的建议
    暂不考虑速度、空间等性能效率方面的问题
    暂不考虑错误恢复和处理
    可降低可靠性和软件质量标准
    原型界面部分要设计得简单易学,最好能与最终系统的界面相容
    根据不同的软件类型和应用领域,可使用不同风格的高级语言来构造
   3)原型的开发环境
    交互式系统
    数据库管理系统
    通用输入/输出软件
    重用代码库
5.增量模型的评价
   1)原型的作用
    a.为软件提供明确的需求说明,当用户要求含糊不清、不完全、不稳定时,通过原型执行、评价,使用户要求     明确。
    b.原型可作为新颖设计思想的实现工具,也可作为高风险开发的安全因素,从而证实设计的可行性。
    c.原型模型支持软件产品的演化,对开发过程中的问题和错误具有应付变化的机制。
    d.原型模型鼓励用户参于开发过程,参与原形的运行和评价,能充分地与开发者协调一致。  
   2)使用原型的建议
    能使用原型的情况:
     a.开发周期很长的项目
     b.系统的使用可能变化较大,不能相对稳定
     c.用户对系统的需求较为模糊,对某种要求缺乏信心
     d.开发者对系统的某种设计方案的实现无信心或无十分的把握。
    不宜使用原型的情况:
     a.缺乏开发工具,或对原型的可用工具不了解时    
     b.用户不愿参与开发
     c.用户的数据资源没有很好地组织和管理时
     d.用户的软件资源没有被组织和管理时
   3)原型的优点
    可及早为用户提供有用的产品
    可及早发现问题,随时纠正错误
    减少技术、应用风险,缩短开发周期,减少费用,提高生产率
    通过实际运行原型,提供直接评价系统的方法,促使用户主动参于开发活动,加强信息反馈,促进人员的协调    ,减少误解,适应需求变化,能有效提高系统质量。
   4)存在的问题
    缺乏丰富而强有力的软件工具和软件开发环境
    缺乏有效的管理机制,还未建立起自己的开发标准
    对设计人员水平及开发环境要求较高
    在多次重复改变原型的过程中,程序员会感到厌烦
    系统易变性对测试有一定影响,难于做到彻底的测试,更新文档较难