aws-samples / aws-sso-extensions-for-enterprise
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 191 units with 2,178 lines of code in units (24.4% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 1 medium complex units (27 lines of code)
    • 1 simple units (24 lines of code)
    • 189 very simple units (2,127 lines of code)
0% | 0% | 1% | 1% | 97%
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% | 1% | 1% | 97%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
lib/lambda-functions/helpers0% | 0% | 29% | 25% | 45%
lib/constructs0% | 0% | 0% | 0% | 100%
lib/stacks/pipelineStageStacks0% | 0% | 0% | 0% | 100%
lib/lambda-functions/application-handlers0% | 0% | 0% | 0% | 100%
lib/stacks/pipeline0% | 0% | 0% | 0% | 100%
lib/lambda-functions/user-interface-handlers0% | 0% | 0% | 0% | 100%
lib/lambda-functions/current-config-handlers0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
export function serializeDurationToISOFormat()
in lib/lambda-functions/helpers/src/isoDurationUtility.ts
27 12 1
export function parseISODurationString()
in lib/lambda-functions/helpers/src/isoDurationUtility.ts
24 7 1
export function logger()
in lib/lambda-functions/helpers/src/utilities.ts
20 4 1
function parseNum()
in lib/lambda-functions/helpers/src/isoDurationUtility.ts
6 4 1
minutes: parseInt()
in lib/lambda-functions/application-handlers/src/permissionSetTopicProcessor.ts
24 3 1
await invokeStepFunction()
in lib/lambda-functions/application-handlers/src/usersCud.ts
14 2 4
await invokeStepFunction()
in lib/lambda-functions/application-handlers/src/groupsCud.ts
14 2 4
await orgEventProvisioning()
in lib/lambda-functions/application-handlers/src/orgEvents.ts
10 2 7
await orgEventProvisioning()
in lib/lambda-functions/application-handlers/src/orgEvents.ts
19 2 7
await orgEventProvisioning()
in lib/lambda-functions/application-handlers/src/orgEvents.ts
10 2 7
await tagBasedDeProvisioning()
in lib/lambda-functions/application-handlers/src/orgEvents.ts
9 2 3
tableName: name()
in lib/constructs/permission-set-crud.ts
12 2 2
await streamToString()
in lib/lambda-functions/user-interface-handlers/src/permissionSetCu.ts
15 1 1
credentials: fromTemporaryCredentials()
in lib/lambda-functions/helpers/src/ssmParamReader.ts
5 1 3
export async function streamToString()
in lib/lambda-functions/helpers/src/utilities.ts
8 1 1
constructor()
in lib/lambda-functions/helpers/src/utilities.ts
3 1 1
credentials: fromTemporaryCredentials()
in lib/lambda-functions/current-config-handlers/src/update-custom-resource.ts
5 1 3
credentials: fromTemporaryCredentials()
in lib/lambda-functions/current-config-handlers/src/import-permission-sets.ts
5 1 3
credentials: fromTemporaryCredentials()
in lib/lambda-functions/current-config-handlers/src/trigger-parentSM.ts
5 1 3
credentials: fromTemporaryCredentials()
in lib/lambda-functions/application-handlers/src/permissionSetSync.ts
5 1 3