Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken.

Ähnliche Präsentationen


Präsentation zum Thema: "Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken."—  Präsentation transkript:

1 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken

2 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Inhalt Qualitätsbegriff Typische Probleme Ansätze zum Vermeiden dieser

3 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Qualität

4 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Typische Probleme Implementationsebene –Handwerklich schlechte Codierung riesige, komplexe Methoden unsorgfältige Fehlerbehandlung unleserliche Formatierung Reuse by Editor –Falsche Verwendung der Technologie

5 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Typische Probleme Designebene –Schlecht strukturierte Klassenknäuel –Gottklassen

6 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Typische Probleme Architekturebene –Fehlende Architektur –Degenerierte Architektur

7 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Big Ball of Mud Pattern A BIG BALL OF MUD is haphazardly structured, sprawling, sloppy, duct- tape and bailing wire, spaghetti code jungle. Weve all seen them. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Brian Foot and Joseph Yoder,

8 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Ansätze zur Verbesserung Foote and Yoder: –One of mud's most effective enemies is sunshine. –> Expose your code to daylight!

9 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Ansätze zur Verbesserung II Kommunikation, Ausbildung, Kontrolle –Code Reading, Pair Programming –Regelprüfung auf Implementationsebene –Software Metriken –Regelprüfung auf Design- und Architekturebene

10 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Regelprüfung auf Code-Ebene Regelbeispiele –Abstract types should not have constructors –Assemblies should have valid strong names –Avoid empty interfaces –Avoid excessive parameters on generic types –Avoid namespaces with few types –Avoid out parameters –Collections should implement generic interface –Consider passing base types as parameters

11 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Regelprüfung auf Code-Ebene II Prüfung –In der IDE –Evtl. auch in einem Monitoring-Werkzeug zur zentralen Überwachung Erfahrung –Gut zum Kennenlernen einer neuen Kultur –Einigung auf Regelsatz im Team häufig schwierig –Findet bei erfahrenen Entwicklern kaum Probleme –Kann in seltenen Fällen relevante Probleme identifizieren

12 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Regelprüfung auf Code-Ebene III Einfacher Einstieg mit FxCop –von Microsoft (gratis) Code analysis tool that checks.NET assemblies for conformance to the Microsoft.NET Framework Design Guidelines. It uses reflection, MSIL parsing, and call graph analysis to inspect assemblies for more than 200 defects in the following areas: naming conventions, library design, localization, security, and performance. The package includes both GUI and command line versions of the tool, as well as the SDK to create your own rules. –Mehr als 100 vordefinierte Regeln –http://www.gotdotnet.com/team/fxcop/

13 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Software Metriken Typische Kategorien mit Beispielen –Größe Anzahl öffentliche Methoden ohne Getter und Setter Anzahl Zeilen einer Methodenimplementation –Kopplung Anzahl verwendeter Artefakte –Komplexität Cyclomatic Complexity, größte Verschachtelungstiefe –Bad Smells Gottklassen, unbenutzte Artefakte

14 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Software Metriken II Erfahrung –Liefert Werte, die interpretiert werden müssen –Identifiziert viele Probleme, die keine sind –Gut geeignet zum Identifizieren von Extremfällen –Gut geeignet als Input für Qualitätsanalysen –Metriken können erfolgreich zu Regeln befördert werden. Z.B. keine Methodenimplementierung darf mehr als 100 Zeilen haben. –Metriken sind hauptsächlich als Zusatzinformation nützlich.

15 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Software Metriken III Einfacher Einstieg mit Vil –Einfach bedienbare Metrikberechnungsengine –Gratis für Assemblies mit < 100 Klassen –Sinnvolle Standardmetriken –Vil ermöglicht einen schnellen Einstieg. –Wer den Metrikansatz seriös verfolgen will sollte sich nachher professionellere Werkzeuge anschauen. –http://www.1bot.com/

16 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Architekturebene Was kann man messen? –Zyklische Beziehungen auf allen Abstraktionsebenen –Grosse duplizierte Code-Blöcke –Strukturelle Architekturkonformität der Implementierung

