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