霍尔斯特德复杂度报告
Halstead 复杂度报告生成以静态方式计算(不执行程序)的软件指标。 Halstead 复杂度可用来比较两个程序或两个应用程序之间的复杂度。
要定义当前项目的“Halstead 复杂度报告”设置,请在“浏览项目”视图中,转到右侧窗格中的“大型机报告”列表。 然后,选择“复杂度报告”,右键单击“Halstead 报告”并从弹出菜单中选择显示设置。
在 "报告设置" 对话框窗口中, 运算符 选项卡显示在 IBM® AD Analyze 计算 Halstead 复杂度时,是否将语句类型视为运算符或操作数。 缺省情况下,将所有语句类型都视为运算符。 请根据项目的具体需要调整选择。 使用全部选中和全部清除可管理选择,使用复原缺省值可恢复缺省选择。
要生成此报告,请在“浏览项目”视图中,转至右侧窗格中的“大型机报告”列表。 选择“复杂度报告”,然后双击 Halstead 复杂度报告以显示报告向导。
“可用的程序”区域显示可用于生成报告的资源,并允许用户选择要包括在报告中的资源。 使用名称字段可过滤列表内容。 将光标悬停在图标上可显示有关其所显示的资源类型的工具提示,单击图标将仅显示所选类型的资源。 要显示资源类型的全名,请单击对话框窗口左侧的白色箭头按钮。
在“报告生成选项”区域中,选定项指出缺省情况下显示报告附录。 请选择要包括在附录中的其他数据:在附录中显示输入详细信息和在附录中显示运算符。 要仅显示报告摘要,请选择相应的选项。
请使用箭头按钮在“可用”列表与“选定”列表之间移动资源,然后单击完成以生成报告。
“报告摘要”部分呈现多个图表,其中按程序显示程序长度分布、词汇表大小分布、程序体积分布、困难级别分布、程序级别分布、实现工作量分布、实现时间分布以及错误数分布。
“Halstead 复杂度报告详细信息”部分针对每个程序显示一个图表,以呈现程序长度、词汇表大小、程序体积、困难级别、程序级别、实现工作量、实现时间和交付错误数。
- 程序长度 - 测量出现的运算符总数以及出现的操作数总数,表示程序的长度指标。
N = N1 + N2 - 词汇表大小 - 测量程序中的唯一运算符和操作数的总数。
n = n1 + n2 - 程序容量 - 测量为程序编码所需要的最小位数。
V = N * log2(n) - 困难级别 - 测量程序中的困难级别。
D = (n1 / 2) * (N2 / n2) - 程序级别 - 测量可以了解程序的级别。
L = 1 / D - 工作量 - 测量开发或维护程序所需要的脑力劳动。 此测量值越低,更改程序就越简单。
E = V * D - 实现时间 - 测量实现算法的时间量。
T = E / 18 - 已交付的错误数 - 测量程序中的估计错误数。
B = ( E exp (2/3) ) / 3000
- n1 = 不同的运算符的数目
- n2 = 不同的操作数的数目
- N1 = 运算符总数
- N2 = 操作数总数