Medição
Para atingir as métricas definidas no item 3.9.1, a equipe está utilizando o máximo possível das funcionalidades oferecidas pela framework Django. Por exemplo, utilizamos o django admin para realizar as operações de C.R.U.D do sistema. Dessa forma, conseguimos garantir os padrões de qualidade da linguagem utilizada no Sonar. Para medir a qualidade das entregas, configuramos um ambiente de integração e delivery contínuo que agiliza, testa e disponibiliza cada nova modificação no sistema de forma automática. Já os commits que falharam podem ser identificados pelo travis ci, que realiza todos os testes no sistema e avisa se aquela nova modificação causou erros.
Para verificar se os valores que definimos nas métricas de qualidade estão sendo atingidos, utilizamos o gráfico da Monalessa XMmR, que utiliza o cálculo da mediana para montar o gráfico das métricas. Utilizamos este gráfico pois o cálculo da mediana permite variações menos bruscas no gráfico. Os dados a serem avaliados podem conter valores muito altos ou muito baixos que poderiam elevar os limites do gráfico. Como por exemplo, o código cair de uma nota A para a nota D. A seguir serão apresentados os gráficos obtidos com as medições feitas pelo sonar.
Para as métricas de qualidade confiabilidade, segurança e manutenibilidade, foram medidos dados relativos às notas. Os gráficos que o sonar gera, mostra valores que variam de 0 a 1 onde 1 é a nota máxima.
Para confiabilidade foi gerado o seguinte gráfico:
Como pode ser visto no gráfico acima, o projeto se manteve com a nota A ao longo do período analisado e a mediana se manteve em zero pois como todos os valores foram 1 e foram 10 elementos o cálculo somou (1+1)/2 que deu zero. A planilha com os valores encontra-se neste link.
A medição de segurança gerou o seguinte gráfico:
Como pode ser visto no gráfico acima, o projeto se manteve com a nota A ao longo do período analisado e a mediana se manteve em zero pois como todos os valores foram 1 e foram 10 elementos o cálculo somou (1+1)/2 que deu zero. A planilha com os valores encontra-se neste link.
Para a métrica de manutenibilidade foi gerado o seguinte gráfico:
Como pode ser visto no gráfico acima, o projeto se manteve com a nota A ao longo do período analisado e a mediana se manteve em zero pois como todos os valores foram 1 e foram 10 elementos o cálculo somou (1+1)/2 que deu zero. A planilha com os valores encontra-se neste link.
Para a métrica de duplicação foi gerado o seguinte gráfico:
Essa métrica mostra os percentuais de duplicação no código. Como o projeto utilizou uma framework que realiza boas práticas, o projeto se manteve com 0% de duplicação. A planilha com os valores encontra-se neste link.
Para medir a complexidade do código foram analisados os dados da complexidade geral do projeto e complexidade por arquivo. Para a complexidade geral, foi gerado o seguinte gráfico:O projeto iniciou com complexidade 15 e ao longo do tempo foi aumentando gradativamente para 55 onde se manteve até o momento. No gráfico da mediana, percebe-se que 2 e 9 de junho o código teve um aumento em sua complexidade o que faz sentido visto que foi quando conseguimos implementar os micro serviços. A planilha com os valores encontra-se neste link.
Já a complexidade por arquivo foi gerado o seguinte gráfico:
O projeto iniciou com complexidade 0,9 e ao longo do tempo foi aumentando gradativamente para 2,9 onde se manteve até o momento. O gráfico da mediana mostra que entre o dia 31 de maio e 10 de junho teve um aumento na complexidade dos arquivos acima do normal. A planilha com os valores encontra-se neste link.
Para medir os code smells foi gerado o seguinte gráfico:
O projeto iniciou com 0 , teve um pico de 14 code smells e se manteve em 8. O gráfico da mediana mostra que os dias 15 e 21 de junho teve um aumento nos code smells acima da média. A planilha com os valores encontra-se neste link.
Por fim, para medir a quantidade de commits que falharam foi gerado o seguinte gráfico:
Os valores variaram entre 0 e 1 onde 1 significa que o commit passou e 0 que falhou. Os valores utilizados na geração dos gŕaficos acima podem ser encontrados neste link.