aws-samples / amazon-sumerian-hosts
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 538 units with 5,749 lines of code in units (59.9% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 8 medium complex units (686 lines of code)
    • 28 simple units (927 lines of code)
    • 502 very simple units (4,136 lines of code)
0% | 0% | 11% | 16% | 71%
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
js0% | 0% | 11% | 16% | 71%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/core0% | 0% | 20% | 16% | 63%
docs_template0% | 0% | 43% | 13% | 43%
src/core/animpack0% | 0% | 5% | 13% | 81%
src/core/awspack0% | 0% | 6% | 27% | 65%
src/three.js/animpack0% | 0% | 0% | 21% | 78%
src/Babylon.js/animpack0% | 0% | 0% | 0% | 100%
src/Babylon.js0% | 0% | 0% | 0% | 100%
src/three.js0% | 0% | 0% | 0% | 100%
src/Babylon.js/awspack0% | 0% | 0% | 0% | 100%
src/three.js/awspack0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
static Mixin()
in src/core/animpack/AnimationPlayerInterface.js
122 22 1
function buildNav()
in docs_template/publish.js
155 22 1
static getDelaunayTriangulation()
in src/core/MathUtils.js
112 18 1
static all()
in src/core/Deferred.js
86 15 4
constructor()
in src/core/Deferred.js
69 14 1
function needsSignature()
in docs_template/publish.js
24 14 3
_startSpeech()
in src/core/awspack/AbstractTextToSpeechFeature.js
67 13 3
_setMacroSaccade()
in src/core/PointOfInterestFeature.js
51 11 1
static wait()
in src/core/Utils.js
40 10 5
static autoGenerateSSMLMarks()
in src/core/awspack/TextToSpeechUtils.js
53 10 3
_updateConfig()
in src/core/awspack/AbstractTextToSpeechFeature.js
39 10 2
_synthesizeSpeechmarks()
in src/core/awspack/AbstractTextToSpeechFeature.js
74 10 1
playNextAnimation()
in src/core/animpack/AnimationFeature.js
41 10 4
_updateBlendWeights()
in src/core/animpack/state/Blend1dState.js
35 10 0
play()
in src/core/animpack/state/QueueState.js
31 10 4
static initializeService()
in src/core/awspack/AbstractTextToSpeechFeature.js
59 9 3
async _onViseme()
in src/core/LipsyncFeature.js
70 9 1
addLayer()
in src/core/animpack/AnimationFeature.js
36 8 3
_onNext()
in src/core/GestureFeature.js
29 8 4
createGenericGestureArray()
in src/core/GestureFeature.js
33 8 1