• Save
Software Metrics and Continuous Integration
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Software Metrics and Continuous Integration

  • 3,105 views
Uploaded on

My presentation from FFK11 about Software Metrics and Continuous Integration in an ActionScript context

My presentation from FFK11 about Software Metrics and Continuous Integration in an ActionScript context

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,105
On Slideshare
3,034
From Embeds
71
Number of Embeds
5

Actions

Shares
Downloads
0
Comments
0
Likes
2

Embeds 71

http://lanyrd.com 46
http://pragmatickingdom.blogspot.com 15
http://pragmatickingdom.blogspot.de 8
http://pragmatickingdom.blogspot.fr 1
http://pragmatickingdom.blogspot.ch 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
  • What is Cobertura?Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage. JavaNCSSNon Commenting Source Statements (NCSS), CyclomaticComplexity-> FlexPMD MetricsCPDCopy & Paste detection, FlexPMD CPD

Transcript

  • 1. MilenaReichel@costanova
    Software Metrics und
    Continuous Integration
    Hamburg
    21.03.2011
  • 2.
  • 3. Überblick
    Definition Software Metriken
    Sinn und Zweck Software Metriken
    Verschiedene Produkt-/Codemetriken
    ActionScript Code Coverage Plug-in
    FlexPMD
    Integration in den Alltag / Continuous Integration
    Fazit
  • 4. Definition und Zweck
    Software-Metriken sind mathematische Instrumente zum Messen bestimmter Eigenschaften vom Software-Entwicklungsprozess – Qualität messbar machen
    Einsatz von Produkt- und Prozess-Metriken zur
    Zeit- / Resourcenplanung( Requirements, Schätzungen, Design, Code )
    Risikoabschätzung
    Frühen Erkennung von Problemen/ Qualitätsmanagement
    Verbesserung Wartbarkeit / Erweiterbarkeit
  • 5. Klassische Code-Metriken
    LOC – Lines of Code
    Function Points
    Cyclomatic Complexity
    WievielePfadegibtesimAblaufgraph?
    Halstead-Maße
    Anzahl von verschiedenen Operatoren und Operanden und ihre Gesamtzahl bestimmt Schwierigkeit, Volumen und Umfang
  • 6. LOC
    x=x+4 How inefficient. Much better to write: x=x+1; x=x+1; x=x+1; x=x+1;
    http://thedailywtf.com/Articles/Productivity-20.aspx
  • 7. OOP Metriken
    Depth of inheritance tree (DIT)
    Wiederverwendung +
    Struktur
    Komplexität, Abstraktion, Fehlerwahrscheinlichkeit -
    Coupling between objects (CBO)
    Number of children (NOC)
    WichtigkeitderKlasse +
    Testaufwand –
    AufwandbeiÄnderungen -
  • 8. Test Coverage
    vargallery:Gallery = new Gallery();
    this.galleryModel.gallery = gallery;
    Assert.assertEquals("galleryModelshouldhave a gallery", this.galleryModel.gallery != null, true );
    Wie viel % des Codes sind getestet?
    Messung: Test werden durchgelaufen ausgeführter Code wird gezählt
    Sinnhaftigkeit von Asserts wird nicht geprüft
  • 9. Coverage
    public class StaticDataRequestTest {
    @Test public void startClientReqest() {
    try {
    new StaticDataRequest().onData(null);
    assertEquals( " processing client static data request ", true, true); }
    catch (Exception ex) {
    assertEquals( " processing client static data request ", true, true); }
    } }
    http://thedailywtf.com/Articles/Unit-Tested.aspx
  • 10. Spezifische Metriken
    Typisierung
    Flex Life Cycle
    Kommentare
    ASDoc
    Naming Conventions
    Unbenutzte Methoden und Variablen
  • 11. Code Metriken + ActionScript: Code Coverage
    Adobe hat ein Code Coverage Tool in den Labs zur Verfügung gestellt
    Prüft Test Coverage
    Wie viel % des Codes werden ausgeführt?
    Wird aus dem Flashbuilder Premium gestartet
    Nachfolger von Flexcover (gepatchtes Framework notwendig)
    Flexmojos/Maven kann auch Coverage berechnen
    Generierung von Coberturareports/Sonarpatch
  • 12. Report
    http://wwwimages.adobe.com/labs.adobe.com/cdn/wiki/images/0/0b/PackageView.png
    http://wwwimages.adobe.com/labs.adobe.com/cdn/wiki/images/0/0b/PackageView.png
    http://wwwimages.adobe.com/labs.adobe.com/cdn/wiki/images/d/d1/ClassView2.png
  • 13. Code Metriken + Flex: FlexPmd
    FlexPMD: Tool für Software Metriken in Flex/AS3
    • Regeln (eigene Regeln/Regelsets möglich)
    • 14. Unbenutzter Code
    • 15. Ineffizienter Code (komplexeKonstruktoren)
    • 16. Cyclomatic Complexity
    • 17. Zulanger Code
    • 18. Einsatz des Flex Lifecycles
  • FlexPMD: Technische Einbettung
    Eclipse/Idea Plugin
    Maven
    Ant
    Commandline
    OSX Automator
    Erstellt Xml-Files mit Reports
  • 19. FlexPMD:Wieverwenden?
    • Ab und zu zur Selbstkontrolle
    • 20. AlsTeil von manuellen Code reviews
    • 21. AutomatisiertübereinContinous Integration System
  • Continuous Integration
  • 22. Continuous Integration
    • Systeme, die kontinuierlich (nach Check-In oder als NightlyBuild) prüfen, ob alle Projekte funktionieren
    • 23. Bekannte CIs: Hudson, Jenkins, Teamcity, Bamboo
    • 24. Kompiliert das Projekt? (Ant, Maven)
    • 25. Laufenalle Tests durch?
    • 26. Genügt das Projekt den Anforderung an Metriken und Format?-> Diverse Plug-Ins
  • Jenkins/Sonar
    Sonar: Qualitätsmanagements - Plattform
    http://www.sonarsource.org/wp-content/themes/sonar/images/7axes.png
  • 27. Fazit: Probleme von Metriken
    • “Nur” automatischerfassbareKriterien
    • 28. Es gibt nicht unbedingt gut und schlecht
    • 29. Nicht alle Metriken machen Sinn in einem bestimmten Kontext
    • 30. Aufwendig (Einrichtung, Verantwortlichkeiten)
    • 31. Kann immer umgangen werden (Tests ohne Asserts, Kurzschreibweisen, Copy & Paste ASDocs )
  • Fazit: Vorteile von Metriken
    • Helfen gegen Vergessen
    • 32. Schaffen Bewusstsein für Code-Qualität
    • 33. Standardisierung von Software
    • 34. Auffinden von Design-Fehlern
  • Fazit: IdeenzumEinsatz
    • Unternehmens-interne Regeln denen alle zustimmen
    • 35. Verbindung mit manuellen Code-Reviews
    • 36. Mindest-Standards
    • 37. Integration in den Arbeitsalltag (CI, Visualisierung)
  • Danke!
    Fragen?
    #costanova