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