What is coming up for Sonar in 2013 ?

I recently wrote a post to list what was accomplished on the platform last year. Today, I am doing the continuation with even more exciting stuff: what we are going to do this year! What will be the main innovations? How the ecosystem will evolve? Which technical challenges are we going to face?

Cartography

This is our most ambitious project for the year and I should start by explaining what it is about. Behind this word, we group many features based on the dependencies between methods, attributes, classes, files, modules, projects, teams, departments… Here are the first use cases that we’ll cover:

  • Cross-sources navigation: ability to click in the UI on a method call to see its declaration, on an identifier to see its declaration, to click on a COBOL COPY preprocessing directive to see its content, to click on a C function declaration to know where this function is used…
  • Ability to find out which files include a C library file, a COBOL Copybook…

From there, we aim to provide the tooling to define and manage the architecture of an overall application portfolio. But I am talking about 2014 already…

Read the rest of this page »

Looking Back at 2012 Sonar Platform Accomplishments

A new year provides a good opportunity to look back at what was achieved the previous year. This is what I am going to do in this post for the Sonar platform.

Let’s start with a short version of this retrospective. Last year was made of:

  • 6 releases of Sonar platform
  • 200 releases of ecosystem products
  • 65,000 downloads of Sonar
  • 12,000+ messages on mailing lists

So I suppose, we can call this a pretty active year for the community. Now, the longer version:

Read the rest of this page »

What is coming up for Sonar in 2012 ?

I wrote a few weeks ago a post on what was accomplished on the platform last year. Today, even if the year is already well started, I am taking some time to discuss the plans for this year !

In 2011, a lot of efforts were invested for supporting Continuous Inspection. This year, we will continue to increase the value of the platform by bringing new and unique functionality, enforcing integration to development environment, consolidating support of existing languages and adding new ones.

Complete support of Continuous Inspection

The plan for this year is to complete what was started on Continuous Inspection last year and add the ability to:

  • customize the workflow for reviews
  • create a review at any place in the code
  • change severity of a violation
  • group reviews into an action plan
  • track project activity through widgets
  • get notified in case of new violations on a project
  • improve accuracy for new violation detection mechanism

Most of this was completed already as it was part of Sonar 2.13 and 2.14

Developer Cockpit

Since developers have now the ability to understand and follow continuously the quality of their application, this is now time to provide them with a service that shows their own contribution to projects: the developer cockpit. The idea is that the developer will have access to a dashboard similar to the current one that will show only his data.

Global / Governance dashboards

The platform already allows to customize project dashboards but there is currently no way to create global dashboards to get for example in the same page :

  • the list of projects with a technical debt that increased during the past 30 days
  • my most valuable measures on my favorite projects
  • the reviews that were created last across all projects
  • the open reviews assigned to me
  • the last quality default I introduced

Code analysis technology

SonarSource is going to open source its source code analysis technology “SSLR” to make it available for all Sonar plugins. The objective is to make all languages plugins, whether open source or close source, better. SSLR will provide all standard and complex stacks to analyse code : lexer, preprocessor, parser, AST generation, symbols table, XPath requests on AST, control flow… The first language we are looking at improving then is going to be Javascript.

Code Churn metrics

When doing refactoring and fixing quality defects, it can be very valuable to know what has been the activity during the past months on the source files we’re working on. Indeed the ROI of the same kind of refactoring can be far more important on files which are often updated than on files that haven’t changed during the past two years. That’s another input to determine the priority of remediation activities.

Language coverage

On the language side, this year was prolific already with the contribution from the community of a python and a delphi plugin. But this is not it ! Two c++ plugins are under construction, one from the community and one from SonarSource. This is all good news for the ecosystem.

Additional effort is going to be made on the improvement of existing languages:

  • Release of a version 1.0 of Flex plugin where any remaining dependency on Maven will be removed
  • Ability to not use anymore Toad with the PL/SQL plugin (2 releases of te plugin already this year)
  • increase drastically the number of rules in C (+ 30 already)
  • release of a version 2.0 of the SAP ABAP plugin

