microsoft / mssql-jdbc
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 3,536 units with 39,586 lines of code in units (74.4% of code).
    • 19 very complex units (5,073 lines of code)
    • 35 complex units (3,895 lines of code)
    • 109 medium complex units (5,651 lines of code)
    • 200 simple units (4,879 lines of code)
    • 3,173 very simple units (20,088 lines of code)
12% | 9% | 14% | 12% | 50%
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
java12% | 9% | 14% | 12% | 50%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
com/microsoft/sqlserver/jdbc13% | 10% | 14% | 12% | 49%
com/microsoft/sqlserver/jdbc/osgi0% | 0% | 41% | 24% | 34%
mssql/googlecode/concurrentlinkedhashmap0% | 0% | 0% | 11% | 88%
com/microsoft/sqlserver/jdbc/dns0% | 0% | 0% | 44% | 55%
mssql/security/provider0% | 0% | 0% | 12% | 87%
mssql/googlecode/cityhash0% | 0% | 0% | 0% | 100%
microsoft/sql0% | 0% | 0% | 0% | 100%
com/microsoft/sqlserver/jdbc/dataclassification0% | 0% | 0% | 0% | 100%
com/microsoft/sqlserver/jdbc/spatialdatatypes0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
Connection connectInternal()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
750 183 2
private void setTypeDefinition()
in src/main/java/com/microsoft/sqlserver/jdbc/Parameter.java
324 146 1
final void executeOp()
in src/main/java/com/microsoft/sqlserver/jdbc/dtv.java
369 129 1
private void writeColumnToTdsWriter()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java
440 121 9
final boolean cmdIsDMLOrDDL()
in src/main/java/com/microsoft/sqlserver/jdbc/StreamDone.java
125 119 0
private void sendTemporal()
in src/main/java/com/microsoft/sqlserver/jdbc/dtv.java
312 84 3
private String getDestTypeFromSrcType()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java
178 82 3
void updateValue()
in src/main/java/com/microsoft/sqlserver/jdbc/Column.java
122 76 11
private XAReturnValue DTC_XA_Interface()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerXAResource.java
326 76 3
void Prelogin()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
298 72 2
private void writeTypeInfo()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java
230 71 9
void writeEncryptData()
in src/main/java/com/microsoft/sqlserver/jdbc/dtv.java
190 68 2
private void writeInternalTVPRowValues()
in src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java
231 67 5
static Properties parseUrl()
in src/main/java/com/microsoft/sqlserver/jdbc/Util.java
242 64 2
private void sendLogon()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
256 63 3
Object getValue()
in src/main/java/com/microsoft/sqlserver/jdbc/dtv.java
172 62 9
private void login()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
206 58 7
void enableSSL()
in src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java
176 55 5
private void internalAddrow()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java
126 53 4
private void writeColumn()
in src/main/java/com/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java
94 49 4