cdklabs / cdk-cloudformation
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,023 units with 9,523 lines of code in units (63.4% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 1 medium complex units (79 lines of code)
    • 2 simple units (192 lines of code)
    • 1,020 very simple units (9,252 lines of code)
0% | 0% | <1% | 2% | 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% | 2% | 97%
js0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
projenrc0% | 0% | 18% | 44% | 37%
packages/@cdk-cloudformation/awsqs-checkpoint-cloudguardqs-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-vpc-vpcqs-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-artifactory-existingvpc-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/splunk-enterprise-quickstart-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-artifactory-newvpc-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-vpc-multiaz-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-linux-bastion-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-ec2-linuxbastionqs-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/spot-elastigroup-group0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-artifactory-ec2instance-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-xray-ec2instance-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/jfrog-artifactory-core-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-aws-s3bucket0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/logzio-awscostandusage-cur-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-azuread-application0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/logzio-kinesisshipper-kinesisshipper-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/logzio-autodeploymentlogzio-cloudwatch-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/stackery-open-bastion-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/mongodb-atlas-cluster0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-iridium-cloudconnectqs-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-google-storagebucket0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/logzio-myservice-myname-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/logzio-awssecurityhub-collector-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-eks-cluster0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-pagerduty-service0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/generic-database-schema0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/datadog-monitors-monitor0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-github-repository0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-aws-s3bucketobject0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/mongodb-atlas-databaseuser0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/datadog-slos-slo0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-ad-user0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-cloudflare-record0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-kubernetes-helm0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/alexa-ask-skill0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-azuread-user0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-digitalocean-droplet0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-aws-keypair0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/mongodb-atlas-projectipaccesslist0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/atlassian-opsgenie-integration0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-random-string0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/trendmicro-cloudonecontainer-helm0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/aqua-enterprise-kubeenforcer0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/gremlin-agent-helm0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/sysdig-helm-agent0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/aqua-enterprise-scanner0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/mongodb-atlas-networkpeering0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/snyk-container-helm0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/aqua-enterprise-enforcer0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/aqua-enterprise-server0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/symphonia-opensource-cloudformationartifactsbucket-module0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/datadog-monitors-downtime0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/atlassian-opsgenie-team0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/mongodb-atlas-project0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-random-uuid0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/tf-ad-computer0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-kubernetes-resource0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/stocks-orders-marketorder0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/datadog-integrations-aws0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/awsqs-kubernetes-get0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/atlassian-opsgenie-user0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/fireeye-cloudintegrations-cloudwatch0% | 0% | 0% | 0% | 100%
registry0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/generic-transcribe-vocabulary0% | 0% | 0% | 0% | 100%
packages/@cdk-cloudformation/datadog-dashboards-dashboard0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
constructor()
in projenrc/readme.ts
79 11 2
constructor()
in projenrc/type-package.ts
169 7 2
export function generatePackages()
in projenrc/generate-packages.ts
23 6 2
async function main()
in registry/refresh.js
16 5 0
public preSynthesize()
in projenrc/type-package.ts
29 3 0
constructor()
in projenrc/aws-infrastructure.ts
16 3 2
export function updateReadme()
in projenrc/generate-packages.ts
19 3 2
export function toJson_CfnStorageBucketProps()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
23 3 1
export function toJson_LabelsDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
8 3 1
export function toJson_CorsDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
10 3 1
export function toJson_EncryptionDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
7 3 1
export function toJson_LifecycleRuleDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
8 3 1
export function toJson_LoggingDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
8 3 1
export function toJson_RetentionPolicyDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
8 3 1
export function toJson_VersioningDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
7 3 1
export function toJson_WebsiteDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
8 3 1
export function toJson_ActionDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
8 3 1
export function toJson_ConditionDefinition()
in packages/@cdk-cloudformation/tf-google-storagebucket/src/index.ts
15 3 1
export function toJson_CfnUserProps()
in packages/@cdk-cloudformation/tf-azuread-user/src/index.ts
29 3 1
export function toJson_CfnKubeEnforcerProps()
in packages/@cdk-cloudformation/aqua-enterprise-kubeenforcer/src/index.ts
17 3 1