microsoft / featuretimeline
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 384 units with 7,019 lines of code in units (45.8% of code).
    • 0 very complex units (0 lines of code)
    • 2 complex units (528 lines of code)
    • 11 medium complex units (1,070 lines of code)
    • 48 simple units (1,642 lines of code)
    • 323 very simple units (3,779 lines of code)
0% | 7% | 15% | 23% | 53%
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
tsx0% | 13% | 12% | 16% | 57%
ts0% | 4% | 16% | 27% | 51%
js0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/FeatureTimeline/react0% | 72% | 0% | 0% | 27%
src/PortfolioPlanning/Common0% | 9% | 3% | 23% | 64%
src/EpicRoadmap/redux0% | 0% | 37% | 36% | 26%
src/EpicRoadmap/react0% | 0% | 58% | 15% | 25%
src/PortfolioPlanning/Redux0% | 0% | 41% | 18% | 40%
src/FeatureTimeline/redux0% | 0% | 16% | 36% | 46%
src/Common/redux0% | 0% | 12% | 23% | 63%
src/Common/react0% | 0% | 8% | 39% | 52%
src/PortfolioPlanning/Components0% | 0% | 0% | 14% | 85%
src/PortfolioPlanning0% | 0% | 0% | 11% | 88%
src0% | 0% | 0% | 0% | 100%
src/Services0% | 0% | 0% | 0% | 100%
scripts0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public async AddWorkItemsToPlan()
in src/PortfolioPlanning/Common/Services/PortfolioPlanningDataService.ts
205 30 3
public render()
in src/FeatureTimeline/react/Components/FeatureTimelineGrid.tsx
323 27 0
export function getWorkItemIterationDuration()
in src/EpicRoadmap/redux/selectors/workItemStartEndIterationSelector.ts
120 23 6
export function epicTimelineReducer()
in src/PortfolioPlanning/Redux/Reducers/EpicTimelineReducer.ts
104 21 2
public render()
in src/EpicRoadmap/react/Components/EpicRoadmapGrid.tsx
248 20 0
export function getWorkItemDisplayDetails()
in src/EpicRoadmap/redux/selectors/workItemDisplayDetailsSelector.ts
71 19 9
function handlePortfolioItemsReceived()
in src/PortfolioPlanning/Redux/Reducers/EpicTimelineReducer.ts
128 19 2
export function getDisplayIterations()
in src/Common/redux/Selectors/displayIterationSelector.ts
54 16 5
function _getGridItems()
in src/EpicRoadmap/redux/selectors/EpicRoadmapGridViewSelector.ts
90 15 9
function getWorkItemDetails()
in src/FeatureTimeline/redux/selectors/workItemHierarchySelector.ts
48 14 5
export function getGridWorkItems()
in src/FeatureTimeline/redux/selectors/FeatureTimelineGridViewSelector.ts
87 13 10
public render()
in src/Common/react/Components/IterationRenderer.tsx
37 11 0
public async getWorkItemProjectIds()
in src/PortfolioPlanning/Common/Services/PortfolioPlanningDataService.ts
83 11 2
function deepExtend()
in src/EpicRoadmap/redux/selectors/dependencyTreeSelector.ts
19 10 1
function getWorkItemIterationDuration()
in src/FeatureTimeline/redux/selectors/workItemHierarchySelector.ts
39 10 6
private PortfolioPlanningQueryResultItems()
in src/PortfolioPlanning/Common/Services/PortfolioPlanningDataService.ts
38 10 2
export function parseUniquefiedIdentityName()
in src/PortfolioPlanning/Common/Utilities/Identity.ts
40 10 1
export function planDirectoryReducer()
in src/PortfolioPlanning/Redux/Reducers/PlanDirectoryReducer.ts
53 10 2
public render()
in src/Common/react/Components/WorkItem/WorkItemRenderer.tsx
70 9 0
export function workItemsReducer()
in src/EpicRoadmap/redux/modules/workItems/workItemReducer.ts
35 9 2