内部产品属性

内部产品属性以仅依赖于产品本身的方式描述软件产品.衡量内部产品属性的主要原因是,它有助于在开发过程中监控和控制产品.

测量内部产品属性

主要内部产品属性包括尺寸结构.可以静态测量大小而无需执行它们.产品的大小告诉我们创建它所需的努力.同样,产品结构在设计产品维护中起着重要作用.

测量尺寸

软件尺寸可以用三个属性 :

  • 长度 : 它是产品的实际尺寸.

  • 功能 : 它描述了产品为用户提供的功能.

  • 复杂性 : 复杂性有不同的类型,例如.

    • 问题复杂性 : 衡量潜在问题的复杂性.

    • 算法复杂性 : 衡量为解决问题而实施的算法的复杂性

    • 结构复杂性 : 测量用于实现算法的软件的结构.

    • 认知复杂性 : 衡量理解软件所需的工作量.

测量这三个属性可以描述如下 :

长度

有三种开发产品,其尺寸测量对于预测所需的工作量非常有用预测.它们是规范,设计和代码.

规范和设计

这些文档通常包含文本,图形和特殊的数学图表和符号.规范测量可用于预测设计的长度,而设计的长度又是代码长度的预测器.

文档中的图表具有统一的语法,例如带标签的有向图,数据流图表或Z模式.由于规范和设计文档由文本和图表组成,其长度可以用表示文本长度和图表长度的一对数字来衡量.

对于这些测量,原子对象将为不同类型的图表和符号定义.

数据流图的原子对象是进程,外部实体,数据存储和数据流.代数规范的原子实体是种类,功能,操作和公理. Z模式的原子实体是规范中出现的各种行.

代码

代码可以用不同的方式生成,如过程语言,面向对象和可视化编程.源代码程序长度最常用的传统度量是代码行(LOC).

总长度,

LOC = NCLOC + CLOC

ie,

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 $$

根据Halstead理论,我们可以计算估计值 L as

$$ {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

测量长度的其他选择是 :

  • 就程序所需的计算机存储字节数而言文本

  • 就程序文本中的字符数而言

面向对象的开发su获取测量长度的新方法. Pfleeger等.发现对象和方法的数量比使用代码行的数据更准确.

功能

固有的功能量产品可以衡量产品尺寸.有许多不同的方法来衡量软件产品的功能.我们将在下一章讨论一种这样的方法──阿尔布雷希特的功能点方法.