Software Wartung und Evolution - FS 13
Die Wartung und Pflege von Software-Systemen stellt eine wesentliche Phase des Software Lifecycles dar. Diese wurde historisch in ihrer Komplexität und der Notwendigkeit geeigneter Methoden und Werkzeuge zur angemessenen Durchführung unterschätzt. Dabei beansprucht die Wartungsphase circa zwei Drittel des Gesamtbudgets für den Bau und Betrieb eines Software-Systems von der Idee (Vision) bis zur Stilllegung.
Die Vorlesung stellt den Software Wartungs-Lifecycle und die Gesetze der Software Evolution im Detail vor und setzt thematische Schwerpunkte in den Gebieten Legacy Systeme, Reverse- und Re-Engineering, Refactoring, Change Patterns und Design for Change. Dabei wird auch auf die holistische Behandlung des Themas Software Wartung Wert gelegt, indem die nicht-technischen Aspekte wie Organisation und Management ebenfalls behandelt werden. Auch werden so genannte Best Practices der Software Wartung und der Evolution besprochen und anhand von Beispielen vermittelt.
Lernziel
Erlernen von Techniken und Prozessen für die Wartung und Evolution von Software.
Inhalt der Lehrveranstaltung
- Einführung und Definition
- Aspekte der Software Wartung in der gesamten Software-Entwicklung
- Aspekte der Software Evolution: wie entwickeln sich Software-Systeme, wie kann man deren Entwicklung analysieren und positiv steuern, um die Komplexität hinreichend gering zu halten
- Fallstudien
Organisation
Kategorie: | Vorlesung mit integrierter Übung |
Dozierender: | Prof. Dr. Harald Gall |
Assistent: | Emanuel Giger |
Zeit und Ort: | Fr, 13:00 - 14:45 Uhr |
Sprache: | Vorlesung Deutsch, Unterlagen Englisch |
ECTS: | 3.0 |
Voraussetzungen: | BSc Informatik: Assessmentstufe, Module Software Engineering und Software-Praktikum |
Zielgruppe: | Für Studierende im BSc Studiengang (ab 4. Semester) sowie im MSc Informatik |
Link: | weitere organisatorische Infos siehe VVZ |
Unterlagen
Die Unterlagen zur LVA beruhen auf jüngsten Ergebnisse aus Forschung und Entwicklung. Durch Fallstudien wird der jeweilige Praxisbezug zu den theoretisch aufbereiteten Vertiefungen beispielhaft hergestellt.
Terminplan und Web-Skriptum
Hier finden Sie vor der Vorlesung jeweils die Handouts und entsprechende Literatur (Artikel aus Konferenzen und Journalen, in englischer Sprache) zur Aufbereitung der Vorlesungsinhalte. Die Unterlagen werden wochenweise aktualisiert.
Datum | Themen/Literatur | Folien & Artikel |
---|---|---|
22.02.2013 | Was ist Software-Wartung und Evolution? Literatur: |
|
01.03.2013 |
Wartungsaspekte und Reverse Engineering | |
08.03.2013 |
Restructuring, Reengineering, Re-Architecting |
|
15.03.2013 |
Software Evolution Analysis |
|
22.3.2013 |
Software Analysis Visualization |
|
12.04.2013 |
HisMo - Modeling History of Software |
|
19.04.2013 | Change Type Analysis with ChangeDistiller (Ref. [FWPG07]) | |
26.04.2013 | Evolizer - A platform for software evolution analysis and research (Ref. [GFP09]) | |
03.05.2013 | HawkShaw: Talking to your IDE (including tool evaluation session) |
|
10.05.2013 | Code Clones (Ref. [KN05]) |
|
17.05.2013 | Evolution Radar | |
24.05.2013 | Defect Prediction (Ref. [Zimm09]) | |
31.05.2013 | ||
07.06.2013 |
Prüfung
Am Ende der Vorlesung findet eine schriftliche Prüfung (Klausurarbeit) über den Inhalt der Vorlesung statt. Bei geringer Teilnehmerzahl finden anstelle der Klausur mündliche Prüfungen (Termine nach Vereinbarung) statt.
Literatur
Die Vorlesung basiert auf folgendem Buch:
Weiterführende Literatur
Mining Software Repositories
- [DL05] Stephane Ducasse, Michele Lanza. The Class Blueprint: Visually Supporting the Understanding of Classes
- [LD03] Michele Lanza, Stephane Ducasse. Polymetric Views - A Lightweight Visual Approach to Reverse Engineering
- [DL06] D'Ambros, M. and Lanza, M. 2006. Reverse Engineering with Logical Coupling. In Proceedings of the 13th Working Conference on Reverse Engineering, IEEE, 2006.
- [KN05] Kim, M. and Notkin, D. Using a clone genealogy extractor for understanding and supporting evolution of code clones. In Proceedings of the 2005 international Workshop on Mining Software Repositories, St. Louis, Missouri, ACM, 2005.
- [Zimm09] Zimmermann, T., Nagappan, N., Gall, H., Giger, E., and Murphy, B. Cross-project defect prediction: a large scale experiment on data vs. domain vs. process. In Proceedings of ESEC/FSE 2009, ACM, August, 2009
Software Evolution
- [FWPG07] Beat Fluri, Michael Würsch, Martin Pinzger, Harald Gall, Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction, IEEE Transactions on Software Engineering, Vol. 33 (11), November 2007.
- [GFP09] Harald C. Gall, Beat Fluri, and Martin Pinzger. Change Analysis with Evolizer and ChangeDistiller. IEEE Software, 26(1), Jan. 2009, pp. 26-33.
- [GDL04] T. Girba, S. Ducasse, M. Lanza; Yesterday's Weather: guiding early reverse engineering efforts by summarizing the evolution of changes. In Proceedings of the 20th IEEE International Conference on Software Maintenance, Page(s):40 - 49, Sept. 2004.
- [RDGM04] D. Rapu, S. Ducasse, T. Girba, R. Marinescu.; Using history information to improve design flaws detection. In Proceedings of 8th European Conference on Software Maintenance and Reengineering (CSMR), page(s): 223- 232, 2004.
- [YW03] Hongji Yang, Martin Ward, "Successful Evolution of Software Systems", Artech House, 2003
- [SPL03] Robert C. Seacord, Daniel Plakosh, Grace A. Lewis, "Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices", SEI Series in Software Engineering, Addison-Wesley, 2003
- [Lehm80] M.M. Lehman, "Programs, Life Cycles and Laws of Software Evolution", Proc. IEEE Spec. Iss. on Softw. Eng., v. 68, n. 9, Sept. 1980, pp. 1060-1076
- [GJKT97] H. Gall, M. Jazayeri, R. Klösch, G. Trausmuth, "Software Evolution Observations Based On Product Release History", Proceedings of the International Conference on Software Maintenance, 1997
- [LR00] M.M. Lehman, J. F. Ramil, "Software Evolution in the Age of Component-Based Software Engineering", IEE Proc.-Softw., Vol. 147, No.6, December 2000
- [LB85] M.M. Lehman, L.A. Belady, "Program Evolution - Processes of Software Change", Academic Press, London, 1985, 538 pps.
- [Lehm98] M.M. Lehman, "Rules and Tools for Software Evolution Planning and Management", www-dse.doc.ic.ac.uk/~mml/feast
- [Lehm98] M.M. Lehman, "The Future of Software - Managing Evolution, inv. contr., v. 15, n. 1, IEEE Software, Jan-Feb 1998, pp. 40-44
- [Turs96] W.M. Turski, "Reference Model for Smooth Growth of Software Systems", IEEE Transactions on Software Engineering, Vol. 22, No. 8, pp. 599-600, August 1996
- [BR] K. H. Bennett, V. T. Rajlich, "The staged model of the software life-cycle: A new perspective on software evolution"
Software Wartung
- [Vlie99] H. van Vliet, "Software Engineering: Principles and Practice (2nd Edition)", Wiley, 1999 (Chapter 14)
- [Pfle98] S. L. Pfleeger, "Software Engineering: Theory and Practice", Prentice Hall, 1998 (Chapter 10)
Reverse Engineering, Reengineering
- [Arn89] R S. Arnold, "Software Restructuring", Proceedings of the IEEE, Vol. 77, No. 4, April 1989
- [Arn93] R.S. Arnold, "Software Reengineering", Proceedings, IEEE Computer Society Press, Los Alamitos, CA, 1993
- [BeGa97] B. Bellay, H.Gall, "A comparison of four Reverse Engineering Tools", Proceedings of the 4th Working Conference on Reverse Engineering WCRE '97, Amsterdam, 6-8 October 1997
- [KG94] R. Klösch, H. Gall, Objektorientiertes Reverse Engineering, Springer-Verlag, 1995, ISBN 3-540-58374-2
- [MNS01] Murphy, G.C., Notkin, D., Sullivan, K.J., Software reflexion models: bridging the gap between design and implementation. IEEE Transactions on Software Engineering, Volume 27, Issue 4, Page(s):364 - 380, April 2001.
Program Comprehension
- [RDG] V. Rajlich, J. Doran, R. T. S. Gudla, "Layered Explanations of Software: A Methodology for Program Comprehension"
- [Rajl97]
Management
- [LS80] B. P. Lientz, E. B. Swanson, "Software Maintenance Management", Addison-Wesley, 1980
- [Broo95] F.P. Brooks, "The Mythical Man Month", Addison-Wesley, Reading, MA, first edition 1975, 20th Aniv. Edition 1995, 322p.