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:
- Checkstyle v2.4
- Findbugs v3.3
- Git v1.1
- Java 3.11-build4121
- Java Properties v1.5
- PMD v2.5
- SVN v1.2
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.