190 likes | 311 Views
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 Monografia apresentada na disciplina
E N D
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 • Monografia apresentada na disciplina • de Trabalho de Conclusão de Curso II, sob • orientação do Prof. Daniel Wildt e • Co-orientação do Prof. Guilherme Lacerda
AGENDA • Motivação • Objetivos • Métricas de Qualidade de Código • Ferramentas de Apoio • Trabalhos Relacionados • Estudo de Caso • Considerações Finais • Perguntas
Motivação Como você mede a qualidade de seu código? Você Mede?
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 pensar em mais • nenhum possível teste. (BECK, 2004) • - Ambiente Automatizado • Cobertura de Código • - Garantir maior abrangência dos testes • - Buscando qualidade nos teste
Métricas de Qualidade de Código • OO • - Acoplamento, Abstração • (LANZA, 2006) • REFACTORING • - Instrumento de otimização • C.I. (Integração Contínua) • - Agir de forma • preventiva • TAMANHO - SLOC, LOC, KLOC - Mensurar métodos, classes, módulos etc.. (KOSCIANSKI, 2006) • COMPLEXIDADE - Sinônimo de Legibilidade!!
Ferramentas de Apoio • JUnit - NUnit • Selenium IDE • NCover • EMMA • Ant - NAnt
Ferramentas de Apoio • PMD/CPD • Simian/FxCop • Checkstyle • Metrics • .NET Reflector
Ferramentas de Apoio • Visual Studio • Netbeans • Cruise Control • Continuum
Trabalhos Relacionados • Métricas para melhoria contínua de código – Um estudo de caso • com Java (SILVEIRA; WILDT, 2008) • Artigo e Pôster aceitos na • SEMINFO 2008.
Trabalhos Relacionados • Experimento usando Java http://classdiary.dev.java.net
Estudo de Caso https://classdiary.dev.java.net • Projeto Class Diary • FUJA http://code.google.com/p/spm-net-br • Projeto Social Program • Management • FACENSA.NET
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 % da Complexidade • (Métodos e Classes); • Novo teste unitário específico; • Aumento cobertura para: • Bloco refatorado • Método refatorado
Estudo de Caso “Pós e Pré-Condições Para Testes” Projeto: SPM • Situação Adversa • Testes Unitários e Funcionais; • Ao rodar falhavam no ambiente • de Integração Contínua!! • Dependências entre os métodos; • Solução: • Criado Classe publica(public) • para execução de Statements • (Insert, Update, Delete) • Uso dos métodos Initialize() e • CleanUp() • Automatização: • IDE VSTS 2008 • Beneficios Trazidos: • Testes Coesos;
Estudo de Caso SPM (Social Program Management) http://code.google.com/p/spm-net-br
Considerações Finais • Grande desafio utilizar os grupos; • Projetos em desenvolvimento mas • já funcionais, através de versões beta.
Referências • Sites • 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; • - SILVEIRA, Guilherme Elias; WILDT, Daniel. Métricas de Qualidade de Codigo. • Um estudo de caso usando Java, FACENSA, 2008.
http://fuja.dev.java.net http://furor.dev.java.net http://groups.google.com/group/fuphp http://groups.google.com/group/FacensaNET