




已阅读5页,还剩57页未读, 继续免费阅读
(计算机软件与理论专业论文)基于psm的cmmi软件过程度量环境的研究及工具实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于p s m 的c m m i 软件过程度量环境的研究 及工具实现 摘要 c m m i 是由卡内基梅隆大学的软件过程研究所提出的一套软件过程评估 与改进的模型,其根本目的是改进软件过程,有效地控制软件产品开发和管理 的质量。软件过程改进的依据是软件过程度量的结果。p s m 是一种信息驱动的 软件度量的模型。它以机构具体信息需要为度量的出发点,以度量结果为信息 产品,构建了一个具有实用性和特定适应性的度量过程。因此基于p s m 理论的 c m m i 过程度量环境的研究及工具实现具有重要的理论意义和研究价值。 本文首先介绍了软件过程度量的相关理论、分析了软件过程度量的实施流 程、总结了标准软件过程的组成元素;针对当前通用的c m i i 模型的使用没有针 对性、度量的结果无法为评估所用、无法实现度量自动化工具等问题,结合p s m 理论中的m i m 和m p m 模型,提出了一个针对c m m l 3 级过程域的软件过程度量模 型p s m 4 c m m i ,该模型主要包括b i i m 4 c m m i 和m p m 4 c m m i 两个子模型,分别定义了 软件过程度量的度量结构和实施流程;随后,在此模型下提出了一种基于时间 p e t r i 网的软件过程定义方法s p - t p e t r i ,该方法包括了软件过程的图形表示和 语言表示两个部分,图形表示使用户可以进行可视化的软件过程建模,语言表 示让过程定义的图形结果可以在计算机中以通用格式表示,s p - t p e t r i 使得复 杂抽象的软件过程得到了形式化、无二义性的表示,通用的语言表示使得程序 设计的高级语言可以直接对过程定义的结果进行处理,使度量自动化工具的实 现成为可能。 最后,本文利用p s l c l 4 c 姗i 模型的理论结合s p - t p e t r i 方法,设计并实现了 软件过程度量评估的工具原型系统s p l a s ,为软件组织有效进行软件过程度量 提供支持,帮助软件组织对软件过程的性能有一个量化的认识,从而达到软件 过程改进的目的。该系统经过软件组织试用后效果良好。 关键字:c m m i ,软件过程度量,实用软件度量,时间p e t r i 网,软件过程定义 r e s e a r c h0 1 1 1c m m is o f t w a r em e a s u r e m e n te n v i r o n m e n t b a s e do np s ma n dt o o li m p l e m e n t a t i o n a b s t r a c t c m m ii st h et e m p l a t ep r o v i d e db yt h es o f t w a r ee n g i n e e r i n gi n s t i t u t i o no f c a r n e g i em e l l o nu n i v e r s i t yw h i c hi sa p p l i e dt om a n a g e m e n t ,i m p r o v e m e n ta n d e v a l u a t i o no ns o f t w a r ep r o c e s s t h ea i mo fc m m ii st h ei m p r o v e m e n to ns o f t w a r e p r o c e s s ,t o c o n t r o lt h es o f t w a r e d e v e l o p m e n t a n d m a n a g eq u a l i t y e f f e c t i v e l y r e c e n t l y ,h o w t ob u i l dap r o c e s s c e n t e rs o f t w a r e e n g i n e e r i n g e n v i r o n m e n t ( p s e e ) b a s e do nc m m ib e c o m e sar e s e a r c hh o t s p o t t h et e c h n o l o g y o fs o f t w a r ep r o c e s sm e a s u r e m e n tp l a y sam o r ei m p o r t a n tr o l ei np c e e f r i s to fa 1 1 t h i sd i s s e r t a t i o na n a l y z e st h ei m p l e m e n tp r o c e s so fs o f t w a r e p r o c e s sm e a s u r e m e n ta n dt h ec o r ep o s i t i o no ft h es t a n d a r ds o f t w a r ep r o c e s si nt h i s p r o c e s s ,a n dc o n c l u d e st h ee l e m e n t so ft h es t a n d a r ds o f t w a r ep r o c e s s a f t e rt h a t 。 t h i sd i s s e r t a t i o np r o v i d e sas o f t w a r em e a s u r e m e n tm o d e lp s m 4 c m m ib a s e do n c m m i ,w h i c hu s e st h ep s mt h e o r y :t h i sm o d e lc a nr e s o l v et h ep r o b l e mt h a t a p p e a r si nt h eu s i n gm o d e l i na d d i t i o n ,u n d e rt h em o d e l ,t h i sd i s s e r t a t i o np r o v i d e s as o f t w a r ed e f i n em e t h o ds p - t p e t r ib a s e do nt i m ep e t r in e t s - t p e t r i w h i c hc a nb e u s e dt od e s c r i b et h ec o m p l e xs o f t w a r ep r o c e s sf i r m l y f i n a l l y , o nt h eg r o u n da b o v e m e n t i o n e dw ed e s i g na n di m p l e m e n tt h e s o f t w a r ep r o c e s sm e a s u r e m e n ta n d a p p r a i s e m e n ts y s t e m t h i ss y s t e mc a nh e l pt h e s o f t w a r ei n s t i t u t i o n m a n a g e i t s d e v e l o pp r o c e s s a n dr e a l i z et h e p r o c e s s i m p r o v e m e n t k e y w o r d s :c m m i ,s o f t w a r ep r o c e s sm e a s u r e m e n t ,p s m ,t i m ep e t r in e t ,s o f t w a r e p r o c e s sd e f i n e 插图清单 图2 一lc m m i 阶段式模型构成成分9 图2 2c m m i 连续式模型构成成分l o 图2 3g q m 模型图l l 图2 4 目标的三维视图1 l 图2 5g q i m 模型图1 2 图2 6 软件过程实施流程图1 3 图2 7 子过程项目时间分配图1 4 图2 - 8 过程单元活动之间的三种关系1 5 图3 - 1 信息需求演化过程1 7 图3 2 度量构造图1 8 图3 3m p m 模型图1 9 图3 - 4m i m 4 c m m i 的度量构造2 0 图3 5m p m 4 c m m i 模型图2 5 图3 - 6 休哈特控制图3 0 图3 7s p m a s 系统结构图3 1 图4 1p e t r i 网的图形表示3 3 图4 2 时间p e t r i 的图形表示3 6 图4 3s p t p e t r i 图形表示示例3 7 图4 - 4s p x m l 的d t d 片段3 8 图4 5s p t p e t r i 网在项目中的位置3 9 图5 - 1s p m a s 系统功能模块图4 1 图5 2系统组件结构图4 3 图5 - 3s p m a s 数据库模型图4 4 图6 - 4s p m a s 系统管理模块4 5 图5 - 5s p m a s 过程定义模块4 6 图5 - 6 软件过程度量模块数据收集图4 6 图5 7s p m a s 度量结果展示图4 7 图5 - 8 软件过程评估结果展示图4 8 表格清单 表2 - 1 标准软件过程分类图1 3 表3 - i 需求开发过程域的度量列表2 2 表3 - 2 风险管理过程域的度量列表2 3 表3 - 3 集成项目管理过程域度量列表2 3 表3 - 4 培训质量的度量列表2 4 表3 5“验证”和“确认”过程域度量列表2 5 表3 6 技术解决过程域度量列表2 6 表3 - 7 产品集成过程域度量列表2 7 表3 - 8“组织过程聚焦”和“组织过程定义”过程域的度量列表2 7 表3 9 剪裁规范结构示例2 9 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已 经发表或撰写过的研究成果,也不包含为获得 金熙王些太堂 或其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所傲的任何贡献均已 在论文中作了明确的说明并表示谢意。 学位论文作者躲王劳孱。签字吼 f 学位论文版权使用授权书 词垫。吗 , 本学位论文作者完全了解 金毽王些太堂 有关保留、使用学位论文的规定。 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借 阅。本人授权 金壁些左堂 可以将学位论文的全部或部分论文内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者 签字日期; 学位论文作者毕业后去向: , 工作单位: i 泛尕经t 上趣订客鬓囊f 电话:移z f 一岁丘红2 j 毛尹 通讯地址: 邮编: 致谢 衷心感谢我的导师李心科副教授,在本论文的选题、写作和修改的过程中, 自始至终得到了导师的指导、关心和帮助,他们为此投入了大量的时间和精力。 没有导师的培养和指导,本论文是不可能完成的。在我的研究生学习和生活期 间,得到了导师的极大帮助和关心,给我创造了很多条件和机会,使我倍感温 暖。导师渊博的学识、敏锐的思维、严谨的治学态度,高尚的道德情操和平易 近人的人格魅力,给我留下了深刻印象,使我终身受益。 感谢软件工程实验室的邵垄副教授和刘政老师对我的关心和帮助,感谢计 算机与信息学院的老师们,感谢他们给我提供的学习条件和机会。 感谢我的父母和女朋友,是他们的支持才让我顺利的完成学业。 感谢合肥工业大学软件工程研究室的所有师兄弟们,特别要感谢林听、王 冠东、汪洪、金元杰、沈桂芳,和他们的交流帮助我完成了学业,他们的爱是 我永远前进的动力。 作者:王常锐 2 0 0 7 年4 月 1 1 研究背景及意义 第一章绪论 近年来随着软件新技术的发展,软件规模不断扩大,软件质量更加难以控 制,开发的风险也随之增高。起初,软件组织不断推出新的技术、方法和工具 来摆脱软件危机,以开发出低成本、高质量、按时交付的软件产品。虽然这些 新技术、方法和工具改进了现状,但它们没有从根本上解决项目延期、成本超 支、质量难于控制的问题。于是,业内人士将目光转移到如何去管理软件开发 的整个流程即软件过程的研究。旱在2 0 世纪3 0 年代,美国的w a l t e rs h e w h a r t 博士就在产品的质量保证中提出了过程控制的观点,此后e d w a r d sd e m i n g 、 j o s e p hj u r a n 等人在实践中不断地丰富和发展s h e w h a r t 博士的过程控制思想, 在制造业领域取得巨大的成功。自2 0 世纪8 0 年代软件行业兴起一场软件质量控 制运动以来,软件过程管理和软件过程改进得到越来越多的关注。软件过程 技术试图通过某种形式化的手段,对软件开发过程加以系统的、严格的描述; 为开发人员提供一个标准的、无歧义的软件开发规范,使开发人员之间能更有 效地进行交流。 软件过程是软件开发人员开发和维护软件及其相关产品的一套行为、方法、 实践及交换过程。随着多年来对软件过程的研究,国际上产生了很多基于软件过 程思想的模型,如i e e e e i a 制定的软件生存周期标准实施指南;卡内基梅隆大 学软件工程研究所( s o f t w a r ee n g i n e e r i n gi n s t i t u t e ,简称s e i ) 发布的s w c m m 、 c m m i “。、国际化标准组织的i s 0 9 0 0 1 ,i s o s p i c e 、电信公司联盟的t r i l l i u m 模 型等。在这些模型中,s e i 的软件过程能力成熟度模型得到了最广泛的应用。1 9 8 6 年,s e i 的w a t t sh u m p h r e y 在p h i lc r o s b y 提出的成熟度框架基础上推出了对软 件业发展具有深远影响的能力成熟度模型( c a p a b i l i t ym a t u r i t ym o d e l ,简称 c m m ) 。随着c m m 的逐步实施,s e i 又开发了其他成熟度模型如系统工程、集成产 品开发等模型。近年来,s e i 将这些模型集成在一起,形成了软件能力成熟度集 成模型( c a p a b i l i t ym a t u r i t ym o d e li n t e g r a t i o nf o rs o f t w a r e ,简称c m m i ) 。 它融入了大量的最新的软件过程管理实践,弥补了c m m 的缺陷。当前,依照s e i 的c i m i 进行企业软件过程改进,提高软件机构过程能力已经成为国内外软件企 业的共识。 方法和工具是一个问题的两个方面,随着软件过程相关研究逐步深入,业 界更加着力于研究构建以过程为中心的软件工程环境( p r o c e s s c e n t e r s o f t w a r ee n g i n e e r i n ge n v i r o n m e n t ,简称p s e e ) 来对软件质量进行控制。国内, 中科院软件所提出了以体系结构为中心的基于规则的过程支撑环境。北大青鸟 系统以构件和软件复用为目标,也融入了软件过程技术。如何利用软件过程现 有的技术和方法构建以过程为中心的软件开发环境;如何利用过程管理工具来 控制软件开发过程、保证软件质量、了解软件过程状态和性能,从而为过程改 进提供决策支持;如何去构建这个自动化的过程管理工具,已经成为研究的热 点。 在这样的背景下,安徽省教育厅自然科学研究基金资助了基于c m m 过程改 进度量的支持环境研究项目。本课题的研究内容就来自于该项目的实施过程 中。 i 2 国内外研究现状 1 2 1 软件过程理论 软件过程技术是一个非常活跃的研究领域。注重于软件过程研究的组织包 括软件过程国际研讨会( i s p w ) 、软件过程国际会议( i c s p ) 、欧洲软件过程研 讨会( e w s p t ) ,以及软件工程国际会议( i c s e ) 等。 对于软件过程的定义主要有以下三种;1 ) 过程是针对确定的目的所实施的 序列步骤,例如软件开发过程“1 ;2 ) 过程是使用资源将输入转化为输出的活动 的系统”;3 ) 过程是把输入转换为输出的一组彼此相关的活动”1 。从上面三个 定义可以得出,软件过程是指软件生存周期所涉及的一系列相关活动的集合。 过程是活动的集合;活动是任务的集合;任务要起着把输入进行加工然后输出 的作用。活动的执行可以是顺序的、重复的、并行的、嵌套的或者是有条件地 引发的。 软件过程技术的研究主要有三个方向:软件过程定义、软件过程度量、软 件过程的评估与改进。 软件过程定义是软件过程研究的起点。当前形式化、半形式化过程定义方 法可分为基于规则的、基于功能分解的等。学术界主要采用三种方法对软件过 程进行定义:u m l 图、定义语言、p e t r i 网。其中又以针对p e t r i 网的过程定义研 究居多,已发表的研究各有侧重,但多是基于高级p e t r i 网的扩展,复杂而难以 使用,如c a l g a r y 大学和摩托罗拉等合作的s e r n ( 软件工程研究网络) 的s l a n g ”。, d o r t m u n d 大学研究的m e l m a c ,j o s e p hf o u r i e r 大学的o p s i s ”。等。在上述研究 中,如何针对软件度量进行过程定义并未得到足够的重视,对软件过程中实际 度量的数据进行系统分析的研究也不多见,更重要一点是它们并没有针对当前 流行的过程评估改进框架c 删i 来进行软件过程定义。 在过程度量的定义模型方面,为了更好地实施软件度量,m m o r i s i o 提出了 度量是一个过程的观点,即软件组织需要通过建立软件度量过程来进行软件过 程进行度量”1 d o n a l dr m c a n d r e w s 提出了将度量软件过程作为整个组织软件 过程一部分的思想,并给出了用于设计可重复使用的可度量的过程方法“。 2 业界提出了很多定义度量结构的模型。其中最具有代表性的是由b a s i l i 教 授及其合作者提出目标驱动( g o a l q u e s t i o n m e t r i c ,g q m ) 模型“。g q m 模型 是一种面向目标的、自上而下由目标细化到度量、逐步求精的度量定义方法, 它将目标与软件过程、产品和质量方面的模型结合起来,形成了建立可度量软 件过程的基本方法。r o b e r te p a r k 对g q m 模型做了改进,在q u e s t i o n 层和m e t r i c 层之间加入了i n d i c a t o r ( 指示器) ,提出了g q ( i ) m 模型l 1 2 j 。g q ( i ) m 模型使得度 量更加直观,易于理解。 在软件过程度量框架和过程分析方面,i s o 和i e c 共同推出的关于软件度量 过程的一个标准i s o i e c1 5 9 3 9 “。这个标准描述的软件度量过程模型由获得 和保持管理层的支持、规划度量过程、实施度量过程和评价度量过程四个活动 部分组成。这些活动顺序执行,根据获得的反馈对度量过程进行改进,并循环 和迭代“。 w i l lj a ma f l o r a c 和a n t i ad c a r e t o n 等人对软件过程度量的过程模型和度 量分析技术进行了研究“,于1 9 9 9 年提出了一个度量过程行为框架,该框架由 六个活动组成:确定商业目标,确定问题并安排优先次序,选择和定义度量, 采集、验证、保存数据,分析过程行为和评估过程性能。通过不断循环执行框 架所包含的活动,达到持续改进软件过程的目的。同时,他们将统计过程控制 技术( s t a t i s t i c a lp r o c e s sc o n t r o l ,简称s p c ) 和控制图表引入到软件过程度 量领域中,用来分析软件产品和过程的特性。另外,也有些软件组织在尝试应 用类似统计过程控制的s i xs i g m a 技术。 国内对软件过程度量技术的研究相对较少,还没有比较成型的过程模型和 度量、改进的方法。上海计算机软件技术开发中心的宿为民教授等人提出从过 程定义的角度考虑对支持过程度量,并提出了一种支持过程度量的软件过程定 义方法的g q m - d 度量框架“”,其基本思想是在g q m 模型的度量层下增加一个数据 项层,将关于过程度量的一些特定的活动完全融入到过程模型中,使之成为软 件过程各活动中的一种。 当前c 删i 软件过程评估分为两个类型的评估,一是软件组织的关于具体的 软件过程能力的评估,二是软件组织整体能力的评估,后一种也就是软件组织 的软件能力成熟度等级的评估。当前对软件能力成熟度的评估是软件组织最关 注的一种评估。c m m i 为软件组织提供过程改进的标准c m m i 评估方法( s t a n d a r d c m m ia p p r a i s a lm e t h o df o rp r o c e s si m p r o v e m e n t ,简称s c a m p i ) 。s c a m p i 是 由c m m i 产品开发群组开发的,用来对软件组织的c m m i 过程改进的结果进行评估, 以判断软件组织的软件过程能力等级或软件能力成熟度等级。 1 2 2c _ 珊到c m m i 软件过程技术为开发人员提供一个标准的、无歧义的软件开发规范,使得 软件开发生产率得以提高。国际上有关软件过程改进和质量评价体系主要有i s o 模型、c m m 1 、c m m i 、s p i c e “”等。基于c m m i 的软件过程改进已成为当前研究的 主流,c m m i 为企业提供了软件过程改进的框架,帮助指导软件企业提高软件过 程能力。 自1 9 9 1 年s w - - c m m 首次发布后,s e i 又开发了其他成熟度模型,包括系统工 程、采购、人力资源管理和集成产品开发等。为了整合不同模型中的最佳实践, 建立统一模型,覆盖不同领域、供企业进行整个组织的全面过程改进,s e i 又推 出c m m i 以替代c m m 。c m m i 主要起源于三个模型:软件能力成熟度模型( s w c 删) 、 电子行业协会临时标准( e i a i s 7 3 1 ) 、集成产品开发能力成熟度模型( i p d c 姒) 。此后模型中又集成了供应管理的内容。与c 姒类似,c 姒i 也包括了在不同 领域建立有效过程的必要元素,反映了业界普遍认可的最佳实践,专业领域覆 盖软件工程、系统工程、集成产品开发和系统采购。c m m i 为企业的过程构建和 改进提供了指导和框架作用:同时为企业评估自己的过程提供了可参照的行业 标准。c m m i 融入了大部分最新的软件管理实践,同时弥补了c m m 的缺陷。c m m i 的主体是一个整体框架,其内容涉及四个知识领域:系统、软件、集成的产品 和过程开发、采购。 1 3 论文研究内容 近年来,依照s e i 的c m m i 进行企业软件过程改进,提高软件机构过程能力已 经成为国内外软件企业的共识。但我国软件机构在实施c m m c 姗i 时产生了诸如 软件工程思想不够规范、急功近利、理论和实践脱离和为评估而评估等问题“ 在研究中,我们发现在c m m i 过程评估中存在一些不足,总结如下: 1 ) 如何将具有通用性的c m m i 运用到企业实际项目度量中去,在软件过程 度量领域仍然没有实用和系统的方法指导软件组织如何在c m m i 框架下进行软件 过程度量。 2 ) 如何利用度量结果进行评估,c m m i 缺乏针对软件过程度量的评价体系, 难以找出过程中存在的不足,不能采取有效措施进行过程改进,没有一个系统 的、可操作化的评价方法。 3 ) 如何在度量工具实现时将开发过程中数据与c m m i 定义的各个过程共 性、个性目标相对应,并在度量计划制定、数据收集和结果显示等方面还存在 着很大的不足。 4 ) 目前对软件过程度量的研究多偏向于理论方面,还没有一些实用的过程 度量工具帮助软件组织进行软件过程度量“”。软件组织在进行实际度量时,往 往不知道如何度量或度量什么、如何利用统计控制技术分析过程,这也是软件 过程度量在国内的软件组织中得不到广泛应用的主要原因。 其次,软件过程的研究包括:软件过程定义、软件过程度量、软件过程的 4 评价与改进三个方向,而联系这三个方面的核心就是过程定义的产物,所以如 何对软件过程进行清晰无歧义的定义是软件过程研究中首当其冲的任务。而过 程定义方法和语言是完成该任务的核心“”。当前学术界对于软件过程定义的 研究多基于高级p e t r i 网,实用性并不高,并且对于度量的应用与研究未得到足 够的重视,对软件过程中实际度量的数据进行系统分析的研究也不多见如何 建立一个基于p e t r i 网的软件过程定义方法,可以方便地对软件过程进行定义, 并将c m m i 和软件过程度量的因素考虑在内,也是软件过程实施时所遇到的一大 问题。 鉴于这些问题,本文着力于解决这些问题,本文的研究内容也围绕这些问题 而展开,研究内容如下: 1 ) 总结软件过程的实施流程,详细分析了标准软件过程、其组成元素以及 这些元素之间的关系。 2 ) 建立一个基于c m m i 理论的实用的、可剪裁的软件过程度量模型 p s m 4 c m m i 。 3 ) 提出一个软件过程定义方法s p - t p e t r i ,方便将复杂抽象的软件过程进 行形式化的表示,并使过程定义的结果可以在计算机里用通用语言表 示。 4 ) 在上述研究的基础上,构建一个以过程为中心的软件工程系统s p m a s , 用于软件的度量和评估。 1 4 论文的组织结构 本文由六章组成,各章内容安排如下: 第一章绪论:介绍了课题的选题背景,简要介绍了c m m 、c m m i 以及软件 过程技术的国内外研究现状,并分析了当前c m m i 过程研究所存在的不足,从 而引出论文的主要内容。 第二章软件过程度量:详细地介绍了软件过程中与本课题相关的理论,介 绍了软件过程的实旌流程,并总结标准软件过程组成元素及元素之间的关系。 第三章基于p s m 的c m m i 过程度量模型p s m 4 c m m i :首先介绍了p s m 软件度量理论,在p s m 上提出了一种新的软件过程度量模型,用于实现软件过 程度量评估系统。 第四章基于时间p e t r i 网的过程定义方法s p t p e t r i :首先介绍了时间p e t r i 网的基本理论,提出了一种软件过程定义方法s p t p e t d ,用于解决p s m 4 c m m i 框架中的核心问题。 第五章软件过程度量评估工具s p m a s 在上述的研究成果上,设计并开 发了一个支持过程定义过程度量的原型工具( s o f t w a r ep r o c e s sm e a s u r e m e n ta n d a p p r a i s e m e n ts y s t e m ,简称s p m a s ) 。详细的介绍系统的体系结构、实现技术 5 以及系统的实现。 第六章结束语:对全文的工作做了总结,并对下一步工作进行了展望。 6 第二章软件过程度量 软件度量的目的是利用软件度量学的方法来科学地评价软件质量、控制和 管理软件开发过程、合理地组织和分配资源、制定切实可行的软件开发计划, 以较低的成本并获得高质量的软件。软件度量根据度量对象的不同一般可分为 过程度量、资源度量和产品度量f 2 1 1 。本文主要研究对象是软件过程度量。 2 1 软件过程度量 软件过程是指为了开发和维护软件及其相关产品所采取的一系列活动,其 中软件的相关产品包括项目计划、设计文档、源代码、测试用例和用户手册等 l 2 2 jo 软件过程度量是指在软件开发和维护过程中用来提高软件质量的一系列手 段。软件过程度量按照度量内容划分为六大类:进度、资源和费用、稳定性、 质量、开发性能、技术完备性。度量需要数据的支持,针对这六大类的度量, 所需要考察的数据包括:规模、工作量、成本、进度、生产率、缺陷、同行评 审的覆盖范围和效率等弘“。 软件过程度量同其他类型的软件度量一样,需要涉及到一些通用的度量概 念: 度量( m e a s u r e ) 是指这样一个过程,即通过这一过程以某种方式为真实世 界实体的属性赋予数字或者符号,以便能够按照明确定义的规则对属性进行描 述: 度量对象( 目标) 是指度量过程所指向的对象; 属性是指描述对象的特征或性质; 测量( m e a s u r e m e n t ) 是按照一定的尺度用度量项( m e t r i c ) 给软件的实体属性 赋值的过程; 度量项( m e t r i c ) 是已定义测量方法和测量尺度,是获取软件产品或过程具 有的属性的量化值; 指示器( i n d i c a t o r ) 是用于评价或预测其他度量的度量,是对度量项进行再 分析处理所得到的,它对软件过程、软件项目或产品本身提供了更深入的理解。 指示器能明确描述产品、项目或过程的质量或其他特性,并能用于控制、管理和 改善工作产品、过程或项目的质量; 度量结构是基本度量、派生度量和指标的组合。基本度量使用指定的度量 方法来收集某些软件实体的单个特性信息,其在作用上独立于其他所有度量。 派生度量被定义为两个或两个以上基本度量和或派生度量的函数,可收集多个 特性的相关信息。指标是通过将分析模型应用于一个或多个基本和,或派生度量 7 来提供估计值或评估值的度量,用于解决指定的信息需求f 4 1 。 软件过程度量的目的是利用过程度量的结果进行评估。当前评估软件过程 属性的标准主要有两个i s o i e c1 5 5 0 4 5 和s e i 的c m m c m m i 。本文所关注的 是基于c m m i 评价框架下的软件过程度量。 2 2c 删i c m m i 是s e i 历时四年而开发出来的,并推广实施的一种软件能力成熟度 评估模型。c m m i 是在2 0 0 2 年最后完成,并于2 0 0 5 年开始全面取代c m m 。 它是一套融合多学科的、可扩充的产品集合。其研制的目的是利用两个或者多 个单一的学科模型实现一个组织的集成化过程改进。 2 2 1c 删i 的等级划分 c m m i 同c m m 一样也将软件能力成熟度划分为5 个级别,这样做有两个 目的:一方面是为了与c m m 兼容,另一方面是为了软件组织的软件能力成熟 度评估,以便于组织与组织之间的横向比较。这5 个级别包括: 级别1 ( 初始级) 代表了以不可预测结果为特征的过程成熟度。该级别的 过程包括了一些特别的方法、工作和反应管理,成功主要取决于团队的技能。 级别2 ( 已管理级) 代表了以可重复项目执行为特征的过程成熟度。组织 使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、 产品和过程质量保证、配置管理、以及度量和分析。对于级别2 而言,主要的 过程焦点在于项目级的活动和实践。 级别3 ( 已定义级) 代表了以组织内改进项目执行为特征的过程成熟度。 强调级别2 的关键过程域的前后一致的、项目级的纪律,以建立组织级的活动 和实践。这一级别的组织级过程域包括: 需求开发:利益相关者的需求发展。 技术方案:展开的设计和质量工程。 产品集成:持续集成、接口控制、变更控制。 验证:保证产品正确建立的评估技术。 确认:保证建立正确的产品的评估技术。 风险管理:检测、优先级,相关问题和意外的解决方案。 组织级培训:建立机制,培养更多熟练人员。 组织级过程焦点:为项目过程定义建立组织级框架。 决策分析和方案:系统的可选的评估。 组织级过程定义:把过程看作是组织的持久的发展的资产。 集成项目管理:在项目内统一各个组和利益相关者。 级别4 ( 定量管理级) 代表了以改进组织性能为特征的过程成熟度。3 级项 8 目的历史结果可用来交替使用,在业务表现的竞争尺度( 成本、质量、时问) 方面的结果是可预测的。级别4 附加的过程域包括: 组织级过程执行:为过程执行设定规范和基准。 定量的项目管理:以统计质量控制方法为基础实施项目。 级别5 ( 持续优化级) 代表了以可快速进行重新配置的组织性能,和定量的、 持续的过程改进为特征的过程成熟度。附加的级别5 过程域包括: 因果分析和解决方案:主动避免错误和强化最佳实践。 组织级的改革和实施:建立一个能够有机地适应和改进的学习组织。 2 2 2c m m i 的表示方法 阶段式的模型成分主要包括:能力成熟度等级、过程域( p r o c e s sa r e a ) 、 共性目标( g e n e r i cg o a l ) 、特定目标( s p e c i f i cg o a l ) 、共性实践( g e n e r i c p r a c t i c e ) 、特定实践( s p e c i f i cp r a c t i c e ) 以及组织实践的公共特性( c o m m o n f e a t u r e ) 。如图2 - i 中所示阶段式表达方式各成分之间的关系: 图2 1c m m i 阶段式模型构成成分 c m m i 将过程域中所共有的实践提炼出来,作为共性实践,将其目标称为共 性目标,其余特定于某个过程域的实践与目标称为特定实践与特定目标。这样 模型取得了相对s w - c m m 更高的抽象度与适应范围。目标( 共性目标与特定目 标) 首次作为模型构成成分出现,这表明c t i m i 对过程活动的结果投入了更多 的关注。 连续式模型的构成成分与阶段式的主要构成成分差别不大,只是成熟度等 级换成了能力等级,没有公共特性。其中阶段模型主要是从过程域集合的角度 考察整个组织的过程成熟度,强调的是过程结合的成熟度,故称为成熟度,而 连续模型是从过程域的角度考察基线和度量结果的改善,强调的是单个过程域 的能力,故称为能力等级。由于连续式是针对单个过程域,因此其成分不是围 9 绕阶段等级来组织的,而是围绕过程域组织的。它们之间的关系如图2 - 2 所示: 图2 - 2c m m i 连续式模型构成成分 2 3 基于目标的度量定义模型 “该选择什么的度量目标? ”和“从这些度量结果中了解什么? ”都是在 度量实施中首先遇到的问题,为此r o b e r t e p a r k 提出利用目标驱动的度量定义 方法弘叫来定义度量结构,根据度量目标自顶向下地定义度量结构,使得度量结 果能够回溯到度量的目标,从而更加明确了度量活动所指向的度量目标。在该 类方法中又以m a r y l a n d 大学的v i o t o rr b a s i l i 提出的目标问题度量项( g o a l q u e s t i o n - m e t r i c ,简称g q m ) 方法最为常用。本文的研究中,需要采用这 种基于目标的度量定义方法的思想来对软件过程的度量结构进行定义。 2 3 1g q m g q m 模型是一种利用目标驱动的思想来定义软件度量结构的模型。该模型 的作用是通过分层次的度量结构,来将组织目标和项目目标与所需要收集的数 据相对应。其中组织目标和项目目标分别表示了软件组织的组织级别的度量目 标和项目级别的度量目标。同时g q m 为软件度量提供一种根据已确定的目标 解释这些数据的框架l i “。 g q m 模型将度量结构分为三个层次,最高层为目标层,中问为问题层,最 底层为度量项层,这三层是一个逐步递进的层次结构。下层是上层的细化,上 层是下层的抽象。通过自顶向下、逐步求精的过程,将抽象级别较高的组织目 标或项目目标和与度量项所实际收集的数据相关联。g q m 的三层模型如图2 3 所示: i o 圈曰园 , ,。i i 1 、 一 囤囱崮国囱 7 、 , - 、 囱固囱囱圈圈 图2 - 3 g q m 模型图 最上层是目标( g o a l ) 层,该层作用主要是明确组织级别和项目级别的度 量目标;将这些度量目标进行细化,构成问题( q u e s t i o n ) 层,在该层中将一 个目标层度量目标用一个或多个问题来表示;对于每一个问题层的问题,可以 进一步细化为一个或几个度量项。 g q m 目标层的每个目标都由三个方面属性来描述,分别是:关注点( i s s u e ) 、 对象( o b j e c t ) 和视角( v i e w p o i n t ) 。如图2 4 所示,对象描述了要度量对象, 关注点描述了度量对象的质量重点,视角定义使用度量的信息使用者,目的 ( p u r p o s e s ) 描述了理解、控制和改进要度量的对象。如需要对需求评审情况 进行度量,度量对象为需求开发过程执行情况;度量关注点为开发效率、进度、 成本等;度量视角为项日经理;度量目的是监控需求开发过程执行情况。 图2 - 4 目标的三维视图 在度量实施过程中度量的结果通常需要可视化的描述,而g q m 模型并没有 提供这一方面的支持。为此,s e i 的软件工程度量和分析组( s e m a ) 在g q m 模 型的基础上提出了利用g q i m 模型进行目标的度量结构定义。 2 3 2g q i m 经验证明,根据g q m 中问题层的问题来直接确定度量项,然后再根据度量 项收集度量数据,而这些度量项通常是由一系列数据所表示,并不能直观的反 映问题层的问题,并且度量项与度量项之间的关系也无法表示。因此s e m a 在 问题层和度量层之间增加指示器层,根据问题定义指示器,并确定构建该指示 器所需要的度量项和度量项所对应的数据。 圆圈 崮匡麴崮囱 图2 - 5 g q i m 模型图 g q i m 模型在g q m 的基础上在问题层和度量层之间增加了指示器层 ( i n d i c a t o r ) 。这层的指示器将底层的一个或多个度量项( m e t r i c ) 进行组合, 利用图表、文本、表格等形式来显示和报告软件产品或软件过程的某方面特征。 g q m 和g q ( i ) m 方法在软件业中得到了广泛的应用,许多公司都发表了应 用g q m 的经验,例如 2 5 1 1 2 6 等。此外,也有不少人在实践经验的基础上对它 们进行了改进或补充,如s o l i n g e n 和b e r g h o u t k “,也有人开发了度量工具来支 持g q m 的实施”等。 2 4 软件过程实施的过程 软件过程实施指的是利用软件过程思想进行项目管理的实施活动的集合, 其包括四个活动:过程定义、过程度量、过程评估和过程改进。其中,过程定 义是过程实施的起点,为整个实施过程定义了度量和评估的目标;过程度量是 针对过程定义的结果进行度量,为过程评估提供评估数据;过程评估根据过程 度量的结果数据参照评估标准产生评估结果;过程改进是一个决策性的过程, 根据评估评定结果有针对性地为软件过程定义提出改进措施。这四个过程作为 一个闭环回路是一个持续优化的过程。 软件组织要进行软件过程实施首先就需要对本组织的软件过程进行定义, 过程定义这一活动中,组织首先定义组织的标准软件过程,当项目启动时,组 织根据项目的特定要求结合生命周期模板,并依照过程剪裁指南对企业的标准 软件过程进行剪裁产生该项目的软件过程;随后实施该项目软件过程,并在实 施过程中实时地收集过程定义时所确定的过程属性数据,提供给过程度量算法 对数据进行加工计算产生的度量结果,将度量结果为过程评估所用;在过程评 估过程中参照当前流行的过程评估标准对度量结果进行分析和评定,最终为过 程评定等级;最后评估的结果提供给企业的经营决策层,进行对标准软件过程 的修改完善以达到过程改进的目的。这四个活动之间具体关系如图2 - 6 所示: 1 2 图2 - 6 软件过程实施流程图 这四个过程是一个循环的过程,每个过程活动都为下一个过程活动的开始 提供服务。过程定义是基础;过程度量是方法;过程评估是标准;过程改进是 目的。 作为基础的过程定义活动是以企业的标准软件过程为剪裁的原材料,一个 优秀的标准软件过程为软件开发人员提供良好的开发规范。 2 5 标准软件过程及其组成 标准软件过程由一系列子过程组成,子过程又可以划分为一个或多个阶段。 1 ) 标准软件过程的组成 根据2 2 节中关于c m m i 的等级和表示方法的介绍,本文将标准软件过程 分为1 9 个子过程,而每个子过程又是一大类中的一部分。根据子过程的功能和 目标可将予过程分为三大类:项目管理类、开发流程类、辅助管理类。 表2 1 标准软件过程分类图 第一部分项目管理类对整个项目的从立项到结项的项目管理活动所涉及到 的流程和规范进行定义,相关人员通过对该类过程的实施和完成使项目的实现 达到规
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息处理技术员专业能力试题及答案
- 计算机网络架构设计的原则与方法试题及答案
- 战略沟通的重要性试题及答案
- 如何进行项目风险评估试题及答案
- 委婉拒绝合同条款回复函
- 重新定义品牌核心价值的方法计划
- 2025【设备租赁合同】设备租赁合同
- 程序调试与优化方法试题及答案
- 班级心理健康知识普及活动计划
- 精炼试题2024年高考数学及答案
- 孟万金编制的中国大学生积极心理品质量表+评分方式
- JGT 486-2015 混凝土用复合掺合料
- 12J3-3蒸压加气混凝土砌块墙
- 2023年版《安宁疗护实践指南(试行)》解读课件
- 7《玩磁铁》(教学设计)-一年级上册科学青岛版
- 2024建筑工程施工承包人工费合同书
- 四川省成都市2024年七年级下学期期末数学试题附答案
- 思辨与创新智慧树知到期末考试答案章节答案2024年复旦大学
- 2024年湖北水利发展集团有限公司招聘笔试冲刺题(带答案解析)
- MOOC 算法设计与分析-武汉理工大学 中国大学慕课答案
- 2024春期国开电大思政课《中国近现代史纲要》在线形考(专题检测一至八)试题及答案
评论
0/150
提交评论