文档详情

软件工程考核知识点-第9章-软件开发的增量模型

s9****2
实名认证
店铺
DOCX
103.93KB
约10页
文档ID:414379535
软件工程考核知识点-第9章-软件开发的增量模型_第1页
1/10

软件工程考核知识点-第9 章-软件开发的增量模型9.1 概述在瀑布模型的开发过程中,人们花费极大的努力进行严格开发,但终究难以接近理想目标, 在需求说明维以完善、难以明确的情况下,由快速分析而构造一个小的原形系统,满足用户 的某些要求后,使用户在使用过程中受其启发,逐步确定各种需求,因此,产生了所谓的渐 增模型和快速原型模型9.1.1 瀑布模型的局限性瀑布模型这种模型本质上是一种线性顺序模型,因此存在着较明显的缺点,各阶段之间存 在着严格的顺序性和依赖性,特别强调预先定义需求的重要性,在着手进行具体的开发工作 之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步的实现这些需求但 是实际项目很少遵循着这种线性顺序进行的虽然瀑布模型也允许迭代,但这种改变往往对 项目开发带来混乱在系统建立之前很难只依靠分析就确定出一套完整、准确、一致、有效 的用户需求,这种预先定义需求的方法更不能适应用户需求的不断变化的情况1. 需求是可变的 某些应用软件的需求与外部环境、公司经营策略或经营内容等密切相关,因此需求是随时 变化的2. 需求是模糊的对于大多数更常使用的应用系统,例如管理信息系统,其需求往往很难预先准确的指定, 也就是说,预先定义需求的策略所做出的假设,只对某些软件成立,对多数软件并不成立。

许多用户对他们的需求最初只是模糊的概念,想要求一个对需求只有初步设想的人准确无误 的说出全部需求,显然是不切实际的人们为了充实和细化他们的初步设想,通常需要经过 在某个能运行的系统上实践的过程3. 用户和开发者难于沟通大型软件的开发需要系统分析员、软件工程师、程序员、用户、领域专家等各类人员的协 调配合然而大多数用户和领域专家不熟悉计算机和软件技术,软件开发人员也往往不熟悉 用户的专业领域,开发人员和用户之间很难做到完全沟通和相互理解,在需求分析阶段做出 的用户需求常常是不完整、不正确的传统的瀑布模型很难适应需求可变、模糊不定的软件 系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系 统这种理想的、线性的开发过程,缺乏灵活性,不适应实际的开发过程9.1.2 增量模型的基本思想为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了增量 模型增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始 下一个阶段的工作之前,必须完成前一阶段的所有细节而增量模型属于非整体开发模型, 它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。

增量方式包括增量开发和增量提交增量开发是指在项目开发周期内,以一定的时间间隔 开发部分工作软件;增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户提 交工作软件及相应文档9.1.3 增量模型的分类有多种增量模型,根据增量的方式和形式的不同,分为渐增量模型和原型模型1. 增量模型:(1) 增量构造模型它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发即前面的 开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开方2) 演化提交模型它在瀑布模型的基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量 提交2. 原型模型这种开发模型又称快速原型模型,它是增量型的另一种形式它是在开发真实系统之前, 构造一个原型的基础上,逐渐完成整个系统的开发工作根据原型的不同作用,有三类原型 模型:(1)探索模型这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定 所期望的特性,并探索各种方案的可行性它主要对开发目标模糊,用户与开发者对项目都 缺乏经验的情况,通过对原型的开发来明确用户的需求2) 实验型原型这种原型主要用于设计阶段,考核实现方案是否合适,能否实现。

对于一个大型系统,若 对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性3) 演化型原型这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统框架,或者包 含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统它 将原型的思想扩展到软件开发的全过程9.2 渐增模型9.2.1 增量构造模型需求分析阶段和设计阶段都是按瀑布模型的整体方式开发,但是编码阶段和测试阶段是按增量方式开发9.2.2 演化提交模型在该模型中,项目开发的各个阶段都是增量方式先对某部分功能进行需求分析,然后顺序进行设计、编码测试,把该功能的软件交付给用户,然后再对另一部分功能进行开发,提交用户直至所有功能全部增量开发完毕速原型模型9.3.1基本思想1. 原型原型是指模拟某种产品的原始模型,在其他产业中经常使用软件开发中的原型是软件的 一个早期可运行的版本,它反映了最终系统的重要特性2. 快速原型思想的产生由于种种原因,在需求分析阶段得到完全、一致、准确、合理的需求说明是很困难的,在 获得一组基本需求说明后,就快速地使其“实现”,通过原型反馈,加深对系统的理解,并满 足用户基本要求,使用户在试用过程中受到启发,对需求说明进行补充和精确化,消除不协 调的系统需求,逐步确定各种需求,从而获得合理、协调一致、无歧义的、完整的、现实可 行的需求说明。

