Sonar Code Qualität ohne Schmerzen Java Abend, 24. Juni 2010 Gerhard Hipfinger
Was ist Sonar? <ul><li>Ein Tool zum verwalten und visualisieren von Qualitätsmetriken in Software Projekten
Web basierte Visualisierung der Metriken
Maven Plugin zum Sammeln der Daten
Eine Menge Plugins für die Integration in weitere Entwicklungstools
http://www.sonarsource.org/
Wegweisende Usability – Minimierung der Klicks zur Information ist fast perfekt! </li></ul>
Alles neu, oder? <ul><li>Sonar erfindet das Rad nicht neu, sondern integriert </li><ul><li>Findbugs, Checkstyle, PMD, CPD,...
Unit Testing inkl. Code Coverage
und vieles mehr </li></ul><li>Vollständig in Maven integriert </li><ul><li>Sonar Plugin sendet Ergebnisse an den Server
Qualitätsprofil vom Server beinhaltet Analyse Konfiguration
Man kann den Build brechen lassen bei schlechten Metriken </li></ul></ul>
Arbeitsweise
Die ersten Schritte <ul><li>Download der Software
Starten
Maven Build ausführen
Upcoming SlideShare
Loading in...5
×

Sonar - Software Qualitätsmanagement ohne Schmerzen

4,434

Published on

Eine kleine Präsentation über Sonar im Rahmen eines openForce Java Abends.

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,434
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Sonar - Software Qualitätsmanagement ohne Schmerzen"

  1. 1. Sonar Code Qualität ohne Schmerzen Java Abend, 24. Juni 2010 Gerhard Hipfinger
  2. 2. Was ist Sonar? <ul><li>Ein Tool zum verwalten und visualisieren von Qualitätsmetriken in Software Projekten
  3. 3. Web basierte Visualisierung der Metriken
  4. 4. Maven Plugin zum Sammeln der Daten
  5. 5. Eine Menge Plugins für die Integration in weitere Entwicklungstools
  6. 6. http://www.sonarsource.org/
  7. 7. Wegweisende Usability – Minimierung der Klicks zur Information ist fast perfekt! </li></ul>
  8. 8. Alles neu, oder? <ul><li>Sonar erfindet das Rad nicht neu, sondern integriert </li><ul><li>Findbugs, Checkstyle, PMD, CPD,...
  9. 9. Unit Testing inkl. Code Coverage
  10. 10. und vieles mehr </li></ul><li>Vollständig in Maven integriert </li><ul><li>Sonar Plugin sendet Ergebnisse an den Server
  11. 11. Qualitätsprofil vom Server beinhaltet Analyse Konfiguration
  12. 12. Man kann den Build brechen lassen bei schlechten Metriken </li></ul></ul>
  13. 13. Arbeitsweise
  14. 14. Die ersten Schritte <ul><li>Download der Software
  15. 15. Starten
  16. 16. Maven Build ausführen
  17. 17. mvn clean install sonar:sonar
  18. 18. Ergebnis ansehen
  19. 19. http://localhost:9000/ </li></ul>
  20. 20. Perfect Match - CI <ul><li>Integration Sonar in ein CI System ist eine perfekte Ergänzung
  21. 21. Bamboo, Hudson, CruiseControl, Team City
  22. 22. Integration in den Nightly Build
  23. 23. Continous Build ist sinnlos, da zeitliche Auflösung = 1 Tag
  24. 24. Aktuelle Ergebnisse liegen somit jeden Morgen aktuell vor
  25. 25. Auch historische Daten können eingespielt werden! </li></ul>
  26. 26. Plugin High Lights <ul><li>Quality Index – Ein Wert für die Gesamtqualität
  27. 27. JIRA – Anzahl der Tickets zum Zeitpunkt eines Testlaufs
  28. 28. Technical Debt – Berechnet fiktive Kosten zum Beheben von Qualitätsproblemen
  29. 29. Integration anderer Programmiersprachen </li><ul><li>Cobol, Flex/ActionScript, PHP, PL/SQL, VB 6
  30. 30. .Net -> C# </li></ul><li>Build Stability – CI Ergebnisse
  31. 31. PDF Report </li></ul>
  32. 32. Plugin High Lights
  33. 33. Was wollen uns die Zahlen sagen? <ul><li>LCOM4 </li><ul><li>Lack of Cohesion
  34. 34. Zu viele unabhängige Methoden in einer Klasse
  35. 35. Je größer desto Schlechter -> Redesign </li></ul></ul>
  36. 36. Was wollen uns die Zahlen sagen? <ul><li>RFC </li><ul><li>Response for a Class
  37. 37. Anzahl der Methodenaufrufe beim Aufrufen einer Methode
  38. 38. RFC = M + R </li><ul><li>M: # Methoden einer Klasse
  39. 39. R: # Methodenaufrufe in der Klasse </li></ul><li>Je höher desto Schlechter
  40. 40. ab etwa 50 sollte man Refactoring betreiben </li></ul></ul>
  41. 41. Referenz der Metriken <ul><li>http://docs.codehaus.org/display/SONAR/Metric+definitions
  42. 42. Google hilft beim Verständnis </li></ul>
  43. 43. Zentrale Konfiguration <ul><li>Findbugs, PMD und Checkstyle können die Konfiguration über Sonar holen </li><ul><li>Damit ist die Maven Site konsistent
  44. 44. Beispiel Checkstyle </li></ul></ul><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.4</version> <configuration> <configLocation> http://sonar.server/sonar/rules_configuration/export/java/web/checkstyle.xml </configLocation> </configuration> </plugin>
  45. 45. Aus dem Projektalltag <ul><li>Build Zeit steigt je nach Plugins stark an
  46. 46. Die Datenbank sollte großzügig dimensioniert werden </li><ul><li>etwa 1.000 -> 350 KB
  47. 47. 6 Millionen LOC erfordern etwa 2GB DB Storage </li></ul><li>Laufende Sonar Builds bringen wenig
  48. 48. Installation und Betrieb sind bisher problemlos </li></ul>
  49. 49. Roadmap <ul><li>Verbesserung der Plugin Schnittstelle (Vereinfachung für Plugin Entwickler)
  50. 50. Integration von Architektur Prüfungen
  51. 51. Laufende Verbesserung des IDE Supports (Eclipse, IntelliJ, Netbeans)
  52. 52. Verbesserung der Usability des Dashboards
  53. 53. Laufend entstehen neue interessante Plugins
  54. 54. auch schon einige kommerzielle Plugins verfügbar </li></ul>
  55. 55. DEMO
  56. 56. Danke an Andreas Hochsteger für seine Hilfe bei der Ausarbeitung Gerhard Hipfinger openForce Information Technology GesmbH Dresdner Str. 108 / 3. Stock / Top 11 1200 Wien TEL +43 1 3191775 FAX +43 1 3191775-20 www.openforce.com

×