用预测性对象点度量面向对象软件(上)
关键字:点度量 意识到传统的 软件度量 方法不能满足面向对象软件的生产力跟踪和工作量预测的需要,PRICESystems 开发 了一种新的度量方法~预测性对象点。预测性对象点是特意为面向对象软件设计的,是通过系统计算面向对象的特征进行度量。本文论述了传统度
关键字:点度量
意识到传统的
软件度量方法不能满足面向对象软件的生产力跟踪和工作量预测的需要,PRICE Systems
开发了一种新的度量方法~预测性对象点。预测性对象点是特意为面向对象软件设计的,是通过系统计算面向对象的特征进行度量。本文论述了传统度量方法的问题,介绍了预测性对象点的形成,包括相关理论和数据,最后是用预测性对象点进行度量的一个例子。
前言
近年来,面向对象技术已经作为一种有优势的
软件工程方法出现。和其他许多新技术一样,面向对象方法的出现使得软件开发人员和他们的经理们必须重新考虑估计他们开发项目的方法。传统的软件度量技术即使进行改善也无法满足度量生产力和预测工作的需要。源代码行和功能点方法都是程序需要将数据和过程分解开的时代特有产物。这和面向对象范畴有冲突。传统的设计技术将数据和过程分离而面向对象技术将他们联合在一起。如果要提供准确的工作预测或生产力跟踪,面对对象度量方法必须有多个尺度(度量维)。计算交付给客户的软件具有功能数非常重要,但对象间交流的信息和通过继承的重用对规模度量也非常重要。本文论述了预测性对象点(Predictive Object Points POPs),一种包含前面提到的面对对象3个尺度的度量方法。不像传统的度量方法基于结构分析的数据和过程模型,POPs是基于对象和他们的特征。POPs综合了文献中几种流行的度量方法,建立一种适合预测工作量和跟踪生产力的方法。POPs方法的核心是每类加权方法数(Weighted Methods per Class WMC)。这种方法测量每个顶层类(或者说,每个在用户的视野中清楚的对象)并且根据类的行为(方法)类型不同进行加权。一旦得到WMC的值,POPs方法将把它和有关按类分对象组的信息和对象类之间的关系进行联合计算。接下来本文将论述POPs方法形成过程和有关工作研究结果,并且介绍一个预测性对象点方法应用的例证。通过对一个公用领域的面向对象项目的使用,能指导读者认识计算预测性对象点的机理。
传统的度量有什么错误
传统的度量方法在一些度量过程中还占有一席之地。一些年来,软件开发人员和软件估计人员使用源代码行(SLOC)或者功能点方法估计要建设的面向对象软件项目的工作量,这不是因为他们选用的方法是最好的,但却可能是最适合的,常常在组织面向对象过程不够成熟时他们比较适合。相反地,当组织越来越善于设计和开发面向对象软件时,这些传统的方法变得越来越没有用了,因为每个开发人员的代码行变得和其他人员的不是很相似。变化的原因很明显,他们已经停止了思考每一行代码是怎样和另一行代码相匹配,停止了结构化分析,走向面向对象方法的道路。首先我们不妨想想传统的程序方法和它是怎么发展的。最初,软件开发人员被迫将的软件方案完全分解,因为最早的程序语言需要辛苦地一步一步描写要实现的每一个方案的动作。随着编程的发展,越来越多的一步步描写变成了一个简单的编译命令。但是还需要分解功能业务。 结构化分析需要开发人员按过程连续地思考和编程,编写每一行代码,每一个函数和每个子系统,每一个产品,都是一种单一连续思维。在这种对源代码和函数单一的思想下,很容易想到像代码行和功能点这样度量方法。但面向对象技术要求人们完全转变思想。一个方案不再根据需要实现它的步骤进行分解。它宁愿分解成一个个包含在方案的动作者,当然分解出来的动作者必须对方案有作用。方案空间分解为动作者和动作者的行为。既然动作者和他们的行为受他们内部之间相互作用或者环境的影响,所以每一行代码的想法需要考虑许多可能的作用在动作者上的路径。基于连续程序开发模型的度量方法将会错过这种相互作用所导致的复杂性。
相关研究
面向对象度量的研究,无论如何不是一块未曾开垦的处女地。Chidamber 等曾提出一套面向对象度量,其中包括一些度量规模的方法,他们都是很好地根据度量理论创立的[4]。Lorenz发布了一张11个“构思度量”的表,其中有些能很好适用于规模度量[16]。其他一些学者在收集软件开发工作不同的度量尺度时做出了贡献。Henderson-Sellers收集形成了一个这些方法的全部名单[2]。由于以前每种方法都是致力于面向对象软件的规模的一个度量尺度,这些方法没有一个能单独用作一个很好的规模预测器。Whitmire提出了3-D功能点[19],这是一种扩展的功能点方法,度量软件项目的数据、控制和功能。然而3-D功能点采用的是传统的功能点思想处理遇到的问题,他可以度量所有3个尺度,但只能完成在类的水平。这就使得3-D功能点能作为一个完整的软件生产力分析的方法,但不可能用作工作量预测。
表1列出了一些比较流行的适合于面向对象软件度量方法和他们可以度量系统特征方面。
原文转自:http://www.ltesting.net