Various

Here is a list of various improvements and functionality that will enhance the platform:

  • Detection of cross-project duplications for all languages
  • Support for authorization in the LDAP plugin
  • Differential analysis in Eclipse
  • Encryption in analysers of DB credentials
  • This might be the year for Idea plugin

That is it, we are now waiting for you on the user mailing list to discuss all this and define the exact use cases that should be covered!

Looking Back at 2011 Sonar Platform Accomplishments

The beginning of a new year always provides a good opportunity to look back at what was achieved the previous year and this is what I am going to do today for the Sonar platform.

Let’s start with a short version of this retrospective. Last year was made of:

  • 8 releases of Sonar
  • 110+ releases in the ecosystem
  • 55,000 downloads of Sonar
  • 10,000+ messages on mailing lists

So I suppose we can call this a pretty active year for the community. Now, the longer version:

The Plan

One year ago, we had the following ambitions :

Track changes : The next step is to provide the ability to report on code coverage of new source code. This is to ensure that whatever legacy code is there, teams have the ability to monitor the coverage by unit tests on added code if they wish.

Since Sonar 2.7 and with help of the SCM Activity plugin, this magic feature is available.

Code Review : This is really the next strategic move for the Sonar platform : add a manual dimension to the automated one to provide a complete code review tool.

This was a major change to accomodate into the platform and we therefore decided to adopt a baby step approach. The full functionality was delivered over 5 releases, from 2.8 to 2.12. Here is what the platform now covers:

  • Review a violation
  • Comment, assign, plan a review
  • Flag false-positive violations through the UI
  • Create manual violations through the UI
  • Change the severity of a violation through the UI

Next step will be to provide the ability to customize the review workflow and its related permissions.

Language consolidation : Provide a Squid-like engine to the C# plugin to make it more robust

It took us 6 month with the great help of Alexandre Victoor to rewrite the C# plugin that embeds its own C# parser and natively supports visual studio projects.

Language consolidation : Improve the C parser to gain robustness, support non ANSI-85 extensions and increase significantly the number of rules available

We haven’t worked as much as we wanted on this C plugin and so the number of rules remains limited. That’s why we’ve already started working to implement the MISRA-C standard.

Language consolidation : Improve the PL/SQL plugin to provide currently missing metrics

A PL/SQL parser has been written to provide all those metrics and to start implementing some new rules outside the Toad CodeXpert tool.

Sonar Eclipse : Now that we have a stable version 1.0 of the plugin, we can start building on it. The objective for this year is to provide capability for running local analysis inside Eclipse

This local mode is now available but in fact the greatest new feature of Sonar Eclipse is certainly the integration of Mylyn to manage reviews directly from the IDE.

Support New Bootstrappers : We have started last year some background work to decouple Sonar from Maven. This work will enable us to support 2 new mechanisms for bootstrapping analysis in Sonar 2.6 : an ANT task and a Java runner. Next step is to also provide Gradle bootstrapper.

DONE, DONE, DONE, Sonar is now fully decoupled from Maven but if you want to use the power of Maven along with Sonar, it is of course still possible.

JaCoCo Integration : We intend to make 2 major integrations of JaCoCo into Sonar this year. The first one is to integrate it into Sonar core. The second one is to provide ANT integration of JaCoCo and therefore provide a simple way of gathering code coverage when you execute unit tests from ANT.

DONE & DONE.

Beyond the Plan

Obviously, we did not plan for all upcoming innovations for the year. Here are three major features of Sonar that weren’t planned and that have been implemented:

  • Sonar CPD : this new technology introduced in Sonar 2.10 will fully replace PMD CPD in Sonar 2.14 and allows to track cross-projects duplications
  • i18n : Since Sonar 2.10 the Sonar UI can be in spanish, french, greek…
  • Email notifications : Since Sonar 2.10 a user can subscribe to some events to be notified by email. For instance when a review is assigned to him.

