microsoft / BusinessPlatformApps
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 1,320 units with 21,954 lines of code in units (39.2% of code).
    • 0 very complex units (0 lines of code)
    • 1 complex units (51 lines of code)
    • 41 medium complex units (2,563 lines of code)
    • 139 simple units (5,105 lines of code)
    • 1,139 very simple units (14,235 lines of code)
0% | <1% | 11% | 23% | 64%
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
cs0% | <1% | 10% | 22% | 66%
ts0% | 0% | 16% | 28% | 55%
csx0% | 0% | 17% | 19% | 63%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
Source/Actions/Microsoft.Deployment.Actions.AzureCustom0% | <1% | 10% | 25% | 62%
Source/SiteCommon/Web0% | 0% | 16% | 29% | 53%
Source/Apps/Microsoft0% | 0% | 23% | 13% | 62%
Source/Actions/Microsoft.Deployment.Actions.Salesforce0% | 0% | 28% | 37% | 33%
Functions/FunctionCode/News0% | 0% | 29% | 10% | 60%
Functions/FunctionCode/Twitter0% | 0% | 39% | 21% | 38%
Source/Actions/Microsoft.Deployment.Common0% | 0% | 4% | 18% | 77%
Source/Actions/Microsoft.Deployment.Actions.Custom0% | 0% | 4% | 23% | 72%
Functions/Code/Reddit0% | 0% | 4% | 9% | 86%
Functions/Code/Facebook0% | 0% | 6% | 28% | 64%
Source/Actions/Microsoft.Deployment.Actions.OnPremise0% | 0% | 16% | 25% | 57%
Source/Actions/Microsoft.Deployment.Actions.Common0% | 0% | 9% | 8% | 81%
Source/Actions/Microsoft.Deployment.Actions.MsCrm0% | 0% | 7% | 46% | 46%
Source/Actions/Microsoft.Deployment.Actions.SQL0% | 0% | 12% | 25% | 61%
Source/Site/Microsoft.Deployment.Site.Service0% | 0% | 0% | 59% | 40%
Functions/FunctionCode/AnalysisServices0% | 0% | 0% | 55% | 44%
Source/Site/Microsoft.Deployment.Site.Msi0% | 0% | 0% | 0% | 100%
Functions/FunctionCode/FacebookBrandMangement0% | 0% | 0% | 0% | 100%
Functions/FunctionCode/FacebookPageAnalytics0% | 0% | 0% | 0% | 100%
Source/Apps/Partner0% | 0% | 0% | 0% | 100%
Source/Site/Microsoft.Deployment.Site.Web0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private async Task IsReady()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/Functions/CheckFunctionStatus.cs
51 26 2
public override async Task ExecuteActionAsync()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/ActivityLogs/GetHistoricalData.cs
112 24 1
public async Task ParseTweet()
in Source/Apps/Microsoft/Released/Microsoft-TwitterTemplate/Service/Data/TweetFunctionCSharp.cs
146 24 3
public async Task ParseTweet()
in Functions/FunctionCode/Twitter/TweetProcessingFunction/TweetFunctionCSharp.cs
146 23 3
async onValidate()
in Source/SiteCommon/Web/pages-gallery/data-movement.ts
68 22 0
private static string ReplaceSqlPasswords()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/AzureML/DeployAzureMLWebServiceFromFile.cs
51 21 2
public override async Task ExecuteActionAsync()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/AzureToken/RefreshAzureToken.cs
70 21 1
private static string ReplaceSqlPasswords()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/Reddit/DeployRedditAzureMLWebServiceFromFile.cs
51 21 2
csx
public List CleanWords()
in Functions/FunctionCode/News/AbstractExtractor/run.csx
83 18 1
csx
public static async Task Run()
in Source/Apps/Microsoft/Released/Microsoft-IoTContinuousDataExportTemplate/Service/Data/measurements/run.csx
156 18 3
private static getVariableType()
in Source/SiteCommon/Web/services/init-parser.ts
47 18 1
public override async Task ExecuteActionAsync()
in Source/Actions/Microsoft.Deployment.Actions.Salesforce/ADFDeployPipelines.cs
119 17 1
public async Task CanInterceptAsync()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/AzureToken/RefreshAzureToken.cs
44 16 2
private ReadableQueryPart GetReadableQueryPart()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/PowerApp/ConfigurePowerAppTables.cs
77 15 1
private bool IsAdvancedTwitterQuery()
in Source/Actions/Microsoft.Deployment.Actions.AzureCustom/PowerApp/ConfigurePowerAppTables.cs
50 15 1
async onNavigatingNext()
in Source/SiteCommon/Web/pages-gallery/customize.ts
70 14 0
public static parseVariable()
in Source/SiteCommon/Web/services/init-parser.ts
45 14 5
public override async Task ExecuteActionAsync()
in Source/Actions/Microsoft.Deployment.Actions.MsCrm/CrmGetProfileStatus.cs
36 13 1
private StringBuilder CreateQuery()
in Source/Actions/Microsoft.Deployment.Actions.Salesforce/ADFDeployPipelines.cs
89 13 5
public List ExtractSimpleMetadata()
in Source/Actions/Microsoft.Deployment.Actions.Salesforce/SalesforceSqlArtefacts.cs
42 13 1