(计算机软件与理论专业论文)基于uml顺序图及类图的功能点度量的研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于uml顺序图及类图的功能点度量的研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于uml顺序图及类图的功能点度量的研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于uml顺序图及类图的功能点度量的研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于uml顺序图及类图的功能点度量的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

摘要软件度量和估算能够有效的监控软件进度。在常用软件度量方法中,对规模的度量和估算是所有度量活动的基础,其结果可作为其它度量的一个主要输入,因此在软件度量活动中具有重要地位。软件规模度量和估算的根本目的是通过量化的分析与总结,提高软件项目的生产率,提高产品质量降低成本和产品研发周期,尽可能的减少因错误估算给企业带来的损失。在众多的软件规模度量的技术中,国际功能点用户组i f p u g ( i n t e r n a f i o n a lf u n c t i o np o i n tu s e r sg r o u p ) 的f p a ( f u n c t i o np o i n t sa n a l y s i s ) 方法得到了最广泛的应用,本文在规模度量一般方法的基础上,重点对f p a 方法进行了详细探讨。本文分析了f p a 方法的优缺点。功能点最大程度地突破了传统评估方法的局限,能够不依赖于外部条件,客观、公正、独立地评估系统的规模。但是,传统的功能规模度量为手工操作,不仅抽取数据及度量过程非常繁琐、容易发生差错,而且度量人员不同,工作方法亦不同,带有很强的主观性,结论很难具有可重复性,所以亟需实现自动化地度量。u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法,它的提出和普遍应用,为客观、可比较、自动化地度量功能点提供了可能性。为了解决f p a 方法不能自动化度量的缺点,本文引入u m l 标准建模方法来对f p a进行改进。通过对u m l 顺序图和类图的分析,定义了相应的度量元映射规则,提取度量信息,从而自动的从顺序图中描取出事务功能点,从类图中抽取出数据功能点,并最终得到f p a 的功能点个数。本文描述了该规则的转换算法,实现了一种基于u m l的自动化功能点度量工具- - u b f p t ( u m lb a s e df u n c t i o np o i n tt 0 0 1 ) 。它具有友好的用户界面,使用方便,以r a t i o f i a lr o s e 定义的m d l 文件为基本输入,并以表格的形式将计算结果返回给用户。最后通过实验证明,该工具能够比较准确的对系统功能点进行自动化度量。关键词:功能点度量;顺序图;类图;映射规则a b s t r a c tt h es c a em e a s u r e m e n ta n de s t i m a t i o na r e t h ef o u n d a t i o no fs o f t w a r em e a s u r e m e n t s ,t h er e s u l t sa r em a j o ri n p u t sf o ro t h e rm e a s u r e m e n t s t h u si ti so fi m p o r t a n c ei ns o f t w a r em e a s u r e m e n ta c t i v i t y 1 1 1 eb a s i cg o a lo fs c a l em e a s u r f f n e n ti st oi n c r e a s ep r o j c o t sp r o d u c t i v i t y , d l h a n c eq u a l i t y , a n dr e d u c ec o s ta n dr e s e a r c h i n gp e r i o dt h r o u g hq u a n t i t a t i v ea n a l y s i s a m o n gt h es c a l em e a s u r e m e n t , i f p u g ( i n t e r n a t i o n a lf u n c t i o np o i n tu s e r sg r o u p )f p a ( f u n c t i o np o i n t sa n a l y s i s ) i so n eo ft h em o s tw i d e l yu s e dm e t h o d s ;t h i sp a p e rf o c u s e so nt h ed e t a i l e di n v e s t i g a t i o no ff p a a l t h o u g hf u n c t i o np o i n ti sw i d e l ya c c e p t e da n du s e d ,t h i sm e t h o di sm a n u a l ,a n dt h ep r o c e s so fe x t r a c t i n ga n dm e a s u r i n gd a t ai sv e r yc o m p l e xa n de a s yt og e tm i s a a k e s d i f f e r e mp e r s o nu s e sd i f f e r e n tm e t h o d s n l i sb n n g sas t r o n gs u b j e c t i v i t y , a n dt h er e s u l ti sd i f f i c u l tt or e p e a t t h u si ti se x p e c t e dt om a k et h i sm e t h o da u t o m a t i c a l l y ,u m li sas t a n d a r dm o d e l i n gl a n g u a g et h a ts u m m a r i z e st h ee x p e r i e n c eo fp a s tm o d e l i n gt e c h n o l o g i e sa n da s s i m i l a t ec u r r e n tm o d e l i n ge x c e l l e n ta c h i e v e m e n t t h ef u n c t i o np o i n tm e a s u r e m e n tc a nb ed o n ei m p e r s o n a l l y , o b j e c t i v e l yb a s e do nu m lm o d e l s t h i sp a p e ri n t r o d u c e su m lm o d e l si n t of p ai no r d e rt oo v e r c o m et h es h o r t c o m i n g so fn a n l ep r o p o s e da p p r o a c hu s e st h es e q u e n c ed i a g r a m sa n dc l a s sd i a g r a m si nu m lm o d e l s n l ep a p e rd e s c r i b e sf p am e a s u r e m e n tm a p p i n gr u l e sf o rs e q u e n c ed i a g r a m sa n dc l a s sd i a g r a m sr e s p e c t i v e l y m e a s u r e m e n td a t ae x t r a c t e df r o ms e q u e n c ed i a g r a m sa r ec a l l e dt r a n s a c t i o nf u n c t i o np o i n t s t h o s ee x t r a c t e d 丘d mc l a s sd i a g r a m s 黜d a t af u n c t i o np o i n t s f r o mt h eb o t hk i n d so ff u n c t i o np o i n t st h et o t a lf u n c t i o np o i n t so fas o f t w a r es y s t e mc a l lb ec a l c u l a t e d a l g o r i t h m sw h i c ha u t o m a t i c a l l yt r a n s f o r mt h em a p p i n gr u l e s撇a l s op r e s e n t e di nt h ep a p e r t h e naf u n c t i o np o i n tt o o lu b f p t ( u m lb a s e df u n c t i o np o i n tt 0 0 1 ) i sd e s c r i b e d f i n a l l y , e x p e r i m e n t sa r ep e r f o r m e da n ds h o w nt h a tt h em e t h o da n dt h et o o lc a nc a l c u l a t es y s t e mf u n c t i o np o i n t sr e l a t i v ee x a c t l y k e yw o r d s :f u n c t i o np o i n tm e a s u r e m e n t ;s 明u 叫d i a g r a m ;c l a s sd i a g r a m ;m a p p i n gr u l e s青岛大学硕士学位论文学位论文独创性声明本人声明,所呈交的学位论文系本人在导师指导下独立完成的研究成果。文中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人己用于其他学位申请的论文或成果。本人如违反上述声明,愿意承担由此引发的一切责任和后果。论文作者签名:曼坠羔基垒日期:u 悻s 月j 怕学位论文知识产权权属声明本人在导师指导下所完成的学位论文及相关的职务作品,知识产权归属学校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名单位仍然为青岛大学。本学位论文属于:保密口,在年解密后适用于本声明。不保密d( 请在以上方框内打“”)论文作者签导师签名:( 本声明的版权日期:z q 年s 月l 叶日日凝:囱年 日l r b日期:唧年r 月肛日经许可,任何单莅及任何个人不得擅自使用)第一章绪论1 1 课题的研究背景及意义第一章绪论随着软件行业的逐渐成熟和软件工程概念的日益深入人心,人们越来越深刻地认识到软件度量的重要性。软件度量是在软件开发和维护范畴内定性、定量度量指标的定义、收集、整理、分析和呈报。软件度量体系显示了人们对生产率和质量深刻的认识,是在软件问题领域综合应用技巧、技术和方法后所取得的成果。在软件开发过程中,软件度量的根本目的是为了管理的需要,人们无法管理不能度量的事物。对于管理层人员来说,没有对软件过程的可见度就无法管理;而没有适当的度量或准则去对事物判断、评估和决策,也无法进行优秀的管理。从项目的执行和控制能力看,改善项目执行现状、提高核心竞争能力,有效控制软件项目开发的进度和质量,是国内所有i t 企业面临的一个迫切课题。如何进行软件产品的科学管理是众多软件企业都要面临的问题。而软件的量化工作又是软件产品合理控制和管理的前提,是所有软件企业目前面临并需要首先解决的问题。软件度量可以从两个角度满足企业的需要:第一,项目需要,使用度量数据进行估算、监控项目的进度和执行情况、确定软件产品是否符合质量要求;第二,组织需要,度量数据可以帮助确定整个组织的开发效率和质量的总体水平、发展趋势,更好地进行产品组合、判断资金,技术投向、策划和管理。软件度量的根本目的是通过量化的分析与总结,帮助我们提高生产率,提高产品质量,降低成本和产品研发周期。从国际上度量活动的典范来看,度量活动给组织和项目所带来的收益远远大于度量活动所耗费的成本。常用软件度量包括规模度量、成本度量、工作量度量、进度度量、生产率度量、风险度量等,其中对规模的度量和估算是所有度量活动的基础,其结果可作为其它度量的一个主要输入,因此在软件度量活动中具有重要地位。软彳牛规模度量和估算的根本目的是通过量化的分析与总结,提高软件项且的生产率,提高产品质量,降低成本和产品研发周期,尽可能的减少因错误估算给企业带来的损失。软件规模通常指的是软件的大小,可以通过程序代码行的长度、功能函数的数量、数据库中表的数量、数据库的大小等要素来直接描述软件规模,也可青岛大学硕士学位论文以通过功能点数等方法间接描述软件的规模。软件项目的规模估算历来是比较复杂的,由于软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估算往往和实际情况相差甚远。因此,如何正确运用和改进规模度量越来越引起软件工程界的重视。功能点方法f p a 最大程度地突破了传统评估方法的局限,能够不依赖于外部条件,独立地评估系统的规模,因而得到广泛的应用。但是f p a 为手工操作,不仅抽取数据及度量过程非常繁琐、容易发生差错,而且会因度量人员不同,造成工作方法不同,带有很强的主观性,致使度量结论很难具有可重复性,所以亟需自动化地度量。u m l 作为一种总结了以往建模技术经验并吸收当今优秀建模成果的标准建模方法,它的提出和普遍应用,为客观、可比较、自动化地度量功能点提供了可能性。因此,将u m l 建模技术与功能点度量相结合,对功能规模度量进行改进不失为一种科学的解决办法。1 2 本文的研究内容介绍了软件规模度量及其度量的一般方法,分析了各自的度量步骤以及使用领域,着重对i f p u g 的f p a 方法的实施步骤和局限性进行了探讨分析。针对传统f p a 方法的局限性:手工操作,抽取数据及度量过程非常繁琐、容易发生差错,主观性强,结论很难具有可重复性,亟需自动化地度量的特点,提出了一种改进功能点度量的方法,即基于u m l 顺序图及类图,提取有效度量元,结合u m l 与f p a 的映射规则,从而实现自动化的功能点计算。基于上述改进算法,设计并实现了基于u m l 的自动化功能点度量工具u b f p t 。通过实验分析,该工具能够比较准确的对系统的功能点进行度量。1 3 本文的组织结构本文的组织结构共分为六章:第一章:介绍课题的研究背景及意义,并概述本文的研究内容。第二章:介绍软件规模度量的有关概念,描述软件过程管理以及软件规模度量的基本思想,以及常用软件规模度量的一般方法。2第一章绪论第三章:着重分析介绍软件规模的功能点度量方法及其度量的具体步骤,对功能点度量进行了分析,得出其优缺点。第四章:针对功能点度量的缺点,从u m l 图中提取信息作为度量指标,设计了从u m l 到f p a 的映射算法,并在此基础上计算功能点。本章是本文的重点。第五章:描述一个基于u m l 的度量工具原型。通过实例分析了上述提出的度量理论和度量指标。本章是本文的重点。最后一章对本文的工作进行了总结,并对下一步需要研究的方向进行了展望。3青岛大学硕士学位论文第二章软件规模度量m e e 标准中,对度量给出了定义:“度量是一个函数,它的输入是软件数据,输出是单一的数值,能用以解释软件所具有的一个给定属性对质量影响的程度”( 1 1 。软件度量是指用于确定某一软件产品质量特征值的定量测量与度量方法i2 1 ,是软件质量保证与控制的一种重要手段。在i s 0 9 0 0 0 3 标准中,已经明确指出了软件度量的重要性。通过软件度量,一方面在软件的开发过程中通过了解系统的规模度、复杂度以及功能划分等情况,能够较好地分配人力、物力和时间,合理分配任务,尽可能地优化软件过程,例如,对于较难的部分可以分配给较有经验的开发人员,容易出错的部分则重点测试;另一方面可以反映模型的正确性、合理性,能够及时解决系统开发过程中出现的问题。常用软件度量包括规模度量、成本度量、工作量度量、进度度量、生产率度量、风险度量等【3 】,其中对规模的度量和估算是所有度量活动的基础,其结果可作为其它度量的一个主要输入,因此在软件度量活动中具有重要地位。软件规模度量和估算的根本目的是通过量化的分析与总结,提高软件项目的生产率,提高产品质量,降低成本和产品研发周期,尽可能的减少因错误估算给企业带来的损失。软件项目的规模估算和度量历来是比较复杂的事,由于软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估算往往和实际情况相差甚远。估算错误已被列入软件项目失败的四大原因之一。因此对软件项目如何进行准确的规模评估研究是一个重要而迫切的问题。根据w a t t ss h u m p h r e y 4 的理论,良好的规模度量方法应该满足以下几点准则:1 ) 规模度量的有效性与程序开发所要求的时间紧密相关;2 ) 规模度量必须精密,但不一定精确;3 ) 应该能够自动计量;4 ) 应该能够反映各种影响开发成本的环境状况;5 ) 在规模度量和计数中能够反映新建、复用、删除、修改的代码以及它们的组合;6 ) 度量必须在整个开发过程中随时能够应用;7 ) 应对于各种类型的产品元素都能应用。常见的一些元素类型包括程序源代4第二章软件规模度量码、文档、报告、菜单、文件等等,但这一点要求非常难以实现。2 1 软件过程管理为了能够在可控制、可预测的前提下,不断优化和提高软件开发的品质和降低成本,业界提出了软件过程管理的概念。保证一个软件的高品质和低成本是进行软件过程管理的最终目的,高品质是指开发出来的软件能够满足原先设定的需求,同时软件内部的错误和故障控制在一个很低的水平。软件开发的成本,随着硬件价格的不断下降,已经越来越集中于人力资源成本,即:软件开发所投入的人力与投入的时间的乘积。高品质和低成本本身是一对矛盾,如何能在最小的人力资源成本的前提下开发出高品质的软件产品,如何使两者达到一个最优的平衡,这就是软件过程管理所研究的课题。为了实现上述目标,软件过程管理提供了各种管理方法,如项目组组织管理、预算管理、计划和进度管理、变更管理等多个方面,它们之间的关系是相互联系、相互关联的。软件过程规范是过程管理的原则性、框架性规范,它规定了软件过程管理的各个方面,对工程实践的各个阶段和各种管理提供指导。在各种软件过程管理中,工程项目管理、项目组织及其权限管理、预算管理是项目起始阶段所必须完成的工作,它制约着软件开发生命周期中的其它所有管理内容。在此之上,是计划和进度管理、文档管理,这是贯穿于整个项目的基础的管理工作。风险管理,问题审核管理、变更管理、测试管理、后期维护管理、软件度量管理、项目评价管理等是软件过程管理的七个方面。随着软件过程改进的不断深入,在软件度量管理,项目评价管理、问题审核管理等方面,会不断深化和强化,同时也会加入其它更全面的管理。2 2 软件规模度量在上述的软件过程管理中提到了预算管理,而预算管理的核心就是软件规模的度量。只有在对待开发软件的规模有了一定认识的基础上,才能很好的进行预算管理。在当今越来越复杂的软件面前,如果不能采用有效的规模度量手段来得到软件5青岛大学硕士学位论文的一个比较准确的开发规模,开发商就会面临巨大的风险,包括人员安排、开发进度甚至影响到项目的完成情况。软件规模度量可以帮助开发商解决此类问题。软件规模的度量可以分为项目开发还未正式开始之前的初步度量和开发进行以及开发完成的详细度量l5 1 。软件规模的初步度量是在需求分析和详细设计未完成之前,通过对软件功能分析得出度量结果。它主要是为了对开发人员以及进度做一个大致的安排。一般采用的方法是参考以前有过的类似项目,再对一些主要功能的复杂程度进行比较后得出的一个经验估计值。软件规模的详细度量是在需求分析和详细设计完成以后所进行的度量。后面的计划制定、风险管理、测试管理等都要以这里的度量结果为依据进行展开。通过参考开发过程中的详细度量结果,可以对根据初步度量做出的计划安排进行调整,以达到更好的资源配置。而在开发结束后所做的详细度量可以得出整个项目最全面的度量结果,并可根据此度量结果与实际的开发安排的比较,针对其中的差异来改善度量的方法。其度量结果也可以为以后开发类似项目的初步度量提供依据。2 3i f p u g 功能点方法a l b r e c h t 于1 9 7 9 年提出了功能点f p ( f u n c t i o np o i n t s ) ,以求在开发的早期度量软件的规模,而后又于1 9 8 3 年改进了功能点,使得功能点由5 个功能分量和一批调整因子组成。这5 个功能分量分别是外部输入e i ( e x t e r n a li n p u t ) 、外部输出e o ( e x t e r n a lo u t p u t ) 、外部接口文件e i f ( e x t e r n a li n t e r f a c ef i l e ) 、内部逻辑文件i l f ( i n t e r n a ll o 西e a lf i l e ) 和外部查询e q ( e x t e r n a li n q u i r i e s ) 。5 个功能分量的加权累加就是未调整的功能点,再应用1 4 个调整因子可得到调整的功能点f 6 】 7 1 。a l b r e c h t 的功能点方法,随后被i f p u g 继承。i f p u g 成立于1 9 8 4 年,成立的目的是对a l b r e c h t 的f p a 方法进行维护。从那时起,i f p u g 出版手册来提供f p a 的标准规则。i f p u g 还对a l b r e c h t 最初的方法不断进行补充和完善,目前最新的版本是4 2 版( i f p u g ,2 0 0 6 ) 【刀。它是一种应用最广的功能规模度量技术,已经成为i s o国际标准。在下一章节中会对该方法进行详细的介绍。2 4 其它规模度量方法6第二章软件规模度量2 4 1 基于h a l s t e a d 理论的软件规模测算方法上个世纪7 0 年代末,m h a l s t e a d 从概率论和心理学角度研究了软件的复杂性,提出了用程序中可执行代码的词汇量( 操作符和操作数) 来计算和分析程序复杂性的方法,并以此应用于软件规模的测算嘲。h a l s t e a d 把程序视为一个符号序列,此序列由操作符与操作数的交替出现所组成。h a l s t e a d 理论测算中有四个基本元素:( 1 ) 程序中不同的操作符的个数;( 2 ) 程序中不同的操作数的个数;( 3 ) 程序中操作符总的出现次数:( 4 ) 程序中操作数总的出现次数。根据上述四个元素,可确定该程序的词汇表、词汇总数进而测算其软件规模。h a l s t e a d 还对上述测算方法的合理性作了论证。基于h a t s t e a d 理论,测算软件规模卸软件源程序行数的基本思路是f 9 l :( 1 ) 估算委托评估软件的程序中不同操作符的个数a l 。由于系统软件能确定所采用的程序设计语言,而且假设所开发的程序中包含该语言的全部操作符类型,所以a l 的值是能够确定的。( 2 ) 估算委托评估软件的程序中不同操作数的个数a 2 。本项可以通过统计软件需求说明书和概要设计文档中的输入、输出数来作为a 2 的估算值。据a j a l b r e c h t 的实验结果表明,该估算值与a 2 的实际值的相似度可达0 9 1 8 。( 3 ) 计算委托评估软件的程序中所包含的词汇( 操作符和操作数) 总数。“) 由转换公式计算程序行数。其中转换系数与所使用的程序设计语言有关,也受软件类型、程序员的编程风格影响。一般通过对历史数据的统计分析来求取。2 4 2 基于d e l p h i 原理的测算方法d e l p h i 法是一种由诸多专家按历史资料、经验和直觉得出意见并进行处理,使之达成共识的一种方法。该方法具有“匿名性”、“反馈性”和“反复性”的特点,可以比较真实地获得专家的测算意见,集思广益,并使各种意见渐渐趋于一致,从而获得较可信的测算结果【l0 】。自从美国r a n d 公司1 9 6 4 年首次使用d , l p h i 方法以来,该方法及其派生技术己被广泛应用于各个领域。7青岛大学硕士学位论文d e l p h i 法测算软件规模的步骤为:( 1 ) 主持人事先发给每位专家一份有关委托评估软件的说明书和一张测算表。测算表中应包括:系统软件名称、填表日期;程序源代码估计值:乐观值( 最少行数) 、最可能值、最不利值( 最多行数) 以及简要理由。( 2 ) 召开小组会议。会上,专家们可就不明白的问题向主持人询问,专家之间也可讨论。如有可能,主持人应向专家介绍与委托评估软件相类似系统软件的有关情况,供专家参考。0 ) 专家们无记名填测算表。( 4 ) 主持人对测算表进行汇总,计算出第i 位专家的测算期望值及全部专家的测算期望值和均方差。( 5 ) 召开小组会议,公布测算期望值和均方差,让专家们充分发表意见并加以讨论。( 6 ) 按照讨论后认识的一致性程度和均方差大小决定要否重复上述( 3 ) - ( 5 ) 步工作程序。( 7 1 按最后一轮无记名填表所得的测算期望值作为委托评估软件的软件规模。本方法的优点在于,先匿名填表,每个专家均需经过独立思考,做出测算,因而在讨论时有利于提出自己的见解,并通过多次反复,使意见逐渐趋于一致。2 4 3 构造性成本模型b a r r yb o e h m 介绍了一种软件估算模型的层次体系,称为构造性成本模型c o c o m o 。初始的c o c o m o 模型是产业界广泛使用和讨论的软件成本估算模型之一。现在它已经演化为更全面的称为“c o c o m o i i ”的模型】。和其前身一样,c o c o m o i i 实际上也是一个估算模型的层次体系,着重于下面的领域:应用组装模型:用于软件工程的早期阶段,当用户界面的原型开发、软件和系统交互的考虑、性能的评估以及技术成熟度的评价是最重要的时候;早期设计阶段模型:当需求己经稳定且基本的软件体系结构已经被建立时使用:体系结构后阶段模型:用于软件的构造中。和所有软件估算模型一样,c o c o m oi i 模型也需要规模估算信息,三种不同的规模估算选择可用于作为模型层次的一部分:对象点、功能点和源代码行【1 2 i 。g第二章软件规模度量2 4 4m a r k i i 功能点n o l a n , n o r t o n 和k p m g 管理咨询公司在1 9 8 4 年雇用c h a r l e ss y m o n s 来在提高他们开发系统的性能的方法方面向顾客提供一些建议。在提供咨询期间,c h a r l e ss y m o n s 宣称他发现了a l b r e c h t s 的f p a 方法的一些弱点,并且开发了m l d i 方法来克服这些弱点0 3 。到1 9 8 7 年,m k i i 方法成了一个合法的产品,并且市场化。s y m o n s 宣称a l b r e c h t s 的f p a 方法有如下一些弱点:有时候很难界定一个应用系统的成份。例如,什么是逻辑文件? 在1 9 8 4 年,确实缺乏足够的指南来说明这一点。a l b r e c h t 赋给功能点组成部分的权重是试验性的和有待讨论的。上述两点问题同样存在于调整系数的区分和赋值上。a l b r e c h t 没有提供一个来计算内部复杂性的方法。这同特征点方法所指的算法是同一个概念。当由一些小的系统组成一个更大的应用时,a l b r e c h t s 方法计算的所有功能点的总和小于将所有子系统的功能点相加的结果。这两种方法最主要的不同是在于对信息处理规模的计算上,即:a l b r e c h t 的方法中所提到的未调整功能点。s y m o n s 将系统分解为一些逻辑的事务的集合,每个事务由一个输入、一个处理和一个输出组成。对于每一个事务,未调整功能点成为关于输入数据元素类型、实体引用类型和输出数据元素类型的数目的函数。整个系统的未调整功能点由此计算出来。s y m o n s 的方法的反对者认为,m k i i 方法只是简单的夸大了n o l a n , n o r t o n 公司的委托人们当时正在从事的单片电路系统的评估。他们认为这只是政治上的让步,并且这最终将引起委托人的恶性竞争。更多中立的评论家相信s y m o n s 找出了一些从业者也注意到的有关功能点的一些问题。然而,他选择了将这种解决方法变成n o l a n , n o r t o n 公司拥有的产品的方式,而不是在已有的a l b r e c h t 的工作上加以改进。g r a n tr u l e 为当前的m k i i 方法提供了一些信息。他指出,m k l i 方法从1 9 9 1 年以来已经开始成为公众的一种选择。这方面的权威是u f p u g ( t h eu n i t e dk i n g d o mf t m c t i o np o i n tu s e r sg r o u p ) 。g r a n tr u l e 还指出,m l d l 方法在英国得到了普遍的使用,并且也不断的被诸如印度、新加坡、香港、欧洲所采用。大部分u f p u g 的成员选择使用m k l i 方法。这些用户中包括许多政府机构、财政、保险、零售以及制造业f 1 4 1 。9青岛大学硕士学位论文2 4 5 全面功能点全面功能点的目的是为了像满足m i s 系统一样满足实时技术和系统软件,因而企图克服如i f p u g 功能点分析等早先方法应用类别的边界【”】。优先权给予了实时系统。基于对数据流程表现系统规模的近似假设,这种方法适用于大部分m i s ,实时和嵌入式系统软件。s t p i e r r e 提出了全面功能点方法,后来被c o s m i c ( t h ec o m m o ns o f t w a r em e a s u r e m e n ti n t e r n a t i o n a lc o n s o r t i u m ) 所继承f 1 6 】。2 4 6 特征功能点一段时间以来,使用f p a 方法的技术人员认识到,有些种类的应用项目如果按照希望的那样使用f p a 方法其实并不适合。这样的应用项目包括实时处理控制系统,数学运算系统和各种嵌入式系统。在1 9 8 6 年,s o f t w a r ep r o d u c t i v i t yr e s e a r c h ( s p r )开发了特征功能点f e a t u r ep o i n t s l 】。特征功能点是f p 方法的一个超集,它在f p 原有的组成部分:外部输入、外部输出、外部查询、外部接口文件、内部逻辑文件外引入了另外的一个部分,即算法。跟其他的f p 的组成部分一起,算法这个部分也跟一个加权值联系在一起,当在使用特征功能点的时候,相关的内部逻辑文件的值就相应的减少了。这种技术考虑到在系统中使用了一些算法,因此细微地调整了传统的f p a 方法的一些要素的权重。按照这种方法,特征功能点的原意是如果用来度量传统的f p a方法己经取得成功的传统的商业应用系统,得到的结果应该是与采用传统的f p a 方法来度量所得到的结果是相同的。而在那些传统的f p a 方法不太适合的领域,使用特征功能点方法将得到更高的功能点数。事实上得到的结果显示,在实时处理控制系统这样的项目上,生产力似乎是比较低的。当然,实验证明特征功能点方法确实具有一定的正确性。然而特征功能点方法并没有像传统的f p a 方法那样得到普遍的承认。它并没有一个像i f p u g 这样的标准组织。不过,成为标准的一个必要的条件是人们广泛的使用和研究。有关特征功能点,c a p e r sj o n e s 已经在他的a p p l i e ds o f t w a r em e a s u r e m e n t一书中进行了整理。s p r 也在其网站提供了名为“w h a ta r ef u n c t i o np o i n t s ”的文章,它对特征功能点和功能点都进行了描述。并且讨论了怎样针对给定的系统选择合适的方法。1 0第二章软件规模度量2 4 73 d 功能点法在1 9 8 9 年到1 9 9 2 年之间,b o e i n g 公司考虑过使用功能点来度量生产力。1 9 9 2年,在p a c i f i cn o r t h w e s ts o f t w a r eq u a l i t yc o n f e r e n c e 学报上发表了一份b o e i n g 公司内部的文档。这份文档详细定义了一种称为3 d 功能点的技术。设计这种新技术的目的是为了解决a l b r e c h t 功能点方法所具有的两个比较典型的问题:是功能点方法被认为过于复杂,难以使用;二是它不适合用于度量科学计算以及实时系统。在3 d 功能点中的三维指的是:数据、功能和控制1 1 8 1 。数据维与a l b r e c h t 的功能点相类似。保留数据( 内部的程序数据结构,如文件) 和外部数据( 输入、输出、查询及外部引用) 的计数与复杂度测量( 加权因子) 结合起来导出数据维的计数。功能维与算法类似,功能维的测量是考虑“把输入变换成输出数据所需要的内部操作数。为计算3 d 功能点,一个。变换”被视为一系列由一组语义陈述所约束的加工步骤。控制维的测量是通过计数状态间变迁的数量。当与面向对象设计联系起来,向下到类的层次,它被称为3 d 功能点度量。3 d 功能点是否比传统的功能点方法更容易以及在科学计算系统方面是否做得比功能点方法更好都存在着争论。不过,3 d 功能点并没有得到普遍的使用却是一个事实f 1 9 1 。2 4 8c o s m i c - f f p 方法f f p 是在1 9 9 7 年提出的一种用来度量实时系统和嵌入式系统的功能模块大小的度量方法鲫。在目前,c o s m i c 已经开发出了v 2 0 的c o s m i c f f p 。f f p 的提出是因为i f p u g 的功能点在实时系统方面的度量并不像它在其他的方面那样表现的足够的精确和有效。c o s m i c f f p 的度量方法被设计来更好的计算在一个功能模块中的功能点数。c o s m i c f f p 的粒度能允许更好的计算在单独的功能模块中功能的大小变化。然而它的允许范围在i f p u g 方法中却小些。这样就使得c o s m i c f f p 在处理实时系统软件时对各种实时系统之间的差异不那么敏感。c o s m i c f f p 关于软件规模度量的最新的方法,对c o s m i c f f p 方法的深入了解将对改善f p a 方法起到很大的推动作用,也有助于更好的揭示和解决i f p u g 的青岛大学硕士学位论文f p 方法的所面临的问题【2 1 1 。2 4 9 小结在所有的功能规模度量方法中,i f p u gf p a 方法得到了最广泛的应用和业界的认可。其他方法中,m k i i 方法只是在英国得到了广泛应用,而f f p 方法是比较新的方法,其实用性有待于进一步验证。目前这三种方法都已经成为i s o 国际标准,除此之外的其它方法则由于自身存在的问题以及使用的局限性,会随着历史的演变而逐渐消失。1 2第三章软件规模的功能点度量方法第三章软件规模的功能点度量方法3 1 功能点度量方法功能点度量是由m m 公司在上个世纪7 0 年代中期提出的一种方法,用于对软件项目进行规模评定、评估和度量。在1 9 7 8 年1 0 月,其创始人a l l a na l b r e c h t 在加州蒙特里市由i b m s h a r e g u i d e 联合主办的会议上首次公开提出了该方法:他提出了功能点f p 的概念,并建立了工程预算功能点分析法f p a ;随后被i f p u g 继承,2 0 0 6 年发布了现行的4 2 版。利用该方法进行系统预算,既能得到比较精确的量化结果,又不增加太多的工作量,因而得到了广泛的使用。p u g 计算实用手册是功能点分析f p a 的正式手册【_ 7 】圈。在f p a 中,任何一个软件系统都被看作是由外部输入处理e i 、外部输出处理e o 、外部查询处理e q 、内部逻辑文件i l f 和外部参照文件e l f 五种要素组成。功能点分析是让项目组和客户可以使用同一方法定义功能需求,主要的目标就是从用户的角度定义系统的能力。为了达到这个目标,专家们分析了人们对计算机系统的不同使用方式。从用户的观点来看,系统是从五个基本方面帮助他们进行工作的:其中两项是最终用户的数据需求,因此称作“数据功能”;另外三项强调客户对数据的可调用性,称作“事务功能”。f p a 与用户的业务需求有关,而与所用的编程语言和技术无关。功能点规模是软件工程标准度量体系的基础,类似于平方英尺或者平方米( 千米) 为基础的标准建筑度量体系。f p a通过量化为用户要求的功能对项目进行度量。f p 计算法是一种间接、但比较准确的软件开发工作量度量方法,它还可以估算出开发系统所需人数和时间1 2 3 j 。一个功能点用一定规模的系统数据( i l f 和e i f ) 及其处理文件( e l ,e o ,e q ) 来表征,它囊括了为实现特定功能所固有和必需的需求分析、系统设计、编写文档和测试用例、编码、测试、部署、调优、培训等工作量。功能点方法其中的术语定义如下:内部逻辑文件i l f 是一组用户能够识别、存在内在逻辑关联、在系统边界之内被控制的数据或控制信息。可理解为一个实体联系模型或一组关联的数据表。外部接口文件e l f 是另外一个系统的i l f ,在本系统中被引用、在系统边界之外被控制。外部输入处理e i ,一个接受来自系统边界之外的数据或控制信息的基本处理,其目的是维护一个内部逻辑文件,或改变系统的行为。外部输青岛大学硕士学位论文出e o ,一个向系统边界之外发送数据或控制信息的基本处理。其目的是向用户展示一组经过了( 除提取之外的) 逻辑处理的数据或控制信息,也可能包括对内部逻辑文件的维护或改变系统的行为。外部查询e q ,一个向系统边界之外发送数据或控制信息的基本处理。其目的是向用户展示一组经过提取处理的数据或控制信息,不会引起对内部逻辑文件的维护或系统行为的改变。下面图3 1 展示了f p a 中用到的信息系统模型。斟一二对象外系统q 影4外部参考文件lj 、飞、= 了7i7 ,竺输出哆0 一t图3 1n a 中用到的信息系统模型3 2 功能点度量的具体步骤i f p u g 功能点分析法的基本流程m 阱】嘲如图3 2 所示:1 4第三章软件规模的功能点度鼍方法工程类型判定确定系统边界和计铡范围计算数据功能点i计算事务功能点计算调整后的功能点j确定功能点3 2 1 确定度量项目类型图3 2 计算功能点流程图目前i f p u g 标准中将度量项目按照开发的应用系统特征分为3 种:( 1 ) 开发项目:开发项目型的功能点数指项目完成并交付后第一次安装时提供给用户的功能数。( 2 ) 增强项目:增强项目型的功能点数是指当项目将目前的软件应用系统加以变动,对现存系统( 必须有现存系统的功能点数) 所做的新增、删除与修改的功能性部分。( 3 ) 应用系统:应用系统功能点数和项目功能点数与己经安装的应用系统相关,有时也称为基线或已安装功能点数。它对应用系统当前提供给用户的功能数进行测量。应用系统功能点数在开发项目型功能点数完成时初始化,并且每当完成一个增强型项目,改变了应用系统的功能时都要进行更新。3 2 2 确定度量范围和应用程序边界1 5青岛大学硕十学位论文边界指应用程序与外部应用程序或用户之间的边界。边界决定了项目范围。本步骤包括以下内容:( 1 ) 建立度量目标:f 2 ) 确定度量范围;f 3 ) 确定应用程序边界;( 4 ) 记录上述项目的相关文档。3 2 3 数据功能点计算数据功能点是为了实现计测对象应用系统的机能所必需的数据的规模的衡量。构成数据功能点的数据的种类包括:内部逻辑文件i l f 和外部接口文件e l f 。i l f 是一组用户可以确认的在逻辑上有联系的数据,它们属于系统内部,并且通过e i 来维护。这里的维护指的是通过一个基本操作来对它进行增、删、改的操作。虽然不是作为一种规则,但是一个i l f 至少需要有一个e o 或者e q 。即是,至少一个e o 或者e q 应该将这个i l f 作为一个f t r 。简单举例来说,信息存贮在一个i l f 中,那么,它可以在以后使用。e o 或者e q 可以是来自另外的一个系统的e o 或者e q 。一个i l f 可能没有被e o 或者e q 用到,但是除了维护这个i l f 的e i ,还可能被其他的e i 用到。同样的,一个i l f 应该至少有一个e i ,假如一个i l f 一个e i 都没有,那么i l f的数据就不可能有了。因为你总是应该先向一个i l f 中输入数据。e l f 是一组用户可以确认的在逻辑上有联系的数据,但它只是作为参考的目的。这些数据保存在应用系统边界的外部,通过另外一个系统的e i 来维护。对于一个系统的e i f ,也是另外一个系统的i l f 。每个e i f 都至少有一个事务处理,里面包含了e i ,e o 或者e q 。换句话说,至少有一个事物处理使得这个e l f 成为了一个f t r 。如果一个e l f 没有这样一个事务处理,人们也许就会奇怪e i f 到底有什么用了,并且也不知道怎么用到e i f 中的数据了。数据功能点的计算过程如图3 3 所示:1 6第三章软件规模的功能点度量方法数据的抽出数据种类的识别( 1 i j ,e 目nr e t 的识别和计算id e t 的识别和计算数据复杂性判定 l计算出数据功能点图3 3 数据功能点计算流程图3 2 3 1 数据的抽出用户和开发者双方,共同认识的系统内同一的信息数据;数据种类:一在完成系统业务时使用的逻辑关联的一组数据信息;一为了处理数据所必需的一组控制信息。1 数据元素类型d e t ( d a t ae l e m e n tt y p e )一个d e t 是一个独立的、用户可以识别的、不重复的域。

温馨提示

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

最新文档

评论

0/150

提交评论