awslabs / amazon-kinesis-aggregators
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 465 units with 4,397 lines of code in units (70.2% of code).
    • 0 very complex units (0 lines of code)
    • 2 complex units (248 lines of code)
    • 14 medium complex units (962 lines of code)
    • 19 simple units (653 lines of code)
    • 430 very simple units (2,534 lines of code)
0% | 5% | 21% | 14% | 57%
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
java0% | 5% | 21% | 14% | 57%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/main/java/com/amazonaws/services/kinesis/aggregators/configuration0% | 32% | 0% | 13% | 53%
src/main/java/com/amazonaws/services/kinesis/aggregators/datastore0% | 16% | 8% | 16% | 58%
src/main/java/com/amazonaws/services/kinesis/aggregators0% | 0% | 28% | 4% | 66%
src/main/java/com/amazonaws/services/kinesis/io0% | 0% | 33% | 5% | 60%
src/main/java/com/amazonaws/services/kinesis/aggregators/app0% | 0% | 31% | 43% | 25%
src/main/java/com/amazonaws/services/kinesis/aggregators/factory0% | 0% | 38% | 10% | 50%
src/main/java/com/amazonaws/services/kinesis/aggregators/metrics0% | 0% | 78% | 0% | 21%
src/main/java/com/amazonaws/services/kinesis/aggregators/annotations0% | 0% | 61% | 0% | 38%
src/main/java/com/amazonaws/services/kinesis/aggregators/consumer0% | 0% | 21% | 24% | 53%
src/main/java/com/amazonaws/services/kinesis/aggregators/cli0% | 0% | 0% | 89% | 10%
src/main/java/com/amazonaws/services/kinesis/aggregators/processor0% | 0% | 0% | 32% | 67%
src/main/java/com/amazonaws/services/kinesis/aggregators/summary0% | 0% | 0% | 22% | 77%
src/main/java/com/amazonaws/services/kinesis/io/serializer0% | 0% | 0% | 24% | 75%
sample/java/model0% | 0% | 0% | 0% | 100%
sample/java/producer0% | 0% | 0% | 0% | 100%
src/main/java/com/amazonaws/services/kinesis/aggregators/exception0% | 0% | 0% | 0% | 100%
src/main/java/com/amazonaws/services/kinesis/aggregators/idempotency0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public static List buildFromConfig()
in src/main/java/com/amazonaws/services/kinesis/aggregators/configuration/ExternalConfigurationModel.java
127 28 1
public void run()
in src/main/java/com/amazonaws/services/kinesis/aggregators/datastore/DynamoQueryEngine.java
121 26 0
public void initialize()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregator.java
106 22 1
public void contextInitialized()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/AggregatorsBeanstalkApp.java
79 20 1
public List getData()
in src/main/java/com/amazonaws/services/kinesis/io/JsonDataExtractor.java
83 19 1
public List getData()
in src/main/java/com/amazonaws/services/kinesis/io/ObjectExtractor.java
73 19 1
public void aggregateEvents()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregator.java
81 17 1
public AnnotationProcessor()
in src/main/java/com/amazonaws/services/kinesis/aggregators/annotations/AnnotationProcessor.java
69 16 1
public static AggregatorGroup buildFromConfig()
in src/main/java/com/amazonaws/services/kinesis/aggregators/factory/ExternallyConfiguredAggregatorFactory.java
82 16 4
protected void doAction()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/QueryByLabelServlet.java
63 15 2
public void run()
in src/main/java/com/amazonaws/services/kinesis/aggregators/datastore/DynamoQueryEngine.java
65 15 0
public void emit()
in src/main/java/com/amazonaws/services/kinesis/aggregators/metrics/CloudWatchMetricsEmitter.java
74 14 1
public List getData()
in src/main/java/com/amazonaws/services/kinesis/io/StringDataExtractor.java
64 14 1
public static void main()
in src/main/java/com/amazonaws/services/kinesis/aggregators/consumer/AggregatorConsumer.java
37 11 1
public boolean equals()
in src/main/java/com/amazonaws/services/kinesis/aggregators/LabelSet.java
31 11 1
public static Map getOpenShards()
in src/main/java/com/amazonaws/services/kinesis/aggregators/StreamAggregatorUtils.java
55 11 2
public Object toClass()
in src/main/java/com/amazonaws/services/kinesis/io/serializer/JsonSerializer.java
22 10 1
public void doAction()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/DateQueryServlet.java
56 9 2
private void respondWith()
in src/main/java/com/amazonaws/services/kinesis/aggregators/app/ListAggregateKeysServlet.java
41 9 2
public static void main()
in src/main/java/com/amazonaws/services/kinesis/aggregators/cli/AggregatorsCli.java
49 9 1