📅  最后修改于: 2020-12-04 08:02:19             🧑  作者: Mango
内部产品属性以仅取决于产品本身的方式描述软件产品。衡量内部产品属性的主要原因是,它将有助于在开发过程中监视和控制产品。
内部产品的主要属性包括尺寸和结构。可以静态测量尺寸,而不必执行它们。产品的尺寸告诉我们创建产品所需的工作。同样,产品的结构在设计产品维护方面也起着重要作用。
软件大小可以用三个属性来描述-
长度-它是产品的物理尺寸。
功能-它描述了产品提供给用户的功能。
复杂度-复杂度有不同的类型,例如。
问题复杂度-衡量基本问题的复杂度。
算法复杂度-衡量为解决问题而实施的算法的复杂度
结构复杂度-测量用于实现算法的软件的结构。
认知复杂度–衡量了解软件所需的工作。
这三个属性的度量可以描述如下-
有三种开发产品,其尺寸测量可用于预测预测所需的工作量。它们是规范,设计和代码。
这些文档通常将文本,图形以及特殊的数学图和符号结合在一起。规格测量可用于预测设计的长度,而设计的长度又是代码长度的预测指标。
文档中的图具有统一的语法,例如带标签的有向图,数据流图或Z模式。由于规格和设计文档由文本和图表组成,因此可以用代表文本长度和图表长度的一对数字来衡量其长度。
对于这些测量,应为不同类型的图和符号定义原子对象。
数据流程图的原子对象是流程,外部实体,数据存储和数据流。代数规范的原子实体是类别,函数,运算和公理。 Z模式的原子实体是规范中出现的各种行。
可以用不同的方式来生成代码,例如过程语言,面向对象和可视化编程。源代码程序长度最常用的传统度量是代码行(LOC)。
总长度
LOC = NCLOC + CLOC
即
LOC =非注释LOC +已注释LOC
除了代码行以外,还可以使用其他替代方法,例如Maurice Halsted建议的大小和复杂性来测量长度。
Halstead的软件科学试图捕获程序的不同属性。他提出了三个内部程序属性,例如长度,词汇量和音量,这些属性反映了不同的尺寸视图。
他首先将程序P定义为按运算符或操作数分类的令牌的集合。这些令牌的基本指标是
μ1 =独特运算符数量
μ2 =独特的操作数数
N 1 =运算符的总出现次数
N 2 =唯一运算符的数量
长度P可以定义为
$$ N = N_ {1} + N_ {2} $$
P的词汇是
$$ \ mu = \ mu _ {1} + \ mu _ {2} $$
程序的数量=编写长度为N的程序所需的心理比较数为
$$ V = N \ times {log_ {2}} \ mu $$
音量为V的节目P的节目等级为:
$$ L = \ frac {V ^ \ ast} {V} $$
其中,$ V ^ \ ast $是潜在的体积,即P的最小尺寸实现的体积
水平的倒数是难度-
$$ D = 1 \ diagup L $$
据霍尔斯特德理论,我们可以计算估计L,以
$$ {L}’= 1 \ diagup D = \ frac {2} {\ mu_ {1}} \ times \ frac {\ mu_ {2}} {N_ {2}} $$
同样,估计的程序长度为$ \ mu_ {1} \ times log_ {2} \ mu_ {1} + \ mu_ {2} \ times log_ {2} \ mu_ {2} $
产生P所需的工作量由下式给出:
$$ E = V \ diagup L = \ frac {\ mu_ {1} N_ {2} Nlog_ {2} \ mu} {2 \ mu_ {2}} $$
计量单位E是理解P所需的基本精神歧视
测量长度的其他选择是-
根据程序文本所需的计算机存储字节数
根据程序文本中的字符数
面向对象的开发提出了测量长度的新方法。 Pfleeger等。发现与使用代码行的对象和方法相比,使用这些对象和方法可以更准确地估算生产率。
产品固有的功能量决定了产品尺寸。衡量软件产品功能的方法有很多。在下一章中,我们将讨论一种这样的方法-Albrecht的功能点方法-。