microsoft / XamlBehaviorsWpf
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 359 units with 4,709 lines of code in units (61.8% of code).
    • 0 very complex units (0 lines of code)
    • 1 complex units (79 lines of code)
    • 14 medium complex units (873 lines of code)
    • 40 simple units (1,280 lines of code)
    • 304 very simple units (2,477 lines of code)
0% | 1% | 18% | 27% | 52%
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% | 18% | 27% | 52%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/Microsoft.Xaml.Behaviors/Core0% | 4% | 24% | 32% | 38%
src/Microsoft.Xaml.Behaviors/Layout0% | 0% | 32% | 28% | 39%
src/Microsoft.Xaml.Behaviors0% | 0% | 7% | 27% | 65%
src/Microsoft.Xaml.Behaviors/Media0% | 0% | 33% | 0% | 66%
src/Microsoft.Xaml.Behaviors/Input0% | 0% | 0% | 6% | 93%
src0% | 0% | 0% | 0% | 100%
src/Microsoft.Xaml.Behaviors.Design0% | 0% | 0% | 0% | 100%
src/Microsoft.Xaml.Behaviors.DesignTools0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private static List FindTargetElements()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
79 27 5
internal override void UpdateLayoutTransitionCore()
in src/Microsoft.Xaml.Behaviors/Layout/FluidMoveBehavior.cs
120 24 4
private static Storyboard CreateLayoutTransitionStoryboard()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
84 19 3
internal static bool EvaluateImpl()
in src/Microsoft.Xaml.Behaviors/ComparisonLogic.cs
55 18 3
private static DependencyProperty LayoutPropertyFromTimeline()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
41 18 2
protected override void Invoke()
in src/Microsoft.Xaml.Behaviors/Core/ChangePropertyAction.cs
79 16 1
protected override bool GoToStateCore()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
91 16 6
internal static Rect GetLayoutRect()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
55 16 1
private static Dictionary GetOldOpacities()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
43 13 5
private void OnCollectionChanged()
in src/Microsoft.Xaml.Behaviors/AttachableCollection.cs
65 12 2
protected override void Invoke()
in src/Microsoft.Xaml.Behaviors/Core/RemoveElementAction.cs
50 12 1
private Storyboard CreateTransitionStoryboard()
in src/Microsoft.Xaml.Behaviors/Layout/FluidMoveBehavior.cs
56 12 4
protected override void Invoke()
in src/Microsoft.Xaml.Behaviors/Media/StoryboardAction.cs
48 12 1
internal void InvokeImpl()
in src/Microsoft.Xaml.Behaviors/Core/PrototypingActions.cs
40 11 1
private void AssociatedObject_LayoutUpdated()
in src/Microsoft.Xaml.Behaviors/Layout/FluidMoveBehavior.cs
46 11 2
private static bool EvaluateComparable()
in src/Microsoft.Xaml.Behaviors/ComparisonLogic.cs
42 10 3
protected override void Invoke()
in src/Microsoft.Xaml.Behaviors/Core/CallMethodAction.cs
30 10 1
private static bool FinishesWithZeroOpacity()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
29 10 4
private static VisualTransition FindTransition()
in src/Microsoft.Xaml.Behaviors/Core/ExtendedVisualStateManager.cs
36 10 3
protected override void Invoke()
in src/Microsoft.Xaml.Behaviors/InvokeCommandAction.cs
30 10 1