And this is also true in the ecosystem, here are two examples:

  • a great effort made on the PHP plugin to resurrect it
  • development of an extension for SAP ABAP

So after all this, what could be an exciting challenge for 2012 ? This is going to be the subject of my next post !

Sonar in Thoughtworks Technology Radar

Most IT people know Thoughtworks and its charismatic technical leader / evangelist Martin Fowler. But probably fewer know the Thoughtworks Technology Radar whose first publication was done in January 2010.

According to their authors :

The ThoughtWorks Technology Advisory Board is a group of senior technology leaders within ThoughtWorks. They produce the ThoughtWorks Technology Radar to help decision makers understand emerging technologies and trends that affect the market today. This group meets regularly to discuss the global technology strategy for ThoughtWorks and the technology trends that significantly impact our industry.

In its last publication (July 2011), Sonar platform made its first appearance in the “Assess” circle : “Worth exploring with the goal of understanding how it will affect your enterprise”

Read the rest of this page »

Differential Services in Sonar for a Complete Support of Continuous Inspection

One of the main objective for Sonar in 2011 is to go a step further in the support of Continuous Inspection. Indeed, prior to version 2.5, Sonar could already take a snapshot of the overall quality of an application and view the evolution of quality measures across snapshots with the TimeMachine service. But this was not sufficient to provide at quick answers to some very valuable questions such as :

  • what changed in my application over last 30 days ?
  • did quality improve during version 2.7 software increment ?
  • which violations have been created since 1st of January and by who ?
  • how much is new code covered by unit tests ?
  • which projects have increased their technical debt during last 3 months ?

Read the rest of this page »

Sonar SQALE 1.2 in screenshot

You probably remember that 4 months ago, we announced the availability of a SQALE plugin for Sonar. Since them, we have continued to work on it and have released a version 1.2. The new version greatly improves the usability of the plugin and makes it even easier for a non-technical manager to understand and manage the technical debt of his portfolio of projects.

Read the rest of this page »

What is coming up for Sonar in 2011 ?

After an initial attempt that ended up posting on what was accomplished last year, time has now come to discuss the plans for Sonar in 2011 and the associated roadmap !

In 2010, Sonar has progressively become a “must have in software factories” as are already Jenkins, Jira, Nexus or Subversion for instance. With Sonar, a quality platform can now be considered as a commodity which can be installed and used by everybody with only little investment whether it is time or money. We will still focus our effort in 2011 to increase the value of the platform and make teams capable of continuously assessing and reimbursing their technical debt even easily than today.

Read the rest of this page »

SQALE, the ultimate Quality Model to assess Technical Debt

Six months ago, we would never have believed that one day we would be happy and excited to write about the implementation of a Quality Model in Sonar. Indeed the Quality Models that we knew at the time (most of them are based on ISO 9126 standard) are complex, expensive to implement, can be understood only by an elite of quality experts and are not fun at all. Displaying a global rating on an application is easy but insuring that this rating can be understood in less than 5 minutes by every stakeholder is much more difficult. Implementing one of those Quality Models in Sonar was a kind of non-sense, even if this feature was highly requested by big companies. Indeed they were in contradiction with the vision behind Sonar :

Managing the source code quality should be simple, should be cheap, should be accessible by all stakeholders (developer, architect, project manager, top manager, …), should be valuable and should be fun (without pleasure, perfection cannot be reached) !

Read the rest of this page »

The new “Filters” functionality added in Sonar 2.2

Prior to Sonar 2.2, the home page was simply the list of projects under quality control. Beyond the fact that it did not add much value to the platform, it was unreadable with more than 100 projects and could not even load with more than 800 projects ! This is why we switched the default Sonar home page from an “All Projects” service to a “Filters” service in Sonar 2.2.

Read the rest of this page »

Page 1 of 41234