microsoft / winfile
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 158 units with 6,236 lines of code in units (19.3% of code).
    • 0 very complex units (0 lines of code)
    • 5 complex units (878 lines of code)
    • 24 medium complex units (1,949 lines of code)
    • 36 simple units (1,598 lines of code)
    • 93 very simple units (1,811 lines of code)
0% | 14% | 31% | 25% | 29%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
c0% | 33% | 8% | 31% | 26%
cpp0% | 4% | 44% | 21% | 30%
h0% | 0% | 0% | 71% | 28%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src0% | 27% | 15% | 31% | 25%
tools/ExeView0% | 6% | 41% | 17% | 35%
tools/FileSignatureInfo0% | 0% | 50% | 41% | 8%
tools/VerifyResources0% | 0% | 36% | 26% | 36%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
INT SearchList()
in src/wfsearch.c
176 36 8
BOOL WFDoCompress()
in src/wffile.c
168 33 3
BOOL WFDoUncompress()
in src/wffile.c
158 31 3
LRESULT CALLBACK MainWndProc()
in tools/ExeView/main.cpp
170 30 4
BOOL WFCheckCompress()
in src/wffile.c
206 29 5
int _tmain()
in tools/FileSignatureInfo/FileSignatureInfo.cpp
157 23 2
int ReadResourceTable()
in tools/ExeView/exehdr.cpp
91 21 2
PEXEINFO LoadExeInfo()
in tools/ExeView/exehdr.cpp
67 19 1
93 18 1
BOOL SaveResources()
in tools/ExeView/save.cpp
90 18 3
LPCTSTR MapRTToString()
in tools/VerifyResources/VerifyResources.cpp
29 17 1
vector TreeIntersection()
in src/wfgoto.cpp
84 16 1
39 16 4
HICON MakeIcon()
in tools/ExeView/iconcur.cpp
187 16 1
HCURSOR MakeCursor()
in tools/ExeView/iconcur.cpp
198 16 1
BOOL DisplayResource()
in tools/ExeView/res.cpp
113 16 3
68 14 5
BOOL GetProgAndPublisherInfo()
in tools/FileSignatureInfo/FileSignatureInfo.cpp
106 14 2
VOID VerifyLangDialogs()
in tools/VerifyResources/VerifyResources.cpp
66 14 1
DWORD ConfirmDialog()
in src/wfcopy.c
35 13 10