Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe...

58
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit¨ at Bremen Wintersemester 2009/10

Transcript of Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe...

Page 1: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Vorlesung Software-Reengineering

Prof. Dr. Rainer Koschke

Arbeitsgruppe SoftwaretechnikFachbereich Mathematik und Informatik

Universitat Bremen

Wintersemester 2009/10

Page 2: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Uberblick I

1 Software-Visualisierung

Page 3: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Software-Visualisierung I

1 Software-VisualisierungUber diese FolienLernzieleReengineering KontextProgramm-VisualisierungStatische Programm-VisualisierungDynamische Programm-VisualisierungVisualisierung von MetrikenKlassenblaupauseEvolutionare AspekteZusammenfassungWiederholungsfragen

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 3 / 52

Page 4: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Uber diese Folien

Diese Folien entstammen einer Prasentation von Michele Lanza(Universitat Lugano), mit dessen freundlicher Genehmigung.Die Unterschiede zum Original sind:

Ubersetzung ins Deutsche

Kleinere Restrukturierungen und Verkurzungen

Weitere Visualisierungen hinzugefugt

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 4 / 52

Page 5: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Software-Visualisierung I

Lernziele

Software-Visualisierung in einem Reengineering-KontextStatische Code-VisualisierungDynamische Code-VisualisierungVisualisierung von MetrikenVisualisierung der EvolutionLeichtgewichtige Ansatze

Kontext

Reengineering ist meist interaktivGroße Datenmengen mussen verstanden werden

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 5 / 52

Page 6: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Software-Visualisierung II

Software Visualization is the use of the crafts of typography,graphic design, animation, and cinematography with modernhuman-computer interaction and computer graphics technologyto facilitate both the human understanding and effective use ofcomputer software.

– Price, Baecker and Small, Introduction to Software Visualization

Software is intangible, having no physical shape or size.Software visualisation tools use graphical techniques to makesoftware visible by displaying programs, program artifacts andprogram behaviour.

– Thomas BallRainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 6 / 52

Page 7: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

SV im Reengineering-Kontext

Ziele: Reduktion der Komplexitat

Herausforderungen:

SkalierbarkeitAufgabenabhangigkeit der VisualisierungArt der VisualisierungBegrenzte Ressourcen

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 7 / 52

Page 8: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Programm-Visualisierung

Program visualization is the visualization of the actualprogram code or data structures in either static or dynamic form.

– [Price, Baecker und Small]

GebieteStatische Programm-VisualisierungDynamische Programm-Visualisierung

AufgabenVerschiedene Sichten generierenInferenzen ermoglichen

Spezifische Probleme (aktives Forschungsgebiet)Effiziente Ausnutzung des Platzes, Kantenuberschneidungen,Layout-Probleme, Fokus, Human-Computer-Interaction, . . .Keine Konventionen (Farben, Symbole, Interpretation, . . . )

Granularitat?Ganze System, Subsysteme, Module, Klassen, Hierarchien,...

Wofur, wie und wann anzuwenden?

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 8 / 52

Page 9: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Statische Programm-Visualisierung

Visualisierung von Information, die statisch abgeleitet ist.

Hangt von Sprache und Sprachparadigma ab:

objektorientierte Sprachen: Klassen, Methoden, Attribute, Vererbung,. . .prozedurale Sprachen: Prozeduren, Aufrufe, . . .. . .

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 9 / 52

Page 10: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassendiagramme

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 10 / 52

Page 11: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassendiagramme

(wie von herkommlichen CASE-Werkzeugen dargestellt. . . )

Vorteile:

Stellen objektorientierte Konzepte darGeeignet fur kleine Ausschnitte

Nachteile:

Skalieren nichtBenotigen Filter fur relevante InformationenNur voreingestellte Sichten

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 11 / 52

Page 12: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassendiagramme mit visuellen Attributen

