software-tomography gmbh © 2003 dr. walter bischofberger1...we make the invisible visible
TRANSCRIPT
Dr. Walter Bischofberger 1Software-Tomography GmbH © 2003
...we make the invisible visible...
Dr. Walter Bischofberger 2Software-Tomography GmbH © 2003
Inhalt
Patterns und Antipatterns
Automatisches Suchen von Antipatterns
Erfahrungen
Dr. Walter Bischofberger 3Software-Tomography GmbH © 2003
Patterns und Antipatterns
Patterns Muster wie man Software organisieren kann -> Konstruktion
Antipatterns Muster für verbreitete Fehler und Probleme -> Analyse
Patterns und Antipatterns gibt es auf Code-, Mikroarchitektur- und Architekturebene
Dr. Walter Bischofberger 4Software-Tomography GmbH © 2003
Code-Smells
Stil Einrückungen Namensgebung
Inkonsistenzen JavaDoc entspricht strukturell nicht dem Quelltext
Schlecht wartbarer Code Schlechtes Exceptionhandling Duplizerter Code Kompizierte boolsche Ausdrücke
Gefährlicher Code Connections die nicht geschlossen werden
Dr. Walter Bischofberger 5Software-Tomography GmbH © 2003
Bad-Smells (Mikroarchitektur)
Fehlende oder falsche Abstraktionen Abstrahierbare Methoden- und Attributgruppen Implementationsvererbung (Subklassen überschreiben nichts) Vererbungshierarchie ohne polymorphe Zuweisungen
Kopplungs und Kohäsionsprobleme Flaschenhälse Zyklen auf Klasseneben Law of Demeter Typabfragen
Grössenprobleme Zu grosse Klassen Methoden mit duzenden von Parametern
Unbenutzte Artefakte Klassen, Methoden, Attribute
Dr. Walter Bischofberger 6Software-Tomography GmbH © 2003
Architektur-Smells
Quelltext enspricht nicht der Architektur Architekturverletzungen durch illegale Beziehungen
zwischen Artefakten Kopplungs und Kohäsionsprobleme
Starke Kopplung, mangelnde Kohäsion Zyklische Beziehungen zwischen Artefakten
Geschichte Artefakte die über längere Zeiträume immer verändert
werden Artefakte an denen viele Entwickler gleichzeitig arbeiten
Anderes Übergeneralisierung
Dr. Walter Bischofberger 7Software-Tomography GmbH © 2003
Aufbau des Sotographen
JavaParser
Xref-Scope
Metrics Scope
SNiFF+C/C++
Graph Scope
Reposi-tory
(RDBMS)
QueryScope
IDE InteractionArchitecture
Scope
QueryDeveloper
Metrics & Transformation
Engine
Java SourceParser
RepositoryFill Interface
CustomFill Interfaces
ComponentStructure
EJBAnalyzer
CMInformation
Dr. Walter Bischofberger 8Software-Tomography GmbH © 2003
Analyse auf Symbolebene
500.000 LOC 50.000 Symbole
Dr. Walter Bischofberger 9Software-Tomography GmbH © 2003
Analyse auf Klassen/Dateiebene
4.000 Klassen
Dr. Walter Bischofberger 10Software-Tomography GmbH © 2003
Analyse auf Paket/Verzeichnisebene
250 Packages
Dr. Walter Bischofberger 11Software-Tomography GmbH © 2003
Analyse auf Subsystemebene
20 Subsysteme
Dr. Walter Bischofberger 12Software-Tomography GmbH © 2003
Subsystemschnittstellen
Dr. Walter Bischofberger 13Software-Tomography GmbH © 2003
Schichtenarchitektur
Illegale Benutzungsbeziehungen:
Product Line 1 Product Line 2
Layer 1
Layer 2
Layer 3
Interface
Überspringen von Schichten (optional)
Aufwärts-Benutzung: Immer illegal
Abhängigkeit innerhalb einer Schicht (optional)
Benutzung am Interface vorbei:Immer illegal
Dr. Walter Bischofberger 14Software-Tomography GmbH © 2003
Zyklenbasierte Architekturanalyse
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.
Erfahrung in grossen Projekten zeigt dass Zyklen die Wartbarkeit deutlich verschlechtern das Auflösen von Zyklen nicht mehr Wartbare Systeme
wieder erweiterbar machen kann
Dr. Walter Bischofberger 15Software-Tomography GmbH © 2003
Metrik- und regelbasierte Analyse
Arten Architekturmetriken
• Z.B. Stabilitätsmetriken von Robert C. Martin Grössen- und Kopplungsmetriken
• Z.B. Anzahl Klassen pro Package, Anzahl verwendeter Packages
Komplexitätsmetriken• Z.B. Cyclomatic Complexity
Regeln• Z.B eine Klasse darf die von ihr abgeleiteten Klassen nicht
kennen Bad Smells
• Z.B. Flaschenhälse, unbenutzte Artefakte
Dr. Walter Bischofberger 16Software-Tomography GmbH © 2003
Metrik- und Regelbasierte Analyse
Schwierigkeiten
Sehr grosse Menge Messwerte Filtern
Verstehen der Ursache eines Messwerts Erklärungen Visualisierung im Kontext des Softwaresystems
Das Untersuchen einer Version genügt oft nicht Trend-Unterstützung
Definieren eigener Metriken Ermöglicht durch Einfaches Datenmodell im Repository
Dr. Walter Bischofberger 17Software-Tomography GmbH © 2003
Erfahrungen aus der Praxis
Kurzanalysen durch uns Ein halber Tag genügt um den Finger in die offenen Wunden zu
legen. Die Kunden sind sich dieser Ursachen ihrer Probleme häufig
nicht bewusst. Software Qualitätsanalyse durch Qualitätsberater
Sehr tiefgehende Qualitätsanalysen grosser, komplexer Softwaresysteme zwei Personenwochen Aufwand
Aufwand: Zwei Personenwochen versus 10 Personenwochen Architektur-Reengineering bei einer Schweizer Grossbank
2'000'000 LOC Identifizierung des Problems Überwachung der iterativen Verbesserung Basisanalyse und Einarbeitung: drei Tage
Dr. Walter Bischofberger 18Software-Tomography GmbH © 2003
www.software-tomography.com
Software-Tomography GmbHCottbus, München, Zürich