Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Metriken - Der Herzschlag des Clean Codes

Avatar for hdowalil hdowalil
October 11, 2018

Software Metriken - Der Herzschlag des Clean Codes

"If you can´t measure it, you can´t manage it"

Das wusste schon Peter Drucker. In dieser Session wird es um die Möglichkeiten gehen, die Qualität des Codes in Zahlen auszudrücken. Außerdem werfen wir einen Blick auf die Fallstricke, welche beim Einsatz von Kennzahlen aus uns lauern (Stichwort: Kobra-Effekt). Natürlich nicht ohne auch mögliche Lösungsansätze zu betrachten.

Avatar for hdowalil

hdowalil

October 11, 2018

More Decks by hdowalil

Other Decks in Programming

Transcript

  1. 2 Codemetriken embarc.de Herbert Dowalil n  Softwareentwickler + -architekt bei

    embarc in Wien Schwerpunkte: n  Software Entwurf, Design u. Metriken n  Makro- bzw. Enterprise Architektur n  Java Technologien [email protected] @hdowalil xing.to/hdowalil
  2. 4 Codemetriken embarc.de 1 Über den „richtigen Schnitt“: Relational Cohesion,

    LCOM, McCabe 2 How not to be seen: Visibility Metriken 3 Celebrity Showdown: John Lakos vs Robert C. Martin 4 Probleme und Lösungen im Umgang mit Metriken Agenda
  3. 5 Codemetriken embarc.de 1 Über den „richtigen Schnitt“: Relational Cohesion,

    LCOM, McCabe 2 How not to be seen: Visibility Metriken 3 Celebrity Showdown: John Lakos vs Robert C. Martin 4 Probleme und Lösungen im Umgang mit Metriken Agenda 1
  4. 9 Codemetriken embarc.de 1 Über den „richtigen Schnitt“: Relational Cohesion,

    LCOM, McCabe 2 How not to be seen: Visibility Metriken 3 Celebrity Showdown: John Lakos vs Robert C. Martin 4 Probleme und Lösungen im Umgang mit Metriken Agenda 2
  5. 10 Codemetriken embarc.de How not to be seen “On the

    Criteria To Be Used in Decomposing Systems into Modules” Communications of the ACM, Vol. 15, No. 12, December 1972 D.L. Parnas Carnegie-Mellon University Verberge Implementierungs-details gegenüber deinen Consumern. Alles was verborgen werden kann, lässt sich später jederzeit ändern, ohne einen Einfluss auf Consumer zu haben.
  6. 11 Codemetriken embarc.de Visibility Metriken Relative Visibility (RV) = (

    1 sichtbar / 3 gesamt) * 100 = 33,33% Relative Visibility (RV) = ( 4 sichtbar / 6 gesamt) * 100 = 66,66% Average Relative Visibility (ARV) = (33,33 + 66,66) / 2 = 50% Global Relative Visibility (GRV) = (5 sichtbar / 9 gesamt) *100 = 55,55%
  7. 12 Codemetriken embarc.de 1 Über den „richtigen Schnitt“: Relational Cohesion,

    LCOM, McCabe 2 How not to be seen: Visibility Metriken 3 Celebrity Showdown: John Lakos vs Robert C. Martin 4 Probleme und Lösungen im Umgang mit Metriken Agenda 3
  8. 13 Codemetriken embarc.de Dependencies & Seiteneffekte n  Jede Änderung eines

    Bausteins hat potentielle Auswirkungen n  Probleme und Fehler können sich über seine eingehenden Abhängigkeiten weiter ausbreiten n  In einem zyklisch strukturierten System wäre potentiell jeder Baustein betroffen n  Instabile Bausteine sollten eingehende Abhängigkeiten aufweisen Änderung Potentieller Seiteneffekt
  9. 14 Codemetriken embarc.de Robert C. Martin Afferent Coupling (Ca) =

    Anzahl eingehender Abhängigkeiten Instability = Ce / (Ce + Ca) Efferent Coupling (Ce) = Anzahl ausgehender Abhängigkeiten
  10. 15 Codemetriken embarc.de John Lakos Average Component Dependency (ACD) =

    CCD / Anzahl Bausteine = 84 / 14 = 6 Cumulative Component Dependency (CCD) = Summe aller DependsUpon Werte = 84 Relative Average Component Dependency (RACD) = (6 / 14) * 100 = 42,85 %
  11. 16 Codemetriken embarc.de Strukturzyklen Relative Cyclicty = (4 Bausteine in

    zyklischen Abhängigkeitsketten / 14 Bausteine in Summe) * 100 = 28.57 %
  12. 17 Codemetriken embarc.de Metriken Summary §  LCOM(x) §  Zyklomatische Komplexität

    §  Visibility Metriken (RV, ARV, GRV) §  Software Package Metrics von Robert C. Martin (Ca, Ce, Instability) Kontrollmechanismen §  Relational Cohesion §  Metriken nach John Lakos (CCD, ACD, RACD) Spätindikatoren
  13. 18 Codemetriken embarc.de 1 Über den „richtigen Schnitt“: Relational Cohesion,

    LCOM, McCabe 2 How not to be seen: Visibility Metriken 3 Celebrity Showdown: John Lakos vs Robert C. Martin 4 Probleme und Lösungen im Umgang mit Metriken Agenda 4
  14. 22 Codemetriken embarc.de Lösung #2 Vertikale Organisation in Org. und

    IT Feature A Feature B Feature C Analyse Entwicklung Betrieb Analyse Analyse Entwicklung Entwicklung Betrieb Betrieb
  15. 29 Codemetriken embarc.de Zusammenfassung §  Viele Qualitätsaspeke einer Software lassen

    sich gut in Metriken abbilden §  Manche Metriken taugen als Kontrollmechanismus, andere wiederum nur als Spätindikatoren §  Beim Einsatz von Metriken gibt es diverse Fallstricke zu beachten, wie den gefürchteten “Kobra-Effekt” §  Vorschläge für einen vernünftigen Umgang mit dem Thema Metriken: §  Messe das Endergebnis und nicht nur Teilaspekte §  Binde das Team mit ein und sorge so für Eigenmotivation §  Beobachte den Trend und versuche nicht krampfhaft einen Grenzwert zu erreichen §  Vermeide gezielt typische “Kobras” -> https://www.embarc.de/ueber-die-vermessung-von-software/