Your SlideShare is downloading. ×
0
Uma abordagem efetiva para melhoria contínua da qualidade de                         software  Roberto Pepato Mellado  @rp...
George L. Kelling                    James Q. Wilson
[ISO 9126 / 25000]Maintainability    Analisability   Modificability      Stability     Testability
Maintenance Effort andSoftware Maintainability                                 Accuracy               Preventive
why?
[Kemerer et. Al, 1999]
[Jones, 2007]
[Bennet, 2002]
Not me!
Programmers are constantly in     maintenance mode           “You are rarely writing original           code.”           "...
Don’t Make This Common Mistake
Technical Debt
Quality or Fast Delivery?
It’s not my fault, but it is still my problem
Dreaming and Planning Software Quality          for his next project
Dijkstra              [design by              Philip Calçado]is Watching
Formal Inspection
Lightweight Inspection
Next, please!
Static Code Analysis
What about tools?http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
FxCop (.NET)
StyleCop (.NET)
Resharper (.NET)
NDepend (.NET)
JDepend (Java)
Find Bugs (Java)
CCFinder (C#, Java, C++, VB)
SimpleCov (Ruby)
SimpleCov (Ruby)
Metric-fu -- Churn (Ruby)
Metric-fu -- Flog(Ruby)
Metric-fu -- Reek(Ruby)
Metric-fu -- Stats(Ruby)
Metric-fu -- Hotspots(Ruby)
ContinuousInspection CI + SCA
Continuous                              ImprovementMetrics          Bad Smells                       Inspection           ...
Conditional Complexity               Measure: Cyclomatic complexity               Tools               • JavaNCSS          ...
Duplicated Code            Measure: Code duplication            Tools: CheckStyle, PMD            Refactorings:           ...
Long Method / Class              Measure: Source lines of code              (SLOC)              Tool: PMD, JavaNCSS,      ...
Excessive Dependency              Measure: Efferent coupling              (fan-out per class)              Tool: CheckStyl...
Inspection Automation in CI<target name="inspect" >    <exec program="${tools.fxcop}"     commandline="/p:${reports.script...
NDepend Report
NDepend Report
Combination from measures of attributes belonging to asoftware product, or to its development process, which showsquantita...
Software Product Metrics                Métricas de Produto OOTamanho          Complexida       Acoplamento        Coesão ...
How to Deal With Lots Of Data?
Metrics Analysis – Dashboards (Sonar)
Metrics Analysis – Temporal Series
Metrics Analysis - Control Charts
Metrics Analysis - OLAP
Metrics Analysis – Indicators from DW
Build Definition
Going Deeper
I need some help!
Roberto Pepato Mellado              Gabriel Moreira  rpepato@gmail.com        gabrielspmoreira@yahoo.com.br      @rpepato ...
http://www.agilevale.com.br/                       @agilevale                       #agilevale19 e 20 de Agosto de 2011
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software
Upcoming SlideShare
Loading in...5
×

Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software

2,325

Published on

Apresentação realizada no Agile Brazil em Fortaleza, 29/06/2011.

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,325
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
52
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Continuous Inspection - Uma abordagem efetiva para melhoria contínua da qualidade de software"

  1. 1. Uma abordagem efetiva para melhoria contínua da qualidade de software Roberto Pepato Mellado @rpepato Gabriel Moreira @gspmoreira
  2. 2. George L. Kelling James Q. Wilson
  3. 3. [ISO 9126 / 25000]Maintainability Analisability Modificability Stability Testability
  4. 4. Maintenance Effort andSoftware Maintainability Accuracy Preventive
  5. 5. why?
  6. 6. [Kemerer et. Al, 1999]
  7. 7. [Jones, 2007]
  8. 8. [Bennet, 2002]
  9. 9. Not me!
  10. 10. Programmers are constantly in maintenance mode “You are rarely writing original code.” "Im maintaining from day one." “Its only the first 10 minutes that the codes original, when you type it in the first time. Thats it.”
  11. 11. Don’t Make This Common Mistake
  12. 12. Technical Debt
  13. 13. Quality or Fast Delivery?
  14. 14. It’s not my fault, but it is still my problem
  15. 15. Dreaming and Planning Software Quality for his next project
  16. 16. Dijkstra [design by Philip Calçado]is Watching
  17. 17. Formal Inspection
  18. 18. Lightweight Inspection
  19. 19. Next, please!
  20. 20. Static Code Analysis
  21. 21. What about tools?http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
  22. 22. FxCop (.NET)
  23. 23. StyleCop (.NET)
  24. 24. Resharper (.NET)
  25. 25. NDepend (.NET)
  26. 26. JDepend (Java)
  27. 27. Find Bugs (Java)
  28. 28. CCFinder (C#, Java, C++, VB)
  29. 29. SimpleCov (Ruby)
  30. 30. SimpleCov (Ruby)
  31. 31. Metric-fu -- Churn (Ruby)
  32. 32. Metric-fu -- Flog(Ruby)
  33. 33. Metric-fu -- Reek(Ruby)
  34. 34. Metric-fu -- Stats(Ruby)
  35. 35. Metric-fu -- Hotspots(Ruby)
  36. 36. ContinuousInspection CI + SCA
  37. 37. Continuous ImprovementMetrics Bad Smells Inspection Refactoring
  38. 38. Conditional Complexity Measure: Cyclomatic complexity Tools • JavaNCSS • PMD • NDepend Refactorings • Replace Conditional with Polymorphism • Extract Method
  39. 39. Duplicated Code Measure: Code duplication Tools: CheckStyle, PMD Refactorings: • Extract Method • Pull Up Method • Form Template Method • Substitute Algorithm
  40. 40. Long Method / Class Measure: Source lines of code (SLOC) Tool: PMD, JavaNCSS, CheckStyle Refactorings: Extract Method, Replace Temp with Query, Introduce Parameter Object, Preserve Whole Object, Replace Method with Method Object
  41. 41. Excessive Dependency Measure: Efferent coupling (fan-out per class) Tool: CheckStyle, NDepend Refactorings: • Move Method • Extract Class
  42. 42. Inspection Automation in CI<target name="inspect" > <exec program="${tools.fxcop}" commandline="/p:${reports.scripts}Mineradores.fxcop /out:${reports.output}ccnet-fxcop-results.xml" failonerror="false"/> <exec program="${tools.stylecopcmd}" commandline="-sf &quot;${libandunittest.buildfile.path}LibAndUnitTest.sln&quot; - of &quot;${reports.output}ccnet-libstylecop-output.xml&quot;" failonerror="false"/> <exec program="${tools.ndepend}" failonerror="false"> <arg value="${reports.scripts}Mineradores-NDepend.xml" /> <arg value="/OutDir &quot;${reports.ndepend.output}&quot;" /> </exec> </target>
  43. 43. NDepend Report
  44. 44. NDepend Report
  45. 45. Combination from measures of attributes belonging to asoftware product, or to its development process, which showsquantitatively some of its characteristics.
  46. 46. Software Product Metrics Métricas de Produto OOTamanho Complexida Acoplamento Coesão Herança Other Metrics•LOC de •AC – Aferent •LCOM – Lack of •NOC - Number of •Churn•N. Métodos Coupling Cohesion Children •Program •CC - Methods•N. Atributos •EC – Eferent •DIT - Depth of Vocabulary Complexidade Coupling •LCOM-HS - Lack Inheritance Tree •... Ciclomática •ABC – of Cohesion Of •Métricas de Association Methods Halstead Between Classes Henderson- •MCD - Max Sellers Conditional Depth •MLD - Max Loop Depth •DD - Decision Density
  47. 47. How to Deal With Lots Of Data?
  48. 48. Metrics Analysis – Dashboards (Sonar)
  49. 49. Metrics Analysis – Temporal Series
  50. 50. Metrics Analysis - Control Charts
  51. 51. Metrics Analysis - OLAP
  52. 52. Metrics Analysis – Indicators from DW
  53. 53. Build Definition
  54. 54. Going Deeper
  55. 55. I need some help!
  56. 56. Roberto Pepato Mellado Gabriel Moreira rpepato@gmail.com gabrielspmoreira@yahoo.com.br @rpepato @gspmoreira http://workingsweng.wordpress.com/
  57. 57. http://www.agilevale.com.br/ @agilevale #agilevale19 e 20 de Agosto de 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×