(计算机软件与理论专业论文)基于cmm的软件质量度量研究.pdf_第1页
(计算机软件与理论专业论文)基于cmm的软件质量度量研究.pdf_第2页
(计算机软件与理论专业论文)基于cmm的软件质量度量研究.pdf_第3页
(计算机软件与理论专业论文)基于cmm的软件质量度量研究.pdf_第4页
(计算机软件与理论专业论文)基于cmm的软件质量度量研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

哈尔滨工程大学硕士学位论文 摘要 软件质量度量是提高软件质量的一个重要途径,本文在分析c m m 和软 件过程的基础上,将c m m 中不断改进的思想纳入到软件质量度量过程中, 对软件质量度量模型和度量工具进行了研究。 本文研究了软件质量、软件度量基本概念,对已有的软件质量度量模型 进行了分析,在深入研究软件度量理论和c m m 理论的基础上,重点讨论了 软件产品质量在c m m 模式下的度量活动过程和度量方法,给出了一种基于 c m m 的改进的软件质量度量模型,着重分析了在面向对象系统中基于这种 软件质量度量模型的设计属性和度量元,将不断发展的软件设计理论和质量 度量评估标准纳入到软件质量度量模型中,从而通过可度量的设计属性将软 件质量的内部特性和外部特性联系起来根据统一的度量标准,使可直接度 量的软件质量内部特性定量的向上传递,实现对软件质量定量度量的尝试。 本文给出一个面向对象软件质量度量工具的系统框架,并实现了其中对 象特性集和度量指标集的数据存储设计。为该模型在实际软件质量过程中的 应用做好了准备最后利用数据,描述了使用软件质量度量模型的过程。 关键词:软件能力成熟度模型;软件质量度量模型;度量标准;度量工具 哈尔滨丁程大学硕士学位论文 a b s t r a c t s o f t w a r eq u a l i t yl l = t r i c $ 啪b es e e na s 姐e f f i c i e n tw a yt oi m p r o v et h e q u a l i t yo fs o f t w a r e b a s e do nt h ec m mm e o g y 9t h ei d e ao fu n i n t e r r u p t e d i m p r o v i n gp r o c e s si si n u - o d u c e di n t ot h ep r o c e s so fs o f t w a r eq u a l i t ym e t r i c s , m o d e l sa n dt o o l so f s o , w a r eq 豫u t ym e t r i c sa r e 地s e a r c h e di nt h i st h e s i s f i r s t l y ,s o r a r eq u a l i t ya n ds o f t w a r em e t r i c s a r ei n u _ 0 d u c e d , a n dt h ee x i s t i n g s o f t w a r eq u a l i t ym e t r i c sm o d e l sm ea n a l y z e d m e t r i c sa c t i v i t i e sa n dm e t r i c s m e t h o d si nc m m 黜r e s e a r c h e d b a s e do nt h ee , d s t i n gs o f t w a r eq u a l i t ym e t r i c s m o d e l s , c o m b i n e dw i t hc m mt h e o r y ;an e ws o l 胁l r eq u a l i t ym e t r i c sm o d e li s d e s i g n e d s o f t w a r ed e s i g nt h e o r ya n dm e t r i c sc r i t e r i o na 北i n c l u d e di nt h i sm o d e l s o f t w a r ed e s i g nt h e o r yi saw a yt oc o n t a c tc h i l dq u a l i t yc h a r a c t e r i s t i ca n d s o f t w a r em e t r i c sm e t a d a t a w i mt h ed e v e l o p m e n to fs o f l w m ed e s i g nt h e o r y t h e m o d e lw i l lg e tb e t t e ra n db e t :t e r m e t r i c sc r i t e r i o n sg i v eas t a n d a r dt of l 艄i s et h e q u a n t i f i c a t i o n a ls o f t w a r eq u a l i t ym e t r i c s i tg i v e saw a yt on m 墒瓤l t h es o f t w a r e q u a l i t yq u a n t i f i c a t i o n a l l y a tl a s t , am e t r i c st o o lf o ro b j e c t - o r i e n t e ds o f t w a r eq u a l i t ym e t r i c si sd e g i s n e , l t h es t o r a g es t r u c t u r eo fo b j e c tc h a 托i c t e ra n dm e t r i c si n d e x 鼬t h eh a r d c o r e t e c h n i q u e so f t h et 0 0 1 t h ed e s i g no ft w os t o r a g es t r u c t u l ei sg i v e ni nt h i st h e s i s t h e ya 托p r e p a r e dt or e a l i z et h es o f t w a r eq u a l i t ym e t r i c st 0 0 1 b a s e d0 1 1d a t a a n a l y s i s , t h ep r o c e s so f m e a s u r i n gt h es o f t w a r eq u a l i t yi nt h i sm o d e l i sd e s c r i b e d k e y w o r d s :c m m ;s o t v a 把q u a l i t ym e t r i c sm o d e l ;m e t r i c sc r i t e r i o n ;m e t r i c s t o o l 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中已 注明引用的内容外,本论文不包含任何其他个人或集体已 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 作者( 签字) :籀,玄趣 日期:川年月夕e t 哈尔滨工程大学硕士学位论文 第1 章绪论 1 1 选题的背景及意义 软件研发是一个逻辑性很强的智力劳动,随着软件系统的广泛应用,软 件的规模变得开益庞大,与此同时软件的质量变得越来越难以管理和控制, 软件研发的风险随之增大,软件一旦出错,就会给用户带来损失,严密的测 试活动也不能保证软件不出错,软件的质量问题成为困扰软件组织生产的主 要问题。为了提高软件的质量。降低因修改软件错误增加的成本,按时交付 开发任务,需要不断地进行软件工程方面理论和方法的研究。软件界的多年 研究表明,要在预算的时间和成本下生产高质量的软件关键在于软件过程的 有效管理,只有将过程规范化并进行度量和不断改进,才能生产出高质量的 软件产品n ,。 软件过程是软件开发人员开发和维护软件及其相关产品的一套行为、方 法、实践及交换过程”一。美国的卡耐基梅隆大学( c a r n e g i em e l l o nu n i v e r s i t y , c m u ) 软件工程研究所( s o t h v a r ee n g i n e e r i n gi n s t i t u t e ,s e i ) 发布的软件能 力成熟度模型( c a p a b i l i t ym a t u r i t ym o d o lf o rs o r w a r e ,c m m ) 是一个改善软 件过程的工具,以一种结构化的成熟度框架描述软件工程和管理的优秀实践, 以期达到软件组织项目管理能力加强、研发能力提升的目的,推动软件产业 的工程化过程。在软件过程中,软件的质量、进度等都是可以预测的。但是 c m m 仅提出了一个框架,并没有提出实现每个关键过程域的具体知识和方 法,其实现依赖于人员的积极参与和创造性。 计算机软件的质量闯题已成为制约计算枧技术应用领域扩大的主要因 素,现在软件组织已经把提高软件的质量放在比提高软件的性能和功能更重 要的地位上。提高软件质量的途径大概有培养人才,加强管理和提高技术三 种。 、培养人才:软件开发主要依赖于人的智力劳动,提高软件开发人员的素 哈尔滨工程大学硕士学能论文 质能力是提高软件质量的一个重要途径 加强管理:高质量的产品生产必须有严格的管理制度,软件生产也不例 外,同样需要严格的管理制度来制约软件开发过程;严格的管理是软件质量 的一个重要保障 。提高技术:软件质量保障和软件质量管理技术是软件生产管理基础,是 软件生产方法学和软件工程理论的重要组成部分。软件组织只要不断的采用 先进的技术改进软件开发过程,才能保证生产出高质量的软件产品。 软件质量度量就是衡量软件优劣的一把尺子,通过数学理论将软件质量 转化为量化的数值,根据以往项目开发的经验,评价当前所开发的软件的质 量,改进软件开发的过程,保质保量地完成软件开发任务 1 2 国内外研究现状 软件度量并不是一个全新的概念,软件度量学的基础工作开始于2 0 世纪 6 0 年代,主要研究在2 0 世纪7 0 年代,发展在加、年代m 。国外已经在7 0 年代就出现了用度量来衡量软件的质量。1 9 8 6 年英屋开展了。基于结构化的 软件度量”项目,致力予模型的建立和对软件结构的分析和度量美国最早 关于软件质量度量的研究出现于2 0 世纪7 0 年代,并且得到了软件工程研究 所等研究机构的太力支持,现在软件质量度量已经在美国很多大型公司中广 泛开展起来;包括n a s a 、m o t o r o l a 等。 美国卡耐基- 梅隆大学软件工程研究所应美国政府的要求,在m i 匝公 司的帮助下,开发出软件能力成熟度模型和成熟度提问单的一个初始版本, 首先于1 9 8 7 年发布了初步的成熟度提问单,而后又研制出软件过程评估和软 件能力评价两种方法,以评估软件过程成熟度m 到1 9 9 0 年,s e i 基于软件 过程改进方面的经验,进一步扩展和精练了该模型,并于1 9 9 1 年推出了 c m m i 0 版。经两年完善和补充后,发布了c m m l 1 版。 c m m 是描述软件过程的关键元素的框架。它提供了一个对软件开发组 织的软件过程从无序的、不成熟的过程到有纪律的、成熟的软件过程改进的 评价标准。c m m 定义了一系列对软件开发和维护过程进行工程化管理的实 践。遵循这些实践可以有效地提高组织在软件开发的成本,进度、功能上进 2 哈尔滨+ r :程大学硕士学位论文 行改进的能力。c m m 描述了一个应该如何建设软件企业的标准,根据这一 标准判断软件组织的软件过程能力成熟度。软件企业也根据c m m 进行自身 的软件过程改进,其实c m m 现在已经成为软件业事实上的标准。对于实施 c m m 的软件企业来说,软件度量尤为重要。但是c m m 只为企业提供了一 个指导性的原则,只提供了要达到相应的软件能力成熟度等级必须完成哪些 实践,但是如何实施这些实践却并没有在框架模型中傲明确说明。在c m m 实施过程中并没有系统的方法说明应该度量哪些数据、如何进行度量,缺少 给用户具体的指导,可操作性不理想。 国外对这方面的研究已经非常地深入,并且已经纳入到软件开发实践中, 而国内在这方面的研究才刚刚起步,只是近几年在高校和一些研究组织进行 了相关的研究,基本上没有什么实际应用。长期以来我国软件产业一直处于 “作坊式”生产,对软件质量度量和管理的研究非常少,因此,进行软件质 量度量方面的研究对我国软件业生产能力的提高具有非常重大的意义。 本文研究工作的应用领域主要是针对中小型软件开发组织而言,帮助这 些组织在软件产品开发过程中进行有效的软件质量度量和控制,及时地发现 闯题,控制软件产品开发的中间结果和最终产品的质量,生产出高质量的软 件产品。 1 3 本文的研究内容 随着软件的广泛应用,软件的规模只盏变大,软件质量成为困扰软件开 发的主要问题,使软件开发变得越来越难以控制和管理。为了解决这个问题, 重要的一步是将整个软件开发任务看作是一个可控制的、可度量的以及可改 进的过程。c m m 描述了软件过程进化的改进途径。它帮助软件企业建立一 个从无序、不成熟的软件过程变为有序的、成熟的软件过程,为提高软件产 品的质量,改进软件开发过程提供了很好的帮助。c m m 在c m m 2 级中提出 了“软件质量保障”关键过程域。在c m m 4 级中提出了“软件质量管理”过 程关键域,对有志于提高软件开发能力的软件组织来说,软件过程控制和质 量管理越来越重要。c m m 模型为软件企业进行度量提供了一个指导性的原 则,并且已经成为软件工业界实际的标准。但是在其实施过程中也存在着不 3 哈尔滨1 :程大学硕士学位论文 足;实旌起来可操作性差,c m m 只提供了一个指导性的原则,并没有说明 该如何改进软件过程;没有统一的评价体系,难以找出软件进行过程改进时 存在的不足。 。 本文考虑到国内企业进行软件质量度量的需要,深入研究了c m m 中关 于软件度量和软件质量的相关内容,并在对已有的软件质量度量模型分析研 究的基础上,运用c m m 全面质量管理的思想,将软件产品质量度量纳入到 软件生命周期模型中,给出了一种以c m m 不断改进过程的思想为基础的软 件质量度量模型。该模型从传统的单纯对软件产品的度量活动,扩展为软件 产品的测试和开发过程的度量;从原来的事后度量行为发展为全过程度量和 分析,能够有效地预防缺陷及控制质量;该模型将软件度量过程与软件开发 过程的其它阶段并行进行,力争将缺陷控制在软件开发过程的每一个阶段, 降低质量风险。 1 4 本文的组织结构 考虑到国内软件度量技术研究与应用的现状,为了使软件度量在软件开 发实践中真正开展和应用,本文对软件质量度量进行了研究,并对软件质量 度量模型进行了改进。本文主要研究内容共分五章: 第l 章分析了软件质量度量的研究背景与意义,讲述了面向对象技术在 国内外的应用现状,并介绍了本文的主要研究工作 第2 章介绍c m m 的理论基础,以及c m m 的概念、c m m 框架的优点、 c m m 的主要用途、在c m m 实施过程中对软件组织的指导作用和实施的困 难度、国内c m m 实施的情况。分析了c m m 关键过程域对软件质量度量的 要求,对c m m 框架中的要求进行分析,总结出其中的优势和不足。 第3 章阐述软件质量度量理论基础,介绍软件质量及软件度量的基本理 论,软件质量度量的主要活动以及现有的几种软件质量度量模型,着重介绍 了几个软件度量模型,包括b o e h m 模型、m e c 加模型、i s o i e c 9 1 2 6 模型、 i s 0 棚、c 9 1 2 6 改进模型和改进的四层模型等,分析了以上模型存在的不足。 第4 章针对已有软件质量度量模型中存在的问题,在理论上结合不断发 展的软件设计理论,在分析方法上将自顶向下与自底向上的分析方法相结合。 4 哈尔滨工程大学硕士学位论文 i i i i ;j ;j ;i ;i i ;e ;i ;j ;j ;j j i i ;i ;目目;i ;| j i ;j ;j ;宣 给出了一个基于c m m 的新的软件质量度量模型( n e ws o f i w a 他q u a l i t y m e t r i c sm o d e l ,n s q m m ) 此模型由五层结构组成,由上至下分别是质量 特性、质量子特性、可度量的设计属性、度量标准和度量元。将n s q m m 应 ,用到面向对象系统的质量度量中,使软件的设计属性将软件质量子特性和可 直接测量的度量元联系起来,并且根据度量标准将直接度量得到的度量元的 值定量地反映给软件质量度量模型的上层,使得到的软件质量的评价值更加 科学、准确,更好地指导面向对象软件质量度量的实践。 第5 章在n s q m m 的基础上,设计一个以对象特性库和度量指标库为核 心的软件质量度量工具,通过对面向对象系统的分析,进行了对象特性集和 度量指标集的数据库设计,提供了面向对象度量工具中软件特性和度量数据 存储空间:并在面向对象软件质量度量工具的基础上,利用数据描述了定量 计算软件设计属性的评价值以及软件质量评价值的过程,为面向对象质量度 量工具中分析决策部件的实现提供了理论基础。 最后对全文进行总结,归纳了本文的主要论点和研究工作,并对以后的 研究方向进行了展望。 , 哈尔滨+ 【j 陧大学硕士学位论文 第2 章软件能力成熟度模型 c m m 是卡耐基梅隆大学的软件工程研究所开发的,用于描述软件过程 中关键成分的框架。c m m 指的是一个软件开发组织或者某个开发项目有效 的定义、执行、管理、测量和控制其各种软件过程的综合能力高低的一个度 量尺度,这种综合能力是通过对软件组织的各种软件过程能力来进行度量的, c i v t m 同时也是一个软件过程控制的评估框架。本章中将介绍c m m 的基本 构架和c i v l m 在实践中的作用,分析其优缺点。 2 1o m m 的组织结构 c m m 是软件组织对过程能力的一个阶段化的进化框架,采用分层的思 想来安排它的组成成分,目的是适应不同机构使用的需要”t 。成熟度等级位 于顶层,不同的成熟度等级反映了软件组织的软件过程能力可能实现预期结 果的程度,每个成熟度等级都包含实现这一级目标所需达到的若干个关键过 程域( k p a ) ,而每个关键过程域包含着若干个关键实践。特定级别的k p a 将作为达到这一成熟度等级的根本需求。图2 1 反映了c i v l m 的组织结构 圈2 ic l v i m 组织结构图 如图2 1 所示,c m m 由六个部分组成:成熟度等级、过程能力、关键过 6 哈尔滨t 程大学硕士学位论文 程域、目标、共同特点和关键实践。而且c m m 理论中定义了c m m 结构包 括5 个成熟度等级,1 8 个关键过程域,5 2 个目标和3 1 6 个关键过程n , 1 成熟度等级 成熟度等级是实现软件成熟过程进化途中的一个妥善定义的平台,五个 成熟度等级像台阶一样,每提升一个成熟度等级,就标志着软件能力的一个 质的飞跃。成熟度等级是c m m 的顶层结构n ;。 2 过程能力 过程能力是描述执行软件过程能够实现预期结果的程度。它提供的是一 个可以预测该组织承担下一个项目所产生结果的方法,可见,软件过程能力 关注的是预测的结果,而不是实际的结果。 3 关键过程域 关键过程域是相互关联的若干软件实践活动和相关基础设施的集合。关 键过程域是一组信息,指示了一个软件机构为改进其软件过程集中关心的区 域,这是要达到一个相应的成熟度等级必需解决的问题。关键过程域定义在 成熟度等级中,并与其所在的成熟度等级紧密联系在一起 4 目标 7 目标是关键过程域中关键实践的概括,它表示每个关键过程域的范围、 边界和意图。是用来判断一个组织是否有效实施该关键过程域的指标。 5 共同特点 , 每个关键过程域定义了若干个共同特点,用以说明关键过程域所要求的 实施活动或软件过程的制度化要求一般包括执行约定、执行能力、执行活 动、测量分析及验证实施;共同特点指示了一个关键过程域的实施和规范化 是否是有效的、可重复的及持久的;其中执行活动描述实施的活动,其余四 个共同特点描述规范化因素。 6 关键实践 每个公共属性都定义了若干关键实践,用以描述该公共属性的活动和定 义。实施关键实践是用来帮助组织达到关键过程域的目标关键实践是描述 关键过程域的有效实施和规范化贡献的基础设施和活动。 7 哈尔滨e 程大学硕七学位论文 2 2c m m 的成熟度等级 c m m 将软件开发机构的能力按其软件开发过程的完善程度分为五个成 熟度等级来描述,该模型描述了每个等级软件开发过程的基本特点,并明确 说明二级以上各个级别不同的关键过程域,只有一个级别的所有关键过程域 都得到了实施,才能说明该软件组织达到了相应的成熟度水平。当一个组织 成熟度等级提高时,必然已经提高了它所涉及的领域、领导能力和纪律。这 五个成熟度等级是阶梯结构的“,如图2 2 所示。 有纪 的过 闰2 2c m m 的成熟度等级 1 初始级 初始级是c m m 所定义的最低的成熟度等级。这一等级的组织不具备稳 定的软件开发与维护环境。项目成功与否在很大程度上取决于是否有杰出的 项目经理和经验丰富的开发人员。同时,项目经常会超出预算且不能按时完 成任务,其组织的软件过程能力不可预测。 2 可重复级 可重复级的目标是实现项目管理过程的制度化,这一成熟度等级上的软 件组织建立了管理软件项目的方针,以及贯彻这些方针政策的措施,可以根 l 哈尔滨_ r 稳大学硕士学位论文 皇置昌葺眚昌_ 皇篁宣宣皇暑昌暑暑暑暑暑置暑昌;暑;育宣昔昌置暑宣i 昌i 善昌暑暑暑宣岩宣暑i 暑置;毒i 昌暑葺萱葺墨暑昌目暑暑岛 据历史项目的经验开发类似的软件项目。并可以对项目过程进行有效的项目 管理,这一级别上的组织可以达到项目经验的重复使用。软件项目的规划和 跟踪是稳定的,能够重复以往的成功。 3 已定义级 在已定义级别上,整个软件开发组织形成管理软件开发和维护活动的标 准软件过程,可以进行软件工程过程和软件管理过程。项目依据标准,定义 自己的软件过程,对软件过程进行管理和控制,已定义级剐上的组织的软件 过程已经形成标准,且是一致的。在已定义级的组织中,对于每个项目,可 以通过裁剪组织的标准和软件过程来建立和定义适合项目自身的软件过程。 4 已管理级 在己管理级别上,整个组织对软件产品和过程都设置定量的质量目标, 项目通过过程性能控制在可接受的范围内,实现对产品和过程的控制。组织 的软件过程能力可描述为可测量的,软件具有可预测的高质量。 5 优化级 达到优化级的组织通过预防缺陷、技术创新和更改过程等多种方式,组 织会集中精力进行不断地过程改进。组织识别弱点并有针对性的加强。优化 级的组织为了防止缺陷二次发生,分析缺陷发生的原因,评价软件工程,得 出经验教训,并将其用于其它项目管理中。优化级组织的软件过程可以概括 为不断改进,主要是通过在现有过程上采用增量式前进和新技术、新方法来 使改进持续进行的。组织的软件过程能力可描述为持续改善的。 2 3c , m m 的k p a 分析 关键过程域是c l v t l v l 等级的组成部分,除等级l 外,每个成熟度等级被 划分成若干个关键过程域。每个关键过程域都包括若干相干活动,但这些活 动都完成时,就实现了一组对增强过程能力至关重要的目标。关键过程域提 供了为到达某个成熟度等级所必须解决的问题。c i v l m 只描述其中关键的决 定因素,并不是描述所有与开发有关的过程区域。 关键过程域是一些结构单元,用来指明组织为了改进软件过程而应当关 注的区域。每个关键过程域都是定义在单个成熟度等级上,是达到某一个成 9 哈尔滨。1 程大学硕+ 学位论文 熟度等级必须要解决的问题。c m m 每个成熟度等级定义的关键过程域如表 2 1 所示。 表2 1 关键过程域 成熟度等级 特点 关键过程域 软件过程是一次性的。有时甚至是混乱的, 初始级 对过程几乎没有定义,成功取决于个人努力 软件配置管理 建立了基本的项目管理过程来跟踪费用、进 软件质量保证 可重复级度和功能特性。制定了必要的过程纪律,能 软件子合同管理 软件项目跟踪和监督 重复以往类似应用项目取得的成功 软件项目策划 需求管理 同组评审 已将管理和1 :程活动两方面的软件过程文组问协调 档化、标准化并综合成该机构的标准软件过软件产品:i :程 已定义级程,所有项目均使用软件过程,所有项目均 集成软件管理 使用经批准、剪裁的标准软件过程来开发、培训程序 维护软件组织过程定义 组织过程焦点 收集对软件过程和产品质量的详细度量。对软件质量管理 已管理级 软件过程和产品都有定量的理解和控制。定量过程管理 过程的量化反馈和先进的新思想、新技术促 过程更改管理 优化级 技术改革管理 使过程不断改进 缺陷预防 2 3 1 可重复级 可重复级包含的k p a ”主要关注的是软件项目所关心的与项目基本管理 有关的事宜。可重复级的六个k p a 如下所述: 1 需求管理 需求管理的目的是保证将要研发的软件满足用户的实际需求,用户与开 发人员要对客户需求达成共同理解。需求管理可以避免因需求不明带来的软 件危机。 2 软件项目策划 目的是为完成和管理软件项目制定合理的计划,计划是项目管理的基础, 只有拥有合理的计划才能有效的进行项目管理 1 0 哈尔滨:1 :程大学硕士学位论文 3 软件项目跟踪和监督 目的是加强软件开发管理的可视化,使管理者能够在项目研发偏离计划 时采取有效的措施。 4 软件子合同管理 目的是选择合适的软件分包商并对其进行有效的管理。 5 软件质量保证 目的是给管理者提供软件研发项目及其产品的视图,使管理者及时地了 解软件研发的情况。 6 软件配置管理 目的是在项目的整个生命周期内建立和维护软件产品的完整性。 2 3 2 已定义级 已定义级的k p a i 一既包括了与项目相关的问题,又包括了与组织相关的 问题。达到已定义级的组织建立了一套涉及所有项目的、有效的软件工程和 管理过程规范化的基础设施。已定义级的七个a 如下所述: 。 i 组织过程焦点 组织过程焦点得到的是一组软件过程财富,它在组织过程的定义中被描 述,这些财富可供软件项目使用。其目的是规定组织在改进其整体软件过程 能力的软件过程活动方面的职责。 2 软件过程定义 软件过程定义可以改进软件的过程性能,并为组织积累长期受益的财富, 这些财富将提供稳定的基本原则,软件过程定义将这些原则转换成制度。该 k p a 的目的就是开发和保持便于使用的过程财富。 3 培训程序 培训是为了提高个人的知识和技能水平,是个人能够有效地完成所收到 任务的保证。培训是组织的责任,但是项目应该识别本项目所需的技能,当 组织不能为其提供这种培训时,项目组自身应该进行培训 4 集成软件管理 集成软件管理通过裁减组织的标准软件过程和组织过程定义所描述的过 哈尔滨 :程火学硕士学位论文 程财富得到的,集成软件管理是从软件项目策划和软件项目跟踪及监督这两 个k p a 进化来的,目的是将软件工程活动和管理活动集成为一个协调、已定 义的软件过程。 5 软件产品工程 软件产品工程是用来描述如需求分析、概要设计等项目的技术活动的。 为了生产正确一致的软件产品,该过程将集成全部软件工程活动,目的是执 行一个一致的,已妥善定义的工程过程。 6 组间协调 组间协调是建立项目组间协作,共同满足客户需求的一个有效手段。 7 同行评审 软件组织要预防软件产品中出现缺陷,同行评审就是尽早的去除软件产 品中的这种缺陷一个行之有效的方法 2 3 3 已管理级 已管理级的k p a 所关注的是建立对软件过程和软件工作产品的定量了 解已管理级的两个k p a 如下所述: 1 定量过程管理 软件过程性能表示遵循一个软件过程所得到的实际结果。定量过程管理 的目的就是定量的控制软件项目的过程性能,是要在一个可测的、稳定的过 程范围内鉴别过程发生变化的特殊原因,及时调整促使变化出现的环境。 2 软件质量管理 软件质量是软件满足用户需求和潜在需求的程度,软件过程管理的目的 就是要定量了解项目的软件质量,并保证实现特定的质量目标。 2 3 ,4 优化级 优化级的k p a l m 包括组织和项目为了实施连续不断的和可测的软件过程 改进,必须解决的问题。优化级的三个k p a 如下所述: 1 缺陷预防 1 2 哈尔滨1 :程人学硕士学位论文 分析软件缺陷的原因,指导软件过程,防止软件缺陷的再次发生。 2 技术改革管理 技术改革管理主要是在不断的变化环境中创新,目的是有效的识别能使 组织获利的新技术、新方法,并将这些新技术、新方法有序的引入组织中。 3 过程更改管理 过程更改管理是要以不断的改进软件质量和提高生产力为出发点,持续 的改进组织的软件过程,并使整个组织都享受这种改进带来的好处。 2 4c , m m 的用途和应用现状 c m m 在评估组织软件过程成熟度时主要有以下两种评价用途: ( 1 ) 软件过程评估:借助c m m 对软件组织当前软件过程的状态进行分 析,明确一个软件组织所面临的与过程改进最相关的问题,为组织领导层提 供报告以获得组织对软件过程改善的支持。软件过程评估集中关注组织自身 的软件过程,在一种合作的、开放的环境中进行。评估的成功取决于管理者 和专业人员对组织软件过程改善的支持,目的是改进自身软件开发组织的开 发过程能力 ( 2 ) 软件能力评价:根据c m m 所作的软件能力评价,来识别软件项目 承包商是否合格,或是监督当前项日采取的软件过程所处的状态。软件能力 评价关注在预算和进度要求范围内可以制造出高质量的软件产品的合同及相 关风险,国内在软件合同的竞标过程中,投标组织的c m m 等级已作为重要 的参考标准,目的是考察所投标的软件组织的能力能否完成软件开发任务。 在美国、印度c m m 已经被软件业广为采纳,并取得了不错的成绩,我 国近几年也兴起了c m m 的热潮,c m m 的受欢迎的程度远远超出了i s o 的 同类标准,为推进软件工业的发展,我国政府于2 0 0 0 年已经出台了相关政策 鼓励和资助软件企业参加i s 0 9 0 0 0 和c m m 的认证。国内的一些大型企业已 经通过c m m 评估提升组织的威望和知名度。 哈尔滨:f 程大学硕七学位论文 2 5c m m 的优缺点 c i v l m 是一个非常成功的过程度量模型,现在已经成为软件过程度量实 际的标准,它对软件开发过程不断的实施关键实践,从而达到c m m 的关键 过程域目标值;不断地改进软件组织的过程能力,提高软件组织的威望和知 名度;不断进行过程改进的软件组织可以更高效的生产高质量的软件产品。 但是无论哪类企业在实施c m m 都是一个“费用高、难度大、见效慢” 的过程,在软件组织聘请c m m 评估师进行咨询和评估时,一个c m m 2 、3 级的认证大概要花费5 0 到6 0 万人民币,而且评估师只是给出了改进的建议, 起参谋作用,最终能否成功还要看自身的努力。 目前我国的软件企业规模较小、人员不多,没有长期的发展计划,人员 职责分工不明确,这样的组织实施c m m 存在很大困难,将影响组织进行软 件研发的质量。 2 6 本章小结 本章分析了c m m 模型的关键过程域,以及国内外c m m 实施的现状和 国内c m m 实施进程缓慢的原因。鉴于以上原因,本文主要针对c i v l m 2 中的 软件质量保证和c m m 4 中的软件质量管理这两个关键过程域出发,将这两个 过程域的思想融合到软件质量度量中,同时根据软件质量度量工具,将c m m 不断改进的思想纳入到软件质量度量过程中,加强软件质量管理,进而提高 软件质量,改进软件过程,使我国的中小软件组织能生产出高质量的软件产 品。 i 哈尔滨工程火学硕士学位论文 第3 章软件质量度量理论基础 软件质量度量技术是提高软件质量,实施c m m 模型的关键,本章将阐 述软件质量和软件度量的相关概念,并着重介绍了软件质量度量理论,研究 三种典型模型和两个改进的软件质量度量模型b o e b m 模型、m c c a l l 模型 和i s 0 9 1 2 6 模型、i s o i e c 9 1 2 6 改进模型和改进的四层模型,并分析了这些 模型的优势和存在的问题。 3 1 软件质量 3 1 1 软件质量概念 质量反映的是事物的特性和属性,它体现的是事物可测量的特性,就一 般事物而言可以通过比较标准来衡量其质量,如体积、色彩、电气特性等。 但是软件产品,作为一个纯智力劳动的特殊产品,其质量刻画要比实体物品 困难得多。 以下是常见的软件质量定义。有人将软件质量定义为:所有描述计算机 软件优秀程度的特性的组合m ,这些优秀特性包括各项精确定义的功能、性 能要求和符合文档化的开发标准。要开发出高质量的软件产品,就必须满足 这些质量特性或特性组合 g b t 6 5 8 3 _ i s 0 8 4 0 2 ( 1 9 9 4 ) 定义软件质量为:“反映实体满足明确和隐 含需要的能力和特性总和”卅,认为软件的需求是质量衡量的基础;遵从一 系列的开发标准可以指导软件工程过程的行为;隐含的软件需求必须重视, 如软件易用和易于维护等。 从实际应用来说,软件质量定义包括三个方面的一致性:( 1 ) 与所确定 的功能和性能需求的一致性;( 2 ) 与所成文的开发标准的一致性;( 3 ) 与 所有专业开发的软件所期望的潜在需求的一致性。 哈尔滨t 程大学硕十学位论文 软件质量的最终定义尚未出现,但是有关提高软件质量的研究己经全面 开展。目前,对其的研究主要从两方面展开:( 1 ) 软件开发过程的质量保证, 以过程文档化和管理科学化为内容;( 2 ) 软件过程和产品的质量评估,包括 中间产品和最终产品,采用软件度量技术作为软件质量特性量化的主要技术 3 1 2 软件质量评价体系 随着计算机技术的广泛应用,软件系统已经成为国民经济、国防和社会 日常生活中不可缺少的组成部分。软件的作用和地位越来越重要。因此,软 件的质量问题日益成为人们关注的焦点随着软件规模的日益庞大,软件的 质量变得难以控制与管理,成为长期困扰着软件生产的主要问题。要保证软 件产品令用户满意,减少维护时间,就需要科学的软件质量度量标准和方法。 1 9 7 6 年,b o e h m 等人提出了定量地评价软件质量的概念,给出了6 0 个 质量度量公式,表明怎样用于评价软件质量,并且首次提出了软件质量度量 的层次模型“。b o e h m 等人将软件质量的概念分解为着干层次,对于最底层 的软件再引入数量化的指标,从而可得出软件质量的整体评价。 1 9 7 8 年w a t e r s 和m c c a l l 提出了从软件质量要素( f a c t o r ) 、准则( c r i t e r i a ) 到度量( m e t r i c ) 的三层次式的软件质量度量模型“一他们将软件质量要素定 为1 1 个,并给出了各要素的关系。按照a n s i i e e e l 9 8 3 年的标准,软件质 量定义为“与软件产品满足需求所规定的和隐含的能力有关的特性和特性的 全体”一这个定义强调得重点是软件的特性或特性,强调了这些特性或特 性与软件实际需求的吻合程度以及对它们的综合评价值 3 2 软件度量 3 2 1 软件度量概念 砸e e 中对度量给出定义:度量是一个函数,它的输入是软件数据,输出 是单一的数值,能用以解释软件所具有的一个给定属性对软件质量影响的程 哈尔滨工程大学硕士学位论文 度m m 一软件质量度量是对影响软件质量的属性所进行的定量测量。 度量是一种从现实或经验世界到数学世界的映射,通过这种映射人们可 以更容易的理解实体的特性和实体问的关系。真正的困难在于如何解释数字 化的行为和判断其在现实世界的意义度量理论对于在软件开发中选择和应 用合适的度量是很重要的 软件度量是根据软件相关组织的信息需求定义和使用的。软件组织需要 了解自己组织内的项目的生产效率,这就是所谓的信息需求。为此就必须选 择一个软件度量工具,从度量结果中分析项目的生产率。软件度量应明确定 义信息需求、可度量概念、相关实体、属性、基本度量( 度量方法或过程) 、 派生度量、指标。软件度量还需要经验数据的支持和维护。 3 2 2 软件度量的分类 在几十年的发展中,软件工程领域几乎在软件生命周期的每个领域都使 用软件度量,在研究软件度量的过程中,研究者们提出了很多度量模型,也 从不同角度提出了度量指标,以至于现在不能很好的将这些统一起来。所以 需要一个软件度量的框架来从整体上把握各项度量功能的实质,明确定量的 目标和对象,并理清度量之间的关系,界定度量范围等。这样才能进行统一 的、标准的软件度量活动。当前软件度量主要从过程、产品和资源三个方面 进行。 1 测量过程 软件过程是软件开发中伴随着的相关活动,测量过程主要是为了保证软 件的质量,软件质量和开发过程的关系相当密切:一方面,软件质量直接反 应软件过程是否成功;另一方面,软件过程度量反映了软件过程的好坏,直 接影响软件产品的质量。现在大型的过程测量如c m m 等,小型的测量如测 试活动等。过程测量分为项目内测量和项目级测量。项目内测量反映的是项 目过程的各个阶段。反映过程开展的情况,项目级测量则是根据不同项目的 情况,找出不同过程对产品质量的影响,为后续的过程改进提供指导和证据。 2 测量产品 测量产品是针对软件开发过程中的软件成品和软件的文档软件产品测 1 7 哈尔滨【:程大学硕士学位论文 量是对软件质量水平最直接、最简单的衡量方法,所以被广泛的研究和应用。 主要包括软件质量评估、出错检测、可靠性评估、项目风险等。尤其对用户 来说,他们只关心软件的质量特性如何,不必关心采用怎样的开发过程。 3 测量资源 使用资源是指投入到软件开发过程中的所有内容。对资源的测量,主要 关注人员素质与变动、环境因素对产品质量的影响。如环境噪音水平,被打 断地次数,办公空间大小对个人生产率的影响;个体不同所实现代码的复杂 度不同:有经验的工程师与缺乏经验的工程师之间查找错误花费时间的差异; 以及非人力资源因素的测量,如预算、日程表估计和人力成本估计 3 2 3 软件度量框架 软件过程度量是一个系统的过程,主要包括如下的活动:选择和定义度 量、制定度量计划、收集度量数据、度量分析、分析过程行为等活动,如 图3 1 所示。 , 图3 1 软件过程度量框架 根据项目的商业选择定义度量,并与项目整体计划相结合制定度量计划, 确定度量活动的角色和职责,同时制定度量分析的时间点,一般是项目的里 哈尔滨工程大学硕十学位论文 程碑处或项目完成时。在项目执行过程中,按照计划进行数据采集和度量分 析,评估过程的性能,判断过程是否稳定? 如果不稳定,则需分析原因;若 稳定,则分析看看是否需要改进过程。 3 3 软件质量度量方法学 i e e e 制定了关于软件质量度量方面的国际标准,软件质量度量分为四个 阶段:( 1 ) 根据度量的质量需求制定度量计划;( 2 ) 根据度量计划选择和 定义的度量来采集度量数据;( 3 ) 根据度量得到的度量数据,实施度量过程; ( 4 ) 根据度量后的数据预测软件的质量,可采用多种图表来进行质量分析 3 3 1 制定度量计划 度量软件过程从制定计划开始。制定度量计划的过程分为三个阶段:确 定过程管理问题:选择和定义相应的产品和过程度量;把度量软件活动集成 到组织当前的软件过程中,如图3 2 所示。 图3 2 度量计划的三个主要活动 质量需求中表述了在具体应用的特定环境下对软件产品质量的定量要 求,应该在软件开发前或初期进行定义,它是有效构造软件质量和客观评价 软件质量的前提。质量需求规格说明可定量定义质量特性的直接度量及其直 接度量目标值。直接度量目标值是用来验证最终产品是否达到了质量需求。 3 3 2 采集度量数据 在需求中确定的软件质量特性和子特性描述的软件质量需求常常无法直 接测量,需要进一步确定相关的可度量特性( 或称度量元) 。在准备阶段, 1 9 哈尔滨工程火学硕士学位论文 应根据应用环境,为软件开发的各个阶段和其最终产品分别确定适当的可度 量特性,建立质量特性、质量子特性、可度量特性的映射模型,并确定合理 的评估准则。 数据的分折和在分析基础上采取的行动都是以度量过程中收集的数据为 基础的。因此采集数据是软件度量过程中非常重要的活动,选择和定义了合 适的度量活动,并且决定实施,那么就应该对度量对象进行数据收集。 数据采集是一个包括了采集数据、验证数据、保存数据的一个整体的过 程,数据采集过程必须与定义的软件度量过程完整的结合起来,度量实旌组 织要在收集数据的过程中做到把数据及时、有效、完整、可靠的保存起来。 只有可靠的结果才能保证采集过程是稳定的,并且是可控的。 收集数据开始之前,要确定数据收集的规程,应该包括: ( 1 ) 确定数据采集过程中个人和组织的职责; ( 2 ) 详细说明在怎样的情况下进行怎样的度量; , ( 3 ) 事先定义好记录和提交结果的规范过程; ( 4 ) 提供高效记录数据的方式,例如制定标准的填空表格或制定有效的 采集工具。 当采集过程受到外来的组织和软件过程的干扰时,采集数据的复杂度会 增加,使用标准的度量工具和填空表格等,可以确保不同的组织和个人可以 根据相同的采集办法收集到相同的数据,保证数据的一致性。 进行度量数据分析时,应确保所记录的数据的准确性,因此要对其进行 检察和评估,以提高数据分析的可信度。因此在采集记录保存数据时,应该 遵循一定的准则,包括: ( 1 ) 真实性:完整的数据必须是已经通过检验的,是按照规定的说明采 集的,无错误的。 ( 2 ) 同步性;当多个属性的数据在发生时间等要素上面存在关联,一定 要保证它们的时间同步 ( 3 ) 一致性:确保采集到的相同记录的值不会存在差异。 ( 4 ) 有效性:要保证每一个度量的值能够真实地反映该属性的状态。 哈尔滨翻鼙犬学硕七学位论文 3 3 3 实施度量过程 在全面

温馨提示

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

评论

0/150

提交评论