Reputation: 390
I am analyzing a code base consisting of mainly Java which is quite large (~1 million lines of code) using SonarQube, Jenkins and Bitbucket.
More to the point, one of the main tasks of this analysis is to investigate how the architecture and design of this code-base can, using SonarQube analysis and plugins, be improved. What I have found during my research is that there used to be a matrix which did somewhat what I am looking for, i.e. the SonarQube Dependency Structure Matrix, however that is depreciated as of this time.
I also found the complexity metric to look use to investigate the level of complexity each file/class/method has but I am looking for more advanced design and architecture feedback if possible.
Here are my plugins in my SonarQube Server (running v5.3) which I am using as of this time:
That is, what I am looking for is information regarding how SonarQube can be used to find architectural flaws or areas of improvements using software metrics or similar. During my research I have not found any clear relationships to how SonarQube can be used for this purpose.
Thus, my question is how SonarQube and certain plugins can be used to find architecture and design improvements (by viewing the different changes over time e.g.) in a code-base?
I am happy for any feedback or questions you may have.
Upvotes: 1
Views: 1007
Reputation: 22794
As you note, the dependency matrix has been removed. It would have likely been unusable for you anyway - which is partly why it was removed.
As you also note, there are rules about class and method complexity. Additionally, you'll find complexity metrics at the project, module, directory, and file level. (Click through on 'Structure'.) Those should help you pinpoint some hotspots.
The Java rule Cycles between packages should be removed may help as well (EDIT: that rule was dropped in Java Plugin 4.0), as might the duplication-related metrics.
Beyond those things, I don't think the advanced design and architecture feedback you're after is really available.
What I don't think is going to do much for you in this area are the CheckStyle, PMD, and FindBugs plugins. Most valuable rules from the first two have been replaced by the Java plugin, and a majority of FindBugs rules have also been replaced.
Upvotes: 3