microsoft / HoloLensForCV
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 279 units with 5,349 lines of code in units (44.2% of code).
    • 0 very complex units (0 lines of code)
    • 2 complex units (214 lines of code)
    • 5 medium complex units (675 lines of code)
    • 16 simple units (915 lines of code)
    • 256 very simple units (3,545 lines of code)
0% | 4% | 12% | 17% | 66%
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
cpp0% | 4% | 14% | 16% | 63%
h0% | 0% | 0% | 42% | 57%
cs0% | 0% | 0% | 10% | 89%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
Shared/Audio0% | 53% | 0% | 34% | 11%
Shared/HoloLensForCV0% | 0% | 42% | 15% | 42%
Shared/Graphics0% | 0% | 0% | 24% | 75%
Tools/StreamerVLC0% | 0% | 0% | 49% | 50%
Shared/Holographic0% | 0% | 0% | 31% | 68%
Shared/Rendering0% | 0% | 0% | 11% | 88%
Tools/Recorder0% | 0% | 0% | 23% | 76%
Tools/ReceiverVLC0% | 0% | 0% | 19% | 80%
Shared/Io0% | 0% | 0% | 0% | 100%
Tools/ReceiverPV0% | 0% | 0% | 0% | 100%
Tools/StreamerPV0% | 0% | 0% | 0% | 100%
Shared/OpenCVHelpers0% | 0% | 0% | 0% | 100%
Shared/Debugging0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
HRESULT AudioStreamReader::Initialize()
in Shared/Audio/AudioStreamReader.cpp
110 27 1
HRESULT AudioFileReader::Initialize()
in Shared/Audio/AudioFileReader.cpp
104 26 1
void MediaFrameReaderContext::FrameArrived()
in Shared/HoloLensForCV/MediaFrameReaderContext.cpp
190 17 2
201 16 0
void SensorFrameRecorderSink::Send()
in Shared/HoloLensForCV/SensorFrameRecorderSink.cpp
136 16 1
SensorType MediaFrameSourceGroup::GetSensorType()
in Shared/HoloLensForCV/MediaFrameSourceGroup.cpp
78 11 1
Concurrency::task SensorFrameReceiver::ReceiveSensorFrameAsync()
in Shared/HoloLensForCV/SensorFrameReceiver.cpp
70 11 1
void SensorFrameStreamer::Enable()
in Shared/HoloLensForCV/SensorFrameStreamer.cpp
45 10 1
void AppMain::OnUpdate()
in Tools/StreamerVLC/AppMain.cpp
99 9 2
HRESULT OmnidirectionalSound::Initialize()
in Shared/Audio/OmnidirectionalSound.cpp
48 8 2
void SlateMaterial::CreateDeviceDependentResources()
in Shared/Rendering/SlateMaterial.cpp
81 8 0
private async void OnServerConnectionEstablished()
in Tools/ReceiverVLC/MainPage.xaml.cs
62 8 1
void AppMain::OnSpeechQualityDegraded()
in Tools/Recorder/AppMain.cpp
30 8 2
HRESULT OmnidirectionalSound::Initialize()
in Shared/Audio/OmnidirectionalSound.cpp
43 7 2
76 7 2
void Tick()
in Shared/Graphics/Include/Graphics/StepTimer.h
48 7 1
35 7 3
51 7 0
static HRESULT SetupXAudio2()
in Shared/Audio/Include/Audio/XAudio2Helpers.h
48 6 4
void SensorFrameRecorder::ReportCameraCalibrationInformation()
in Shared/HoloLensForCV/SensorFrameRecorder.cpp
48 6 1