1.mccabe 회전복잡도의 개요

  . 복잡도의 정의

    -프로그램의 이해 난이도는 제어흐름 난이도의 복잡도에 따라 결정되며, 복잡도를 싸이클로메틱수(region,폐구간,그래프 영역)에 의해서 산정하는 방법

 .mccabe 복잡도 측정 특징

    1)싸이클로메틱의 개수와 원시프로그램 오류의 개수는 밀접한 관계가 있음

    2)최대 10을 넘지 않도록 하며 넘으면 이를 분해하도록 함.

2.Mccabe 계산방식 및 예제

  .변수

    -의사결정수(if ,then,else, do while,case)

    -조건수 (and, or, not )

  .복잡도 계산방식

    1)복잡도=영역수(폐구간)+1(제어흐름 그래프를 통해 파악)

    2)복잡도=화살표수 - 노드수 + 2(제어흐름 그래프를 통해 파악)

    3)복잡도=의사 결정수 + 조건수 + 1(프로그램 코드상에서 파악, 제어흐름도를 그리기 어려운 경우 활용)

  .예제

   1)복잡도=영역수+1=2+1=3                             

   2)복잡도=화살표수-노드수+2 = 7-6+2=3

   3)복잡도=의사결정수+조건수+1=2+1=3

 

3.McCabe 복잡도 척도 및 활용방안

  가 복잡도 척도

   -5이하:매우 간단한 프로그램   -5~10:매우 안정적이고 구조적

   -20이상:문장 자체가 복잡,구조가 필요 이상으로 복잡한 프로그램

   -50이상:매우 비구조적으로 불안정한 프로그램

  .McCabe 복잡도 활용방안

  -프로젝트 특성(규모,복잡도,비즈니스적 위험도),발주처 환경(인식정도,프로젝트환경) 고려

  -지표값의 지식화를 통한 신뢰성 향상, 생산성 지표 활용을 통한 개발 조직의생산성 향상

 

===================


문) McCabe 회전복잡도
답)
1. SW 제어흐름의 복잡도 통한 품질측정, McCabe 회전복잡도 개요
  가. McCabe 회전복잡도 (Cyclomatic Complexity) 의 정의
    - 원시코드의 싸이클로 메틱수 (페구간 수)를 이용하여, SW의 복잡도,
      품질을 정량적으로 측정하는 기법.
  나. McCabe 회전복잡도 특징
    - 이해 용이: 그림, 계산식 이용하여 폐구간 개수를 시각적 파악 가능
    - 정적분석도구 활용: 복잡한 코드 분석시, 자동화 도구 이용. 모듈화 대상 선정

2. McCabe 회전복잡도 계산방식 및 척도
  가. McCabe 복잡도 계산방식 및 사례
    - 제어흐름 그래프이용: 폐구간 영역수 + 1, 화살표수 - 노드수 + 2
    - 코드 구문 이용: 의사결정수 + 조건수 + 1
    - IF-THEN-ELSE, DO WHILE, CASE, AND/OR/NOT의 의사결정 수 이용.
  -----------------------------------------------------------
   A -> B   페구간 개수:2, 화살표수:5, 노드수: 4
   ∧\   |   - 복잡도 = 폐구간수(2) + 1 = 3.
   |   ↘∨   - 복잡도 = 화살표수(5) - 노드수(4) + 2 = 3.
   C <- D
  -----------------------------------------------------------
  나. McCabe 회전복잡도 척도
    - 5이하: 매우 간단한 프로그램
    - 5~10: 매우 구조적이고 안정적 프로그램
    - 20 이상: 구조가 필요 이상으로 복잡한 프로그램
    - 50이상: 매우 비 구조적이며 불안정한 프로그램.

3. McCabe 회전 복잡도의 활용방안 및 고려사항
  가. 모듈화 기준: 10 이상의 회전복잡도, 이해용이성/유지보수정 고려 리펙토링.
  나. 서비스 단위 기준: 서비스 흐름도의 복잡도 계산, 10 이상시 서비스 단위 세분화.
  다. 복잡도 계산에 많은 시간 소요되므로, 프로젝트 성격/특징에 따라 우선순위 별 적용
  라. 개발조직 역량/생산성 측정 및 향상 위하여, 지표의 지속적인 관리/개선방안 공유 필요.
"끝"

'정보관리기술사 > sw공학' 카테고리의 다른 글

visitor 패턴,observer 패턴 ,유지보수  (0) 2015.03.13
구조적 테스트, whitebox test검증기준  (0) 2015.03.13
정성적,정량적sw위험분석  (0) 2015.03.13
FP  (0) 2015.03.13
소프트웨어 품질보증  (0) 2015.03.13
by 메렁키키 2015. 3. 13. 14:08