基于USDP的软件质量控制_第1页
基于USDP的软件质量控制_第2页
基于USDP的软件质量控制_第3页
基于USDP的软件质量控制_第4页
基于USDP的软件质量控制_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

基于USDP的软件质量控制陈利剑 曾一(重庆大学计算机科学与工程学院 重庆 400044)摘要:在研究软件质量控制的过程中,CMM是一个很重要的成果。作为一种框架性标准,并不具备可操作性,需要结合一种具体的可操作性过程来实现CMM。在统一建模语言UML的基础上产生了统一软件开发过程USDP。为了达到软件过程控制软件质量的目的,本文基于USDP实现了CMM可重复级。并在此基础上给出了简化的企业软件过程模型,试图为企业软件过程的确立提供基础。关键词:UML,USDP,CMM,KPA,软件过程Software Quality Control Based on USDPCHEN Liljian ZENG Yi(School of Computer Engineering and Science Chongqing 400044)Abstract: During the research of software quality control, CMM is an important production. it is a body of standard, however, it is not operational. A operational process is needed to integrate for achieving CMM. Unified Software Development Process(USDP) is established based on Unified Model Language(UML). In order to control software quality using software process, achieving CMM based on USDP is presented in this paper. And a simple model of enterprise software process is presented in this paper, attempt to provide the foundation for enterprise software process.Keyword: UML,USDP,CMM,KPA,Software Process1 引言软件质量对于软件工程师、管理人员和研究人员来说都是一个重要的问题2。国际上从20世纪70年代就开始研究软件的质量控制问题,Rubey和Hartwick于1968年提出一些质量属性的度量方法,Boehm等人于1976年提出了定量地评价软件质量的概念17。随着软件质量领域知识的增长,逐渐出现了一些重要的国际标准,ISO9000和CMM就是其中最具代表性的成果。CMM强调了软件机构能一致地、可预测地生产高质量产品的能力。CMM是由SEI应美国联邦政府评估软件商能力的要求提出的,其目的是在成本和进度要求条件下提交高质量的软件15。在1993年推出了CMM1.1版本1,CMM将企业的软件过程成熟能力划分为五级,分别是初始级、可重复级、已定义级、已管理级和优化级。等级越高的企业软件过程可见度越好,软件过程的可控性越高,产品性能的预见性以及软件项目的风险评估也越准确,企业的生产能力以及产品质量也越来越高。软件质量是反映软件系统或软件产品满足明确或隐含需求能力的特性的总和4。由于软件质量一直是一个捉摸不定的目标3,软件质量的讨论一般都集中在开发过程或软件产品的属性上11。CMM是改善过程和产品质量的标准,但是其不具备过程性的可操作性,不利于具体实现。本文就是结合统一软件开发过程(USDP)来实现CMM可重复级,从而使软件企业通过软件过程控制软件产品质量。2 新一代的软件开发过程USDP是在统一建模语言UML的基础上建立起来的。USDP对于如何运用UML概念进行软件开发提供了详细的指导。过程应该能够指导开发队伍做什么,怎么分配任务和合作,并且能保证开发组间高效地交流5;一个有效的过程能为有效地开发高质量的软件提供准则,降低开发风险并增强预见性14,USDP满足了这些条件。USDP是一个动态的开发过程,能随时间的推移不断进化。USDP是一个可以剪裁的过程框架,可以根据应用领域或具体项目进行剪裁。因为存在很多的原因可以导致在软件开发中过程的不同5。USDP的一个比较完整的定义:是一种基于构件的,用况和风险驱动的,以构架为中心,迭代和增量式的开发过程。下面分五个要素来解析USDP。1)USDP是基于构件的。基于构件的含义是USDP支持软件复用,并增强软件产品的可维护性。软件复用是提高软件生产力和质量的一种技术,可以减少开发和维护的花费17。2)USDP是用况驱动的。用况驱动的含义是在产品开发的各个阶段都和用户的真正需求直接关联,即用况驱动开发过程。以用况捕获需求、制定计划、分配任务、监督执行、测试制品,将核心工作流结合为一体。在开发的每个阶段都能回顾一下为用户实际做了什么,从而确保系统能真正满足用户的需求,提高了系统的有的放矢性,远离盲目性。3)USDP是风险驱动的。迭代的开发方法降低了风险,USDP强调对风险进行预测、集中管理和跟踪处理。软件开发长期面临这些坏的境况:预算超支,交付延期,不能满足用户需求和无用的系统,即使开发技术、工具和软件技术得到巨大的提升这些境况也仍然在继续6,八十年代早期,这些问题通过软件风险管理得到减轻7。总的来说,软件风险管理对于改善系统开发带来了很大的希望8。4)USDP是以构架为中心的。以构架为中心的含义是在开发的早期阶段勾画整个开发的骨架性的蓝图,抓住系统的重要结构元素建立构架视图,用来控制后期的迭代开发。基于构架的软件开发使注意力由代码行转向了粗略的构架元素(如构件和连接器)和它们的连接结构9,对于理解系统、组织开发和构件重用都有很大的作用。5)USDP是迭代和增量式的。其含义是以细小的步骤开发,整个开发分为多次迭代,每次迭代象一个微型项目,经历所有的核心工作流。增量就是两次相临的迭代之间的发布产品的差别,一次迭代的结果就是一个增量。每次迭代后产生一组基线制品,对基线制品经过评估和修改后才在此基线的基础上进行下一次迭代开发。通过一系列的迭代得到最后的产品发布。此要素有利于逐步降低风险,适应用户需求的不断变化,允许开发过程中的灵活多变,迭代和阶段产生的基线和里程碑增加了过程的可视性,便于过程、产品的管理和控制。图1.USDP五要素关系图1. 驱动,2.指导,3.驱动,4.控制,5.实现,6.驱动,7识别,8.缓解,9.复用用况构架迭代123456风险构件7893 基于USDP实现CMM 可重复级CMM的主要目标之一是改善过程和产品质量10。CMM只是描述了过程应当解决的问题,而非如何去执行;其关键过程域(KPA)是静态的、高层次地、抽象地描述了过程,而没有说明如何去执行,即使其关键实践也只是描述要做什么,而没有强行规定“怎样”完成目标15。USDP却是一个描述详细的开发过程,叙述了详细的实现步骤。CMM是一种框架性的标准,它可以用各种过程和方法实现。要实现CMM,所选用的过程必须不仅能够直接实现CMM中的大部分目标,而且还要是可管理的,提供方便CMM实现的机制和活动。新一代的开发过程USDP能够达到这一要求,并且两者之间有很多相同和相似的概念,如基线、里程碑等。从共同特性来看,CMM要满足一个KPA,依靠的是过程的执行和制度化两个方面。执行在执行活动共同特性中描述,而制度化在其他共同特性中描述15,其他的共同特性是为保证执行活动而服务的。过程是活动的集合,保证了活动质量才能为保证过程的质量提供基础,从而进一步为生产高质量的软件产品提供基础。尽管没有太多证据能确切说明过程标准能保证好的产品3, 但却有很多的证据说明标准和标准相关的指南及其推荐的实践,的确能改善产品质量13。下面就通过实现CMM,达到USDP对软件质量控制的目的。以USDP实现CMM可重复级,以KPA的目标为目标,以KPA 的执行活动为基础,对每个KPA都给出了基于USDP的实现。因为USDP是一个开发过程,而有的KPA是属于其他过程的。在USDP不具体支持实现的情况下,也给出了USDP为KPA目标的实现提供了便利和基础。以辅助实现表述。下面对每个KPA进行描述:1)需求管理 目标1:控制软件的系统需求,为软件工程和管理应用建立基线。 实现:在USDP中,基于用况来捕获和管理系统需求,随着迭代用况不断增加,需求不断完善。随着迭代用况得到测量验证,对系统需求进行可控的更新。为了能有效地描述需求,提出了需求集合,主要包括用况模型(功能需求)和补充需求(非功能需求)。需求集合帮助分析人员控制和管理以后的开发工作。目标2:开发计划、产品和活动与指定给软件的系统需求一致。 实现:在USDP中,系统需求主要由用况模型组成,而USDP是由用况驱动的开发过程,强调用况被分析、用况被设计、用况被实现、用况被测试等。并且需求工作流的结果被用来帮助项目经理规划迭代和客户版本。在里程碑版本也有用户评审和验证的过程。2)软件项目计划目标1:成软件估计文挡,以供计划和跟踪软件项目使用。实现:在USDP的初始阶段要求在宽限条件下对成本、工作量、进度和产品质量进行初步估计。体现在建立最初的案例、估计主要的风险、寻找缓解的办法。目标2:定软件项目的活动和约定计划并形成文挡。实现:在USDP中,强调计划先于行动,计划分两类,项目计划和迭代计划,两类计划一起制定,但是在制定时都比较粗略,随着迭代的进行,将变的越来越详细。每次迭代又制定迭代计划和迭代评价准则。另外,建立风险清单并且按对系统的影响程度进行排序。目标3:关小组和个人认同与软件项目相关的约定。实现:在USDP的初试阶段制定生命周期目标后,要求必须得到项目相关人员的认同。3)软件项目跟踪和监督目标1:软件计划对实际结果和过程运行效能进行跟踪。实现:根据软件计划中的评估准则对迭代开发中的基线和里程碑制品进行评估。只有通过评审后才进行下一次迭代。依据软件计划中的风险清单对风险进行跟踪处理,预先避免或缓解。迭代开发能很好地支持软件项目的跟踪,基线制品和里程碑版本都增强了开发的可视性以便于跟踪监督。目标2:实际结果和过程运行效能与软件计划相差甚远时采取改进措施。实现:每次迭代评估都会得到反馈信息,这些反馈信息有两个作用,修改本次迭代中与用户需求和开发计划中不相符合的地方,调整下一次的迭代计划。另外,使用可视化的UML语言对变更进行记录和控制。目标3:改软件约定时经相关小组和个人同意认可。实现:在USDP的每次迭代中,强调交付本次增量递增的功能,并进行评估,使与项目所有相关的人员能够清楚地看到项目的进展情况。所有相关人员认可本次增量后才进行下一次迭代,在出现变更时也要所有相关人员认可。4)软件的分包合同管理目标1:承制方选择合格的软件分承制方。辅助实现:尽管USDP中没有具体涉及项目分包管理的问题,但是USDP 以用况描述需求,以构架刻画系统的开发方式为项目的分包提供了基础。主承制方可以根据用况进行分包,也可以根据构架进行分包。目标2:承制方和软件分承制方就彼此的约定达成一致。辅助实现:在构架形成之后,整个系统可以并行开发。因为有了统一的接口,并且USDP本身就是基于构件的,所以以构件或子系统进行分包开发是非常恰当的。在主承制方开发计划的基础上,分承制方可以有自己的开发计划。目标3:制方和软件分承制方保持工作联系。辅助实现:迭代开发的方式保证了主分承制方保持工作联系,USDP 采用统一建摸语言UML来记录表示,保证了主分承制方的交流合作。目标4:承制方根据制定的约定跟踪软件分承制方的实际执行情况及其结果。辅助实现:在主承制方评估基线和里程碑版本时也要评估同一时间的分承制方制品。主承制方验收分承制方的产品,依据构架组合产品,由统一的配置管理组织发布产品。5)软件质量保证目标1:件质量保证活动做到有计划。辅助实现:尽管在USDP中没有明确提出软件质量保证的概念,但是其迭代计划中每次迭代的评估准则,其中包括每次迭代应该达到的目标。为软件质量保证提供了基础,也为软件质量保证计划提供了基础。目标2:客观地验证产品及其活动是否遵循应用的标准,规程和需求。实现:在每次迭代的结束后,都由本次迭代计划中的评估准则来验证本次迭代实现的目标。就测试而言不仅包括新功能的新测试,也包括回归测试,用来验证本次迭代没有对以前的基线制品产生不良影响。评诂可以衡量技术是否真正改善了软件,也就是过程质量在多大程度上影响了产品质量3。目标3:软件质量保证活动及其结果及时通知到相关小组和个人。实现:迭代开发的方式为SQA组实施软件质量保证活动提高了项目开发的可见性。USDP强调开发小组和人员的协调工作,让所有相关小组和个人了解当前的项目进展状况。6)软件配置管理目标1:件配置管理活动是有计划的。 辅助实现:在USDP中明确提出了基线制品和里程碑制品,项目计划对每个开发阶段将要形成的里程碑产品制定目标,迭代计划对每次迭代将要形成的内部发布版本制定目标。这两种计划将直接支持配置管理计划。 目标2:选择的软件工作产品是经过标识,受到控制并具有可用性的。 实现:软件工作产品是在迭代计划中产生的,保证了工作产品具有可用性。每次迭代以迭代计划和迭代评估来控制基线制品。迭代计划预先制定了每次迭代的目标制品,由目标制品构筑内部发布版本。目标3:标识的软件工作产品的更改是受控的。实现:对所有的软件工作产品的更改由统一建模语言UML来可视化记录。依据工具(例如Rational Rose 中的ClearCase工具)的支持能够恢复以前的任意版本对其进行更改。每次迭代后要对基线制品进行评估和测试并且回归测试,以确定更改对当前版本和以前版本的影响。目标4:相关小组和个人及时了解软件基线的状态和内容。实现:在USDP中。每一次迭代在内部或外部产生不同制品的发布,这些不同的制品组合在一起构成基线。一条基线是一系列经评估和批准的制品。每次迭代结束后,对本次迭代产生一组基线制品进行评估,并让相关小组和人员清楚地了解项目的进展情况。图2是USDP和CMM的结合开发模型。项目规划需求管理风险管理建立构架构件重用跟踪监督配置管理UML文档验证评审图2 .USDP和CMM结合的开发模型4 软件过程简化模型CMM和USDP都是可以剪裁的1215,CMM是一个标准框架,USDP是一个过程框架,任何一个企业,任何一个项目都没有必要花费精力去实现它们中的所有的东西,那将是徒劳无益的。在软件开发中,要具体问题具体分析,依据软件开发环境和应用领域对CMM和USDP进行剪裁形成自己的机构标准过程,依据项目对机构标准过程剪裁形成适应项目定义的软件过程。USDP只是开发过程,完整的软件过程还包括管理过程,支持过程等一些同等重要的过程17。而USDP没有对其他过程具体描述,所以要想成功地运作USDP,还必须对其依据CMM施以管理和支持。图3是包含USDP和CMM的软件过程简化模型。在软件开发中不存在一种通用的开发过程,过程只能在具体的条件下才能更好的工作5。 企业过程 管理过程支持过程开发过程项目 CMMUSDP剪裁图3.企业软件过程简化模型5 结束语USDP是一个工业化标准的软件开发过程,已被较为广泛地使用。它较为详细地阐述了一系列的过程,具体地表现出了一个完整的软件开发周期,在这方面它超越了其他的面向对象的分析和设计方法。相信随着面向对象和构件技术及方法的发展,USDP会更加成熟,成为主流的软件开发过程。我国软件业缺乏规范的管理,软件生产的过程没有明确地定义,过程实施缺乏管理,产品质量得不到有效的控制16。相信USDP的出现能给国内中小软件企业带来新的机构标准软件过程,使之建立明确的软件生产过程,从而控制软件产品的质量,使围绕软件行业的各种问题得到解决。本文提出的企业软件过程简化模型说明了在企业中USDP实施的位置和与CMM的结合,相信众多软件企业通过实施USDP能改进自己的软件过程,在软件过程能力成熟度上跃上更高的级别。参考文献:1.M.C.Paulk,B.Vurtis and M.B.chrissis,”Capablity Maturity Model ,Version1.1”,IEEE Software,July.1993.2. E.Yourdon,”Quality: what is means and How to Achieve It ”,Management Information Science,Feb.1993.3. B.Kitchenham,”Software Quality: The Elusive Target”, IEEE Software, Jan. 1996.4.ISO 8402 Quality Management and Quality Assurance-Vocabulary,International Organisation for Standardization,Geneva,2nd Edition,1994.5.M.Lindvall and I.Rus,”Process Diversity in Software Development”, IEEE Software, July-August 2000.6.M.Griffith and M.Newman,”Software Development Risk Management,A Special Issue”,J.Information Technology,Vol.12,No.4,1996.7.B.W.boehm,”Software Risk Management,Principle and Practice”,IEEE Software,Jan.1991.8. B.W.Boehm,”Software Risk Management”Tutorial IEEE CSPress,1989.9. N.Medvidovic and R.N.Taylor,”A Classification and Comparison Framework for Software Architecture Description Language”,IEEE Trans.Software Engineering Jan.2000.10.Stanley M.Sutton.Jr.,”The Role of Process in a Software Start-up”, IEEE Software,July-August 2000.11.P.Simmon, ”Quality Out

温馨提示

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

评论

0/150

提交评论