测量结构


软件结构属性的测量对于估计开发工作量以及产品的维护非常重要。需求、设计和代码的结构有助于理解将一种产品转换为另一种产品、测试产品或从早期内部产品测量预测外部软件属性时出现的困难。

结构性措施的类型

软件的结构分为三部分。他们是 -

  • 控制流结构- 它是程序中执行指令的顺序。

  • 数据流结构- 这是数据与程序交互时的Behave。

  • 数据结构- 它是以列表、队列、堆栈或其他定义良好的结构的形式组织数据元素以及创建、修改或删除它们的算法。

测量控制流结构

控制流度量通常用有向图建模,其中每个节点或点对应于程序语句,每条弧或有向边表示从一个语句到另一语句的控制流。这些图称为控制流图或有向图。

如果“m”是根据流程图模型定义的结构度量,并且如果程序A在结构上比程序B更复杂,则度量m(A)应大于m(B)

测量数据流结构

数据流或信息流可以是模块间的(模块内的信息流)或模块内的(各个模块与系统其余部分之间的信息流)。

根据数据在系统中移动的方式,可以分为以下几类:

  • 本地直接流- 如果一个模块调用第二个模块并向其传递信息,或者被调用的模块将结果返回给调用者。

  • 本地间接流- 如果调用的模块返回随后传递给第二个调用的模块的信息。

  • 全局流- 如果信息通过全局数据结构从一个模块流到另一个模块。

信息流复杂度可以根据 Henry 和 Kafura 表示为:

信息流复杂度(M)=长度(M)×扇入(M)×(扇出(M))2

在哪里,

  • 扇入 (M) - 终止于 M 的本地流的数量 + M 从中检索信息的数据结构的数量。

  • 扇出 (M) - 从 M 发出的本地流的数量 + 由 M 更新的数据结构的数量。

测量数据结构

数据结构可以是局部的,也可以是全局的

在本地,将测量每个数据项中的结构量。图论方法可用于分析和测量单个数据结构的属性。其中,简单的数据类型(例如整数、字符和布尔值)被视为素数,并且考虑了使我们能够构建更复杂的数据结构的各种运算。然后可以根据素数的值和与各种运算相关的值来分层地定义数据结构度量。

在全局范围内,将测量用户定义变量的总数。