| 网站首页 | 测试时代论坛 | Blog技术社区 | 软件测试技术 | 自动测试技术 | 软件质量保证 | 资料下载中心 |
     | 业界新闻 | 软件测试活动 | 软件测试培训 | 软件测试服务 | 软件测试期刊 | 测试时代工作室 | Segue工具专区 |
您现在的位置: 软件测试时代 >> 软件质量保证 >> 软件度量 >> 文章正文 用户登录 新用户注册
[组图]软件度量的方法体系          【字体:
软件度量的方法体系
作者:唐德权    文章来源:深度精耕-日本软件企业精义解读    点击数:    更新时间:2006-1-21    

项目度量
项目度量是针对软件开发项目的特定度量,目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。
规模度量
软件开发项目规模度量(size measurement)是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。规模度量是软件项目失败的重要原因之一。一个好的规模度量模型可以解决这一问题。有效的软件规模度量是成功项目的核心要素:基于有效的软件规模度量可以策划合理的项目计划,合理的项目计划有助于有效地管理项目。规模度量的要点在于:由开发现场的项目成员进行估算;灵活运用实际开发作业数据;杜绝盲目迎合顾客需求的“交期逆推法”。
软件规模度量有助于软件开发团队准确把握开发时间、费用分布以及缺陷密度等等。软件规模的估算方法有很多种,如:功能点分析(FPA:function points analysis)、代码行(LOC:lines of code)、德尔菲法(Delphi technique)、COCOMO模型、特征点(feature point)、对象点(object point)、3-D功能点(3-D function points)、Bang度量(DeMarco's bang metric)、模糊逻辑(fuzzy logic)、标准构件法(standard component)等,这些方法不断细化为更多具体的方法。
1. 功能点分析法
(1) 功能点分析法概述
功能点分析法(FPA:function point analysis)是在需求分析阶段基于系统功能的一种规模估算方法,是基于应用软件的外部、内部特性以及软件性能的一种间接的规模测量。FPA法由IBM的工程师艾伦·艾尔布策(Allan Albrech)于20世纪70年代提出,随后被国际功能点用户协会(IFPUG:The International Function Point Users' Group)提出的IFPUG方法继承,从系统的复杂性和系统的特性这两个角度来度量系统的规模,其特征是:“在外部式样确定的情况下可以度量系统的规模”,“可以对从用户角度把握的系统规模进行度量”。功能点可以用于“需求文档”、“设计文档”、“源代码”、“测试用例”度量,根据具体方法和编程语言的不同,功能点可以转换为代码行。经由ISO组织已经有多种功能点估算方法成为国际标准,如:①加拿大人艾伦·艾布恩(Alain Abran)等人提出的全面功能点法(full function points);②英国软件度量协会(UKSMA:United Kingdom Software Metrics Association)提出的IFPUG 功能点法(IFPUG function points);③英国软件度量协会提出的Mark II FPA功能点法(Mark II function points);④荷兰功能点用户协会(NEFPUG:Netherlands Function Point Users Group)提出的NESMA 功能点法,以及软件度量共同协会(COSMIC:the COmmon Software Metrics Consortium)提出的COSMIC-FFP方法,这些方法都属于艾尔布策功能点方法的发展和细化。
(2) 功能点分析法的基本计数
功能点分析的基本计数就是依据标准计算出的系统(或模块)中所含每一种元素的数目:①外部输入数(EI:external input):计算每个用户输入,它们向软件提供面向应用的数据。输入应该与查询区分开来,分别计算。②外部输出数(EO:external output):计算每个用户输出,它们向软件提供面向应用的信息。这里,输出是指报表、屏幕、出错信息,等等。一个报表中的单个数据项不单独计算。③外部查询数(EQ:external query):一个查询被定义为一次联机输入,它导致软件以联机输出的方式产生实时的响应。每一个不同的查询都要计算。④内部逻辑文件(ILF:internal logical file):计算每个逻辑的主文件,如数据的一个逻辑组合,它可能是某个大型数据库的一部分或是一个独立的文件。⑤外部接口文件(EIF:external interface file):计算所有机器可读的接口,如磁带或磁盘上的数据文件,利用这些接口可以将信息从一个系统传送到另一个系统。
(3) 功能点分析的主要步骤
功能点分析可以按照如图5-6所示步骤进行:


图5-6 功能点分析的主要步骤


(4) 案例:CSK株式会社的功能点分析案例
【CSK株式会社的CSFPA概述】
在实施CSFPA之前,CSK以Step数方法来估算开发规模。但是在利用VB、C++、Java、SQL等语言的项目开发中,用Step数方法进行规模估算比较困难。为了以定量化手段降低甚至消除估算错误,CSK在IFPUG(International Function Point Users Group)的FP法的基础上加以改良开发出自身的CSFPA(CSK Simplified Function Point Analysis)法,并在企业内加以实施。CSK于1995年加入IFPUG组织,并于1998年开始正式开展活动。CSFPA改良的两点是:增加了度量要件定义等上游工程的简易测量功能;避免使用人为因素太强的调整系数。CSFPA法适用体制在项目估算时的FP度量、项目完成时的FP度量、实际数据的收集、统计分析、工数模型化、质量指标化等方面具有CSK特有的方式,CSK在该方法的教育与培训、模型构筑、估算·质量计划的适用、结果评价·差异分析等方面取得了良好的绩效。
【CSFPA法的估算步骤】
CSFPA法与IFPUG法的估算步骤有所不同,二者的相似点以及不同点请参照图5-7。

图5-7 CSFPA功能点估算步骤
【CSFPA法的推广运用】
为了普及和适用CSFPA,CSK在企业内设立由多名专任人员组成的事务局,推进方法的定义以及维护、管理、员工教育、度量支援、数据收集、统计分析、数据利用等。下面对CSFPA的适用体制加以介绍。
项目估算时的FP度量。在估算时度量软件规模,通过适用相应的工数模型测算预计工数,以此作为制定日程的根据。CSFPA的工数模型以开发的全过程为对象,按照项目的开发范围进行估算,将式样、品质、技术的对应要件作为变动要素对此加以调整。
项目完成时的FP度量。在项目完成阶段对FP数、使用环境、技术、工数以及质量信息等几十个项目加以记录,比较估算时的FP数并进行差异分析,以提升度量精度和模型有效性。
实际数据的收集。将度量的实际数据剃除异常点后纳入数据库,并加以分析,然后向全企业公开。这种标本数据已经超过400件。由于FP度量过程中由于度量者的不同可能导致较大的误差,事务局还面向经验甚浅的度量者提供现场支持,验证度量结果的妥当性,提高度量的精度。另外,还与其他企业所提供的数据进行比较验证,持续收集数据。
统计分析。对于收集起来的数据,还需要考虑到项目特性的差异并加以分析。作为分析的界限,CSK建立了包括约50种类型(可视化工具类开发、Web类开发、维护的主框架开发等)的数据库,并对各自包括工数在内的10种以上的项目和FP值实施相关分析。
工数模型化。CSK将FP数和工数的关系称之为“工数模型”,现在已经拥有可适用的6种工数模型。这些模型与实际数据的收集相配合,实施差异分析,持续提升估算精度。
质量指标化。与工数模型一样,CSK将FP数和质量数据(缺陷、问题等)之间的相关关系作为质量模型加以提供。通过定义经由质量模型获得的指标,并与现存的指标相结合,构筑综合性的质量指标。
【CSK推进FP法的经验总结】
度量方法的教育与渗透—— 启蒙。要使用FP法进行度量,当然需要了解度量规则。CSK在其“项目管理研修”这一体制中,对企业员工实施教育,讲解FP法的定位、概要、使用方法,进行度量演习,让企业员工掌握FP法。
模型构筑—— 提升估算精度的路径。要使用各种模型提升估算的精度,需要度量项目特性以及仔细检查数据。CSK通过现场调研和支援活动,积累起专业知识和技能,并对技术、式样、质量方面的特性信息加以整理,构筑适合CSK的估算模型,提高估算精度。
估算·质量计划的适用—— 制定适当而正确的计划。构筑起来的模型在实际提案的时候作为估算的根据或者在产品的质量计划制定过程中适用。在模型不断适用的情况下,这些模型的适用实例也就逐渐丰富起来。
结果评价·差异分析—— 取得反馈信息至更高水平的运用。项目开发过程中,变更点管理以及计划与实绩的差异分析非常重要。在这个过程中,需要获得适当的反馈信息,在把握复杂的项目状况的同时需要灵活应对这些变更和反馈。CSK在这方面也在积极运作并在整个企业内展开。
【CSK功能点法今后的展开】
将FP作为商务活动中的共通尺度是CSK导入FP法的主要目的之一。为了提高CSK与顾客之间将之作为共通尺度的认知度,CSK认为需要实施如下事项:一是提高方法本身的认知度和信赖性;二是客观地验证度量数据的精度。FP是度量软件规模的手段,在软件开发的商务活动、项目管理、资产管理等诸多场合中都是切实把握规模的依据,是以适当的价格提供高质量软件的基础,也是客观性表示CSK的生产性的重要因素。CSK在通信、控制、嵌入式开发中正在试用COSMIC-FFP。
2. 代码行
代码行(line of code)指所有的可执行的源代码行数,包括可交付的工作控制语言(JCL:job control language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。一代码行(1LOC)的价值和人月均代码行数可以体现一个软件组织的生产能力。组织可以根据对历史项目的审计来核算组织的单行代码价值。代码行LOC常用于源代码的规模估算,常使用的单位有:SLOC(single line of code)、KLOC(thousand lines of code)、LLOC(logical line of code)、PLOC(physical line of code)、NCLOC (non-commented line of code)、DSI(delivered source instruction)。
3. 德尔菲法
德尔菲法(Delphi technique)是最流行的专家评估技术

文章录入:seanhe    责任编辑:seanhe 

  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    项目管理:软件质量的可靠保证
    “寻找圣杯的任务”——度量…
    关于软件质量和软件测试的一…
    建立有效的软件度量过程
    软件过程不成熟的企业如何实…
    走近软件度量:从暗箱摸索中…
    质量管理八大原则原则
    软件业的“敏捷流程”
    现代SCM系统功能特征
    华为的CMM之路
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)