microsoft / code-push
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 87 units with 865 lines of code in units (69.7% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 3 medium complex units (127 lines of code)
    • 5 simple units (106 lines of code)
    • 79 very simple units (632 lines of code)
0% | 0% | 14% | 12% | 73%
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
ts0% | 0% | 14% | 12% | 73%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
script0% | 0% | 23% | 7% | 69%
utils/adapter0% | 0% | 5% | 10% | 83%
utils0% | 0% | 0% | 48% | 51%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public reportStatusDeploy()
in src/script/acquisition-sdk.ts
49 13 5
public queryUpdateWithCurrentPackage()
in src/script/acquisition-sdk.ts
58 11 2
public releaseToPackage()
in src/utils/adapter/adapter.ts
20 11 1
private makeApiRequest()
in src/utils/request-manager.ts
39 10 5
public toApigatewayAppCreationRequest()
in src/utils/adapter/adapter.ts
23 9 1
public toRestReleaseModification()
in src/utils/adapter/adapter.ts
12 7 1
function queryStringify()
in src/script/acquisition-sdk.ts
18 6 1
public async isAuthenticated()
in src/script/management-sdk.ts
14 6 1
public toReleaseUploadProperties()
in src/utils/adapter/adapter.ts
13 5 3
private getErrorStatus()
in src/utils/request-manager.ts
3 5 2
public reportStatusDownload()
in src/script/acquisition-sdk.ts
21 4 2
private packageFileFromPath()
in src/script/management-sdk.ts
38 4 1
public async toLegacyApps()
in src/utils/adapter/adapter.ts
22 4 1
public async getRenamedApp()
in src/utils/adapter/adapter.ts
17 4 3
private toLegacyUserPermission()
in src/utils/adapter/adapter.ts
8 4 2
private getStringValidator()
in src/utils/adapter/adapter.ts
11 4 2
function urlEncode()
in src/script/management-sdk.ts
10 3 2
public async addApp()
in src/script/management-sdk.ts
15 3 4
public toLegacyAccessKeyList()
in src/utils/adapter/adapter.ts
19 3 1
private toLegacyRestApp()
in src/utils/adapter/adapter.ts
23 3 3