18
Dr. Walter Bischofberger 1 Software-Tomography GmbH © 2003 ...we make the invisible visible...

Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Embed Size (px)

Citation preview

Page 1: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 1Software-Tomography GmbH © 2003

...we make the invisible visible...

Page 2: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 2Software-Tomography GmbH © 2003

Inhalt

Patterns und Antipatterns

Automatisches Suchen von Antipatterns

Erfahrungen

Page 3: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 4: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 5: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 6: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 7: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 8: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 8Software-Tomography GmbH © 2003

Analyse auf Symbolebene

500.000 LOC 50.000 Symbole

Page 9: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 9Software-Tomography GmbH © 2003

Analyse auf Klassen/Dateiebene

4.000 Klassen

Page 10: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 10Software-Tomography GmbH © 2003

Analyse auf Paket/Verzeichnisebene

250 Packages

Page 11: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 11Software-Tomography GmbH © 2003

Analyse auf Subsystemebene

20 Subsysteme

Page 12: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 12Software-Tomography GmbH © 2003

Subsystemschnittstellen

Page 13: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 14: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 15: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 16: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 17: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

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

Page 18: Software-Tomography GmbH © 2003 Dr. Walter Bischofberger1...we make the invisible visible

Dr. Walter Bischofberger 18Software-Tomography GmbH © 2003

www.software-tomography.com

Software-Tomography GmbHCottbus, München, Zürich