资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章第二章 软件过程模型软件过程模型软件过程的概念1典型的软件过程模型 3成熟度模型成熟度模型2小结5过程和产品41 12 23 34 4什么是软件过程?-解决问题的过程定义定义软件过程定义了软件生产的一系列活动,这些软件过程定义了软件生产的一系列活动,这些活动贯穿于软件开发的整个过程。活动贯穿于软件开发的整个过程。问题定义技术开发方案集成目标现状什么是软件过程?什么是软件过程? 虽然过程是多种多样的,但所有过程都具有以下 的共同活动沟通沟通该活动包括软件设计者与客户沟通,该活动包括软件设计者与客户沟通, 客户提出要求,软件设计者收集材料客户提出要求,软件设计者收集材料 ,以及其它相关活动。,以及其它相关活动。计划计划软件开发小组讨论使用何种方法及何软件开发小组讨论使用何种方法及何 种工具来实现客户需求。种工具来实现客户需求。建模建模在这一部分,软件开发小组讨论选择在这一部分,软件开发小组讨论选择何种模型来满足需求。不同的需求需何种模型来满足需求。不同的需求需要不同的模型。要不同的模型。构造构造部署部署编码和测试。编码和测试。软件交付给客户。客户给出建议和反软件交付给客户。客户给出建议和反 馈,软件实施小组改进软件。馈,软件实施小组改进软件。什么是软件过程?什么是软件过程?贯穿始终的普适性活动:项目跟踪控制、风险管理、质量保证、配置管理、技术评审等过程评估与改进过程评估与改进用于过程改进的 CMMI标准评估方法 提供了五步的过程评 估模型:启动、诊断、建立、执行和学习。 用于组织内部过程改进的CMM评估采用SEI的CMM作为评 估的依据,提供了一种诊断方法,用以分析软件开发机构相对 成熟度。 SPICEThe SPICE (ISO/IEC15504) 标准定义了软件过程评 估的一系列要求。该标准的目的是帮助软件开发组织建立客观 的评价体系,以评估定义的软件过程的有效性。软件ISO 9001:2000这是一个通用标准,任何开发组织如果 希望提高所提供的产品、系统或服务的整体质量,都可以采用 这个标准。因此,该标准可直接应用于软件组织和公司。5 优化级持续的过程改进量化管理4 量化管理级过程标准化3 已定义级基本项目管理有能力的人和个人英雄主义2 可重复级1 初始级CMMCMM工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。管理制度化,建立了基本的管理制度和规程,管理工作有章可循。初步实现标准化,开发工作比较好地按标准实施。变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解。成熟度模型标准(成熟度模型标准(CMMCMM)产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 软件过程模型也常称为:软件开发模型软件生存周期模型软件工程范型软件过程模型软件过程模型常用过程模型常用过程模型 瀑布模型 (经典的生命周期模型) 增量过程模型 o 增量模型 o RAD模型 演化过程模型 o 原型模型 o 螺旋模型 喷泉模型 其他过程模型?常用过程模型提倡结构化和有序的软件工程方法,那么对于富于变化的软件世界,这一模型是否合适呢?如果抛弃传统过程模型(以及它们带来的秩序),取而代之以一些不够结构化的模型,是否会使如软件工作无法达到协调和一致?1.1.瀑布模型瀑布模型 (Waterfall Model)(Waterfall Model) 由Winston Royce 在1970年最早提出的软 件开发模型。o 软件开发过程与软件生命周期是一致的,也称经典的生命周期模 型。 规定了各项软件工程活动,以及它们自上 而下,相互衔接的固定次序,如同瀑布流 水,逐级下落。 是一种使用广泛,以文档为驱动的模型。瀑布模型瀑布模型验收测试验收测试组装测试组装测试实现实现详细设计详细设计概要设计概要设计需求分析需求分析退役退役可行性研究可行性研究使用与维护使用与维护带反馈的瀑布模型带反馈的瀑布模型瀑布模型的特点瀑布模型的特点1. 阶段间具有顺序性和依赖性。 2. 推迟实现的观点。 3. 每个阶段必须完成规定的文档; 每个 阶段结束前完成文档审查,及早改正 错误。瀑布模型主要问题瀑布模型主要问题 线性过程太理想化o 各个阶段的划分完全固定,阶段之间产生大量的文档 ,极大地增加了工作量; o 由于开发模型是线性的,用户只有等到整个过程的末 期才能见到开发成果,从而增加了开发的风险; o 早期的错误可能要等到开发后期的测试阶段才能发现 ,进而带来严重的后果。怎么办?增量过程模型增量过程模型 ( (Incremental Model)Incremental Model) 增量模型是一种非整体开发的模型。是一 种进化式的开发过程。它允许从部分需求 定义出发,先建立一个不完整的系统,通 过测试运行这个系统取得经验和反馈,进 一步使系统扩充和完善。如此反复进行, 直至软件人员和用户对所设计的软件系统 满意为止。o 增量模型 o RAD增量模型增量模型 增量模型结合了原型模型的基本要素和迭代的特征,该 模型采用基于时间的进展而交错的线性序列,每个确定 线性序列都会输出该软件的一个“增量”。增量模型特点增量模型特点 增量o 小而可用的软件 特点o 在前面增量的基础上开发后面的增量 o 每个增量的开发可用瀑布或快速原型模型 o 迭代的思路增量模型的优缺点增量模型的优缺点 增量包概念的引入,以及它不需要提供完整的需求。只要 有一个增量包出现,开发就可以进行。 在项目的初始阶段不需要投入太多的人力资源。 增量可以有效地管理技术风险。 每个增量必须提供一些系统功能,这使得开发者很难根据 客户需求给出大小适合的增量。 AdvantagesAdvantagesDisadvantages Disadvantages快速应用开发模型(快速应用开发模型(RADRAD ) 快速应用开发模型(RAD)是一个增量过程模型,强调短 暂的开发周期。 RAD 模型是瀑布模型的“高速”变体,通过基于构件的构建 方法实现快速开发。如果需求以及项目范围得到明确界定 ,RAD 能使开发团队在很短的时间内(如60 到90 天)建 立一个“全功能系统”。 RAD不使用传统程序设计语言,而是基于构件技术,复用已 有的程序结构,或使用可复用构件,或创建可复用构件进行 。如果一个业务可被模块化并使每个主要功能均可在3月 内完成,则RAD是一个候选,每一个主要功能由一个单独 的RAD组完成,并最后集成起来成为一个整体。演化模型演化模型 演化过程模型o原型模型 o螺旋模型 演化模型的思想是首先实现软 件的最核心的、最重要的功能原型模型原型模型通过总体目标或已确认需求,实现一个可实际运行的系统初步模型,供开发人员和用户进行交流和评审,以便较准确获得用户的需求,然后采用逐步求精方法使原型逐步完善。客户给出一些基本功能描述,但是没有详细定义功能和特性需求;或开发者不确定算法的效率、软件与操作系统是否兼容以及客户与计算机交互的方式。此时,原型法是很好的选择。原型模型原型模型原型模型的优缺点原型模型的优缺点优点:开发效率高,原型使总的开发费用降低,时间缩短,开发者与用户交流直观,可以澄清模糊需求,调动用户的积极性,能及早地暴露系统实施后潜在的一些问题。缺点:产品原型在一定程度上限制了开发人员的创新,没有考虑软件的整体质量和可维护性,由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计,相关利益者不会意识到质量问题,而使开发管理陷入失效。设计者在质量和原型间有所折衷,会采用熟悉的工具和环境、低效的算法,一旦适应后,忘记初衷,造成质量问题。螺旋模型(螺旋模型(Spiral ModelSpiral Model ) l螺旋模型最早由Boehm 在Boehm1998 中提出,与RAD 模型相似,该模型结 合了瀑布模型和原型模型的特点。 l螺旋模型强调风险管理,因此该模型 适用于大型系统的开发。螺旋模型(螺旋模型(Spiral ModelSpiral Model)四个象限上分别表达四个象限上分别表达 四个方面的活动四个方面的活动 螺旋模型沿着螺线旋转,在笛卡尔坐 标的四个象限上分别表达了四个方面 的活动:o 制定计划。确定软件目标,选定实施方案,弄清项目 开发的限制条件。 o 风险分析。分析所选方案,考虑如何识别和消除风险 。 o 设计实施。设计、编码、测试、优化。 o 用户反馈。评价开发工作,提出修正建议。 螺旋模型的优点螺旋模型的优点 支持用户需求的动态变化。 原型可看作形式的可执行的需求规格说明,易于为用户和 开发人员共同理解,还可作为继续开发的基础,并为用户 参与所有关键决策提供了方便。 螺旋模型特别强调原型的可扩充性和可修改性,原型的进 化贯穿整个软件生存周期,这将有助于目标软件的适应能 力。 引入一个非常严格的风险识别,风险分析和风险控制,它 把软件项目分解成一个个小项目,每个小项目都标识一个 或多个主要风险,直到所有的主要风险因素都被确定。 螺旋模型为项目管理人员及时调整管理决策提供了方便, 进而可降低开发风险。螺旋模型的缺点螺旋模型的缺点 和适应场合和适应场合 如果每次迭代的效率不高,致使迭代次数过多, 将会增加成本并推迟提交时间; 使用该模型需要有相当丰富的风险评估经验和专 门知识,要求开发队伍水平较高。 支持需求不明确、特别是大型软件系统的开发, 并支持面向规格说明、面向过程、面向对象等多 种软件开发方法,是一种具有广阔前景的模型。缺点缺点适应场合适应场合喷泉模型喷泉模型( (Fountain Fountain Model)Model) 喷泉模型是一种以用户需求为动力,以对象为驱动的模型 ,主要用于描述面向对象的软件开发过程。 具有自下而上周期的各阶段是相互迭代和无间隙的特性。 软件的某个部分常常被重复工作多次,相关对象在每次迭 代中随之加入渐进的软件成分。喷泉模型的优缺点喷泉模型的优缺点 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始 设计活动,设计活动结束后才开始编码活动。该模型的各 个阶段没有明显的界限,开发人员可以同步进行开发。其 优点是可以提高软件项目开发效率,节省开发时间,适应 于面向对象的软件开发过程。 由于喷泉模型在各个开发阶段是重叠的,在开发过程中需 要大量的开发人员,因此不利于项目的管理。此外这种模 型要求严格管理文档,使得审核的难度加大,尤其是面对 可能随时加入各种信息、需求与资料的情况。优点优点缺点缺点如何选择过程模型?如何选择过程模型? 软件开发模型是不断发展的 各种软件开发模型各有优缺点 选用时不必拘泥与某种模型 可组合多种模型 也可根据实际创建新的模型参考原则1. 在前期需求明确的情况下,尽量采用瀑布模型或改进的瀑布模型。 2. 在用户无系统使用经验,需求分析人员技能不足情况下一定要借助原 型。 3. 在不确定因素很多,很多东西前面无法计划的情况下尽量采用增量迭 代和螺旋模型。 4. 在需求不稳定的情况下尽量采用增量迭代模型。 5. 在资金和成本无法一次到位的情况下可采用增量模型,软件产品多个
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号