Quick Search
Browse
Pages
Blog
Labels
Attachments
Mail
Advanced
What’s New
Space Directory
Feed Builder
Keyboard Shortcuts
Confluence Gadgets
Log In
Sign Up
Dashboard
Sonar
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
More colours
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
tinymce.confluence.insert_menu.macro_desc
Info
JIRA Issue
Status
Gallery
Tasklist
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<table class="wysiwyg-macro" data-macro-name="unmigrated-inline-wiki-markup" data-macro-parameters="atlassian-macro-output-type=BLOCK" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e3VubWlncmF0ZWQtaW5saW5lLXdpa2ktbWFya3VwOmF0bGFzc2lhbi1tYWNyby1vdXRwdXQtdHlwZT1CTE9DS30&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre>{iframe:src=http://update.sonarsource.org/plugins/abacus.html|width=700|height=250|frameborder=0} Your browser does not support iframes. {iframe}</pre></td></tr></table><h1><span style="color: rgb(0,0,0);">Description / Features</span></h1><p style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">This plug-in estimates the complexity of each file in order to help you use the "abacus methodology" ("méthode des abaques" in French).</span></p><p style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">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.</span></p><h3 style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">Example of Abacus</span></h3><table class="confluenceTable"><tbody><tr><td colspan="2" rowspan="2" class="confluenceTd"> </td><td class="highlight confluenceTd" colspan="4" style="text-align: center;"><span style="color: rgb(0,0,0);">Complexity of the Change</span></td></tr><tr><td class="highlight confluenceTd" colspan="1"><span style="color: rgb(0,0,0);">Simple</span></td><td class="highlight confluenceTd" colspan="1"><span style="color: rgb(0,0,0);">Medium</span></td><td class="highlight confluenceTd" colspan="1"><span style="color: rgb(0,0,0);">Complex</span></td><td class="highlight confluenceTd" colspan="1"><span style="color: rgb(0,0,0);">Very complex</span></td></tr><tr><td class="highlight confluenceTd" rowspan="4"><p style="text-align: center;"><span style="color: rgb(0,0,0);">Complexity</span></p><p style="text-align: center;"><span style="color: rgb(0,0,0);">of the</span></p><p style="text-align: center;"><span style="color: rgb(0,0,0);">File</span></p></td><td class="highlight confluenceTd"><span style="color: rgb(0,0,0);">Simple</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">0.1</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">0.3</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">0.8</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">1.5</span></td></tr><tr><td class="highlight confluenceTd"><span style="color: rgb(0,0,0);">Medium</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">0.3</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">0.6</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">1.8</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">3.0</span></td></tr><tr><td class="highlight confluenceTd" colspan="1"><span style="color: rgb(0,0,0);">Complex</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">0.6</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">1.2</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">3.0</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">5.0</span></td></tr><tr><td class="highlight confluenceTd" colspan="1"><span style="color: rgb(0,0,0);">Very complex</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">1.0</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">2.0</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">5.0</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">8.0</span></td></tr></tbody></table><p style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">Values are in man days.</span></p><p style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">Interpretation:</span></p><ul><li style="text-align: justify;"><span style="color: rgb(0,0,0);">According to this abacus, the effort of a complex change in a simple file would be estimated to 0.8 man days.</span></li><li style="text-align: justify;"><span style="color: rgb(0,0,0);">According to this abacus, the effort of a very complex change in a complex file would be estimated to 5.0 man days.</span></li></ul><h3 style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">Features</span></h3><p><span style="color: rgb(0,0,0);">The complexity of a file is computed according to its cyclomatic complexity.</span></p><p><span style="color: rgb(0,0,0);">The default values are (estimation for a Java project):</span></p><table class="confluenceTable"><tbody><tr><th class="confluenceTh"><span style="color: rgb(0,0,0);">Abacus Complexity</span></th><th class="confluenceTh"><span style="color: rgb(0,0,0);">Cyclomatic Complexity</span></th></tr><tr><td class="confluenceTd"><span style="color: rgb(0,0,0);">Simple</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);"><= 20</span></td></tr><tr><td class="confluenceTd"><span style="color: rgb(0,0,0);">Medium</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">20 < X <= 50</span></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">Complex</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">50 < X <= 100</span></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">Very complex</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">> 100</span></td></tr></tbody></table><p><span style="color: rgb(0,0,0);">See the <a class="confluence-link" href="#Configuration" data-anchor="Configuration" data-linked-resource-default-alias="Configuration" data-base-url="http://docs.codehaus.org">Configuration</a> section to set your own thresholds.</span></p><p><span style="color: rgb(0,0,0);"><br /></span></p><p>At file level, you can either use the Abacus tab or create a <a class="confluence-link" href="/pages/viewpage.action?pageId=230395194" data-linked-resource-id="230395194" data-linked-resource-type="page" data-linked-resource-default-alias="Measures Service / Filters" data-base-url="http://docs.codehaus.org">filter</a> to display the abacus complexity measure.</p><p><span style="color: rgb(0,0,0);"><img class="confluence-embedded-image" confluence-query-params="effects=drop-shadow" src="/download/attachments/231080127/abacus-tab.png?version=1&modificationDate=1369361525354&effects=drop-shadow" data-image-src="/download/attachments/231080127/abacus-tab.png?version=1&modificationDate=1369361525354&effects=drop-shadow" data-linked-resource-id="231375621" data-linked-resource-type="attachment" data-linked-resource-default-alias="abacus-tab.png" data-base-url="http://docs.codehaus.org" data-linked-resource-container-id="231080127" title="null > abacus-tab.png"><br /></span></p><p><span style="color: rgb(0,0,0);font-size: 10.0pt;line-height: 13.0pt;"><br />At module or project level, a widget is available to display the average abacus complexity and the abacus complexity distribution.</span></p><p><span style="color: rgb(0,0,0);">The abacus complexity distribution can be displayed either in number of files or percentage.</span></p><p><span style="color: rgb(0,0,0);">See screenshots below.</span></p><p><span style="color: rgb(0,0,0);"><img class="confluence-embedded-image" confluence-query-params="effects=drop-shadow" src="/download/attachments/231080127/numberOfFilesDistribution.PNG?version=1&modificationDate=1369361525384&effects=drop-shadow" data-image-src="/download/attachments/231080127/numberOfFilesDistribution.PNG?version=1&modificationDate=1369361525384&effects=drop-shadow" data-linked-resource-id="231375623" data-linked-resource-type="attachment" data-linked-resource-default-alias="numberOfFilesDistribution.PNG" data-base-url="http://docs.codehaus.org" data-linked-resource-container-id="231080127" title="null > numberOfFilesDistribution.PNG" data-element-title="numberOfFilesDistribution.PNG"><br /></span></p><p><span style="color: rgb(0,0,0);"><img class="confluence-embedded-image" confluence-query-params="effects=drop-shadow" src="/download/attachments/231080127/percentageDistribution.PNG?version=1&modificationDate=1369361525372&effects=drop-shadow" data-image-src="/download/attachments/231080127/percentageDistribution.PNG?version=1&modificationDate=1369361525372&effects=drop-shadow" data-linked-resource-id="231375622" data-linked-resource-type="attachment" data-linked-resource-default-alias="percentageDistribution.PNG" data-base-url="http://docs.codehaus.org" data-linked-resource-container-id="231080127" title="null > percentageDistribution.PNG" data-element-title="percentageDistribution.PNG"><br /></span></p><h3 style="margin-left: 0.0px;text-align: justify;"><span style="color: rgb(0,0,0);">Why using this plug-in?</span></h3><ul><li style="text-align: justify;"><span style="color: rgb(0,0,0);">To help you estimate your effort of change more accurately and in a quicker way.</span></li><li style="text-align: justify;"><span style="color: rgb(0,0,0);">To help clients and providers argue less about the effort of change as they will have a factual way to estimate the complexity of each file.</span></li></ul><h1><span style="color: rgb(0,0,0);">Installation</span></h1><ol><li>Install the Abacus plugin through the <a href="http://docs.codehaus.org/display/SONAR/Update+Center" rel="nofollow">Update Center</a> or download it into the SONAR_HOME/extensions/plugins directory</li><li>Restart the Sonar server</li></ol><h1><span style="color: rgb(0,0,0);">Configuration</span></h1><h3><span style="color: rgb(0,0,0);">Properties</span></h3><table class="confluenceTable"><tbody><tr><th class="confluenceTh"><span style="color: rgb(0,0,0);">Property</span></th><th class="confluenceTh"><p><span style="color: rgb(0,0,0);">Default value</span></p></th><th class="confluenceTh"><span style="color: rgb(0,0,0);">Description</span></th></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);"><strong>sonar.abacus.complexityThresholds</strong></span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">Simple:20;Medium:50;Complex:100;Very Complex</span></td><td colspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">To set your own thresholds to compute the abacus complexity.</span></p><p><span style="color: rgb(0,0,0);">Usage: ThresholdName1:ThresholdComplexity1;ThresholdName2:ThresholdComplexity2;...;ThresholdNameN</span></p></td></tr></tbody></table><p><span style="color: rgb(0,0,0);font-size: 1.4em;font-weight: bold;line-height: normal;">Widget Parameters</span></p><table class="confluenceTable"><tbody><tr><th class="confluenceTh"><span style="color: rgb(0,0,0);">Parameter</span></th><th class="confluenceTh"><span style="color: rgb(0,0,0);">Default value</span></th><th class="confluenceTh"><span style="color: rgb(0,0,0);">Description</span></th></tr><tr><td class="confluenceTd"><span style="color: rgb(0,0,0);"><strong>defaultColors</strong></span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">33cc33,ffff33,ff9900,ff0033,000000</span></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">Coma-separated list of colors (hexadecimal format) for the pie chart display.</span></p><p><span style="color: rgb(0,0,0);">Make sure to have at least as many colors as levels of complexity in your abacus.</span></p><p><span style="color: rgb(0,0,0);">Default value is green, yellow, orange, red and black.</span></p></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);"><strong>defaultDisplay</strong></span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">files</span></td><td colspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">To set the default display: number of files distribution or percentage distribution.</span></p><p><span style="color: rgb(0,0,0);">Possible values:</span></p><ul class="bullet" style="margin-left: 25.0px;"><li><span style="color: rgb(0,0,0);">files</span></li><li><span style="color: rgb(0,0,0);">percentage</span></li></ul></td></tr></tbody></table><p><span style="color: rgb(0,0,0);"><br /></span></p><h1><span style="color: rgb(0,0,0);">Known Limitations</span></h1><ol><li><span style="color: rgb(0,0,0);">Drill-down from the average abacus complexity of a module/project does not work due to the following issue in Sonar Core: <span style="color: rgb(51,102,255);"><a href="http://jira.codehaus.org/browse/SONAR-3233"><span style="color: rgb(51,102,255);">SONAR-3233</span></a></span>.</span></li><li><span style="color: rgb(0,0,0);">Differential views are not implemented.</span></li><li><span style="color: rgb(0,0,0);">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.</span></li></ol><h1>Change Log</h1><p><img class="editor-inline-macro" src="/plugins/servlet/confluence/placeholder/macro?definition=e2ppcmFpc3N1ZXM6YW5vbnltb3VzPXRydWV8dGl0bGU9UmVsZWFzZSAwLjF8aGVpZ2h0PTkwfHdpZHRoPTkwMHxjb2x1bW5zPXR5cGU7a2V5O3N1bW1hcnk7cHJpb3JpdHk7c3RhdHVzO3Jlc29sdXRpb258dXJsPWh0dHA6Ly9qaXJhLmNvZGVoYXVzLm9yZy9zci9qaXJhLmlzc3Vldmlld3M6c2VhcmNocmVxdWVzdC14bWwvdGVtcC9TZWFyY2hSZXF1ZXN0LnhtbD9maXhmb3I9MTg0MjImcGlkPTExOTExfQ&locale=en_GB&version=2" data-macro-name="jiraissues" data-macro-parameters="anonymous=true|columns=type;key;summary;priority;status;resolution|height=90|title=Release 0.1|url=http://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor\=18422&pid\=11911|width=900"></p><p> </p><p><span style="color: rgb(0,0,0);"><br /></span></p>
Please type the word appearing in the picture.
Attachments
Labels
Location
Watch this page
< Edit
Preview >
Loading…
Save
Cancel
Next hint
search
attachments
weblink
advanced