Actionscript 3 ActionScript 3的圈复杂度

Actionscript 3 ActionScript 3的圈复杂度,actionscript-3,flash,complexity-theory,cyclomatic-complexity,Actionscript 3,Flash,Complexity Theory,Cyclomatic Complexity,我试图计算我的软件的圈复杂度,但我有点困惑。据我所知,覆盖整个软件需要测试的路径数量。通常存在if语句和循环,它们会导致决策并因此增加路径 然而,我下面的代码没有循环或if语句,因此它的复杂性是1吗 btn_length.addEventListener (MouseEvent.CLICK, LengthFunc); function LengthFunc (e: MouseEvent):void { gotoAndStop (1,"Scene 2"); } btn_speed.a

我试图计算我的软件的圈复杂度,但我有点困惑。据我所知,覆盖整个软件需要测试的路径数量。通常存在if语句和循环,它们会导致决策并因此增加路径 然而,我下面的代码没有循环或if语句,因此它的复杂性是1吗

btn_length.addEventListener (MouseEvent.CLICK, LengthFunc);

function LengthFunc (e: MouseEvent):void
{
    gotoAndStop (1,"Scene 2");
}


btn_speed.addEventListener (MouseEvent.CLICK, SpeedFunc);

function SpeedFunc (e: MouseEvent):void
{
        gotoAndStop (1,"Scene 6");
}


btn_currency.addEventListener (MouseEvent.CLICK, CurrencyFunc);

function CurrencyFunc (e: MouseEvent):void
{
    gotoAndStop (1,"Scene 10");
}

btn_weight.addEventListener (MouseEvent.CLICK, WeightFunc);

function WeightFunc (e: MouseEvent):void
{
    gotoAndStop (1,"Scene 11");
}

btn_data.addEventListener (MouseEvent.CLICK, dataFunc);

function dataFunc (e: MouseEvent):void
{
    gotoAndStop (1,"Scene 16");
}
stop();
我相信这个类的复杂性也是1

import fl.data.DataProvider;

var dpcurr:DataProvider = new DataProvider();
var fromVal:Number;
var toVal:Number;
var inputValcurr:Number
var resultValcurr:Number;
input_txt.restrict = "0-9\\.\\";

dpcurr.addItem( { label: "EUR, Euro", data: 1.18 });
dpcurr.addItem( { label: "GBP, British Pound", data: 1 });
dpcurr.addItem( { label: "USD, US Dollar", data:1.54});


fromList.dataProvider = dpcurr; 
toList.dataProvider = dpcurr;

fromList.addEventListener(Event.CHANGE, calculateResultcurr);
toList.addEventListener(Event.CHANGE, calculateResultcurr);
input_txt.addEventListener(Event.CHANGE, calculateResultcurr);

fromList.selectedIndex = 0;
toList.selectedIndex = 2;

fromVal = fromList.selectedItem.data;
toVal = toList.selectedItem.data;

function calculateResultcurr(e:Event):void{
fromVal = fromList.selectedItem.data;
toVal = toList.selectedItem.data;
inputValcurr = Number(input_txt.text);
resultValcurr = inputValcurr * (fromVal / toVal);

convert_btn.addEventListener(MouseEvent.­CLICK, convertcurr);

function convertcurr(evt:MouseEvent):void {
result_txt.text = resultValcurr.toString()}
}

home_btn. addEventListener (MouseEvent. CLICK, homecurr);

function homecurr ( e: MouseEvent ): void {
    gotoAndStop (1, "Scene 1" );
    }
stop();
如果有人能让我知道我是对还是错,我将不胜感激。
这是一个flash项目,因此代码是用ActionScript 3编写的。

是的,只要代码中没有任何控制语句(if、else、while、for、do、break等),代码中只有一条路径,因此圈数为1。

圈复杂度由决策密度决定。决策密度越高,复杂性就越高。如果没有嵌入决策,圈复杂度将为1。与代码大小只有关联关系,但与决策密度有因果关系。在Tom McCabe的研究中,他表明,一旦圈复杂度超过10,模块就变得容易出错,并且错误倾向性随着圈复杂度数线性增加而呈指数增加。当模块复杂度过高时,模块将变得不稳定、不可维护和不可记录。将圈复杂度分析与Fagan检查结合使用是一种非常强大的组合,可以生成非常高质量的软件,并降低总体开发成本。圈复杂度评估代码的结构(复杂度图给出了可以描述为代码骨架的图片),Fagan检查处理代码的功能正确性。仅仅使用一个能给出圈复杂度数字的分析器,没有什么比生成复杂度图的分析器更有用

欢迎来到SO。这看起来像一堵文字墙。请将其格式化以使其可读。谢谢