基于CMMI的软件度量研究

来源 :计算机时代 | 被引量 : 0次 | 上传用户:wkadjx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:CMMI为软件产品及软件过程提供了一套定量的表示和分析,即软件度量的模型。有效的软件度量过程能促进组织的软件过程能力的改进。文章结合国内应用特点,介绍了基于CMMI的多层架构软件产品的度量模型,并着重讨论了基于CMMI的软件过程度量,总结了软件过程度量的工作方法和思路,提出了解决国内软件度量的一般性方法,为软件过程改进提供了可行的方法和实践。
  关键词:CMMI;软件度量;软件过程能力;度量项;门限值
  
  0引言
  
  软件度量的目的是为项目管理提供项目的执行情况的充分可见性,并使项目管理者了解项目实际进展与项目计划之间的偏差,以便采取纠正行动,保证项目的顺利进行。有效的软件度量过程促进组织的软件过程能力的改进。软件度量是软件特性的定量表示和分析方法;软件度量可分为软件产品度量和软件过程度量两类。软件产品度量(定量表示和分析软件产品特性)是独立于产品生产过程的度量;软件过程度量(定量表示和分析软件过程特性)是为管理者提供产品生产过程的状态信息和指导依据。
  软件产品度量的要素为质量要素、评价准则、度量元。这里软件过程度量主要通过需求度量、规模度量、进度度量、工作量度量、风险管理度量、质量保证度量来分析。
  
  1 三层架构软件产品度量
  
  1.1质量要素
  软件质量可分解成六个要素,这六个要素是软件的基本特征。功能性:软件所实现的功能满足用户需求的程度;可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度;易用性:对于一个软件,用户学习、操作、准备输入和理解输出时所做努力的程度;效率:在指定的条件下,软件实现某种功能使用计算机资源(包括时间)的有效程度;可维修性:为了满足用户需求、环境改变或发生软件错误时,对软件进行相应修改所需的努力程度;可移植性:软件从一个计算机系统或环境转移到另一个计算机系统或环境的难易程度。
  
  1.2评价准则
  评价准则包括:精确性、健壮性、安全性、通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、产品文件完备性。
  
  1.3度量元
  根据软件的需求分析、概要设计、详细设计、实现、组装测试、确认测试和维护与使用七个阶段,制定针对每一个阶段的度量元。
  
  2 基于CMMI软件过程度量
  
  从软件企业的观点出发,软件度量(software Measurement)是通过各种不同的量度对软件生命周期中的各个元素进行度量(Measure),为项目管理者提供有关项目的各种重要信息,也是进行软件评估活动的基础。
  Carnegie Mellon大学的SEI提出了以下的一个软件度量过程体系结构图:
  


  图1 软件度量过程体系结构
  下面我们就上面的体系结构进行分析。
  制定度量过程的计划包括两个方面的活动,一是确认范围,二是定义程序步骤。确认范围:明确度量需求的大小,以限定一个适合于企业本身需求的度量过程。因为在整个度量过程中是需要花费人力物力等有限资源的,不切实际的大而全或不足以反映实际结果的需求都会影响度量过程的可靠性以及企业的发展能力。定义程序步骤:在确认了范围后,定义操作及度量过程的步骤,同时成文立案。主要工作包括定义完整、一致、可操作的度量;定义数据采集方法以及如何进行数据记录与保存;定义可以对度量数据进行分析的相关技术,以使用户能根据度量数据得到实质性的结果。
  过程的实施包括两方面的活动,一个是数据的采集,一个是数据的分析。数据的采集:根据已定义的度量操作进行数据的采集、记录及存储;此外,数据还应经过适当的校验以确认有效性。在进行该项活动时应具有一定的针对性,应注意到不同的项目或活动所需要的实际数据量是有差别的,对活动状态的跟踪是非常重要的。数据的分析:包括分析数据及准备报告、提交报告,并进行评审以确保报告足够准确。这些程序步骤可能需要反复,因为报告可能没有为使用者提供有益的帮助或使用者对报告中的内容不理解,在这两种情况下,都应回馈并重启度量过程以再进行数据分析。
  过程的改善仅包含一个方面的活动,即优化过程。优化过程:用于动态地改善过程并确保提供一个结构化的方式综合且处理多个涉及过程改进的问题。除此以外,该活动要对度量过程本身进行评估,报告的使用者会对数据的有效性进行反馈。这些反馈可能来自其他的活动,但一般都会溶入到新一轮度量过程的生命周期中,对度量过程进行新的确认及定义。
  在实现项目中,项目启动之后,项目度量工作就正式展开。项目经理在项目计划阶段要针对项目的特点制订相应的度量计划,制定度量数据收集和量化分析与控制的策略。在项目实施的过程中,项目相关成员按照预先设定的周期收集各项度量数据,填写相关软件度量记录表。度量负责人根据项目度量表采用适当的方法比较和分析项目级的度量数据,得出度量分析报告。在必要时采取纠正措施,如修正项目计划、进行相关培训等。项目结束时,度量负责人及相关人员对度量规程及有关文件、度量采集的数据、分析结果及报告进行验证后,将其放入相应度量数据库。
  确定度量项要根据实际软件项目情况。如果我们比较关注项目进度、工作量和质量,可以将项目进度偏差不超过25%,项目工作量偏差不超过20%,项目的缺陷修复率不低于90%这三项指标作为度量目标。
  
  2.1需求度量
  需求的稳定度在极大程度上影响项目的规模、工作量和进度。不稳定的需求将带来负面影响,例如软件产品质量下降、项目成本增高、项目进度延迟等。跟踪分析需求的稳定性能够体现项目成员管理和控制软件需求的能力。目前国内软件项目对需求的分析和控制比较薄弱,开发人员付出了加倍的努力,用户满意度仍不理想。因此有必要对项目需求进行有效的度量和管理。
  需求度量项主要包括:原始需求总数、本阶段新增需求的数目、本阶段删除需求的数目、本阶段修改需求的数目、本阶段需求变更数目、本阶段需求总数目、项目结束时变更的需求总数、项目结束时需求总数、需求变更比例、需求实现率等。
  需求变更可能直接导致规模的增长、进度的延迟、成本的增加以及返工。项目成员应周期性地度量需求变更(包括新增、修改和删除需求)和需求总数的变化,控制需求变更并采取相应行动。图2表现了需求的稳定度,两条折线分别表示监控过程需求总数的变化以及需求变更数目的变化。假设需求基线化评审发生在第3次项目监控时,该图显示,需求评审之后,第4次的需求总数以及第4、5、6次需求变更数都有明显增长,在第7次以后需求趋于稳定。说明在需求基线化评审结束之后相当一段时间需求仍然不稳定。产生的原因可能有以下几种:(1)需 求调研不充分、误解、歧义、不完整、不正确等;(2)客户需求变化频繁。解决措施:在进行需求调研时充分挖掘客户的需求,进行需求确认。对于频繁变更的需求,项目成员可能要采取诸如重新分配资源及重新估算规模、工作量和进度等措施。
  


  图2需求变化趋势图
  
  2.2规模度量
  规模是项目的基本度量项,是决定软件项目成本的最基本因素,是估算工作量和进度、计算生产率、缺陷密度及其它项目评估指标的基础。对规模的有效估算、跟踪和控制,一方面使得项目得以按照预定计划顺利开展,另—方面也也保证机构盈利目标的实现。
  监控实际规模与估算规模的偏差。如果需要,重新估算工作量和进度。
  在里程碑处(如需求阶段、设计阶段)以及大的需求变更发生时,或进行项目情况汇总时,项目经理需要分析规模变化率并监控产品有效规模的偏差。
  如果规模变化率在上下控制限范围内,则度量结果是可以接受的。
  如果规模变化率超出上下控制限范围,则分析原因并采取相应措施。
  度量项主要包括:项目估计规模、项目实际规模、规模变化率、项目估计成本、项目实际成本、可复用的代码行等。可以根据实际情况取舍。
  
  2.3进度度量
  保证软件项目的进度是控制项目成本,赢得用户满意的关键。软件项目容易在进度上发生问题,对项目的进度进行定量的高透明度的管理,可以尽早发现进度的延误,迅速做出相应的调整。具体度量项包括:项目估计进度、项目实际进度、进度偏差、里程碑计划总天数、里程碑实际总天数、里程碑差异天数、项目计划总天数、项目实际总天数、项目总的差异天数。如果进度偏差超出控制界限,则分析原因,采取措施,跟踪进度,直至进度得到控制。
  
  2.4工作量度量
  追踪工作量的目的是评估项目人力是否充分以及分配给每个阶段的工作量是否合适。对工作量的正确估计和控制,有利于为项目配置合适的人力资源,也便于控制项目成本。统计汇总各个阶段、各项活动工作量在总工作量中所占比例,并与计划比例相对照,可以发现项目执行上的偏差;总结经验教训,有利于逐步形成适合软件企业开发团队特点的最佳工作量组合。
  工作量度量的具体方法是:确定工作量度量的基本度量项,由相关人员选择基本度量项填写工作日志,在一定时间统计各基本度量项及计算相关派生度量项。相关的度量项有:各类活动的总工作量、各阶段的总工作量、各类活动的工作量分布、各阶段的工作量分布、项目估计(总)工作量、项目实际(总)工作量、工作量偏差等。
  


  图3 返工工作量分析图
  分析:从数据和图表来看,返工工作量在16%左右,属正常范围。没有超过门限值。
  
  2.5风险管理度量
  对风险进行识别与度量,统计识别的风险和转化为问题的风险的数目,供以后的项目参考。风险度量项主要包括:本阶段识别的风险数目、本阶段转化为问题的风险数目、项目识别的风险总数、项目转化为问题的风险总数等。
  风险管理是对项目潜在问题进行识别,以便在项目生命周期内对处理这些问题制订管理计划,减少潜在问题发生的影响和概率。风险度量将为以后的项目的风险管理提供参考数据。
  


  图4 项目风险和问题趋势图
  
  2.6质量保证度量
  通过对软件质量保证过程中不合格项的有关统计,可以发现项目成员对软件开发过程规范的遵从程度,预防缺陷,改进过程。通过对质量保证活动的工作量进行统计,可以积累项目支持类活动的工作量数据。
  


  图5 不符合项解决率趋势图
  度量项主要包括:QA活动的工作量、不符合项总数目、各类问题不符合项数目、新增不符合项数目、已解决不符合项数目、当前未解决不符合项数目、不符合项解决率、解决不符合问题的时间延迟、解决不符合问题的工作量、剪裁组织标准过程集合的工作量等。
  
  3 实践结果
  
  如何提高软件质量始终是软件工程领域研究的重要方向。基于度量的量化管理是目前最有效的质量保证手段之一,国内很多软件企业也在做这方面的研究和实践。本度量分析模型已经使用于多个具体的项目应用中,并经过了SEI专家测评,通过了CMMI3正式评估。本文在软件过程改进和软件度量分析上作了一定的探索和实践,结合具体软件项目进行了具体实践的描述,对以后国内软件度量分析应用,改进软件过程有一定现实意义。
  
  4 结束语
  
  在接下来的工作中,我们要加强软件度量库(如电子政务应用安全软件度量库)的建设和应用,将软件度量分析工作作为一个长效机制坚持下去,保证软件过程有序、健康地发展。
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:对于一些大型的复杂网络系统,利用传统的集中式系统监控模型进行监控和故障诊断是困难的。文章给出了一种将移动Agent技术用于系统监控的分布式系统监控模型。利用这种系统监控模型可以减少网络数据流量,缩短系统监控与故障诊断时间。  关键词:分布式;移动Agent;系统监控;监控模型    0 引言    在现有的集中式系统监控体系中,客户端与服务器之间传递着大量的数据,网络流量很大,增加了网络拥塞
期刊
摘要:阐述了在共享式以太网中用Visual c++6.0实现的基于原始套接字技术的改进网络嗅探器实现。在设计上,除了捕获数据包以外,还进一步解析出应用层协议,运用模式匹配的KMP算法截获相关的数据信息,并保存到本机文件中。  关键词:共享式以太网;Visual C++6.0;原始套接字;网络嗅探器;KMP算法    0 引言    随着计算机和网络的普及,单独工作、不需要与其他用户交互的应用程序越
期刊
摘要:阐述了ARP欺骗技术的基本原理,对ARP欺骗造成局域网无法正常通讯的实例进行分析,提出了针对ARP欺骗的多种防范办法。实际应用效果较好。  关键词:ARP;局域网;MAC地址;IP地址;TCP/IP    0 引言    在大型局域网的维护工作中,最近常常发现网络时断时续的现象,而且断网的计算机也不固定。经过多方面的监控和测试,最终确定是时下比较流行的ARP欺骗病毒导致断网。由于这个病毒相当
期刊
摘 要:在课件的开发过程中,如何对学习内容进行导航,是一个必不可少的设计环节。Budmenu.u32函数是基于Windows API开发的Authorware扩展函数,通常用于制作菜单。文章结合作者多年的课件开发实践,从全新的角度介绍了如何利用该函数设计和制作导航菜单,并给出了具体实例。借鉴文章给出的方法,可以比较容易地实现对学习内容的导航,从而提高课件的开发效率和教学效果。  关键词:Auth
期刊
摘要:CORBA的通知服务相对于传统的事件服务,增加了一系列新的特性,对海量教育资源信息的订阅发布提供了更大的灵活性和通用性。文章根据通知服务原理,构建了一个资源订阅系统模型,用户可以订阅感兴趣的信息,事件通知服务负责发布事件,同时将事件分发给感兴趣的订阅者。模型采用事件过滤机制、分组共享、队列优先级设计,提高了事件通知的可靠性。  关键词:事件通知服务;发布/订阅;事件过滤;事件通道    0 
期刊
摘要:为提高网络浏览器缓存系统性能,降低用户等待时间,提出了一种基于性能约束的P2P Web Cache模型。理论分析和模拟测试表明,该模型能够减少连接时间和传输时间。  关键词:缓存系统;性能约束;P2P Web Cache;可升级;存取时间    0 引言    随着网络存取数量的飞速增长,如何提高网络的服务质量已成为研究的热点。传统的基于服务器代理的技术如Squid和Netcache,虽然易
期刊
摘 要:在以Car构件为基础的嵌入式研究领域中,构建面向Web服务的Car构件运行容器一直是研究的热点。文章阐述了面向Web服务的Car构件运行容器的特点,介绍了构件技术以及“和欣”操作系统,讨论了构件化的Web Container的分层设计理念,阐述了在“和欣”操作系统上实现的基于构件的Car Faces系统。该系统充分发挥了构件技术的优势,并具有简单、高效可配置等特点,很好地满足了以Car构件
期刊
摘要:提出一种新主机加入移动自组网的地址自配置机制。针对OLSR路由协议网络负荷较重的情况,特别考虑了路由协议的原理特点,设计了一种基于代理邻居的简单地址自配置方法;针对代理邻居的发现、局域地址的分配、全局地址的检测与分配提出了完整的解决方案,设计了相关分组格式,并保持了与OLSR通用数据格式的一致性。该方法算法简单,对网络负荷影响极小。  关键词:OLSR;地址自配置;邻居代理;地址池    0
期刊
摘要:利用Windows Vista的增强功能并结合PNRP(对等名称解析协议)、PNM(People Near Me)和WCF(WindowsCommunication Foundation)中引进的PeerChannel功能,解决了传统的P2P应用程序开发中的常见问题。  关键词:对等名称解析协议;PNM;WCF;PeerChannel    0引言    从传统意义来说,P2P应用程序开发所
期刊
摘 要:中间人攻击是网络攻击的重要手段之一,而利用ARP欺骗是比较容易实施此类攻击的。文章对基于ARP欺骗的中间人攻击进行了分析,根据ARP本身的缺陷,即完全相信所有消息,对消息不加以任何认证的特点,提出了一种利用非对称加密来抵御中间人攻击的方法,并重点描述了消息认证的过程和密钥的生成及管理。  关键词:ARP协议;ARP欺骗;中间人攻击;非对称加密    0 引言    中间人攻击m在网络安全领
期刊