MÉTRICAS PARA MELHORIA CONTÍNUA DE CÓDIGO UM ESTUDO DE CASO COM JAVA Faculdade Cenecista Nossa Senhora dos Anjos FACENSA Sistemas de Informação MÉTRICAS PARA MELHORIA CONTÍNUA DE CÓDIGO UM ESTUDO DE CASO COM JAVA por Guilherme da Silveira Elias - guilherme.elias@gmail.com Daniel Wildt - dwildt@gmail.com
Métricas de Qualidade de Código Ferramentas de Apoio AGENDA Objetivos Métricas de Qualidade de Código Ferramentas de Apoio Trabalhos Relacionados Estudo de Caso Perguntas
Métricas de forma pró-ativa; Objetivos Métricas de forma pró-ativa; Maior qualidade de código fonte gerado.
Métricas de Qualidade de Código Testes Unitários – Funcionais - Testar até não conseguir a pensar em mais nenhum possível teste. (BECK, 2004) - Ambiente Automatizado Code Coverage - Garantir maior abrangência dos testes - Buscando qualidade nos teste
Métricas de Qualidade de Código TAMANHO - SLOC, LOC, KLOC - Mensurar métodos, classes, módulos etc.. (KOSCIANSKI, 2006) COMPLEXIDADE - Sinônimo de Legibilidade!! OO - Acoplamento, Abstração (LANZA, 2006) REFACTORING - Instrumento de otimização C.I. (Continue Integration) - Agir de forma preventiva
Ferramentas de Apoio Junit Selenium IDE Cobertura EMMA Ant
Ferramentas de Apoio PMD/CPD Checkstyle NDepend Metrics Simian
Ferramentas de Apoio Netbeans Eclipse Cruise Control Continuum
Trabalhos Relacionados MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE SOFTWARE USANDO MÉTODOS ÁGEIS. - SPM (Social Program Management)
Estudo de Caso FUJA Voluntário!
Estudo de Caso “Detector de Reuso de Código” Projeto: Classdiary Solução: - Adotado reuso de código; - Criado método publico(public) em classe base. Situação Adversa - CPD (Copy Paste Detector) - 12 incidências do trecho de código: Automatização: Refatoração de código (IDE Netbeans) If (rs != null){ rs.close(); } If(st != null){ st.close(); If(c != null){ c.close(); Beneficios Trazidos: Redução de mais 75 LOC; Reducão do % de CC (Métodos e Classes); Novo teste unitário específico; Aumento cobertura para: Bloco refatorado Método refatorado
PERGUNTAS ?
Referências Sites Livros EMMA – http://emma.sourceforge.net ChecStyle – http://checkstyle.sourceforge.net/ Junit – http://www.junit.org Cruise Control Java http://cruisecontrol.sourceforge.net Selenium IDE - http://selenium-ide.openqa.org Ant Apache - http://ant.apache.org PMD / CPD – http://pmd.sourceforge.net Metrics – http://metrics.sourceforge.net Netbeans – http://www.netbeans.org Eclipse – http://www.eclipse.org Continuum - http://continuum.apache.org Livros BECK, Kent. Extreme Programming Explaned. Bookman, Porto Alegre, 2004; LANZA, Michele. Object-Oriented Metrics in Pratice, using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Springer, 2006. KOSCIANSKI , André e dos Santos Soares, Michel. Qualidade de Software. São Paulo: Novatec, 2006;
http://fuja.dev.java.net http://furor.dev.java.net http://groups.google.com/group/fuphp http://groups.google.com/group/FacensaNET