17 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Zyklische Beziehungen Wieso sind zyklische Beziehungen problematisch? –Artefakte die zyklisch gekoppelt sind können nicht einzeln getestet werden. –Artefakte die in verschiedenen Zyklen gebraucht werden spielen dabei häufig mehrere Rollen, was sie schlecht verständlich macht. –Artefakte die in verschiedenen Zyklen gebraucht werden können nicht mehr einfach ausgetauscht werden.

18 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Zyklenbeispiel JDK 1.5: 1315 Klassen in 229 Packages hängen alle direkt oder indirekt von einander ab

19 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Duplizierter Code Wieso ist duplizierter Code problematisch? –Je mehr Code desto schwieriger wird es die Übersicht zu behalten –Fehler müssen an verschiedenen Stellen mehrfach geflickt werden Erfahrung in riesigen Projekten zeigt –bis zu 70% des Codes sind Duplikate

20 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Architekturkonformität Voraussetzung um diese Messen zu können –Explizite Repräsentation der Architektur

21 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Abstraktionsebene Namespace/Verzeichnis /Paket

22 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Abstraktionsebene Subsystem

23 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Subsystemschnittstellenverletzung

24 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Grapharchitekturen Erlaubte Beziehung Verbotene Beziehung

25 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Schichtenarchitekturen Ober- fläche Fach- logik Daten- haltung Interface Strikte Schichtung durchbrochen (optional) Aufwärts- referenz: Immer illegal Illegale Benutzungsbeziehungen:

26 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Anwendung von Schichtenarchitekturen Vertikale Schichten z.B. für Produktlinien Verfeinern einer Schicht Prozess- und Library- Schichtenmodelle Hauptschichtenmodell

27 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Architekturprüfung Einfacher Einstieg mit "Sotograph for Architects" –Mächtige intuitive Architekturmodellierung –Virtuelles Reengineering –Strukturelles Verstehen –Zyklenanalyse –Während der Prerelease-Phase gratis –Anfragen an

28 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Werkzeugübersicht -analysers-standards-verifiers

29 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Wichtig für Praktischen Einsatz Monitoring –Einfach und schnell Prüfen von relativ wenigen zentralen Regeln –Trendunterstützung –Prüfung in der IDE wo sinnvoll –Visualisierung der Entwicklung über die Zeit für die Erfolgskontrolle Tiefenanalysen –So viel Information wie möglich –Erklären der Ursachen von Problemen –Visualisierung im Kontext der Gesamtanwendung

30 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Wichtig für praktischen Einsatz II Reengineeringplanung –Virtuelles refactoring –Überwachung der Umsetzung –Externe Spezialisten können eingefahrene Ideen hinterfragen

31 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Voraussetzungen –Low-level Regelprüfung Muss in der IDE funktionieren –Metriken Trend, Reports, Erklärungen –Architekturprüfung Umgang mit Problemen, die nicht sofort behoben werden können –Unterscheidung alte vs. neue Probleme Wichtig für praktischen Einsatz III

32 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Werkzeugfamilie für Monitoring Reposi- tory (RDBMS) Sotograph Client Swing-GUI Erstellen der Architektur und Metrik Modelle Visualisierung What-if-analysen Ad-hoc-abfragen Sotograph HTML-GUI Schneller interaktiver Zugriff auf Information über Metriken und Regelverletzungen, ihre Veränderung über die Zeit und Hineinzoomen bis zum Quelltext Web Browser HTML and PDF Reports Schnelle Übersicht über die Veränderung relevanter Qualitätsaspekte für Gruppen von Softwaresystemen Sotoweb Reporting Add-ons Sotoreport

33 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Nutzen des Qualitätsmonitoring Ohne Architekturmonitoring –Publizierte Studien zeigen Einsparungen im Bereich von 10-30% der Wartungskosten Mit Architekturmonitoring –Die Einsparungen bei Erweiterungen müssten langfristig deutlich größer sein

34 Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken Software-Tomography GmbH Cottbus, München, Zug


Herunterladen ppt "Dr. Walter BischofbergerCode wartbar: Qualität messen, Metriken."

Ähnliche Präsentationen


Google-Anzeigen