LORE / Teaching / SReengMaster
Students: Master Computer Science
Professor: Prof. S. Demeyer
This course explains the 'state-of-the-art' reengineering existing software systems. This includes an introduction to the recent research, as well as an overview of the principles techniques and skills applied in practice today.
Students will acquire a range of principles, techniques and skills that are currently being used for reengineering existing software systems. Consequently, the course has a practical ring to it with a minimal theoretical content (taught as reengineering patterns), several lab-sessions (experimenting with several tools) and one project (restructuring an existing large software system).
Objectives (expected learning outcomes)
To goal of this course is to become acquainted with a broad selection of principles, techniques and skills used when reengineering existing software systems.
After this course, a student will be able to:
The realise these objectives, the course is organised as follows. We start with an introductory class outlining the state of the art in re-engineering and proceed with a couple of lab sessions (marked with [L] in the detailed time-schedule), in which several reverse and re-engineering tools will be tested in lab conditions. Afterwards students will experiment with these tools and the associated techniques in realistic circumstances by means of a Project, which will also serve as the main outcome. Halfway through the project, we organise a concluding session, where we will reflect on the lessons learned during the project.
Below is the detailed time-schedule, which is subject to change. Changes will be notified over e-mail. [Last modified on: February, 11th 2011.]
2nd semester SReMAS (T en P) week Wed 13:45 - 17:00 CGR.V.029 / CMI.G.026 1 16-Feb 2 23-Feb [T] Introduction (Serge) -- CGR.V.029 3 2-Mar [L] Duplicated Code (Jan Vlegels) -- CMI.G.026 4 9-Mar [L] Metrics and Visualization (Quinten) -- CMI.G.026 5 16-Mar [L] Mining Repositories (Ahmed) -- CMI.G.026 6 23-Mar [L] Testing en Dynamische Analyse (Ahmed) -- CMI.G.026 7 30-Mar Labo rescheduled to April 27th 8 27-Apr [L] Agile approaches (Jan) -- CMI.G.026 13-Apr -- easter holidays 20-Apr -- easter holidays 9 27-Apr 10 4-May 11 11-May [T] Conclusion (Serge) -- CGR.V.029 12 18-May 13 25-May
All students should have read the following book; acquiring the terminology inside is required to write the final project report.
Additionally, there is also the following course material
To demonstrate that you indeed acquired the range of principles, techniques and skills that are currently being used for re-engineering students must restructure an existing software system to prepare for a given suite of new requirements. Note, that the extra functionality as such needs not be implemented; but that the existing design must be adjusted in such a way that adding the new functionality becomes a proverbial "piece of cake".
>>>>>The project is described in Assignment 2011.<<<<<
To give you a taste of what projects have been used in the past, below is a list of the previous projects.
Note that you are allowed to propose a project yourself. To do that, send a simple e-mail to Serge Demeyer and Sylvain Degrandsart motivating why the project you propose would allow you to demonstrate re-engineering skills.
It is possible (even encouraged) to work out the assignment in a group, but such a group will preferably not consist of more than three individuals. Of course, the expectations towards the end result of such a project are related to the size of the group. Also, remember that all members of the group will be given the same final grade.
The end result of this project consists of a written project report that needs to be elaborated upon during an oral project defense. Emphasis is on the solutions for the problems you came across and what you learned from them. Everything you claim in your project report must be backed up during the defense, using code and electronic documentation.
The actual exam (= oral defense) takes place during the regular exam period and is scheduled accordingly. The report needs to be handed in a week beforehand electronically.
Guidelines for the report
In the project report and during the project defense you should express yourself using the right terminology. (cfr . Object-Oriented Reengineering Patterns, Serge Demeyer, Stephane Ducasse, en Oscar Nierstrasz, Morgan Kaufmann, 2002).
Lab On REengineering - Antwerpen, last modified 11:13:38 07 June 2011