Logo do repositório
 
A carregar...
Miniatura
Publicação

SONARCH - A STATIC SPRING CODE ANALYSIS PLUGIN FOR SONARQUBE

Utilize este identificador para referenciar este registo.
Nome:Descrição:Tamanho:Formato: 
Mendes_2023.pdf3.71 MBAdobe PDF Ver/Abrir

Resumo(s)

Nowadays, society is most dependent on applications and interfaces built by developers through code. With this evolution, there is a growing demand for code production as well as quality. However, how can one develop code in a fast and extensible way with the minimum number of bugs, code smells, and vulnerabilities possible? One of the developed solutions for this problem was static analysis tools, built for developers by developers to detect such problems just by analyzing a project without running it, which comes as a huge advantage. One of the most used tools in the market that Opensoft has resorted to for years to guarantee the quality of code for this kind of testing is SonarQube. However, in spite of being an extremely complete tool, SonarQube does not present rules sufficiently sophisticated when it comes to the spring framework. On that premise, our problem focuses on developing a new quality profile in SonarQube for Java that contains a set of rules to check for possible errors in spring code. In consideration of the foregoing, the proposed solution was to build a plug-in geared towards SonarQube 9.9, which is the long-term support version at the moment, that evaluates all the previously researched rules for Spring code. The evaluation of the project is a complex process that contains several JUnit tests, at least one for each rule implemented. Furthermore, in order to be more thorough in this evaluation, we ran our plug-in in some real projects and detected that, on average, this plug-in can bring an increase in code quality of about 30% for the company. This allows Opensoft developers to obtain a more precise technical debt value until the code is free of bugs, vulnerabilities, and code smells. This will have a major impact on all Spring framework projects in terms of the quality of the code produced, which will prove to be very advantageous for Opensoft regarding client appreciation.
Hoje em dia, a sociedade está cada vez mais dependente de aplicações e interface construídas por desenvolvedores de software através de código. No entanto, como é que conseguimos desenvolver código de maneira rápida, extensível e com o menor número de bugs, code smells, e vulnerabilidades possível? Uma das soluções desenvolvidas para este problema foi a análise estática de código, construída por desenvolvedores para desenvolvedores de software para detetar os problema supra referidos, apenas lendo o ficheiro sem ter de o correr, o que representa uma grande vantagem. Uma das ferramentas mais usadas no mercado, que a Opensoft recorre há anos para garantir qualidade de código para este tipo de testing, é o SonarQube. No entanto, apesar de ser uma grande ferramenta, o SonarQube não apresenta regras suficientemente sofisticadas quando se trata de Spring framework, que é uma framework bastante utilizada na Opensoft. Nesta premissa, o nosso problema focar-se-à no desenvolvimento de um novo quality profile para Java que contenha um conjunto de regras que verifique possíveis erros em código Spring. Considerando tudo isto, a solução proposta é a construção de um plug-in para o SonarQube 9.9, que é de momento a versão estável da plataforma, que avalia todas as regras anteriormente detetadas e estudadas. A avaliação do projeto é um processo complexo que contém diversos testes JUnit, pelo menos um para cada regra implementada. Além disso, de modo a termos uma avaliação mais profunda, corremos o nosso plug-in em alguns projetos reais e detetamos que, em média, este plug-in pode trazer um aumento na qualidade do código de cerca de 30% para a empresa. Isto possibilitará que os desenvolvedores da Opensoft obtenham uma dívida técnica de tempo mais precisa até o código estar livre de bugs, code smells e vulnerabilidades. Esta solução também terá um grande impacto em todos os projetos que utilizem a framework Spring em termos de qualidade de código produzido, o que se irá provar uma grande vantagem para a Opensoft em termos de satisfação de clientes.

Descrição

Palavras-chave

Developers SonarQube Plug-In Spring framework Java Quality of code

Contexto Educativo

Citação

Projetos de investigação

Unidades organizacionais

Fascículo

Editora

Licença CC