microsoft / OpenAPI.NET.CSharpAnnotations
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 180 units with 3,709 lines of code in units (71.3% of code).
    • 0 very complex units (0 lines of code)
    • 1 complex units (186 lines of code)
    • 12 medium complex units (1,267 lines of code)
    • 19 simple units (802 lines of code)
    • 148 very simple units (1,454 lines of code)
0% | 5% | 34% | 21% | 39%
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% | 5% | 34% | 21% | 39%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/ReferenceRegistries0% | 57% | 0% | 16% | 26%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration0% | 0% | 52% | 12% | 35%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters0% | 0% | 70% | 9% | 20%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions0% | 0% | 31% | 15% | 53%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PreprocessingOperationFilters0% | 0% | 40% | 38% | 20%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentConfigFilters0% | 0% | 72% | 27% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader0% | 0% | 15% | 42% | 41%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentFilters0% | 0% | 0% | 74% | 25%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PostProcessingDocumentFilters0% | 0% | 0% | 100% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationConfigFilters0% | 0% | 0% | 100% | 0%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Exceptions0% | 0% | 0% | 0% | 100%
Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Models0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
internal override OpenApiSchema FindOrAddReference()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/ReferenceRegistries/SchemaReferenceRegistry.cs
186 39 1
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters/ResponseToResponseFilter.cs
137 23 3
public IDictionary GenerateOpenApiDocuments()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/InternalOpenApiGenerator.cs
206 18 6
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters/ParamToRequestBodyFilter.cs
121 17 3
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PreprocessingOperationFilters/ConvertAlternativeParamTagsFilter.cs
98 17 3
internal static OpenApiSecurityScheme ToOAuth2SecurityScheme()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
84 16 2
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/OperationFilters/ParamToParameterFilter.cs
101 15 3
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentConfigFilters/DocumentVariantAttributesFilter.cs
71 13 4
private static OpenApiOAuthFlow ToOAuthFlow()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
67 13 3
private static OpenApiExample ToOpenApiExample()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
74 13 3
private IList GenerateSpecificationDocuments()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/InternalOpenApiGenerator.cs
140 12 5
internal void RegisterAssemblyPaths()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/AssemblyLoader.cs
68 11 1
private void AddOperation()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/InternalOpenApiGenerator.cs
100 11 7
protected override Assembly Load()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/CustomAssemblyLoadContext.cs
51 10 1
public static string RemoveRoslynDuplicateString()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/StringExtensions.cs
39 10 1
public static string GetDescriptionText()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/Extensions/XElementExtensions.cs
40 10 1
public string BuildInternalGenerationContext()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/AssemblyLoader/AssemblyLoader.cs
81 9 5
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/DocumentFilters/SecurityToSecurityRequirementDocumentFilter.cs
55 9 4
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PostProcessingDocumentFilters/RemoveFailedGenerationOperationFilter.cs
44 9 2
public IList Apply()
in src/Microsoft.OpenApi.CSharpAnnotations.DocumentGeneration/PreprocessingOperationFilters/PopulateInAttributeFilter.cs
55 9 3