我們壹直在說系統是復雜的,那麽什麽是復雜呢?復雜性的定義有很多種,其中最具代表性的是托馬斯·j·麥凱布(Thomas J. McCabe)在1976提出的理性主義的復雜性度量和約翰·奧斯特胡特(John Ousterhout)教授提出的感性的復雜性認知。
復雜性不是壹個新概念。早在20世紀70年代,軟件就極其復雜,開發和維護的成本非常高。1976麥凱布&;相關人員開始測試軟件結構,並提出了McCabe循環復雜性度量,我們也稱之為McCabe循環復雜性。它通過多個維度衡量軟件的復雜程度,從而判斷軟件當前的開發/維護成本。