Navigation auf uzh.ch
Software maintenance is a substantial part in the life-cycle of a software system. Typical studies show that more than 2/3 of the efforts are invested into modifications after delivery to correct faults, to improve performance, or to adapt to various other requirements such as platform or business changes. It seems obvious, therefore, that we need effective techniques and tools to support these activities to save costs and personnel resources in development and testing.
In this course we will learn the foundations of software evolution and maintenance. This includes successful but aged software systems (i.e. legacy software), object-oriented reengineering, refactoring, change patterns, empirical analysis of software, defect prediction models, software quality analysis, or software evolution visualization. We will also present platforms and tools such as SOFAS, ChangeDistiller, or Software Evolution Facets.
Our group is among the international leading research groups in the areas of Mining Software Repositories(MSR), Software Maintenance, and Software Engineering.
Learn theories, models, tools, and processes for the maintenance and evolution of large software sytems.
Type: | Vorlesung mit integrierter Übung |
Lecturer: | Prof. Dr. Harald Gall |
Schedule: | Fri, 13:00-14:45, BIN 2.A.10 |
Language: | Lecture in German/English, Materials in English |
ECTS credits: | 3.0 |
Prerequisites: | BSc Informatik: Assessmentstufe, Module Software Engineering und Software-Praktikum |
Target audience: | Students in BSc Informatics (4+ Semester) and in MSc Informatics |
Link to Online Course Catalogue: | Obligatory course information |
OLAT-Resource: | OLAT for Software Maintenance and Evolution |
All complementary material will be made available in the OLAT-Resource for Software Maintenance and Evolution. All course materials, for example, slides, exercises, tools, etc., can be found there. It also contains a forum, where we will post announcements and answer questions related to the lecture in a timely fashion.
Date | Topics | Notes |
---|---|---|
21.02.2014 | Foundations of Software Evolution
Topics: Challenges of software maintenance, software evolution,
Laws of Software Evoluiton, Reverse engineering and Reengineering Required Reading: The following are seminal papers that constitute the foundation of software evolution dating back into the 80s and the influential works of Manny Lehman. M.M. Lehman, "Programs,Life Cycles, and Laws of Software Evolution", 1980D.L. Parnas, "Software Aging", 1994 M.M. Lehman et al., "Metrics and Laws of Software Evolution", 1997 |
|
28.02.2014 |
Reengineering I | |
07.03.2014 |
Reengineering II 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. |
|
14.03.2014 |
Refactoring Exercise: I. Read Chapters 9 (Redistribute Responsibilities) and 10 (Transform Conditionals to Polymorphism) from the book II. Then download this small The example provides some opportunities for refactoring. III. Check the code, find the refactoring opportunities, and then propose a solution to improve the code structure. III. Hand in (1) a UML-Diagram and (2) the code snippets of the refactored solution. Additionally, 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.). Submit via OLAT by March 13, 2014. (If you have another code example that you would like to refactor, for instance, your SOPRA code, you are welcome to do so.) |
|
21.03.2014 |
Software Analysis Visualization: Required reading: |
|
28.03.2014 |
Empirical Software Engineering Papers required to read: |
|
04.04.2014 | Change Type Analysis with ChangeDistiller Papers to read: |
|
11.04.2014 | SOFAS Platform and Facets | |
18.04. and 25.4.2014 | No lecture due to Easter break | |
02.05.2014 | HisMo - Modeling History of Software |
|
09.05.2014 | Code Clones | |
16.05.2014 | No lecture! | |
23.05.2014 | Defect Prediction Dual Ecological Measures of Focus in Software Development | |
30.05.2014 | Exam Information: This lecture will be used to wrap up the course and prepare for the exam. We will discuss examples from previous years and how to prepare for it. 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. |
At the end of the course there will be a written exam (in the usual lecture slot). In case of only few participants, there will be an oral exam (with individual exam dates).
Update: There will be an oral exam (with individual exam dates) on the following days: June 13 and 16. A request for registration was sent out via OLAT.
The course is based on the following book: