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
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
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