测量结构
测量结构
软件结构属性的测量对于估计开发工作以及产品的维护很重要。需求、设计和代码的结构有助于理解在将一种产品转换为另一种产品、测试产品或根据早期内部产品度量预测外部软件属性时出现的困难。
结构措施的类型
软件结构分为三部分。他们是 –
-
控制流结构– 它是在程序中执行指令的顺序。
-
数据流结构– 它是数据与程序交互时的行为。
-
数据结构– 以列表、队列、堆栈或其他定义明确的结构形式组织数据元素以及创建、修改或删除它们的算法。
测量控制流结构
控制流度量通常用有向图建模,其中每个节点或点对应于程序语句,每个弧或有向边表示从一个语句到另一个语句的控制流。这些图被称为控制流图或有向图。
如果“m”是根据流图模型定义的结构度量,并且如果程序A在结构上比程序B复杂,则度量m(A)应该大于m(B)。
测量数据流结构
数据流或信息流可以是模块间的(模块内的信息流)或模块内的(各个模块与系统其余部分之间的信息流)。
根据数据在系统中移动的方式,它可以分为以下几类 –
-
本地直接流– 如果一个模块调用第二个模块并将信息传递给它,或者被调用的模块将结果返回给调用者。
-
本地间接流– 如果被调用的模块返回随后传递给第二个被调用模块的信息。
-
全局流– 如果信息通过全局数据结构从一个模块流到另一个模块。
根据 Henry 和 Kafura 的说法,信息流复杂度可以表示为:
信息流复杂度(M)=长度(M)×扇入(M)×(扇出(M))2
在哪里,
-
扇入 (M) – 终止于 M 的本地流的数量 + M 从中检索信息的数据结构的数量。
-
扇出 (M) – 从 M 发出的本地流的数量 + 由 M 更新的数据结构的数量。
测量数据结构
数据结构既可以是本地的,也可以是全局的。
在本地,将测量每个数据项中的结构量。图论方法可用于分析和测量单个数据结构的属性。因此,整数、字符和布尔值等简单数据类型被视为素数,并考虑了使我们能够构建更复杂数据结构的各种操作。然后可以根据素数的值和与各种操作相关的值来分层定义数据结构度量。
在全局范围内,将测量用户定义变量的总数。