IT 이론지식

MaCabe 회전 복잡도

쥐PT 2024. 3. 19. 10:10
728x90
반응형
SMALL

MaCabe 회전 복잡도는 소프트웨어 코드의 복잡성을 측정하는 메트릭 중 하나입니다. 이것은 프로그램의 제어 흐름에 초점을 맞추어 코드의 복잡성을 이해하고 평가하는 데 사용됩니다. MaCabe 회전 복잡도는 프로그램의 제어 흐름 그래프를 분석하여 결정됩니다. 제어 흐름 그래프는 프로그램 내에서 가능한 모든 경로와 해당 경로를 따라 흐르는 제어 구조를 보여주는 그래프입니다.

 

MaCabe 회전 복잡도 (출처 : https://quizlet.com/kr/711141575/sw-%EA%B3%B5%ED%95%99-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EA%B4%80%EB%A6%ACm-flash-cards/)

 

이제 MaCabe 회전 복잡도를 이해하기 위해 몇 가지 중요한 개념을 살펴보겠습니다.

  1. 제어 흐름 그래프 (Control Flow Graph, CFG): 제어 흐름 그래프는 프로그램의 제어 구조를 시각적으로 나타내는 그래프입니다. 이 그래프는 프로그램의 각 논리 블록을 노드로 나타내고, 노드 간의 제어 전환을 엣지로 나타냅니다. 이 그래프를 사용하면 프로그램의 구조를 분석하여 복잡성을 평가할 수 있습니다.
  2. 논리적 블록 (Logical Blocks): 제어 흐름 그래프의 각 노드는 프로그램의 논리적 블록을 나타냅니다. 이 블록은 단일 명령문, 제어 구조 (예: if문, switch문), 반복문 등과 같은 코드 블록일 수 있습니다.
  3. 엣지 (Edges): 제어 흐름 그래프의 엣지는 노드 간의 연결을 나타냅니다. 이러한 연결은 프로그램의 실행 흐름을 나타내며, 조건문의 참/거짓 또는 루프의 반복 등을 나타낼 수 있습니다.
  4. 순환 복잡도 (Cyclomatic Complexity): 순환 복잡도는 프로그램 내의 독립적인 경로의 수를 나타냅니다. MaCabe는 프로그램의 제어 흐름 그래프에서 순환 복잡도를 계산하는 데 사용되며, 이는 논리적으로 독립된 경로의 수와 동일합니다.
  5. 순환 번호 (Cyclomatic Number): 순환 번호는 특정 프로그램 또는 함수의 순환 복잡도를 나타냅니다. 이것은 프로그램이나 함수의 제어 흐름 그래프에서 생성되는 순환 경로의 수에 해당합니다.

MaCabe 회전 복잡도는 프로그램의 구조적 복잡성을 정량화하고, 소프트웨어의 유지 보수성, 테스트 가능성 및 오류 가능성을 예측하는 데 사용됩니다. 높은 순환 복잡도는 프로그램의 이해와 유지 관리를 어렵게 만들 수 있으며, 따라서 이러한 복잡성을 줄이기 위한 코드 리팩터링 또는 재설계가 필요할 수 있습니다.

728x90
반응형
LIST

'IT 이론지식' 카테고리의 다른 글

DIKW(Data, Information, Knowledge, Wisdom)  (0) 2024.03.19
브룩스의 법칙  (0) 2024.03.19
퍼지 테스트(Fuzzy Test)  (1) 2024.03.18
FMEA (Failure Mode and Effects Analysis)  (0) 2024.03.18
5 Forces 분석  (0) 2024.03.18