软件过程与改进06课软件过程模型.ppt_第1页
软件过程与改进06课软件过程模型.ppt_第2页
软件过程与改进06课软件过程模型.ppt_第3页
软件过程与改进06课软件过程模型.ppt_第4页
软件过程与改进06课软件过程模型.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章 软件过程模型,如何综合并管理这些活动,从而实现软件的高效开发?,软件过程与改进,ISO/IEC标准体系(IEC-国际电工委员会),ISO/IEC 12207:1995-软件生存周期过程 从多个角度说明了软件生命周期各个过程中的活动,对规范软件开发过程,协调各类人员之间的关系,都具有指导作用。 ISO/IEC15504软件过程评估标准 能力确定模式,帮助评估并确定一个潜在软件供应商的能力。 过程改进模式,帮助提高软件开发过程的水平。 自我评估模式,帮助判断是否有能力承接新项目的开发。,软件过程与改进,ISO/IEC标准体系的构成,软件过程与改进,IEEE标准体系,IEEE 1074:1997 - 生命周期过程的标准。 IEEE 1540-01 - 软件风险管理。 IEEE 1517-99 - 软件复用过程。 IEEE 1219-1998 - 软件维护过程。 IEEE Std 730-2001 -软件质量保证计划。 IEEE Std 1012 - 验证与确认。 IEEE Std 1028 - 评审。,标准体系全貌图,软件生存周期,什么是软件生存周期? 软件生存周期是从某软件产品开始研发到软件不再使用为止的时间间隔。软件生存周期一般包括:需求阶段、架构阶段、设计阶段、实现阶段、测试阶段、安装和调整阶段、运行和维护阶段,有时还包括退役阶段。 在什么时候选择软件生存周期? 在项目策划的初期,就应该确定项目所采用的软件生存周期,目的是统筹规划项目的整体开发流程。,软件过程与改进,软件生存周期模型是指一个包括软件开发、运行和维护中有关过程、活动和任务的框架,其中这些过程、活动和任务覆盖了从该系统的需求定义到系统的使用终止,软件过程与改进,根据模型提出的时间不同,可以分为传统工程过程模型和现代软件工程过程模型 传统软件过程过程模型的主要代表是:编码修正模型、瀑布模型、演化模型和螺旋模型;IBM公司的统一过程模型(RUP)、敏捷过程(AP)和微软解决方案(MSF)等则是现代软件工程过程模型的主要代表,软件过程与改进,所有的模型的内在基本特征 描述了开发的主要阶段 定义了每一个阶段要完成的主要过程和活动 规范了每一个阶段的输入和输出 提供了一个框架,可以把必要的活动映射到该框架中,软件过程与改进,11,瀑布模型(Waterfall Model),所有过程模型的祖宗 项目从开始到结束按照一定的顺序执行 瀑布模型是文档驱动的,各个阶段不连续也不交叉,瀑布模型 Waterfall Model,软件过程与改进,特点: 上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。,需求分析,问题定义,可性行研究,计划 时期,概要设计,详细设计,编 码,测 试,开发 时期,运行与维护,运 行 时 期,13,瀑布模型,瀑布模型适应于什么场合?有何优缺点?,特点:,提供了计划驱动过程模型的基本模板。也称软件生命周期模型或线性顺序模型。 强调了每一阶段活动的严格顺序。 质量保证观点:以经过评审确认了的阶段工作产品(文档)驱动下一阶段的工作,便于监控、便于管理。 是一种整体开发模型,程序的物理实现集中在开发阶段的后期,用户在最后才能看到自己的产品。 适合于用户需求明确、完整、无重大变化的软件项目开发。,软件过程与改进,15,瀑布模型适用情况,当有一个稳定的产品定义和很容易被理解的技术解决方案时,纯瀑布模型特别合适 当你对一个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,瀑布模型也特别合适。 纯瀑布模型能够降低管理费用,因为你可以预先完成所有计划。 对于那些容易理解但很复杂的项目,采用纯瀑布模型比较合适,因为可以用顺序方法处理问题。 在质量需求高于成本需求和进度需求的时候,它尤为出色。 当开发队伍的技术力量比较弱或者缺乏经验时,瀑布模型更为适合。,16,瀑布模型,纯瀑布模型的缺点是在项目开始的时候,在设计工作完成前和代码写出来前,很难充分描述需求。 这种模型生硬的把一个软件过程划分成几个界限清晰的阶段,而且这些阶段前后有严格的顺序,这导致它很难对用户的需求变更做出及时的调整;因此瀑布模型最主要的问题是缺乏灵活性。必须在项目开始前说明全部需求。但这恰恰是非常困难的。 瀑布模型只适合需求非常清楚和需求变更被严格限制的情况下。,实例,用户:汽车,描述需要发动机、车身、车窗、方向盘、油门、刹车、 6个月后,用户:忘记了倒车时要打开倒车灯 汽车工程师的反应? 你知道要花多少钱去拆开汽车,将电源线接到后面吗?我们得重新设计车后的面板、插入刹车灯电缆、加上传感器?。为什么不早点告诉我? 用户不是计算机专家,他们很可能一直要等到看见可运行的产品,才想起来一些可能简单的事情。 因此,采用瀑布模型,遗漏需求可能是代价昂贵的,软件过程与改进,瀑布模型变种:V型模型,该方法是对瀑布模型的修正,强调了验证活动,瀑布模型变种:生鱼片模型,把阶段重叠起来的瀑布模型 起源于日本硬件开发模型(富士通施乐),软件概念,需求分析,架构设计,详细设计,编码和调试,系统测试,瀑布模型变种:生鱼片模型,传统的瀑布模型强调阶段之间最小的重叠,而生鱼片模型强调大幅度的重叠,即在需求分析完成之前就可以进行架构设计和部分详细设计 纯瀑布模型强调在任意两个阶段交接时,文档从一个团队交给另一个完全隔离的团队,但是如果一个团队完成各个阶段任务时,可以没有那么多文档。 问题:缺点是什么? 生鱼片模型因为阶段重叠,因而里程碑不明确,很难有效地进行过程跟踪和控制。,瀑布模型变种:具有子项目的瀑布模型,纯瀑布模型的一个问题是必须完成全部的架构设计后才能进行详细设计,但是,整个系统中有些部分可能有些特殊性,可以有自己的步骤,即将这些部分划分为为子项目。 问题:该模型有何问题? 这种方法的主要风险是相关性无法预料。,瀑布模型变种:能够降低风险的瀑布模型,纯瀑布模型要求在开始架构设计前,必须将用户的所有需求都搞清楚,但是实际中是很困难的。 可降低风险的瀑布模型是在顶端,即需求分析和架构设计阶段引入螺旋以便降低风险。 在该螺旋中,先开发一个用户界面原型,采用系统情节串联图版(system storyboarding)引导用户提出需求,记录用户与系统的交互操作方式,或者采用其它需求获取方法。,实例,王力 户主(丈夫)公司老总 A地 已经是A地电信3G后付费用户,已开通了可视电话、3G上网卡、流媒体、手机支付等业务 李梅 妻子 公务员 A地 还不是A地电信的用户 王成 儿子 大学生 B地 是B地电信的3G预付费用户,已开通可视电话 刘莉 下属与朋友 秘书 A地 是A地电信3G后付费用户,软件过程与改进,未来的一天3G的生活,软件过程与改进,7:30,9:00,10:00,14:00,15:00,1、开户 2、缴费卡充值 3、3G基础语音业务使用 4、AOC,1、取消VPN 2、销户,1、3G语音业务使用,1、预付费转后付费用户 2、捆绑产品的订购 3、位置服务使用流程,1、VPN订购 2、VPN设置 3、VPN业务使用,1、费用查询 2、缴费支付 3、3G上网卡使用,16:50,1、集团短信业务的使用,17:00,1、流媒体业务的使用 2、WAP业务的使用,15:30,1、积分查询 2、积分兑换,22:00,一天,时间:7:30 1、王力,起床,吃过早点,用3G上网卡登 录WSS,查询了自己的费用; 2、在WSS上进行了交费(缴费卡); 3、而且在WSS上看到了,电信新推荐的一 项业务VPN业务; 4、王力对这一业务很感兴趣,想可以大大 降低企业通讯费用支出;在WSS上提交了关 于VPN业务的“咨询”,留下了自己企业秘书 刘莉的电话作为联系方式。,时间:9:00 王力来到自己公司; 秘书刘莉,接到电信客服的“VPN业务咨询回 访”电话;详细的了解了VPN业务; 向王力汇报;王力决策公司办理VPN业务; 刘莉去营业厅办理VPN业务; 刘莉用短号码呼叫老总王力,告知办理完毕;,时间:10:00 李梅去自己办公地点附近的电信营业厅,购买 了一部3G手机,并且为自己申办了3G预付费 号码,并买了张缴费充值卡,通过拨打*号 码向自己的预付费号码进行了充值; 然后李梅使用新开的3G号码,给自己的丈夫王 力的3G手机打了电话;告知自己办理了3G业 务; 通话结束后,系统提示李梅她的账户余额是 25元。,时间:14:00 公司秘书刘莉对今天公司一个离职员工进行取 消VPN集团用户业务。 因为某销售经理丁即将调离外地办事处工作, 公司秘书刘莉对他的办公电话进行销户(丁 的电话是后付费VPN用户)。,时间:15:00 李梅来到电信的营业厅,要将自己从预付费用 户转为后付费用户,办理了3G后付费+位置服 务套餐。 开通完成后,李梅立即使用了定位服务;寻找 附近的ATM,进行了取款。 可选项:李梅返回营业厅,给B地的王成3G手 机账户充了500元话费。,时间:15:30 王总用短信方式查询了一下自己的积分情况, 马上收到了电信发来的短信,发现自己积分足够 兑换一个价值一千元的旅行包。王总通过 10000号确定积分换实物的业务。,时间:16:50 王总审批完一个项目立项报告后,感觉有一些 细节问题比较模糊,认为有必要在次日召集相 关人员再次讨论,并及时确定下来。 王总给秘书通了一个电话,交给刘秘书安排明 天的事情。 刘秘书登录WSS,通过“集团短信”通知了相关 人员,讨论内容,时间地点等。,时间:17:00 王总给秘书打电话之后,收到3G手机中设置的 温馨提示:“今天是老婆的生日”.于是,随即利用 3G手机上网查询当晚电影预告,通过流媒体下 载业务,下载了新近大片的节目短片,并进行了 预定。 王总在回家的车上,和妻子李梅联系后,确定 晚上去看大片。于是王总上网下单,并通过电 子转帐业务购买了彩信方式的影票(电子影 票)。,时间:22:00 王力和李梅看完电影,回到家中。 这时王力的3G手机响了,是儿子王成从B地打 来的可视电话,王力接听了电话,聊了些王成 在学校的情况。,基于过程反复的过程模型,对于大型项目而言,系统需求的变更是无法避免的,因此开发过程的反复(迭代)是软件开发的必要手段;,迭代的思想 对一系列活动的重复应用,用以评估一系列论断,解决一系列风险,达成一系列开发目标,并逐步地、增量地建立并完善一个有效的解决方案的过程。 适用场合 需求并没有理解透彻,或者出于其他理由你认为它是不稳定的 开发团队对于某一领域不熟悉 项目包含许多风险 具有高素质的项目管理者和软件研发团队,软件过程与改进,过程反复可以和任何一种一般过程模型结合使用。 支持过程反复的过程模型: 增量式开发; 螺旋式开发 原型法,软件过程与改进,螺旋模型,Spiral 模型(Boehm提出) 以风险为导向的生命期模型 与原型法不同? 风险类型:预算风险、进度风险、人力风险、客户风险、需求风险、技术风险。 螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。 从一个小范围的关键中心地带开始寻找风险因素,制定风险控制计划,并交付给下一步骤,如此迭代,每次迭代将项目扩展到一个更大的规模,29,问题:有何优缺点?,螺旋模型,螺旋线划分成四部分 目标设置 风险评估和规避 开发与有效性验证 规划,软件过程与改进,螺旋模型,是风险(出现问题的可能性)驱动的软件过程模型。 螺旋模型将瀑布模型和增量模型结合起来,加入了风险分析。在该模型中,软件开发使一系列的增量发布,早期发布的增量可能是一个纸上的模型或原型,在以后的迭代中,逐步产生系统更加完善的版本。 该模型将开发过程划分为几个螺旋周期,每个周期有四(或六)个任务区域。 目标设置(确定目标、方案、约束) 风险评估及避免 开发和有效性验证 评估及规划(是否下一周期),软件过程与改进,软件过程与改进,特点,适合于大型系统的软件开发,随着过程的进展演化,开发者和用户能够更好的识别和对待每一个演化级别上的风险。 需要相当丰富的风险评估经验和专门知识,使该模型的应用受到一定限制。 随着迭代次数的增加,工作量加大,软件开发成本增加。,软件过程与改进,增量模型,心理规律:增减效应 人际交往中的”增减效应”:任何人都希望对方对自己的喜欢”不断增加”而”不断减少” 比如:许多销售人员就是抓住了人们的这种心理,在称货给顾客时总是先抓一小堆放在称盘里再一点点地添加,而不是先抓一大堆防放在称盘里再一点点地拿出,增量模型,采用瀑布或者快速原型时,目标都是一次就把一个满足所有需求的产品提交给用户。 增量模型:分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品,软件概念,需求分析,构架设计,阶段1:详细设计,编码,调试,,阶段2:详细设计,编码,调试,,软件过程与改进,风险更大的增量模型,增量式开发,这种开发方式不把系统作为一个整体交付,而是把系统分解成为若干个增量,每个增量交付系统部分功能; 用户需求按优先级进行排序,优先级最高的需求有最早交付的增量来完成; 一旦增量进入开发阶段,其需求的变更便被“冻结”,而同时后续的增量的需求分析可以同步进行。,增量模型的举例,举例:开发一个类似于Word的字处理软件 增量1:提供基本的文件管理、编辑和文档生成功能; 增量2:提供高级的文档编辑功能; 增量3:实现拼写和语法检查功能; 增量4:完成高级的页面排版功能; 增量5:。,软件过程与改进,增量式开发的特点,由于每个增量可以交付部分系统功能,因此软件可以较早的交付用户使用(部分功能); 早期交付的增量可以作为后期增量的原型帮助后期需求的确定;最重要的服务首先被交付并在增量过程中接受较多的测试。 项目总体的失败率较低; 优先级最高的系统功能得到最多的测试。 存在着过程不可见和系统结构不稳定的问题。,软件过程与改进,增量模型优点 能在较短时间内向用户提交可完成部分工作的产品 逐步增加功能,使得用户有较充裕的时间学习和适应新产品,减少一个全新的软件带给客户组组织的冲击 可维护性好 缺点: 如果管理层面和技术层面上缺乏仔细的规划,工作就无法进行。 使用阶段交付的注意点是: 必须确定每一阶段的交付是对用户有用的 必须确保考虑了不同产品组成部分的技术依赖关系,增量型需考虑的风险 需求未被很好地理解 一次要求所有功能 需求迅速发生变化 事先打算采用的技术迅速发生变化 长时期内仅有有限的资源(人员/资金),软件过程与改进,增量型适用时机 需要早期获得功能 中间产品可以提供使用 系统被自然地分割成增量 工作人员/资金可以逐步增加,软件过程与改进,不适用:开发团队分布在不同地方开发的大型软件;取决于硬件开发的嵌入型系统;安全性要求极高的系统等。,原型法,为什么需要原型法? 大胡子叔叔:今天我们要画一个大胡子叔叔,他形象很酷 大胡子叔叔:有一个大胡子叔叔,他长着两道微微上竖的眉毛,双眼皮,形状象杏仁;鼻子短短的,肉肉的;胡子两边从耳朵一直拖到肩部;衣服是黑颜色的,领子竖的很高,裤子上头宽下面细,裤脚装在陆战靴里,走路时两只手插进裤兜,A:留着长长的马尾辫,穿的是短短的夹克,清瘦的脸庞,满不在乎的神色.-艺术家 B:戴着墨镜,胖脸,高个,黑风衣,黑礼帽,帽檐压在脑门上面,几乎遮住了眼睛.-保镖,原型是项目系统中的一个方面或者多个方面的工作模型。是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌 抛弃型原型:用于试验某些概念,试验完系统将无用处。抛弃性原型法是每次构建原型后着重记录用户不认可的信息,经过多次反复后将用户不认可的部分全部排除后形成最终用户系统的方法 进化型原型:原型系统不断被开发和被修正,最终它变为一个真正的系统。通常是先开发运行一个子系统或分子系统,再扩充其功能或者开发另一个相关的子系统或分子系统,并归并集成,这样自底向上地逐步得到一个较完整的系统,软件过程与改进,原型开发模型的使用方法, 试验性开发,客户提出了软件的一些基本功能,但是没有详细定义其他需求;或者开发人员对与一些技术的使用不确定。 Step 1:双方通过沟通,明确已知的需求,并大致勾画出以后再进一步定义的东西。 Step 2:迅速策划一个原型开发迭代并进行建模,主要集中于那些最终用户所能够看到的方面,如人机接口布局或者输出显示格式等; Step 3:快速设计产生原型,对原型进行部署,由客户和用户进行评价; Step 4:根据反馈,抛弃掉不合适的部分,进一步细化需求并调整原型; Step 5:原型系统不断调整以逼近用户需求。,软件过程与改进,原型法,原型的好处 从实践中学习(Learning by doing) 改善的通信 改善的用户参与 使部分已知的需求清晰化 展示描述的一致性和完整性 可能可以减少文档 减少了维护成本 特征约束(利用工具构造原型可以将某些特性落到实处,而非在纸上写的那样容易失误) 试验是否能产生期待的结果,51,原型法,原型法的缺点 用户有时误解了原型的角色,例如他们可能误解原形应该和真实系统一样可靠 缺少项目标准,进化原型法有点像编码修正 缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制 额外的花费:研究结果表明构造一个原型可能需要10%额外花费 运行效率可能会受影响 原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。,52,原型实现模型,原型是一个软件的最初版本。 当用户不能给出完整、准确的需求说明,或者开发者不能确定特定软件的一些解决方案(如算法的有效性、操作系统的适应性或人机交互的方式等),可以根据用户的一组基本需求,快速建造一个原型。 通过用户反馈意见不断修改、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解。,存在的问题,为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。 为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,或者采用特殊的工具和技术。这些不理想的选择可能成为系统的组成部分或者与系统的主流技术不相容。 开发过程不便于管理。适合于小规模的系统或界面设计。,软件过程与改进,有效的使用原型模式是: 建造原型仅是为了定义需求,之后就被抛弃(或被部分抛弃),实际的软件在充分考虑了质量和可维护性之后才被开发。,软件过程与改进,案例:教务管理系统, 教务管理系统 第一次迭代:完成基本的学籍管理、选课和成绩管理功能;客户反馈基本满意,但是对大数据量运行速度慢效率,不需要学生自己维护学籍的功能等 第二次迭代:加入权限控制,提高成绩统计和报表执行效率; 客户反馈:报表打印格式不符合要求 第三次迭代:完善打印和权限控制功能; 客户反馈:可以进行正式应用验证;,软件过程与改进,与增量模型的区别, 增量模型:先构造一个核心功能,往里面加东西,每次是一个可操作软件,最后是产品的一个部分。 原型开发:得到基本需求后,简单分析就开始开发。用户不满意,原型有可能抛弃。原型是让用来拿来进行评估和提意见的,可以是用户界面,或某一阶段的文档。根据用户的意见,再完善。,软件过程与改进,57,喷泉模型,面向对象 迭代,喷泉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论