使用Understand获取某个函数(方法)的静态度量指标

之前的一篇日志中,我简单总结了调用Understand的Perl API的方法,这里再简单总结一些经验:

在SciTools\doc\manuals\pdf目录下的understand_api.pdf文件中,已经在第27页给出了获得一个Function的圈复杂度的示例。但往往我们想获取更多的度量指标,但可能并不知道Understand能够提供的度量指标,以及度量指标名称。下面以Java的方法(method)度量指标为例进行下总结,可以简单地通过这段代码:

 

foreach $file ($db->ents("File")){
    foreach $class ($file->ents("Define","Class")){
        foreach $method ($class->ents("Define","Method")){
            print $method->name(),"'s metrics:","\n";
            foreach $met ($method->metrics()){
                print $met,"=",$method->metric($met),"\n";
            }
        }
    }
}

其中$db对应的就是上篇日志中获取的项目文件。这样就可以打印出一个Java项目的所有method的所有度量指标,也知道了度量指标的名称,如下图所示:

 

使用Understand获取某个函数(方法)的静态度量指标_第1张图片

可以看到,Understand可以度量的方法的指标包括:CountInput(输入参数个数),CountLine(代码行数),CountLineComment(注释行数)等指标。接下来就可以在各种分析中使用这些指标了。

 

你可能感兴趣的:(函数)