microsoft / CoreTemplateStudio
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 717 units with 8,327 lines of code in units (63.8% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 10 medium complex units (433 lines of code)
    • 45 simple units (1,314 lines of code)
    • 662 very simple units (6,580 lines of code)
0% | 0% | 5% | 15% | 79%
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% | 0% | 5% | 15% | 79%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
code/src/CoreTemplateStudio/CoreTemplateStudio.Core0% | 0% | 6% | 19% | 74%
code/src/CoreTemplateStudio/CoreTemplateStudio.Cli0% | 0% | 4% | 0% | 95%
code/tools/WtsPackagingTool0% | 0% | 0% | 15% | 84%
code/tools/WtsTelemetry/Services0% | 0% | 0% | 0% | 100%
code/src/Utilities/Services0% | 0% | 0% | 0% | 100%
code/tools/WtsTelemetry/Helpers0% | 0% | 0% | 0% | 100%
code/tools/WtsTelemetry/Models0% | 0% | 0% | 0% | 100%
code/tools/WtsTelemetry0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public IEnumerable GetDependencies()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Templates/TemplatesRepository.cs
46 15 3
public IEnumerable GetRequirements()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Templates/TemplatesRepository.cs
50 15 2
public IEnumerable GetExclusions()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Templates/TemplatesRepository.cs
50 15 2
public static string MakeSafeProjectName()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Cli/Extensions/StringExtensions.cs
34 14 1
public MergeResult Merge()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/PostActions/Catalog/Merge/MergeHandler.cs
67 14 2
public IEnumerable GetLayoutTemplates()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Templates/TemplatesRepository.cs
43 14 1
internal static void ValidateUserSelection()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Gen/GenController.cs
54 12 2
private static void AdaptWhiteLinesToBraces()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/PostActions/Catalog/Merge/CodeStyleProviders/CSharpStyleProvider.cs
19 11 3
private MergeMode GetMergeMode()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/PostActions/Catalog/Merge/MergeHandler.cs
48 11 3
private static BaseCodeStyleProvider GetCodeStyleProvider()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/PostActions/PostActionFactory.cs
22 11 1
private static string Transform()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Casing/StringCasingExtensions.cs
41 10 3
public async Task TrackItemGenAsync()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Diagnostics/TelemetryTracker.cs
31 10 4
public static int SafeIndexOf()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Extensions/IEnumerableExtensions.cs
33 10 5
public override string ToString()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Gen/UserSelection.cs
50 10 0
internal static void Prepare()
in code/tools/WtsPackagingTool/PackageWorker.cs
49 10 8
public ItemNameService()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Naming/ItemNameService.cs
41 9 2
public async Task ExtractAsync()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Packaging/TemplatePackage.cs
27 9 4
internal override void ExecuteInternal()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/PostActions/Catalog/Merge/MergeResourceDictionaryPostAction.cs
58 9 0
public static bool SortNamespaceReferences()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/PostActions/Catalog/SortNamespaces/ListStringExtensions.cs
40 9 2
public static bool IsValidLanguage()
in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/ProgrammingLanguages.cs
22 9 2