Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

3

Share

Software Metrics and Continuous Integration

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

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Software Metrics and Continuous Integration

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

    May. 15, 2018
  • terranova73

    Nov. 16, 2014
  • powerirs

    Dec. 29, 2011

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

Views

Total views

3,519

On Slideshare

0

From embeds

0

Number of embeds

81

Actions

Downloads

0

Shares

0

Comments

0

Likes

3

×