– Quelle: Alexandru Teleahttp://www.win.tue.nl/~alext/ARCHIVIEW/

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 12 / 52

Page 13: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassendiagramme mit Soft Shapes

– Quelle: Alexandru Teleahttp://www.win.tue.nl/~alext/ARCHIVIEW/

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 13 / 52

Page 14: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Allgemeine Graphen: Rigi

Entity-Relationship-Visualisierung

generische Prasentationdurch typisierte Graphen

Probleme:

FilterungNavigationSkalierbarkeit

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 14 / 52

Page 15: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Allgemeine Graphen: Rigi

Entities konnen gruppiertwerden

Vorteile:

Skaliert bessergenerisch

Nachteile:

Wenig Programmier-sprachensemantik

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 15 / 52

Page 16: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Gebundelte Kanten

– Quelle: Danny Holten http://www.win.tue.nl/~dholten/

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 16 / 52

Page 17: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Gebundelte Kanten

– Quelle: Danny Holten http://www.win.tue.nl/~dholten/

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 17 / 52

Page 18: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Baume: Klassen-Hierarchien

Jun/OpenGL

SmalltalkKlassenhierarchie

Probleme:

Keine weitereBedeutung der FarbeUberladen

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 18 / 52

Page 19: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Baume mit Metriken: Tree Maps

Vorteile:

hierarchisch (m.E.)100% Raumnutzungskaliert

Nachteile:

GrenzenWirres BildInterpretationNur Blatter

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 19 / 52

Page 20: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Baume mit Metriken: Tree Maps mit Texturen

– Quelle: Danny Holten http://www.win.tue.nl/~dholten/

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 20 / 52

Page 21: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Baume

Euklidische KegelVorteile:

Nutzen dritteDimension

Nachteile:

Mangelnde TiefeNavigation

Hyperbolische BaumeVorteile:

Fokus ist wahlbarDynamisch

Nachteile: Copyright

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 21 / 52

Page 22: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Metaphorische Visualisierung

– Quelle: Richard Wettelhttp://www.inf.usi.ch/phd/wettel/codecity-wof.html

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 22 / 52

Page 23: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Dynamische Programm-Visualisierung

Visualisierung dynamischen Verhaltens

Ausfuhrungs-TraceRessourcenverbrauch (Speicher/Laufzeit)Objekt-Interaktion. . .

Schritte:1 Code-Instrumentierung2 Gewinnung der Laufzeitinformation3 Auswertung der Laufzeitinformation4 Visualisierung der Auswertung

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 23 / 52

