Visualisierung von Softwareevolution

Werbung
Visualisierung von Softwareevolution
Seminar über Softwarevisualisierung
TU Kaiserslautern SS 2006
Betreuer: Dr. Andreas Kerren
Sebastian Bachtler
21.07.2006
Übersicht
• Motivation
• Multidimensional Scaling Views
• Discret Time Figures
• Evolutionäre Spektrographen
• Zusammenfassung
Übersicht
2 / 38
Motivation
• Warum visualisieren wir Softwareevolution?
– Aufdecken versteckter Zusammenhänge
• Beispiel: Schnittstellenänderung verursacht Inkompatibilität
– Bessere Behandlung komplexer Fehler möglich
– Besseres Vermitteln von Funktionsweisen an Dritte
– Analyse der Arbeitsweise der am Projekt Beteiligten
• Erfahrenen Entwickler ändern mehr Dateien synchron
3 / 38
Motivation
Multidimensional Scaling Views
• Motivation
• Multidimensional Scaling Views
Quelle: [1]
• Discret Time Figures
• Evolutionäre Spektrographen
• Zusammenfassung
Multidimensional Scaling Views
4 / 38
Datengrundlage: RHDB
•
Release History Data Base
• Enthält Änderungs- und Fehlerberichte
5 / 38
Multidimensional Scaling Views
Features
• Zum Beispiel: Fähigkeit zur SSH2 Verschlüsselung
• Definition über aufgerufene Dateien
• Dateiaufrufe während Testszenarien aufgezeichnet
• Dateien mittels Mengenoperationen den einzelnen
Features zugeordnet.
Xml = (MathML ∩ XML ) /
(Core ∪ HTML ∪ PNG ∪ fBlank ∪ hBlank ∪ ChromeGIF )
Multidimensional Scaling Views
6 / 38
Multidimensionales Scaling: Grundlagen
• Wiedergabe der Unterschiede zwischen einzelnen
Objekten möglichst exakt durch Abstände
Î Statistisches Verfahren ([6]), Minimierung von:
(
⎛
Stress D ( x1 ,..., x N ) = ⎜⎜ ∑ Di , j − xi − x j
⎝ i≠ j
)
2
⎞
⎟
⎟
⎠
1
2
Stress= Unterschied zwischen Abstand und Unterschiedlichkeit
Multidimensional Scaling Views
7 / 38
Unterschiedsmatrix
• Erstellen einer Fehlerberichtsbeschreibung
d i = {an an Rmk ∧ mk Rpi }
di = Menge der Softwareeinheiten die über einen Änderungsbericht mit
dem Fehlerbericht verbunden ist
• Berechnen des Abstandes
⎧ ⎛
⎞
n
1⎜
⎟ if pi Rp j
⎪ 1−
dist (d i , d j ) = ⎨ 2 ⎜ min (si , s j ) ⎟
⎝
⎠
⎪
sonst
1
⎩
Multidimensional Scaling Views
8 / 38
Gewichtete Kanten
• Abstandsdarstellung durch Kantengewichte
• Definieren einer Verbindung zwischen 2 Objekten
an Rmk ∧ mk Rpi ∧ mk Rp j
an Rmk ∧ mk Rpi ∧ an Rml ∧ ml Rp j
Î es existiert ein verbindender Änderungsbericht oder eine über zwei
Änderungsberichte mit dem Fehlerbericht verbundene Softwareeinheit
• Gewicht berechnen
⎢ ln n
⎥
* 8 + 1,5⎥
weight (vi , v j ) = 10 − ⎢
⎣ ln nmax
⎦
Multidimensional Scaling Views
9 / 38
Erste Sicht: Feature View
• Alle Dateien eines Features an die selbe Stelle
• Liniendicke gibt Gewicht an
Multidimensional Scaling Views
10 / 38
Zweite Sicht: Project View
• schwarze Linien :
Verzeichnisbaum
• rosa Linien:
Verbindung durch
Fehlerbericht
• minchildsize:
Mindestanzahl Kinder pro
Knoten
• compact:
Mindestanzahl
Fehlerberichte
Multidimensional Scaling Views
11 / 38
Discrete Time Figures
• Motivation
• Multidimensional Scaling Views
• Discret Time Figures
Quelle: [2]
• Evolutionäre Spektrographen
• Zusammenfassung
Discrete Time Figures
12 / 38
Enstehung und Idee
• Basiert auf Zeitstrahldarstellung
• Probleme :
– Schlecht skalierbar
– Anzahl Aktionen pro Zeiteinheit nicht erkennbar
13 / 38
Discrete Time Figures
Enstehung und Idee
• Besser bei Discrete Time Figure:
• Aber: Keine Zuordnung zur Datei, zum Entwickler
Discrete Time Figures
14 / 38
Färbung und Phasen
Rot: Viele Einträge
Blau: Wenig Einträge
High Stable Phase:
min. vier rote Abschnitte
Stable Phase:
min. vier gleiche Abschnitte
Spike Phase:
min. 2 blaue + 1 roter +
min. 2 blaue Abschnitte
Discrete Time Figures
15 / 38
Skalierung durch Phasen
• In der skalierten Ansicht werden die Randfarben als
Füllfarben verwendet.
Discrete Time Figures
16 / 38
Muster
• Persistent:
• Bug Persistent:
min. 80 % der Lebenszeit enthalten
Einträge
min 80% der Revisionseinträge
stehen Fehlereinträge gegenüber
• High Production
Persistent:
min. 80% haben hohe Produktivität
17 / 38
Discrete Time Figures
Muster
• Day Fly:
• Dead Day Fly:
Discrete Time Figures
max. 20% der Lebenszeit enthalten
Einträge
max. 20% der Lebenszeit, danach
gelöscht
18 / 38
Muster
• Introduced for Fixing:
erste Revision nach erstem
Fehler
19 / 38
Discrete Time Figures
Muster
• Stabilization:
Discrete Time Figures
min. 5 Zeiteinheiten mit hohen
Revisionseinträgen und eine
High Stable oder Spike Phase,
Fehler und Revisionen enden mit
Stable Phase
20 / 38
Muster
• Addition of Features:
R − Spike begin ≤ F − Spike begin ≤ R − Spike end + 2
R − Spike begin ≤ F − HighStable begin ≤ R − Spike end + 2
R − HighStable begin ≤ F − HighStable begin ≤ R − HighStable end − 2
R − HighStable begin ≤ F − Spike begin ≤ R − HighStable end − 2
21 / 38
Discrete Time Figures
Muster
• Bug Fixing:
R − Spike begin ≤ F − Stable begin ≤ R − Spike end + 2
R − HighStable begin ≤ F − Stable begin ≤ R − HighStable end − 2
Discrete Time Figures
22 / 38
Muster
• Refactoring / Code Cleaning
R − HighStable begin > F − Stable begin ∧ R − HighStable end < F − Stable end
R − Spike begin > F − Stable begin ∧ R − Spike end < F − Stable end
Discrete Time Figures
23 / 38
Evolutionäre Spektrographen
• Motivation
• Multidimensional Scaling Views
• Discret Time Figures
• Evolutionäre Spektrographen
Quellen: [3] und [4]
• Zusammenfassung
Evolutionäre Spektrographen
24 / 38
Idee
• Darstellung wie bei der Schallanalyse
• Drei Dimensionen:
– Spektrum:
Einheiten die gemessen werden
– Zeit:
entweder kontinuierlich oder nach
Ereignissen unterteilt
– Messung:
Pro Zeiteinheit und Spektrumseinheit wird
ein Messwert eingetragen.
Evolutionäre Spektrographen
25 / 38
Spektrographenmatrix
• Die drei Dimensionen werden gespeichert in einer
Matrix
• Diese Matrix kann später durch einfaches Einfärben
in einen Spektrographen umgesetzt werden
Evolutionäre Spektrographen
26 / 38
Kanonische Netzwerke
• Mögliche Datengrundlage für evolutionäre
Spektrographen, wird nur in [3] verwendet
Î Graph mit gewichteten Knoten
• Ermöglichen gleichberechtigte Erfassung
unterschiedlicher Daten, auch nicht
softwarebezogene Daten
27 / 38
Evolutionäre Spektrographen
Kanonische Netzwerke
Software
Paper
Knoten
Entwickler
Autoren
Gewicht
Anzahl Änderungen
Anzahl Paper
Kanten
Mitarbeiter
Co - Autoren
• Gemessen werden Knotengewicht und Anzahl
Nachbarn
W (x ) =
Gewichtsänderung von Knoten x während Zeit t
Summe aller Gewichtsänderungen während Zeit t
Evolutionäre Spektrographen
28 / 38
Färbung
• Man unterscheidet drei Möglichkeiten
– Quartile Coloring, nur in [3]:
– Lineare Färbung, aus [4]: definiere maximalen und
minimalen Farbwert
Zwischenfarben werden durch
lineare Abstufung festgelegt
29 / 38
Evolutionäre Spektrographen
Färbung
– Exponentieller Zerfall, aus [4]:
HSV Farbraum
drei Farben Chot, Ccold,CBG
Annährung von Chot nach Ccold
HSV Farbraum aus: [5]
⎧
⎪
⎪
C[i ][ j ] = ⎨
⎪
⎪⎩
C BG
if M [i ][ j ] ohne Wert
Chot
Chot
else if M [i ][ j ] ≥ T
else if M [i ][ j − 1] ohne Wert
g (C[i ][ j − 1])
Evolutionäre Spektrographen
sonst
30 / 38
Färbung
– Definition der Hilfsfunktion g(x):
g (c ) = [h' , s ' , b' ]
h' = h(c ) + (h(Ccold ) − h(c ))* decay
s ' = s(c ) + (s (Ccold ) − s(c ))* decay
b' = b(c ) + (b(Ccold ) − b(c ))* decay
Î Expotentielle Annährung an die Farbe Ccold
Decay ist ein Zerfallsfaktor zwischen 0 und 1
31 / 38
Evolutionäre Spektrographen
Beispiel
•
•
•
•
Zeit :
Softwarerevisionen
Spektrum: Dateien
Messung : ein- und ausgehende Abhängigkeiten
Zuordnung großer Releases zum Graphen
Evolutionäre Spektrographen
32 / 38
Zusammenfassung
• Motivation
• Multidimensional Scaling Views
• Discret Time Figures
• Evolutionäre Spektrographen
• Zusammenfassung
33 / 38
Zusammenfassung
Zusammenfassung
• Alle drei Ansätze setzen auf die menschliche
Fähigkeit zur Mustererkennung
• Trotzdem verschiedene Ansätze und Schwerpunkte
• Jede Methode mit Zukunftspotential
Zusammenfassung
34 / 38
Zusammenfassung
• Multidimensional Scaling Views:
+
-
Erforschung der Abhängigkeiten und
Grundlagen von Features.
Anzahl der verschiedenen Verbindungen
im Feture View schlecht erkennbar
• Discrete Time Figures:
+
-
Skalierbarkeit und Verbindung mit
Strukturinformationen
keine Zuordnung zum Entwickler oder der
dargestellten Datei möglich.
35 / 38
Zusammenfassung
Zusammenfassung
• Evolutionäre Spektrographen:
+
-
Zusammenfassung
guter Verlaufüberblick.
kanonischen Netzwerken = leicht auf andere
Systeme übertragbare Analysemethode.
durch verschiedene Färbemethoden keine
einheitliche Darstellung
36 / 38
Quellenangabe
•
[1] Michael Fischer and Harald Gall. MDS-Views: Visualizing Problem Report
Data of Large Scale Software using Multidimensional Scaling, Technical
Report TUV-1841-2003-17, Vienna University of Technology, June 2003.
http://www.infosys.tuwien.ac.at/reports/repository/TUV-1841-2004-01.ps
•
[2] Marco D’Ambros and Michele Lanza. Software bugs and evolution: A
visual approach to uncover their relationships. In Proceedings of CSMR
2006 (10th European Conference on Software Maintenance and
Reengineering), pages 227–236. IEEE CS Press, March 2006.
•
[3] Ahmed E. Hassan, Jingwei Wu and Richard C. Holt. Visualizing Historical
Data Using Spectrographs. In Proceedings of the 11th IEEE International
Software Metrics Symposium (METRICS 2005), pp. Como, Italy, September 1922, 2005.
•
[4] Jingwei Wu, Richard C. Holt and Ahmed E. Hassan. Exploring Software
Evolution Using Spectrographs In Proceedings of the 11th IEEE Working
Conference on Reverse Engineering (WCRE 2004), pp. 80-89, Delft,
Netherlands, November 9-12, 2004.
•
[5] http://en.wikipedia.org/wiki/HSV_color_space
•
[6] http://de.wikipedia.org/wiki/Multidimensionale_Skalierung
37 / 38
Quellenangabe
Vielen Dank
Noch Fragen?
38 / 38
Herunterladen