aws-amplify / aws-sdk-android
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 73,951 units with 619,398 lines of code in units (80.1% of code).
    • 39 very complex units (4,119 lines of code)
    • 268 complex units (16,894 lines of code)
    • 2,275 medium complex units (85,240 lines of code)
    • 5,214 simple units (122,318 lines of code)
    • 66,155 very simple units (390,827 lines of code)
<1% | 2% | 13% | 19% | 63%
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
java<1% | 2% | 13% | 19% | 63%
py0% | 0% | 27% | 32% | 39%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
aws-android-sdk-ec21% | 2% | 13% | 17% | 64%
aws-android-sdk-cognitoidentityprovider1% | 4% | 12% | 21% | 59%
aws-android-sdk-pinpoint<1% | 4% | 18% | 19% | 56%
aws-android-sdk-iot<1% | 2% | 15% | 21% | 60%
aws-android-sdk-transcribe1% | 3% | 16% | 17% | 60%
aws-android-sdk-ddb1% | 4% | 13% | 19% | 60%
aws-android-sdk-ddb-mapper4% | 1% | 6% | 11% | 75%
aws-android-sdk-kms<1% | 2% | 17% | 19% | 59%
aws-android-sdk-cloudwatch2% | 7% | 16% | 19% | 53%
aws-android-sdk-machinelearning7% | 0% | 16% | 15% | 60%
aws-android-sdk-lex1% | 3% | 16% | 16% | 61%
aws-android-sdk-translate1% | 2% | 17% | 14% | 63%
aws-android-sdk-comprehend<1% | 4% | 16% | 16% | 62%
aws-android-sdk-connect0% | 1% | 14% | 19% | 64%
aws-android-sdk-s30% | 3% | 8% | 11% | 77%
aws-android-sdk-core0% | 2% | 11% | 16% | 69%
aws-android-sdk-location0% | 2% | 15% | 23% | 59%
aws-android-sdk-chimesdkmessaging0% | 1% | 16% | 21% | 60%
aws-android-sdk-rekognition0% | <1% | 12% | 23% | 63%
aws-android-sdk-ses0% | 1% | 9% | 24% | 64%
aws-android-sdk-polly0% | 4% | 17% | 13% | 64%
aws-android-sdk-logs0% | 1% | 11% | 29% | 57%
aws-android-sdk-kinesis0% | 1% | 12% | 25% | 60%
aws-android-sdk-kinesisvideo-archivedmedia0% | 3% | 9% | 20% | 67%
aws-android-sdk-mobile-client0% | 2% | 20% | 17% | 59%
aws-android-sdk-textract0% | 1% | 12% | 19% | 66%
aws-android-sdk-chimesdkidentity0% | <1% | 11% | 25% | 63%
aws-android-sdk-kinesisvideo0% | <1% | 6% | 17% | 75%
aws-android-sdk-sns0% | <1% | 6% | 27% | 65%
aws-android-sdk-connectparticipant0% | 1% | 13% | 21% | 64%
aws-android-sdk-sqs0% | 0% | 12% | 23% | 63%
aws-android-sdk-sdb0% | 0% | 13% | 8% | 77%
aws-android-sdk-ddb-document0% | 0% | 7% | 16% | 75%
aws-android-sdk-cognitoauth0% | 0% | 9% | 24% | 66%
aws-android-sdk-lambda0% | 0% | 8% | 7% | 83%
CircleciScripts0% | 0% | 27% | 32% | 39%
aws-android-sdk-auth-userpools0% | 0% | 6% | 0% | 93%
aws-android-sdk-kinesisvideo-signaling0% | 0% | 9% | 22% | 67%
aws-android-sdk-sagemaker-runtime0% | 0% | 12% | 12% | 75%
aws-android-sdk-apigateway-core0% | 0% | 13% | 23% | 63%
aws-android-sdk-testutils0% | 0% | 4% | 6% | 88%
aws-android-sdk-auth-core0% | 0% | 0% | 9% | 90%
aws-android-sdk-auth-google0% | 0% | 0% | 24% | 75%
aws-android-sdk-auth-ui0% | 0% | 0% | 10% | 89%
aws-android-sdk-auth-facebook0% | 0% | 0% | 27% | 72%
aws-android-sdk-cognitoidentityprovider-asf0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public boolean equals()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/Instance.java
81 115 1
public boolean equals()
in aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/services/cognitoidentityprovider/model/UserPoolType.java
165 97 1
public boolean equals()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/Image.java
53 73 1
public boolean equals()
in aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/services/cognitoidentityprovider/model/UserPoolClientType.java
130 73 1
public boolean equals()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/RunInstancesRequest.java
51 70 1
public boolean equals()
in aws-android-sdk-iot/src/main/java/com/amazonaws/services/iot/model/Action.java
111 70 1
public boolean equals()
in aws-android-sdk-kms/src/main/java/com/amazonaws/services/kms/model/KeyMetadata.java
115 70 1
public Request marshall()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/transform/RequestSpotFleetRequestMarshaller.java
216 67 1
public boolean equals()
in aws-android-sdk-machinelearning/src/main/java/com/amazonaws/services/machinelearning/model/GetMLModelResult.java
111 67 1
public boolean equals()
in aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/services/cognitoidentityprovider/model/CreateUserPoolRequest.java
117 67 1
public boolean equals()
in aws-android-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/MetricAlarm.java
114 67 1
public boolean equals()
in aws-android-sdk-transcribe/src/main/java/com/amazonaws/services/transcribe/model/TranscriptionJob.java
112 67 1
public boolean equals()
in aws-android-sdk-pinpoint/src/main/java/com/amazonaws/services/pinpoint/model/CampaignResponse.java
102 64 1
public boolean equals()
in aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/services/cognitoidentityprovider/model/CreateUserPoolClientRequest.java
116 64 1
public boolean equals()
in aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/services/cognitoidentityprovider/model/UpdateUserPoolClientRequest.java
115 64 1
public static InstanceType fromValue()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/InstanceType.java
125 62 1
public Request marshall()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/transform/RequestSpotInstancesRequestMarshaller.java
201 62 1
public boolean equals()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/NetworkInterface.java
45 61 1
public boolean equals()
in aws-android-sdk-iot/src/main/java/com/amazonaws/services/iot/model/Job.java
102 61 1
public Request marshall()
in aws-android-sdk-ec2/src/main/java/com/amazonaws/services/ec2/model/transform/RunInstancesRequestMarshaller.java
192 59 1