Your SlideShare is downloading. ×
0
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Sonar - Software Qualitätsmanagement ohne Schmerzen
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sonar - Software Qualitätsmanagement ohne Schmerzen

4,420

Published on

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

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×