• Save
Sonar - Software Qualitätsmanagement ohne Schmerzen
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Sonar - Software Qualitätsmanagement ohne Schmerzen

  • 5,392 views
Uploaded 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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • ALM
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
5,392
On Slideshare
5,388
From Embeds
4
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
1
Likes
2

Embeds 4

http://static.slidesharecdn.com 3
http://www.slideshare.net 1

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?
    • 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!
  • 8. Alles neu, oder?
    • Sonar erfindet das Rad nicht neu, sondern integriert
      • Findbugs, Checkstyle, PMD, CPD,...
      • 9. Unit Testing inkl. Code Coverage
      • 10. und vieles mehr
    • Vollständig in Maven integriert
      • 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
  • 13. Arbeitsweise
  • 14. Die ersten Schritte
    • Download der Software
    • 15. Starten
    • 16. Maven Build ausführen
    • 17. mvn clean install sonar:sonar
    • 18. Ergebnis ansehen
    • 19. http://localhost:9000/
  • 20. Perfect Match - CI
    • 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!
  • 26. Plugin High Lights
    • 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
      • Cobol, Flex/ActionScript, PHP, PL/SQL, VB 6
      • 30. .Net -> C#
    • Build Stability – CI Ergebnisse
    • 31. PDF Report
  • 32. Plugin High Lights
  • 33. Was wollen uns die Zahlen sagen?
    • LCOM4
      • Lack of Cohesion
      • 34. Zu viele unabhängige Methoden in einer Klasse
      • 35. Je größer desto Schlechter -> Redesign
  • 36. Was wollen uns die Zahlen sagen?
    • RFC
      • Response for a Class
      • 37. Anzahl der Methodenaufrufe beim Aufrufen einer Methode
      • 38. RFC = M + R
        • M: # Methoden einer Klasse
        • 39. R: # Methodenaufrufe in der Klasse
      • Je höher desto Schlechter
      • 40. ab etwa 50 sollte man Refactoring betreiben
  • 41. Referenz der Metriken
    • http://docs.codehaus.org/display/SONAR/Metric+definitions
    • 42. Google hilft beim Verständnis
  • 43. Zentrale Konfiguration
    • Findbugs, PMD und Checkstyle können die Konfiguration über Sonar holen
      • Damit ist die Maven Site konsistent
      • 44. Beispiel Checkstyle
    <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
    • Build Zeit steigt je nach Plugins stark an
    • 46. Die Datenbank sollte großzügig dimensioniert werden
      • etwa 1.000 -> 350 KB
      • 47. 6 Millionen LOC erfordern etwa 2GB DB Storage
    • Laufende Sonar Builds bringen wenig
    • 48. Installation und Betrieb sind bisher problemlos
  • 49. Roadmap
    • 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
  • 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