software maintenance vu 3.0 ws 2015/16 · software maintenance introduction 41 (vorläufiger)...
TRANSCRIPT
![Page 1: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/1.jpg)
Software Maintenance
Introduction 1
S C I E N C E P A S S I O N T E C H N O L O G Y
u www.tugraz.at
Software Maintenance
VU 3.0 WS 2015/16
Univ.-Prof. Dr. Franz Wotawa
und DI Roxane Koitz Institut für Softwaretechnologie
Folien freundlicherweise zur Verfügung gestellt von Dr. Birgit Hofer
![Page 2: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/2.jpg)
Software Maintenance
Introduction 2
Inhalt dieser LV-Einheit
Motivation
Maintenance Beispiele
Fehler in Software
Über die Lehrveranstaltung
Inhalt
Beurteilungsschema
Organisatorisches
Static Slicing
![Page 3: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/3.jpg)
Software Maintenance
Introduction 3
Inhalt dieser LV-Einheit
Motivation
Maintenance Beispiele
Fehler in Software
Über die Lehrveranstaltung
Inhalt
Beurteilungsschema
Organisatorisches
Static Slicing
![Page 4: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/4.jpg)
Software Maintenance
Introduction 4
Wozu Software Maintenance?
Meine Software ist immer korrekt!
Keine Modifikationen. Nur neue Projekte!
Quelle: http://www.genrocket.com/
![Page 5: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/5.jpg)
Software Maintenance
Introduction 5
1999
Y2K Bug
Quelle: http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=2
2014
Heartbleed
1993
Rechenfehler
in Chip
1996
Ariane 5
2005
Handy-Netzausfall,
Steiermark
2009
Teure Zigaretten
Einige schlechte Maintenance-Beispiele
2038
Y2K38
…
![Page 6: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/6.jpg)
Software Maintenance
Introduction 6
Quelle: http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=2
1993
Rechenfehler
in Chip
• 3-5 Millionen Chips waren von einem Fehler
in der Division von Zahlen betroffen
• $ 475 Millionen Schaden
…
![Page 7: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/7.jpg)
Software Maintenance
Introduction 7
Quelle: http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=2
1996
Ariane 5
• Fehler bei der Übersetzung einer Zahl
in ein anderes Zahlensystem
• Zu großer Schub führte zu Explosion
• $ 370 Millionen Schaden
…
![Page 8: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/8.jpg)
Software Maintenance
Introduction 8
Quelle: http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=2
1999
Y2K Bug
• In den frühen 1970-ern: Programmierer
sparten Speicher durch Kürzen des Datums
• In den 1990-er Jahren waren viele
dieser Programme noch im Einsatz
…
![Page 9: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/9.jpg)
Software Maintenance
Introduction 9
2005
Handy-Netzausfall,
Steiermark Quelle: Kleine Zeitung
• Neue Software führte zu Problemen als zu viele
Benutzer telefonierten
• 500.000 Steirer für 8-9 Stunden ohne
Handyempfang
…
![Page 10: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/10.jpg)
Software Maintenance
Introduction 10
Quelle: Kleine Zeitung
2009
Teure Zigaretten
• Fehler in Software-Update
• Falschbuchungen bei
Kreditkarten-Abrechungen
…
![Page 11: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/11.jpg)
Software Maintenance
Introduction 11
2014
Heartbleed
• Schwachstelle bestimmter OpenSSL Versionen
• Input Überprüfung
• Buffer over-read
• $500 Millionen Schaden
Quellen: http://www5.in.tum.de/~huckle/bugse.html,
http://www.codenomicon.com
…
![Page 12: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/12.jpg)
Software Maintenance
Introduction 12
2038
Y2K38
• UNIX Zeit seit 1.1.1970 in Sekunden
• Vorzeichenbehaftete 32-Bit-Ganzzahl
• 19.01.2038, 03:14:08 UTC
Integer overflow
• $? Schaden
Quellen: http://listverse.com/2012/12/24/10-seriously-epic-computer-software-bugs/
…
![Page 13: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/13.jpg)
Software Maintenance
Introduction 13
Fehler pro 1000 Zeilen Software
Quellen: http://www5.in.tum.de/~huckle/bugse.html,
http://catless.ncl.ac.uk/Risks/20.82.html#subj7,
http://en.wikipedia.org/wiki/Source_lines_of_code
![Page 14: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/14.jpg)
Software Maintenance
Introduction 14
Beispiel: Binary Search
1: public static int binarySearch(int[] a, int key) { 2: int low = 0; 3: int high = a.length - 1; 4: 5: while (low <= high) { 6: int mid = (low + high) / 2; 7: int midVal = a[mid]; 8: 9: if (midVal < key) 10: low = mid + 1; 11: else if (midVal > key) 12: high = mid - 1; 13: else 14: return mid; // key found 15: } 16: return -(low + 1); // key not found. 17: }
![Page 15: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/15.jpg)
Software Maintenance
Introduction 15
Probleme bei vorherigen Beispielen
• Testen unter Verwendung kleiner Eingangswerte
“Programm implementiert das gewünschte Verhalten
korrekt!”
• Probleme durch Limitierungen der
Ausführungsumgebung
int + int kann größer als int sein
Anzahl der rekursiven Aufrufe ist begrenzt
• Fehler treten zur Laufzeit auf!!!
![Page 16: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/16.jpg)
Software Maintenance
Introduction 16
Mobile Phones: App Market
Is the support for
just one OS, e.g.,
Android, easy
![Page 17: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/17.jpg)
Software Maintenance
Introduction 17
Mobile Phones: App Market
Supporting JUST Android?
Quelle: http://www.idownloadblog.com/2013/07/30/the-terrible-state-of-android-fragmentation/
http://thenextweb.com/insider/2015/08/05/this-is-what-android-fragmentation-looks-like-in-2015/
![Page 18: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/18.jpg)
Software Maintenance
Introduction 18
Inhalt dieser LV-Einheit
Motivation
Maintenance Beispiele
Fehler in Software
Über die Lehrveranstaltung
Inhalt
Beurteilungsschema
Organisatorisches
Static Slicing
![Page 19: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/19.jpg)
Software Maintenance
Introduction 19
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 20: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/20.jpg)
Software Maintenance
Introduction 20
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 21: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/21.jpg)
Software Maintenance
Introduction 21
![Page 22: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/22.jpg)
Software Maintenance
Introduction 22
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 23: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/23.jpg)
Software Maintenance
Introduction 23
Process models
Development Maintenance
Wasserfall-Modell
Spiral-Modell
Osbornes Modell
Boehms Modell
![Page 24: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/24.jpg)
Software Maintenance
Introduction 24
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 25: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/25.jpg)
Software Maintenance
Introduction 25
Programmverstehen
• Einflussfaktoren
• Strategien
![Page 26: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/26.jpg)
Software Maintenance
Introduction 26
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 27: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/27.jpg)
Software Maintenance
Introduction 27
Zweck der Analyse
• Struktur von Programmen offenlegen
• Fragen beantworten wie
Welche Statements haben einen Einfluss auf eine
Variable in einer bestimmten Programmzeile?
Welche Statements haben keinen Einfluss auf Resultat?
Kann ich eine bestimmte Stelle im Programm erreichen?
• LV-Ziel
Grundlegende Konzepte vermitteln
Kleine Beispiele für Demonstrationszwecke
Ideen auf größere Programme anwendbar
![Page 28: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/28.jpg)
Software Maintenance
Introduction 28
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 29: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/29.jpg)
Software Maintenance
Introduction 29
Beispiel
public int foo(int x,y) {
int i = 0;
int result = 0;
while (i < x) {
result = result + y;
i = i + 1;
}
return result;
}
![Page 30: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/30.jpg)
Software Maintenance
Introduction 30
Graphische Repräsentationen
Control flow graph Program dependency graph
i=0
result=0
result=result+y
i<x
i=i+1
start
i=0 result=0 while i<x
i=i+1 result=result+y
![Page 31: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/31.jpg)
Software Maintenance
Introduction 31
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 32: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/32.jpg)
Software Maintenance
Introduction 32
Slicing
• A Slice is a (reduced) program, that preserves the
original program’s behavior for a given set of variables
at a chosen point in a program
1. public int foo(int x,y) {
2. int i = 0;
3. int result = 0;
4. while (i < x) {
5. result = result + y;
6. i = i + 1;
7. }
8. return result;
9. }
Slicing Criterion:
(8, {i})
![Page 33: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/33.jpg)
Software Maintenance
Introduction 33
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 34: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/34.jpg)
Software Maintenance
Introduction 34
Delta Debugging
• Strukturierter Ansatz zur Minimierung von
Fehlerverursachenden Inputsequenzen
• Beispiel
Mozilla Bugzilla entry #24735 – „Mozilla cannot print“
Browser crashed when printing a certain file
Input file with 896 lines reduced to a single „<SELECT>“
statement
![Page 35: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/35.jpg)
Software Maintenance
Introduction 35
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 36: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/36.jpg)
Software Maintenance
Introduction 36
Object Flow Graphs
• Datenflussanalyse von Objekt-orientierten
Programmen
• Verwendung in Reverse Engineering
Verfeinerung von Klassendiagrammen
![Page 37: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/37.jpg)
Software Maintenance
Introduction 37
Was Sie in dieser LV erwartet
• Was ist Software Maintenance?
Klassifizierung, Kosten, Umfeld
Prozessmodelle
Teilprozesse (Programmverstehen, Reuse)
• Techniken zur Programmanalyse
Graphische Repräsentationen
Slicing
Delta Debugging
Object Flow Graphs
Class Diagram Recovery
![Page 38: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/38.jpg)
Software Maintenance
Introduction 38
Class Diagram Recovery
![Page 39: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/39.jpg)
Software Maintenance
Introduction 39
Beurteilung
• 40 % Klausur
• 60 % Aufgabenblätter
3 Aufgabenblätter
Gruppenarbeit (4 Studierende)
Abgabegespräche
Minimalanforderung:
50 % der erreichbaren Punkte bei der Klausur
50 % der erreichbaren Punkte bei JEDEM Aufgabenblatt
![Page 40: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/40.jpg)
Software Maintenance
Introduction 40
Notenschlüssel
Prozent Note
0..50 5
>50..63 4
>63..75 3
>75..88 2
>88..100 1
![Page 41: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/41.jpg)
Software Maintenance
Introduction 41
(Vorläufiger) Zeitplan Vorlesung
6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz
13.10. Program Slicing (dynamic) – Prof. Wotawa
20.10. Program Slicing (relevant) + Hitting Sets – Prof. Wotawa
27.10. Delta Debugging – Prof. Wotawa
3.11. Forward Slicing – Roxane Koitz
10.11. Object Flow Graphs – Prof. Wotawa
17.11. Class Diagram Extraction + Theorie – Prof. Wotawa
24.11. Theorie – Roxane Koitz
1.12. Theorie – Prof. Wotawa
15.12. Klausur (2 Gruppen)
12. 1. Nachklausur Ort und Zeit:
Dienstag, 10:00 s.t.
bis ca. 12:15, HS i7
![Page 42: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/42.jpg)
Software Maintenance
Introduction 42
Klausur
• Umfang
Theorie
Beispiele
• Nachklausur für LV-Teilnehmer, die
beim Haupttermin negativ waren
nicht zum Haupttermin angetreten sind
![Page 43: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/43.jpg)
Software Maintenance
Introduction 43
Aufgabenblätter
Aufgabe Blatt 1 Blatt 2 Blatt 3
Studienassistent Stephan Claudio Bianca
Inhalt • Static Slicing
• Dynamic Slicing
• Hitting Sets
• Delta Debugging
• Forward Slicing
• Class Diagram Extr.
• Object Flow Graphs
Ausgabe (Di) 13.10. 3.11. 17.11.
Registrierung (Di) 20.10. 10.11. 24.11.
Tutorial 15.10. 5.11. od. 10.11. 26.11
Fragestunde (Do) 22.10. 12.11. 3.12.
Abgabe (Mo/Di 10
Uhr) 3.11. 17.11. 7.12.
Abgabegespräche
(Do / Fr) 5.11. / 6.11. 19.11. / 20.11 10.12. / 11.12.
![Page 44: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/44.jpg)
Software Maintenance
Introduction 44
Aufgabenblätter
• Programmieraufgabe
Implementierung von Vorlesungs-Algorithmen
Programmiersprache: Java
Zur Verfügung gestelltes Material: Framework
Basistestfall
Abgabe via SVN
• Theoretische Aufgaben
Beispiele ähnlich zu denen aus der Vorlesung
Zur Verfügung gestelltes Material: Latex-Vorlage
Abgabebox
![Page 45: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/45.jpg)
Software Maintenance
Introduction 45
Aufgabenblätter
• Gruppenregistrierung
4 Studierende
Für JEDES Aufgabenblatt
Gruppensuche via Newsgroup
(tu-graz.lv.soma.gruppensuche)
Möglichkeit Gruppe zu wechseln
Zugang zu SVN Repositories
• Abgabegespräche
Verpflichtend
JEDES Gruppenmitglied muss gelöste Aufgaben
erklären und vorrechnen können (wird überprüft!)
![Page 46: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/46.jpg)
Software Maintenance
Introduction 46
Bei Fragen
Während / nach der Vorlesung
Fragestunde
Newsgroup (tu-graz.lv.soma)
Sprechstunden
• Prof. Wotawa: Dienstags, 13 – 14 Uhr
• Roxane Koitz: Montags, 13 – 14 Uhr
Email an [email protected]
![Page 47: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/47.jpg)
Software Maintenance
Introduction 47
UE-Teilnahme
Klausur
Nachklausur
Positiv
Positiv Positives
Zeugnis
Negatives
Zeugnis
Kein
Zeugnis
JA
NEIN
NEIN
NEIN JA
JA
START Anmeldung
Abmeldung
![Page 48: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/48.jpg)
Software Maintenance
Introduction 48
Literatur
Penny Grubb and Amstrong A. Takang, Software Maintenance: Concepts and Practice, 2nd Ed., World Scientific Publishing Company, 2003, ISBN: 981238426X
Paolo Tonella and Alessandra Potrich,
Reverse Engineering of Object Oriented Code,
Springer, 2005, ISBN 0-387-40295-0
Skriptum, Folien und Links zu weiterführender Literatur http://www.ist.tugraz.at/teaching/bin/view/
Main/SoftwareMaintenance
![Page 49: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/49.jpg)
Software Maintenance
Introduction 49
Tipps / Ratschläge
• Besuchen Sie den Vorlesungsteil!
• Versuchen Sie ALLE Übungsbeispiele selbständig zu lösen!
• Nutzen Sie bei Fragen die Sprechstunden, Fragestunden, Tutorials und die Newsgroup (tu-graz.lv.soma)
![Page 50: Software Maintenance VU 3.0 WS 2015/16 · Software Maintenance Introduction 41 (Vorläufiger) Zeitplan Vorlesung 6.10. Vorbesprechung + Program Slicing (static) – Roxane Koitz 13.10](https://reader035.vdokument.com/reader035/viewer/2022063007/5fb8650992472971d772a351/html5/thumbnails/50.jpg)
Software Maintenance
Introduction 50
Fragen?