Navigation auf uzh.ch

Suche

Department of Informatics s.e.a.l

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
  • (Mini-)Übungen

Organisation

Kategorie: Vorlesung mit integrierter Übung
Dozierender: Prof. Dr. Harald Gall, Dr. 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? (H. Gall)
Wartungsaspekte und Reverse Engineering (H. Gall)

Die folgenden Referenzen sind zwar schon etwas älter, sind aber absolute Klassiker in Bezug auf die Evolution von Software über die Zeit. V.a. die ersten beiden Referenzen lohnen sich zu lesen und zeigen auf, weshalb Software genau wie Menschen altern kann. Die Erkenntnisse gelten auch heute noch!

01.03.2013

Reengineering I (E. Giger)

08.03.2013

Reengineering II (E. Giger)

The following website about Refactoring provides an in-depth overview of several refactoring patterns. Furthermore, the author of the website discusses pros and cons, pitfalls, relations between individual patterns, and other aspects of refactoring. The discussion of each pattern is illustrated with an exmaple.

15.03.2013

As announced, the lecture tomorrow will be canceled because of conference attendence. Instead students are required to read Chapters 9 (Redistribute Responsibilities) and 10 (Transform Conditionals to Polymorphism) from the In a second step, you should download this small The exmaple provides some opportunities for refactoring. You are required to look at the code, find those opportunities, and then propose a potential solution to imporve the code structure. Hand in a UML-Diagram of the refactored solution. Furthermore, the solution shall contain a *few* sentences explaining your refactoring(s) (Why was the old design bad? Why is your new design better? Was is the name of the refactoring pattern? etc.). Send a signle PDF to Emanuel Giger until 26.04.
(If you have another code example that you would like to refactor, for instance, your SOPRA code, you are very welcome to do so.)

22.3.2013

Software Analysis Visualization (E. Giger)

12.04.2013

Empirical Software Engineering (E. Giger)

19.04.2013 SOFAS Platform and Facets (G. Ghezzi)
26.04.2013 Change Type Analysis with ChangeDistiller (H. Gall)
03.05.2013 HisMo - Modeling History of Software (H. Gall)
10.05.2013 Code Clones (E. Giger)
17.05.2013 Defect Prediction (E. Giger)
24.05.2013 Lecture canceled due to conference attendance. Plase read the two reading assignments:
31.05.2013 Exam Preparation: This lecture will be used to prepare for the exam next week. We discuss an example exam from previous years. FAQ: (1) As always, it is *not* mandatory to attend the lecture. (2) It will take ~1h, depending on how many questions are asked during the discussion.
07.06.2013 The will be a *written* exam. The exam takes place in the same room as the lecture during the same time slot.  

Prüfung

Am Ende der Vorlesung findet eine schriftliche Prüfung (Klausurarbeit) über den Inhalt der Vorlesung statt.

Weiterführende Informationen

Title

Teaser text