Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This is a methodology widely used in France to estimate the effort of changes. Customers and providers agree on the abacus at the beginning of the maintenance process.

Example of Abacus

 Complexity of the Change
SimpleMediumComplexVery complex

Complexity

of the

File

Simple0.10.30.81.5
Medium0.30.61.83.0
Complex0.61.23.05.0
Very complex1.02.05.08.0

Values are in man days.

...

Abacus ComplexityCyclomatic Complexity
Simple<= 20
Medium20 < X <= 50
Complex50 < X <= 100
Very complex> 100

See the Configuration section to set your own thresholds.


At the file level, you can either use the Abacus tab or Abacus perspective or create a filter to display the abacus complexity measure.



At the module or project level, a widget is available to display the average abacus complexity and the abacus complexity distribution.

The abacus complexity distribution can be displayed either in number of files or percentage.

See screenshots below.



Why

...

use this plug-in?

  • To help you estimate your effort of change more quickly and accurately and in a quicker way.
  • To help clients and providers argue less settle arguments about the effort of change as they will have a factual way to estimate required to make a change by providing a fact-based method of understanding the complexity of each file.

Installation

  1. Install the plugin through the Update Center or download it into the SONARQUBE_HOME/extensions/plugins directory
  2. Restart the SonarQubeserver

Include Page
Include - Plugin Installation
Include - Plugin Installation

Configuration

Properties

Property

Default value

Description
sonar.abacus.complexityThresholdsSimple:20;Medium:50;Complex:100;Very Complex

To set your own thresholds to compute the abacus complexity.

Usage: ThresholdName1:ThresholdComplexity1;ThresholdName2:ThresholdComplexity2;...;ThresholdNameN

...

  1. Drill-down from the average abacus complexity of a module/project does not work due to the following issue in SonarQube: SONAR-3233.
  2. Differential views are not implemented.
  3. Compatibility with VIEWS: as each project can define its own abacus, this plug-in does not compute the abacus complexity and distribution for a view.

Change Log

JIRA Issues
anonymoustrue
titleVersion 0.1
height90
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=18422&pid=11911