우리는 시스템이 복잡하다고 계속 말하고 있다. 그렇다면 복잡이란 무엇인가? 복잡성의 정의는 다양하다. 그중 가장 대표적인 것은 토마스 J 맥케이브 (Thomas J. McCabe) 가 1976 에서 제기한 이성주의의 복잡성 측정과 존 오스트후트 (John Ousterhout) 이다.
복잡성은 새로운 개념이 아닙니다. 일찍이 1970 년대에는 소프트웨어가 매우 복잡해서 개발 및 유지 관리 비용이 매우 높았습니다. 1976 맥케이브 &; 관계자들은 소프트웨어 구조 테스트를 시작하고 McCabe 주기 복잡성 측정치를 제시했습니다. 이를 McCabe 주기 복잡성이라고도 합니다. 여러 차원에서 소프트웨어의 복잡성을 측정하여 소프트웨어의 현재 개발/유지 관리 비용을 결정합니다.