又把快速原型思想用到软件开发的其他阶段,向软件开发的全过程扩展即 先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用 户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统3. 快速原型的原理快速原型是利用原型辅助软件开发的一种新思想经过简单快速分析,快速实现一个原型, 用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥 补漏洞,适应变化,最终提高软件质量4. 原型运用方式由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策 略1) 抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、 一致、可靠,该阶段结束后,原型随之作废探索型和实验型就是采用此策略的2) 附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能 和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采 用此策略采用何种形式、何种策略运用快速原型主要取决于软件项目的特点、人员素质、可供支持 的原型开发工具和技术等,这要根据实际情况的特点来决定9.3.2快速原型模型表示快速分析修改原型修改说明11/ 盍求说明 /斗/原 型/停止修改9.3.3原型开发过程1. 原型开发步骤(1) 快速分析。

在分析人员与用户密切配合下,迅速确定系统的基本需求,根据原型所要体现的特征描述 基本需求以满足开发原型的需要2) 构造原型在快速分析的基础上,根据基本需求说明尽快实现一个可行的系统这里要求具有强有力 的软件工具的支持,并忽略最终系统在某些细节上的要求,如安全性、坚固性、例外处理等 等,主要考虑原型系统能够充分反映所要评价的特性,而暂时删除一切次要内容3) 运行原型这是发现问题、消除误解、开发者与用户充分协调的一个步骤4) 评价原型在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿望,纠正过去交 互中的误解与分析中的错误,增添新的要求,并满足因环境变化或用户的新想法引起的系统 要求变动,提出全面的修改意见5) 修改根据评价原型的活动结果进行修改若原型未满足需求说明的要求,说明对需求说明存在 不一致的理解或实现方案不够合理,则根据明确的要求迅速修改原型9.4 快速原型的开发技术和开发环境为了减少开发原型的开销,实现快速地分析,迅速地构造出所需的原型,应采用一些特殊 的有别于通常软件开发时使用的技术和工具1. 构造原型的技术(1) 可执行的规格说明(2) 基于脚本的设计3) 采用非常高级语言或专门语言。

4) 能重用软件2. 构造原型的建议(1) 暂不考虑速度、空间等性能效率方面的要求2) 暂不考虑错误恢复和处理3) 可降低可靠性和软件质量标准4) 原型界面部分要设计得简单易学,最好能与最终系统的界面相容5) 根据不同的软件类型和应用领域,可使用不同风格的高级语言来构造原型3. 原型的开发环境除了上述的构造原型的技术和建议外,还应该有开发环境来辅助原型的开发1) 交互式系统能快速地响应使用者的要求2) 数据库管理系统能够提供更多工具,可以定义、建立、查询、加工信息资源3) 通用输入/输出软件容易使用的数据编辑,屏幕格式化软件等对原型设计和开发都有 很大的帮助4) 重用代码库可减少重复劳动9.5 增量模型的评价1. 原型的作用(1) 为软件系统提供明确的需求说明,当用户要求含糊不清、不完全、不稳定时,通过原型 执行、评价,使用户要求明确2) 原型可作为新颖设计思想的思想工具,也可作为高风险开发的安全因素,从而证实设计 的可行性3) 原型模型支持软件产品的演化,对开发过程中的问题和错误具有应付变化的机制4) 原型模型鼓励用户参与开发过程,参与原型的运用和评价,能充分地与开发者协调一致2. 使用原型的建议能够使用原型的情况:(1) 开发周期很长的项目,通过原型开发来缩短开发周期。

2) 系统的使用可能变化较大,不能相对稳定,而原型模型具有适应变化的机制3) 用户对系统的需求较为模糊,对某种要求缺乏信心4) 开发者对系统的某种设计方案的实现无信心或无十分把握 上述这些情况均适合于使用原型模型来开发3. 原型的优点(1) 可及早为用户提供有用的产品2) 可及早发现问题,随时纠正错误3) 减少技术、应用风险,缩短开发实际,减少费用,提高生产率4) 通过实际运行原型,提供直接评价系统的方法,促使用户主动参与开发活动,加强了信 息反馈,促进各类人员的协调,减少误解,适应需求的变化,能有效提高系统质量4. 存在问题(1)缺乏丰富而强有力的软件工具和开发环境2)缺乏有效的管理机制,还未建立起自己的开发标准3) 对设计人员水平及开发环境要求较高4) 在多次重复改变原型的过程中,程序员会感到厌倦5) 系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难一、名词解释1. 增量开发 2.增量提交 3.原型4. 软件原型 5.增量构造模型 6.演化提交模型7.快速原型模型二、填空题1. 瀑布模型本质上是一种 模型2. 瀑布模型不适应需求可变的软件开发,只有到开发结束时才能见到 。

3. 增量模型在开发过程中以一系列增量方式开发系统,忽略某阶段的细节,从而尽早产生 4. 增量构造模型在分析和设计阶段按整体方式开发,按增量方式开发的是 阶段5. 演化提交模型中,项目开发各阶段都是按 开发的6. 软件原型是软件的早期可运行版本,反映最终系统的 7. 用原型过程来代替需求分析,使需求说明完整、一致、准确,该原型是 原型8. 用原型过程来代替全部开发阶段,这种快速原型是 原型9. 若原型不满足需求说明,则根据明确的要求修改 三、选择题1.瀑布模型的问题是( )A.用户容易参与开发 B.缺乏灵活性2. 增量模型是一种( )模型A.整体开发 B.非整体开发C.灵活性差 D。

下载提示
相似文档
正为您匹配相似的精品文档