Page 24: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Beispiel 1: JInsight(http://www.research.ibm.com/jinsight)

Visualisierung von Ausfuhrungs-Traces

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 24 / 52

Page 25: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Visualisiert Sequenzdiagramme; jeder vertikale Streifen reprasentiert ein Objekt; die Farbe des Streifens kodiert dieKlasse. Die Zeit schreitet von oben nach unten fort. Aufrufe sind durch Kanten zwischen Objekten dargestellt undhaben die aufgerufene Methode als Label. Die zeitlichen Bereiche, in denen ein Objekt tatsachlich aktiv sind (d.h.nicht nur eine andere Methode aufrufen, sondern tatsachlich selbst rechnen), sind im Streifen etwas hellerdargestellt.JInsight erlaubt es auch, wiederkehrende Aufrufmuster automatisch zu erkennen und darzustellen. Ahnliche, aberleicht unterschiedliche Muster konnen dabei ubereinandergelegt werden, um so die Unterschiede darzustellen.

Page 26: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Beispiel 2: Aufrufmatrix fur Klassen

einfach

skaliert

reproduzierbar

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 25 / 52

Page 27: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Inter-Class Call Matrix: This view provides an overview of the communication between classes. The matrix plotswhich classes call which other classes. Classes are arranged along both axes in the order they are instantiated. Thecolor of the dots indicate the frequency of that communication.

Page 28: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Dynamische SV: Probleme

Code-Instrumentierungsproblem

Logging, erweiterte Virtual Machines, Method-Wrapping

Skalierbarkeitsproblem

Fulle der DetailsTraces werden sehr schnell enorm groß

Vollstandigkeitsproblem

Information gilt nur fur betrachtete Szenarien

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 26 / 52

Page 29: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Visualisierung von Metriken (Lanza 2003; Lanza undDucasse 2003)

Kombination von Metriken undSoftware-Visualisierung

Graph-ReprasentationBis zu funf Metrikenbestimmen die Visualisierungder Knoten:

Große (1+2)Farbe/Farbton (3)Position (4+5)

X−Koordinate Relation

Element

Y-KoordinateFarbton Hohe

Breite

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 27 / 52

Page 30: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

System Complexity View

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 28 / 52

Page 31: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Method Efficiency Correlation View

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 29 / 52

Page 32: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Inheritance Classification View

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 30 / 52

Page 33: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Added: Ganz neue Methoden.Overridden: Ererbt und redefinierte Methoden.Extended: Overridden + Aufruf der gleichen Methode via super (Smalltalk), d.h. Aufruf zur entsprechendenMethode, die uberschrieben wurde.

Page 34: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Data Storage Class Detection View

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 31 / 52

Page 35: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Von links nach rechts nach Breite (Number of Methods) geordnet.Dieselbe Metrik (Number of Methods) wird hier auf dreifache Weise dargestellt: Breite, Position innerhalb derOrdnung und Farbe. Dadurch kann ein verstarkender Effekt erzeugt werden.

Page 36: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Granularitatsproblem

Hubsch . . . aber was verbirgt sich dahinter?

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 32 / 52

Page 37: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassenblaupause (Ducasse und Lanza 2005)

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 33 / 52

Page 38: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Die Einteilung hangt etwas von der Ausdruckskraft der Programmiersprache ab, auch von dem, was der Benutzertatsachlich sehen mochte: aus Sicht der Spezifikation bzw. aus Sicht der tatsachlichen Verhaltnisse.

• Initialization: Kontruktoren (soweit die Programmiersprache sie explizit darstellt, auch: Methoden, die Init und ahnlicheZeichenketten im Namen enthalten oder solche, die einen new-Operator fur die Klasse enthalten

• Interface: offentliche Methoden; auch: solche, die tatsachlich von außerhalb aufgerufen werden (Accessors sind in eineranderen Kategorie; siehe unten)

• Implementation: versteckte Methoden bzw. solche, die von außerhalb nicht benutzt werden

• Accessors: Offentliche Methoden, die nichts weiter tun als ein Attribut zu setzen bzw. zu lesen

• Attribute: versteckte Attribute

Page 39: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Semantische Information

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 34 / 52

Page 40: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Kategorisierung von Klassen

Basiert aufKlassenblaupausen

Zwei Perspektiven:

Einzelne KlasseVererbungskontext

Klassenblaupausefur jede einzelneKlasseSind als Baumangeordnet

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 35 / 52

Page 41: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassenblaupause: Data Storage

Viele Attribute

Kann vieleZugriffsoperationen haben(Accessors)

Harmloses Verhalten

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 36 / 52

Page 42: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassenblaupause: Wide Interface

Viele Methoden in derSchnittstelle

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 37 / 52

Page 43: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Klassenblaupause: Large Implementation

GeschachtelteAufrufstruktur

Viele Methoden

Hohe Komplexitat

Breite Schnittstelle

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 38 / 52

Page 44: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Evolutionare Aspekte (Lanza 2003)

Die Gegenwart ist oft verstandlicher, wenn man die Vergangenheitkennt.

Betrachtung von Aspekten des Systems uber die Zeit.

Metrikwerte konnen besser eingeschatzt werden.Erlaubt, Trends auszumachen.

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 39 / 52

Page 45: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Evolutionsmatrix

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 40 / 52

Page 46: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Kategorisierung von Klassen anhand der Evolutionsmatrix

Dargestellte Metriken fur Klassen:

NOM (number of methods)NOA (number of attributes)

Kategorisierung anhand der”individuellen Evolution“ und der

”System-Evolution“:

PulsarSupernovaWeißer ZwergRoter RieseDornroschenEintagsfliegeMethusalem

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 41 / 52

Page 47: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Pulsar

Definition

Pulsar: wiederholte Anderungen, die Element großer und kleiner werdenlassen.→ System-Hotspot: Jede neue Version verlangt Anpassungen.

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 42 / 52

Page 48: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Supernova

Definition

Supernova: Plotzlicher Anstieg. Mogliche Grunde:

massive Restrukturierung

Datenspeicher fur Daten, die plotzlich hinzugekommen sind

Schlafer: Stumpf, der mit Funktionalitat gefullt wird

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 43 / 52

Page 49: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Weißer Zwerg, Roter Riese, Dornroschen

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 44 / 52

Page 50: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Eintagsfliege & Methusalem

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 45 / 52

Page 51: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Fallstudie MooseFinder (38 Versionen)

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 46 / 52

Page 52: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Spektrograph

x-Achse: Zeit; y-Achse: Softwareeinheit; Farbe: #commits

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 47 / 52

Page 53: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Courtesy Jingwei Wu, Richard C. Holt, Ahmed Hassan, University of Waterloo, Canada

Page 54: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Farbung im Spektrograph

linearer Gradient

exponentieller Gradient

Stufen

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 48 / 52

Page 55: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Software-Visualisierung (SV) I

SV ist unabdingbar im Reengineering-Kontext

Match-Mismatch-Hypothese:

problem-solving performance depends on whether thestructure of a problem is matched by the structure of anotation

– Gilmore und Green

Jede SV betont bestimmte Information und vernachlassigt andereInformation.

Geeignete SV ist abhangig von der zu losenden Aufgabe.

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 49 / 52

Page 56: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Software-Visualisierung (SV) II

”Alphabetismus“ der SV

Wie drucke ich es aus?

Wie interpretiere ich es?

Vieles noch in der Forschung, wenig in kommerziellen Werkzeugen

Software-Wahrnehmung: Andere menschliche Sinne werden genutzt

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 50 / 52

Page 57: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

Wiederholungs- und Vertiefungsfragen I

Wofur eignen sich Tree Maps und wie sind sie zu interpretieren?

Welche Probleme gibt es bei der Visualisierung dynamischer Daten?

Wie lassen sich Metriken visualisieren?

Was ist eine Klassenblaupause?

Wie lassen sich damit Klassen charakterisieren?

Welche zusatzlichen Aspekte lassen sich durch die Visualisierungevolutionarer Daten gewinnen?

Was sagt die Match-Mismatch-Hypothese (Gilmore und Green) aus?

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 51 / 52

Page 58: Prof. Dr. Rainer Koschke · Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universit at Bremen

Software-Visualisierung

1 Ducasse und Lanza 2005 Ducasse, Stephane ; Lanza, Michele: TheClass Blueprint: Visually Supporting the Understanding of Classes. In:IEEE Computer Society Transactions on Software Engineering 31(2005), Januar, Nr. 1, S. 75–90

2 Lanza 2003 Lanza, Michele: Object-Oriented Reverse Engineering -Coarse-grained, Fine-grained, and Evolutionary Software Visualization.http://www.inf.unisi.ch/faculty/lanza/Downloads/Lanz03b.pdf,University of Bern, Dissertation, 2003

3 Lanza und Ducasse 2003 Lanza, Michele ; Ducasse, Stephane:Polymetric Views—A Lightweight Visual Approach to ReverseEngineering. In: IEEE Computer Society Transactions on SoftwareEngineering 29 (2003), Nr. 9, S. 782–795

Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/2010 52 / 52