| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 3.71 MB | Adobe PDF |
Orientador(es)
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.
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
