MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE Faculdade Cenecista Nossa Senhora dos Anjos FACENSA Sistemas de Informação MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE SOFTWARE USANDO MÉTODOS ÁGEIS por Guilherme da Silveira Elias - guilherme.elias@gmail.com Daniel Wildt - dwildt@gmail.com
Métricas de Qualidade de Código Ferramentas de Apoio Estudo de Caso AGENDA Objetivos Métricas de Qualidade de Código Ferramentas de Apoio 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 - Agir de forma C.I. (Continue Integration) 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
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;