TDC 2012 - Métricas de código na arquitetura

Download TDC 2012 - Métricas de código na arquitetura

Post on 11-Jun-2015

2.255 views

Category:

Technology

3 download

Embed Size (px)

DESCRIPTION

Atravs das mtricas de cdigo podemos conhecer a complexidade, tamanho, quantidade de mtodos, nvel de coeso, grau de acoplamento entre classes, dentre inmeras outras possibilidades. Esta apresentao demonstrou a utilidade das mtricas de software para arquitetos.

TRANSCRIPT

<ul><li> 1. Trilha Arquitetura Leandro Daniel Systems Architect Globalcode Open4education</li></ul> <p> 2. Globalcode Open4education 3. Sob a ptica da arquitetura de software:MTRICAS DE CDIGO Globalcode Open4education 4. O que veremos?O que soConhecendo Usando mtricasmtricas de algumasde cdigo cdigo?mtricasMtricasQueryableIndicadores de guiando o source codequalidade design Case: relao Algumasentreferramentasmtricas, designe testes Globalcode Open4education 5. No seria muito til usar ummonculo aqui, certo? Globalcode Open4education 6. O que esse cdigo diz? Globalcode Open4education 7. O que (todo) esse cdigo diz?Globalcode Open4education 8. Sim, a entropia emsoftware existe ... Manter as coisas como esto,exige trabalho!Globalcode Open4education 9. Globalcode Open4education 10. As medies e as mtricas ajudam a entender o processotcnico usado para desenvolverum produto.Globalcode Open4education 11. Termos comunsMedida (indicao quantitativa)Medio (ato de medir)Mtrica (medida quantitativa)Indicador (combinao)Globalcode Open4education 12. Uma mtrica precisa ser vlida,confivel e barata. Globalcode Open4education 13. Potencial das mtricas (1 de 2)AnalisarMedidasqualidade eQualificar afuncionais soprodutividade do Utilizadas paraperformance necessriasprocesso decomparar a tcnica dospara qualificar adesenvolvimentoprodutividade e manutenoprodutos do performancede diferentes bem como do ponto de vista dos produtostcnicas e produto dedo pela tecnologiassoftware desenvolvedor perspectiva do construdo usurioGlobalcode Open4education 14. Potencial das mtricas (2 de 2)No nveltcnico, asmedies so importantes Embasar ReduzirFormar uma para determinarsolicitaes defrustraes e linha bsicaparmetros novas presses de paracomoferramentas e cronogramaestimativasquantidade de treinamentos teste necessrio eimpacto de mudanas Globalcode Open4education 15. GlobalcodeThom Holwerda by Open4education 16. Globalcode Open4education 17. Mtricas e indicadoresVamos comear do bsico! :) Globalcode Open4education 18. Ca e CeGlobalcode Open4education 19. Cyclomatic ComplexityGlobalcode Open4education 20. Calculando CC (Complexidade Ciclomtica) Em linguagens como C#, as seguintes expressesso desconsideradas para clculo da CC:else | do | switch | try | using | throw | finally | return |object creation | method call | field access Globalcode Open4education 21. Grafo de acoplamento Globalcode Open4education 22. Grafo de acoplamento Globalcode Open4education 23. Grafo de acoplamento Globalcode Open4education 24. Grafo de acoplamento Globalcode Open4education 25. Acredite, todos falam emreduo de acoplamento!ShotgunSurgeryFeature CQS EnvyTell, D ont Ask Say It Law ofOnceDemeter and Only Once IoCDIGlobalcode Open4education 26. Um cdigo... Globalcode Open4education 27. Uma abstrao!Assembly Classe Mtodo Globalcode Open4education 28. Globalcode Open4education 29. Globalcode Open4education 30. Uma matriz diz muita coisa! Classesmutuamentedependentes?Alto acoplamento?Quebrandoprincpos? Globalcode Open4education 31. Uma abstrao da JDK (by CodeCity) Globalcode Open4education 32. Visual Studio com NDependGlobalcode Open4education 33. Queryable source code SELECTDead code! [method name] FROM [my entire solution] WHERE MethodCa == 0 AND !MethodIsPublic AND !MethodIsProtected AND !MethodIsEntryPoint AND !MethodIsExplicitInterfaceImplementation AND !MethodIsClassConstructor AND !MethodIsFinalizerGlobalcode Open4education 34. Relao entre testes,design e mtricas (gist)https://gist.github.com/2149474Globalcode Open4education 35. Classe antes do refactoringGlobalcode Open4education 36. Depois do refactoringGlobalcode Open4education 37. Resultado do refactoring(antes x depois)Depois Antes Globalcode Open4education 38. Questes levantadasSe CC = N, ento N Qual a o nmero mnimo relao entre de testes necessrio. Testes x CC? Testar mtodos comExistem outros pontos que CC=1 pode ser intil. aumentam a complexidadeciclomtica sem ela aparecer nas mtricas. Um Math.Max, um exemplo. Globalcode Open4education 39. Questes levantadasQual a relao entreCobertura de testes x CC?Batalha! Membros pblicos Vs privados!! Em uma classe coesa, os mtodosprivados no fundo servem pra diminuir aCC e aumentar a legibilidade dos mtodos pblicos.Globalcode Open4education 40. Questes levantadas Qual a relaoentre Mtricas xDesign? Globalcode Open4education 41. Referncias Relao entre mtricas, design e testes (Github) https://gist.github.com/2149474 Emergent design through metrics (by Neal Ford) http://goo.gl/tdyVO Srie de posts sobre Code Metrics http://leandrodaniel.com/?tag=/Code+Metrics Globalcode Open4education 42. Ferramentas Lista de ferramentas para anlise de cdigo esttico http://goo.gl/KjLq FluentCodeMetrics (by Elemar Jr) http://goo.gl/CvnAW NDepend http://ndepend.com JArchitect http://jarchitect.comGlobalcode Open4education 43. Globalcode Open4education</p>