microsoft / Cognitive-Samples-IntelligentKiosk
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 1,403 units with 18,301 lines of code in units (52.6% of code).
    • 0 very complex units (0 lines of code)
    • 2 complex units (223 lines of code)
    • 31 medium complex units (1,727 lines of code)
    • 93 simple units (3,276 lines of code)
    • 1,277 very simple units (13,075 lines of code)
0% | 1% | 9% | 17% | 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
cs0% | 1% | 9% | 17% | 71%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
Kiosk/Views0% | 1% | 8% | 18% | 70%
Kiosk/Controls0% | 0% | 10% | 14% | 75%
Kiosk/ServiceHelpers0% | 0% | 14% | 20% | 65%
Kiosk0% | 0% | 8% | 19% | 71%
Kiosk/Models0% | 0% | 0% | 0% | 100%
Kiosk/Extensions0% | 0% | 0% | 0% | 100%
Kiosk/KioskRuntimeComponent0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private void UpdateResultDetails()
in Kiosk/Views/FaceApiExplorer/FaceApiExplorerPage.xaml.cs
96 38 0
public async Task AddImage()
in Kiosk/Views/DigitalAssetManagement/ImageInsightsViewModel.cs
127 29 1
protected override DataTemplate SelectTemplateCore()
in Kiosk/Controls/TemplateSelectors.cs
57 25 2
private static async Task FindSimilarOrInsertAsync()
in Kiosk/ServiceHelpers/FaceListManager.cs
112 24 4
IEnumerable GetFaceAttributesFlags()
in Kiosk/Views/DigitalAssetManagement/ImageInsightsViewModel.cs
88 24 1
private void UpdateActiveDemos()
in Kiosk/Views/DemoLauncher/DemoLauncherPage.xaml.cs
75 19 0
private async Task AnalyzeTextAsync()
in Kiosk/Views/TextAnalyticsExplorer/TextAnalyticsExplorer.xaml.cs
76 19 0
private async Task ProcessPeopleInsightsAsync()
in Kiosk/Views/VideoInsights/VideoInsightsPage.xaml.cs
94 17 2
private void ShowFaceTrackingVisualization()
in Kiosk/Controls/CameraControl.xaml.cs
59 16 2
private void LoadAppRoamingSettings()
in Kiosk/SettingsHelper.cs
72 16 0
public async Task StartStreamAsync()
in Kiosk/Controls/CameraControl.xaml.cs
64 15 2
void SetOffset()
in Kiosk/Controls/Overlays/Primitives/OverlayLabel.xaml.cs
69 15 0
private async Task UpdateResultsAsync()
in Kiosk/Views/VisionApiExplorer.xaml.cs
89 15 1
void UpdateOverlays()
in Kiosk/Controls/Overlays/Primitives/OverlayControl.xaml.cs
57 14 0
void SetPosition()
in Kiosk/Controls/Overlays/Primitives/OverlayLabel.xaml.cs
63 14 0
public static async Task UpdatePersonGroupsWithNewRecModelAsync()
in Kiosk/ServiceHelpers/FaceServiceHelper.cs
63 14 3
private void ShowNotFoundReceiptFields()
in Kiosk/Views/FormRecognizer/ReceiptView.xaml.cs
26 13 0
private static string GetBingSearchMarketFromLanguage()
in Kiosk/Views/BingNewsAnalytics.xaml.cs
19 12 1
19 12 1
private static bool IsLanguageSupportedByKeyPhraseAPI()
in Kiosk/Views/BingNewsAnalytics.xaml.cs
20 12 1