软题库 培训课程
当前位置:信管网 >> 其它资料 >> 文章内容
点度量(1)—功能规模度量方法概述
来源:信管网 2012年01月11日 【所有评论 分享到微信

  原文作者信息:

  Mathias Lother, Reiner R. Dumke

  University of Magdeburg, Dept. of Computer Science, Postfach 4120, 39016 Magdeburg,

  Germany, Tel.: +49-391-67-18664, Fax: +49-391-67-12810, Email:

  {lother,dumke}@ivs.cs.uni-magdeburg.de, http://ivs.cs.uni-magdeburg.de/sw-eng/us/

  摘要

  在软件度量领域存在不同的方法度量软件产品、软件开发过程和相关资源的特征。包括最近几年提出来的几种不同的点度量如功能点、特征点、对象点、全面功能点。这些方法使得及早地估计成本、工作量成为可能并能为开发过程的管理活动提供基础。

  正是由于功能规模度量越来越重要,又同时存在不同的制度,所以本文对现存方法进行了大致介绍和讨论,并讨论软件度量领域的问题和机会。本研究主要选择介绍几种功能规模度量方法并且客观地评价了他们对某些功能业务领域的适用性和他们的成熟性。此外,本文会讨论功能规模度量的共性问题并提出几种可供选择的方法。

  关键词: 软件度量, 功能规模度量,功能点,全面功能点,对象点,特征点

  1.介绍

  在软件度量领域存在不同的方法度量软件产品、软件开发过程和相关资源的特征。包括最近几年提出来的几种不同的点度量如功能点、特征点、对象点、全面功能点。这些方法使得及早地估计成本、工作量成为可能并能为开发过程的管理活动提供基础。因为这个主题越来越重要和点度量方法的多样性,我们将在第二章讨论下面方法的基本模型和特性:

  DeMarco的Bang度量(DeMarco's Bang Metric),

  数据点(Data Points),

  对象点(Object Points),

  特征点( Feature Points),

  3-D功能点(3-D Function Points),

  IFPUG功能点(IFPUG Function Points),

  Mark II功能点(Mark II Function Points),

  全面功能点(Full Function Points)。

  在第三章将从以下几个方面评价上面的功能规模度量方法:

  对不同功能业务领域的适用性,

  渗透程度和实践背景,

  工具支持情况,

  试验和验证,

  标准化情况,

  确认。

  接着,本文会给出在某种特定情况采用哪种方法的建议。

  因为讨论功能规模度量的共性问题非常重要,本文将在第四章讨论以下问题:

  自动操作,

  客观性/可靠性,

  可兑换性,

  加权因子值的意义,

  重用的包含,

  新技术问题

  可能的度量工作产品

  既然功能规模度量方面不断地连续变化,我们在第五章说明一些可供选择地最近发布的方法:

  预言性的对象点(Predictive Object Points),

  组件重用方法(Component Reuse Method),

  构造点(Construction Points)。

  2.功能规模度量方法概述

  自从工程方法和原理应用到软件开发过程,功能规模度量的重要性不断提高。图1表示软件规模度量的一般过程。如图所示,软件规模度量有两个基本阶段。映射阶段是应用概念和定义来代表软件,评价阶段是根据特定的规则和过程计算/度量萃取的元素。

  

 

  Fetcke做了功能规模度量一般结构提议结果的更进一步的调查研究[21]。

  自从1979年第一个世界范围的功能点方法发表以来,许多针对原著变革、扩展的可供选择的方法被提出来。图2以时间顺序显示了包括那些在下面要详细描述的方法的演变重要阶段。方法之间的箭头表示各个扩展版本的相互影响。图中显示最近的方法是COSMIC全面功能点。既然早先的方法对这种方法存在大量影响,我们的研究会特别关注这种方法。

  

 

  功能规模度量方法发展过程[08]

  2.1 DeMarco 的Bang 度量

  开发者/机构 日期

  Tom DeMarco, 1982

  开发原因和隶属领域

  DeMarco's的咨询活动常常使得他面临比MIS系统更加复杂的软件系统。由于这个原因,他致力于系统和科学软件领域[04]。

  基本输入/模型

  基本度量元素 [04]:

  功能基元(functional primitives ),

  修正功能基元(modified functional primitives),

  数据元素 (data elements),

  输入数据元素 (input data elements),

  输出数据元素 (output data elements),

  存储数据元素(stored data elements),

  对象(实体) (objects (entities ),

  关系(relationships ),

  在状态转变模型中的状态( states in a state transition model),

  在状态转变模型中的转变(transitions in a state transition model),

  数据符号(data tokens),

  介入被保留的数据模型中的关系(relationships involving retained data models)。

  根据在功能复杂的自然区别的分级计算,被度量的元素被加权衡量。

  特性

  DeMarco 的Bang 制是Albrecht 方法的扩展。他考虑了数据符号和状态转变,数据符号和状态转变常常和更复杂的软件如操作系统和电信系统相关联。 方法中权重非常主观 [01]。

  现今意义

  尽管是一个非常有趣的技术主意,但由于随后的IFPUG 有更好的市场和更大的团体支持,这种方法在紧随Albrecht功能点方法后倒下,在今天的功能规模度量这种方法没有扮演一个重要角色并且只有少数使用者[03] 。

  推荐读物: 文献[04]

  2.2 数据点

  开发者/机构 日期

  Harry Sneed, 1989

  开发原因和隶属领域

  数据点是为使得功能点方法适应现在软件开发需要而改变功能点方法产生的。它打算转移测量依据从功能到功能对象,分别到他们的数据表示法[22]。

  基本输入/模型

  通过数据模型和图形用户界面获得软件规模。数据点来自对下面几个方面的加权数量:

  消息对象 (information objects ),

  属性(attributes),

  通信对象(communication objects),

  输入数据(input data),

  输入数据 (output data),

  视图 (views)。

  被度量的元素根据8个质量因素和10个项目条件进行加权衡量[05]。

  特性

  数据点方法是功能点方法一个变种。

  现今意义

  没有发现相关陈述文献

  2.3 对象点

  开发者/机构 日期

  Sneed, 1994

  开发原因和隶属领域

  对象点是为适用于面向对象系统开发而出现的,根据Sneed 的观点,传统的方法不能够适用于面向对象系统开发。

  基本输入/模型

  对象点是根据以下几个方面的加权量进行计算:

  相应类的对象类型(object types respectively classes),

  对象属性(object attributes),

  对象关系(object relations ),

  对象方法(object methods ),

  消息(messages),

  消息参数(parameters in messages),

  消息源(message sources),

  消息的目的地(message destinations),

  重用百分比( percentage of reuse)。

  计算值根据10个影响因素进行加权[22]。

  现今意义

  没有发现相关陈述文献

  特性

  还有几个学者开发和介绍了适用于面向对象系统规模的方法。这些作为对象点或和对象点有关的方法已经常常被关注。如

  对象点分析(Object Points Analysis (Banker, 1991)),

  面向对象的功能点(Function Points with OO (Below, 1995)),

  对象点分析(Object Points Analysis (Gupta, 1996) ),

  用例和面向对象( Usecases and OO (Fetcke, 1997)),

  面向对象功能点(Object Oriented Function Points (Caldiera,1998) ),

  增强对象点(Enhanced Object Points (Stensrud, 1998))。

  本文没有考虑这些方法。更详细的信息可以看Abran 和Desharnais的文献综述[46]。

  2.4 特征点

  开发者/机构 日期

  Capers Jones/Software Productivity Research, 1986

  开发原因和隶属领域

  这种方法的主要目的是为系统和实时软件提供更好的度量,因为IFPUG功能点方法最初是为MIS系统发明的[01]。

  基本输入/模型

  与IFPUG功能点方法比较,这种方法在下面几个元素外还添加了一个新的参数,运算法则。

  输入(inputs),

  输出(outputs),

  查询(inquiries),

  外部接口文件(external interface files),

  内部逻辑文件(internal logical files )。

  权重被修改了,如根据Jones 观点,逻辑文件的重要性减少了[01]。

  特性

  特征点是IFPUG功能点4.0版的扩展。对于MIS应用程序,特征点和IFPUG功能点的度量结果几乎一样[01] 。

  现今意义

  特征点方法被实验了很长时间。但没有充分的数据显示它能够稳定地进行使用。但是研究者们在他们的例证环境下说明了成功使用这种方法稳定性[07]。他的优点也是最主要的问题是运算法则的定义和权重[08][17]。这种方法今天不被SPR支持。

  2.5 3-D 功能点

  开发者/机构 日期

  Boeing Computer Services, 1991

  开发原因和隶属领域

  3-D功能点是一种覆盖系统软件(包括科学和实时领域)而得到与具体业务技术无关的度量方法[07]。

  基本输入/模型

  为了确定3-D 功能点,需要度量以下几个方面:

  数据(data (according to IFPUG 4.0)),

  功能复杂度数字的( number of complexity of functions),

  控制状态的数字(系统状态和状态转变)(number of control statements (system states and state transitions) [05])。

  特性

  3-D功能点识别了反映应用程序难题的3维(数据,功能,控制)。数据难题多是MIS/商业软件的典型,而科学/工程软件是功能难题多,实时软件是控制难题多[07]。因而说,3-D功能点适用于提及的软件方面。

  现今意义

  依照Symons, 该方法一直被波音公司成功使用,但是不幸的是除了波音公司外没有别的详细信息发布 [08] 。

  推荐读物: 文献[09]

  2.6 IFPUG 功能点

  开发者/机构 日期

  首先由IBM的Albrech在1979年发表 ,随后被IFPUG继承,现行版本是4.1, 1999

  开发原因和隶属领域

  主要是为了克服代码行规模度量对语言的依赖性。目标领域是MIS系统。

  基本输入/模型

  如图3所示,依照IFPUG 4.1,下列实体需要度量和分别加权:

  外部输入(external input),

  外部输出(external output),

  内部逻辑文件(internal logical file),

  外部逻辑文件(external logical file ),

  外部查询(external inquiries )。

  

 

  以14个影响因素为基础计算的加权因子值对上面计算值进行调整[11]。

  特性

  功能点方法是针对MIS系统开发的。虽然有些对其他软件领域(实时,面向对象)的案例研究,但始终存在这种方法是否满足这些软件领域的要求的讨论。本文有关这种软件规模度量方法的评论在下面的评价和共性问题讨论进行。

  现今意义

  功能点分析是一种应用最广的功能规模度量技术。IFPUG功能点已经变为准标准。

  推荐读物: 文献[11], [12]

  

 

  2.7 Mark II 功能点

  开发者/机构 日期

  Charles Symons, 1988 现行版本: 1.3.1, 1998

  基本输入/模型

  依照Symons ,Mark II功能点目标是:

  与IFPUG比较,Mark II功能点减少对文件处理的主观性;

  确保整个系统整体度量和部分计算的总和的结果一致,

  比交给用户的功能,更多关注需要生产的功能的工作量 [14]。

  基本输入/模型

  如图4所示,Mark II 方法度量以下事物类别,他们要被一些因素加权:

  输入( input),

  处理过程(processing),

  输出(output)。

  计算值通过可选的19个影响因素(其中14个和IFPUG一样,另外再加5个)加权[13]。

  现今意义

  Mark II 方法被英国专门使用

  推荐读物: 文献[13], [14]

  2.8 全面功能点

  开发者/机构 日期

  St.-Pierre at al., 1997 [06] 后来被COSMIC继承。

  现行版本: 2.1, 2001

  开发原因和隶属领域

  全面功能点分析的目的是为了象满足MIS系统一样满足实时,技术和系统软件,因而企图克服如IFPUG功能点分析等早先方法应用类别的边界。优先权给予了实时系统。

  .基于对数据流程表现系统规模的近似假设,这种方法适用于大部分MIS,实时和操作系统软件[15][16]。

  

 

  基本输入/模型

  全面功能点方法通过分析用户功能需求决定软件规模。

  一个非常重要的手段是综合层理念。可以分成几个层面表现软件的不同视域。图5显示了可能的变量,因而分布和复杂系统的同等度量成为可能。如图7所示,通过度量以下数据流类别决定功能规模:

  进口(entries),

  出口( exits),

  读取(reads),

  写入( writes)。

  标准单位是1 Cfsu(COSMIC functional size unit) ,它等同于一个数据流。系统规模是所有数据流的总和。

  特性

  虽然版本1是IFPUG功能点的一个扩展(图6显示了它的基本模型)。版本2挖出、捕获了以前的方法的基本理念 [10] 。这个版本的开发是由COSMIC的来自8个大家40个专家完成的。

  现今意义

  既然全面功能点版本2是一个新的的方法(所谓的现场试验在今年已经完成),在不久的将来将会显示,要不这种方法将变得更加重要,要不IFPUG 功能继续重要。

  推荐读物:文献[15],[16]

  

 

  

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章