0

내 소프트웨어의 순환 복잡성을 계산하려고하지만 다소 혼란 스럽습니다. 내가 아는 바로는 전체 소프트웨어를 테스트하는 데 필요한 경로의 양입니다. 대개 의사 결정과 그로 인해 경로가 증가하는 if 문과 루프가 있습니다. 그러나 아래 코드에는 루프가 없거나 문이 있으므로 1의 복잡성이 있습니까?ActionScript 3의 순환 복잡성

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(); 

만약 내가 옳고 그른 것을 고맙게 여길지라도 어떤 사람은 내게 알려줄 수 있다면. 은 플래시 프로젝트이고, 따라서 코드는 액션 스크립트로 작성 3.

답변

0

예만큼 당신이 (잠시, 대한, 수행, 휴식, & & 등의 경우, 다른) 모든 컨트롤 문이없는로 귀하의 코드는 코드를 통해 유일한 경로이므로 cyclomatic 번호는 하나입니다.

0

순환 밀도는 결정 밀도에 의해 결정됩니다. 의사 결정 밀도가 높을수록 복잡성은 커집니다. 임베디드 결정이없는 경우 Cyclomatic Complexity는 1이됩니다. 코드 크기와의 연관 관계 만 있지만 의사 결정 밀도와의 원인 관계입니다. Tom McCabe의 연구에서 그는 Cyclomatic Complexity가 10을 넘으면 모듈이 오류가 발생하기 쉽고 Cyclomatic Complexity 수가 선형 적으로 올라감에 따라 오류 가능성이 기하 급수적으로 증가한다는 것을 보여줍니다. 모듈의 복잡성이 너무 높아지면 모듈은 테스트 할 수 없게되고 유지 보수가 불가능하며 문서화 할 수 없게됩니다. Fagan Inspections와 함께 Cyclomatic Complexity 분석을 사용하면 매우 높은 품질의 소프트웨어를 생산하고 총 개발 비용을 절감 할 수있는 매우 강력한 조합입니다. Cyclomatic Complexity는 코드의 구조를 평가합니다 (복잡도 그래프는 코드의 골격으로 설명 할 수있는 그림을 제공합니다). Fagan Inspections는 코드의 기능적 정확성을 처리합니다. Cyclomatic Complexity 번호를 제공하는 분석기 만 사용하면 복잡도 그래프를 생성하는 것만 큼 유용하지 않습니다.

+0

안녕하세요. 이것은 텍스트의 벽처럼 보입니다. 읽을 수 있도록 포맷하십시오. 감사! –