aws-samples / bioimage-search
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 360 units with 6,517 lines of code in units (68.6% of code).
    • 0 very complex units (0 lines of code)
    • 1 complex units (129 lines of code)
    • 10 medium complex units (733 lines of code)
    • 11 simple units (364 lines of code)
    • 338 very simple units (5,291 lines of code)
0% | 1% | 11% | 5% | 81%
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% | 28% | 15% | 3% | 53%
py0% | 0% | 22% | 8% | 68%
ts0% | 0% | 4% | 3% | 91%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
main/src/search-service0% | 28% | 15% | 3% | 53%
main/src/image-management0% | 0% | 25% | 6% | 68%
datasets/bbbc-021/scripts0% | 0% | 36% | 21% | 42%
main/src/image-artifact0% | 0% | 100% | 0% | 0%
main/src/embedding-compute0% | 0% | 78% | 0% | 21%
main/src/training-build0% | 0% | 81% | 0% | 18%
main/src/image-inspector0% | 0% | 68% | 0% | 32%
cli/bioims/src0% | 0% | 2% | 3% | 93%
main/src/training-configuration0% | 0% | 10% | 6% | 82%
main/src/search0% | 0% | 0% | 23% | 76%
main/src/training-compute0% | 0% | 0% | 34% | 65%
main/src/image-preprocessing0% | 0% | 0% | 64% | 35%
main/src/common0% | 0% | 0% | 11% | 88%
main/cdk0% | 0% | 0% | 0% | 100%
main/src/label0% | 0% | 0% | 0% | 100%
datasets/bbbc-021/cdk0% | 0% | 0% | 0% | 100%
main/src/tag0% | 0% | 0% | 0% | 100%
main/src/message0% | 0% | 0% | 0% | 100%
main/src/artifact0% | 0% | 0% | 0% | 100%
main/src/configuration0% | 0% | 0% | 0% | 100%
main/src/train0% | 0% | 0% | 0% | 100%
main/src/plate-preprocessing0% | 0% | 0% | 0% | 100%
main/src/process-plate0% | 0% | 0% | 0% | 100%
main/src/embedding-management0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private void searchByImageId()
in main/src/search-service/search/src/main/java/com/bioimage/search/App.java
129 29 1
def _train()
in datasets/bbbc-021/scripts/bbbc021-1-train-script.py
123 24 1
async function validatePlate()
in main/src/image-management/image-management.ts
55 19 1
def client()
in cli/bioims/src/bioims.py
30 14 2
def handler()
in main/src/image-artifact/lambda/default-artifact/default-artifact.py
121 14 2
def handler()
in main/src/image-inspector/image-inspector.py
51 13 2
async function populateSourcePlate()
in main/src/image-management/image-management.ts
91 13 2
def handler()
in main/src/training-build/training-build.py
61 13 2
def handler()
in main/src/embedding-compute/embedding-compute.py
114 13 2
function validateEmbedding()
in main/src/training-configuration/training-configuration.ts
18 12 1
private void start()
in main/src/search-service/search/src/main/java/com/bioimage/search/App.java
69 11 0
def load_training_data()
in datasets/bbbc-021/scripts/bbbc021-1-train-script.py
74 10 1
async function submitSearch()
in main/src/search/search.ts
58 9 1
def findCentersFromLabels()
in main/src/image-preprocessing/image-preprocessing.py
24 8 1
def getResponseBodyAsJson()
in cli/bioims/src/bioims.py
32 7 1
def getFsxInfo()
in main/src/training-compute/training-compute.py
44 7 0
async function getPlateImageStatus()
in main/src/image-management/image-management.ts
35 7 1
async function processTrainPlate()
in main/src/search/search.ts
43 7 2
def __init__()
in cli/bioims/src/bioims.py
8 6 2
def normalizeChannel()
in main/src/common/bioimageimage.py
19 6 2