대학의 소프트웨어 품질 보증 과정에서 Cyclomatic Complexity를 연구 중이며 술어 문 또는 노드에 복합 조건이있을 때 작동 방식을 이해하는 데 어려움을 겪고 있습니다.복합 조건 및 단락 회로 순환 복잡성
V(G) = 2
: 나는 우리가 두 가지의 복잡성을있을 것입니다 이와 같은 프로그램 그래프
V(G) = # of predicate nodes (with outdegree = 2) + 1
그래서 내 수업 시간에 내를 사용하는 차있는 복잡성을, 여러 정의가되어 보았다
또한
V(G) = # edges - # nodes + 2
0123로 주어진 된 Cyclomatic 복잡성의 정의를 보았다
위의 그래프에도 적용됩니다. 그러나 우리는 술어 노드에 대한 복합 조건을 가지고 있습니다. 그리고 우리는 언어와 시스템이 자동 단락 회로로 설정되었다고 생각합니다. 아래의 그래프는 그래프로 확대되어야합니다. 실제 소스 코드에서 단 하나의 if 문만 있거나 V (G) = 2 인 경우에도 Cyclomatic의 복잡성은 3이됩니까?.
Cyclomatic 복잡성에 대한 정의의 대부분이 술어 노드에 대해 이야기하고 있으며 술어를 이해할 때 여러 개의 단락 조건이 포함될 수 있으므로 혼란 스럽습니다. 그렇지 않은 경우 단락 동작이 성능을 향상시키면서 실제로 고려할 때 Cyclomatic 복잡성을 증가시키는 것으로 보입니다. 소스 코드가 주어지면 순환 적 복잡성을 계산하기 전에 왼쪽의 그래프와 같이 모든 조건을 자체 노드로 분할해야합니까? 이 단락의 평가를 사용하여 정의되어 있기 때문에 C에서