Por que eu devo ler este artigo:Este artigo apresenta o Sonar e os conceitos utilizados pelo mesmo para o monitoramento da qualidade de código. Acompanhar a evolução das métricas de software permite entender o estado atual do software, levando em consideração a sua arquitetura, as duplicações de código no projeto, a cobertura de testes unitários, a complexidade do código e as regras de codificação.

Todos estes aspectos de um projeto de software têm suas métricas específicas, e elas serão abordadas neste artigo. Além disso, conceitos importantes da disciplina de qualidade de software, como débito técnico, também serão apresentados. Será discutido ainda a importância e os benefícios do monitoramento da qualidade de código durante o ciclo de vida de um software.

A análise das métricas de qualidade é necessária para assegurar que o código se mantenha aderente à sua arquitetura em toda a fase de desenvolvimento, reduzindo o esforço e o custo em alterações e manutenções, além de ser um fator motivador, ao permitir que o desenvolvedor esteja inserido em um ambiente que presa pelo alto padrão técnico.

Qualidade é um conceito que se refere a atributos e características positivas, diz respeito ao grau de perfeição e de conformidade a certo padrão.

A percepção da qualidade depende de como ela é observada por um indivíduo, que usa como base diversos indicadores para medi-la, como por exemplo, quesitos como durabilidade e utilidade. Apesar da subjetividade deste conceito, em se tratando de software, existem vários atributos e indicadores aceitos universalmente como sendo características de um bom software e de um código fonte bem escrito.

Conceitualmente falando, qualidade de software e de código são duas disciplinas bem diferentes, cada uma delas está relacionada a diferentes aspectos e indicadores qualitativos do produto de software.

A qualidade de software está em um nível mais elevado, faz parte da visão dos usuários e gestores, é o que eles vêm e obtêm a partir da utilização de um software. Alguns indicadores utilizados para medir a qualidade de um software incluem usabilidade e confiabilidade.

Já a qualidade de código está em um nível mais baixo, faz parte da visão dos desenvolvedores, engenheiros, arquitetos e, em alguns casos, analistas e gerentes. Os indicadores da qualidade de código incluem, por exemplo, complexidade do código, duplicações de código, tamanho do código, entre outros.

As próximas seções discutirão os conceitos mais importantes relacionados à qualidade de código, as métricas mais utilizadas para medir o nível de adequação do código fonte a determinadas características de qualidade e como o Sonar mapeia estes conceitos e métricas em uma plataforma de monitoramento de qualidade.

Dívida Técnica (Technical Debt)

É dito que um código que não possua muitas características positivas – como baixa complexidade, pouca duplicação de código e alta cobertura de testes unitários – tem uma elevada dívida técnica (Technical Debt).

Dívida técnica é uma metáfora que se refere às consequências de uma arquitetura de software de baixa qualidade, o esforço necessário para resolver problemas provenientes dessa arquitetura e à fragilidade do código em relação a diversas características técnicas, como duplicações e complexidade.

A prática de gerenciar os débitos de um projeto vem ganhando espaço, especialmente em processos ágeis de desenvolvimento, e está associada, intrinsicamente, à qualidade da arquitetura do software. Para medir a dívida técnica, geralmente é utilizada alguma unidade de tempo, representando assim o tempo necessário para resolver os débitos do projeto.

Ultimamente, muito tem se discutido sobre a importância de gerenciar os débitos de um projeto. A preocupação com a dívida técnica está relacionada ao fato que quanto maior o débito de um projeto, menor é a produtividade da equipe de desenvolvimento e, consequentemente, maiores serão os gastos financeiros.

Um dos principais motivadores para melhorar a qualidade do código e diminuir os débitos do projeto é exatamente o fato da dívida técnica ter impacto direto nas questões financeiras. É daí, também, que vem o nome desse termo.

Para diminuir a dívida técnica durante o desenvolvimento e aumentar a qualidade do código, há muitas abordagens indicadas. Entre elas estão a programação em pares, a refatoração e o desenvolvimento guiado por testes (TDD).

Essas técnicas são úteis quando utilizadas desde o início do projeto, fazendo com que o mesmo seja desenvolvido dentro de padrões aceitáveis de qualidade e com uma dívida técnica baixa. Para códigos já existentes, a solução é a refatoração. Mas antes de varrer o código aplicando diversas técnicas a fim de melhorar a estrutura do mesmo, é preciso entender e medir o código.

Medir a qualidade de um código, no entanto, é uma atividade complexa e envolve muitos indicadores, se ...

Quer ler esse conteúdo completo? Tenha acesso completo