Métricas de Código

Download Métricas de Código

Post on 08-Jul-2015

164 views

Category:

Software

2 download

Embed Size (px)

DESCRIPTION

Palestra falando sobre mtricas de cdigo, como linhas de cdigo, complexidade ciclomtica, coeso e acomplamento. Tambm fala dos tipos de visualizaes existentes e das ferramentas que existem para extrao e visualizao de mtricas.

TRANSCRIPT

<ul><li> 1. Mtricas de cdigo Paulo Ortins pauloortins@oncedev.com @pauloortins </li></ul> <p> 2. Paulo Ortins Scio e programador na OnceDev Atuo em comunidades desde 2011 Frequentador assduo de eventos, dojos, bate-papos e etc. Mestrando na UFBA (Engenharia de Software/Minerao de Repositrios de Software) 3. Pra que serve o Google Analytics? 4. Google Analytics 5. Google Analytics Srie de mtricas Usurios Perfis de acesso Tempo de Permanncia Fluxo de Navegao Empresas utilizam para auxiliar na tomada de decises 6. O caso do Walmart 7. Business Intelligence 8. E na Engenharia de Software? Onde coloco esse trecho de cdigo? Devo criar uma classe nova? Quando devo refatorar o meu cdigo? Quais as classes merecem a maior ateno? 9. Desenvolvendo um software 10. Incio do desenvolvimento 11. + Decises ruins 12. + Decises ruins 13. + Decises ruins 14. Fim do Projeto 15. Leis de Evoluo do Software Mudana Contnua Complexidade Crescente Crescimento Contnuo Qualidade Decrescente 16. Software Intelligence Business Intelligence para projetos de software Uso de dados gerados durante o processo de desenvolvimento para auxiliar a tomada de decises 17. Fontes de Dados Bug trackers Listas de emails Repositrios de software Rastros de execuo 18. Mtricas de Cdigo 19. Como medir a qualidade do cdigo? Quando um cdigo bom? Quando um cdigo deve ser refatorado? Quando um cdigo deve ser melhor testado? 20. Linhas de Cdigo J foi/ utilizada de diversas formas Complexidade/Tamanho Produtividade Qual o nmero de linhas que uma classe deve ter ? E um mtodo ? 10? 20? 50? 2000 ? 21. Nmero de Mudanas Nmero de vezes que um determinado cdigo alterado ao longo do ciclo de vida do projeto O que isso pode nos dizer? Instabilidade? Importncia? Uso? 22. Complexidade Ciclomtica Tambm conhecido como nmero ciclomtico ou complexidade de McCabe Nmero de possveis caminhos de execuo que um determinado trecho de cdigo possui 23. Exemplo Complexidade Ciclomtica 24. Exemplo Complexidade Ciclomtica 25. Exemplo Complexidade Ciclomtica 26. Complexidade Ciclomtica Recomenda-se manter a CC de um cdigo o menor possvel Caso um cdigo possua uma CC alta desejvel que esse cdigo seja refatorado 27. Coeso O que coeso? LCOM (Lack of Cohesion of Methods) Calcula a ausncia de similaridade entre mtodos Nmero de pares de mtodos que no compartilham variveis Nmero de pares de mtodos que compartilham Quanto maior a LCOM, pior a coeso de uma classe 28. Acoplamento O que Acoplamento? Acoplamento Aferente Acoplamento Eferente O acoplamento sempre ruim? 29. Linhas de Comentrios Quantas linhas de comentrios deve ter em um cdigo? Comentar cdigo uma boa prtica ou uma m prtica? 30. Cobertura de Cdigo Qual o percentual do nosso cdigo que est sendo coberto por testes? Ser que todo cdigo deve estar 100% coberto por testes? 31. Mtricas devem ser combinadas Complexidade Ciclomtica + Linhas de Cdigo Cdigo grande e complexo CC + Linhas de Cdigo + Poucas mudanas Cdigo grande e complexo mas que est estvel 32. Mtricas devem ser combinadas Acoplamento Aferente + Muitas mudanas + Baixa cobertura de testes Voc vai ser caado por outros desenvolvedores em breve. Complexidade Ciclomtica + Linhas de Cdigo + Muitas mudanas + Baixa Cobertura + Acoplamento Aferente O fim do mundo est prximo 33. Visualizao de Software A extrao de mtricas, por si s, no suficiente Seres humanos no so bons em extrair informaes a partir de dados brutos 34. Visualizao de Software 35. Visualizao de Software 36. Code City 37. Treemap 38. Pack View 39. Color Highlighting 40. Ferramentas Visualizaes: Web, Desktop ou Nenhuma Linguagens Suportadas Suporte a controles de verso Mtricas por Desenvolvedor 41. Sonar 42. NDepend 43. Code Climate 44. Estado Atual Apesar das primeiras mtricas de software tenham sido propostas nos anos 70, seu uso ainda pequeno A NASA, Motorola, HP e Boeing possuem casos de sucesso 45. Estado Atual Diversas ferramentas so propostas na academia, porm poucas acabam chegando a indstria Como provar o valor disso ? 46. Obrigado Perguntas ? Meus contatos: @pauloortins pauloortins@oncedev.com Paulo Csar Ortins Brito </p>