microsoft / mattercenter
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 2,201 units with 48,197 lines of code in units (52.4% of code).
    • 2 very complex units (511 lines of code)
    • 24 complex units (3,245 lines of code)
    • 157 medium complex units (10,498 lines of code)
    • 303 simple units (11,186 lines of code)
    • 1,715 very simple units (22,757 lines of code)
1% | 6% | 21% | 23% | 47%
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
cs1% | 5% | 20% | 25% | 47%
js1% | 8% | 23% | 19% | 47%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service3% | 5% | 27% | 24% | 39%
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web<1% | 10% | 23% | 21% | 44%
tree/master/cloud/src/Helper Utilities/Microsoft.Legal.MatterCenter.HelperUtilities0% | 2% | 16% | 29% | 51%
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.jobs0% | 0% | 34% | 30% | 34%
tree/master/cloud/src/deployments/Static Content0% | 0% | 11% | 19% | 68%
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Selenium0% | 0% | 2% | 18% | 79%
tree/master/cloud/src/solution/AuthWebTestPlugin0% | 0% | 18% | 0% | 81%
tree/master/cloud/src/solution/Matter.legal.MatterCenter.Performance0% | 0% | 0% | 24% | 75%
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
function getDefaultContentTypeValues()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js
200 78 1
public bool UpdateMatterStampedProperties()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/Matter/MatterRepository.cs
311 63 6
function validateCurrentPage()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js
189 49 1
internal Dictionary SetStampProperty()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/Common/MatterProvision.cs
300 47 1
$scope.sortChangedDocument = function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/document/documents.controller.js
157 43 2
public void SetUploadItemProperties()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/SharePointInfo/SPList.cs
103 40 6
public SearchResponseVM GetPinnedData()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/SharePointInfo/Search.cs
171 37 5
public async Task GetMatters()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/Common/MatterProvision.cs
159 37 2
$scope.sortChanged = function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matters.controller.js
254 37 2
cm.onSelect = function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js
101 36 7
getDefaultMatterConfigurations()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js
154 35 2
public string GetMatterProvisionExtraProperties()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/Matter/MatterRepository.cs
172 34 2
public async Task GetDocumentsAsync()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/Common/DocumentProvision.cs
191 34 2
link: function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/directives/common.directive.js
106 34 3
function validateUsers()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js
144 34 0
var validateAttornyUserRolesAndPermission1 = function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matterusers.controller.js
93 32 3
private MimeEntityReturnCode ProcessMimeEntity()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/Mail/MimeReader.cs
125 31 2
cm.onSelect = function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matterusers.controller.js
81 30 7
function stampProperties()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/createMatter.controller.js
135 29 0
vm.FilterModifiedDate = function()
in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matters.controller.js
13 29 1