Seminar Software Evolution (SS2010)

Course Organization

Time, Place, ECTS, etc.:
An introductory session will take place on Friday, 09.04.2010, 10:15 - 11:45 in Room 2.101 (Goldschmidtstr. 7), during which course topics and organization details will be discussed. At the end of the session, topics and presentation session appointments will be assigned to the attending participants. The presentation session appointments will be announced on this page. It is possible to select a topic at a later point as well.

The presentation sessions will begin on May 18, and will take place on Tuesdays, weekly, from 4pm to 6pm, in room TBA. There will be no session on June 1.

For successful participation in the course 4 ECTS Points will be awarded. Additional information is also available at UniVZ.


Language, Participation, Attendance, etc.:
The language in this course will be English. Due to the nature of the course and the available materials, it is not feasible to carry out the course in German.

The number of participants is limited, therefore early registration is recommended. Please contact Philip Makedonski (via e-Mail, or personally) for preliminary registration.

Since this is a seminar-type course, participation in the presentation sessions is mandatory. Participation in the introductory session, although recommended, is not required.

Course Description

The age of one-off and static pieces of software is coming to an end. Software has come to be omnipresent and basically indispensable in today's world. Increasing need to keep software in tact with ever changing requirements and environments gave rise to a new field in software engineering, focusing on the evolutionary aspects of software. With the complexity of current systems, it is no longer feasible to completely substitute systems to accommodate new demands. Systems have to be more flexible and adaptable in order to meet the changing needs of their users and the changing contexts they operate in.

Passing Requirements

The requirements for the successful completion of the course can be summarized as follows:

  • Written report on a selected topic (12-15 pages of content in length)
  • Presentation on the selected topic (30 minutes + 10-15 minutes discussion)
  • Active participation in all sessions

Some guidelines for the individual requirements are listed in the respective section below.


In this course, we will have a look into the ways to adapt software to the constant changes in requirements and environments, but also into the ways of making software more adaptable. To achieve that however, a better understanding of the evolutionary processes themselves is necessary. We will thus survey the state of the art and provide an overview of novel trends and future concepts that will likely form parts of the next generation software engineering research and practices.

On a more general level, this course is intended to introduce the participants to the basics of conducting independent research and self-studies on a given topic. Participants will have to gather and process (a subset of) the available information and present it in a suitable form, respecting a number of guidelines (see below). The accumulated knowledge can then serve them both in subsequent research in this or other related fields, and / or in the participants' software engineering and development practices.

Target Audience

In general, the subject area of software evolution is relevant to everyone (looking to be) involved in the field of software engineering. This course is primarily intended for advanced Master's students interested in the subject matter and possible further research in this area (Master's theses, PhD projects), but also for dedicated students looking to extend their knowledge in software engineering and learn about useful practices they can later apply in their professional lives.

It is possible to attend the course during the Bachelor's course of studies, however, Bachelor's students interested in the course are encouraged to seek individual advice whether the course can be suitable for them by contacting Philip Makedonski prior to registration.


The current topics in this course can be summarized in three major areas:

  • Understanding and Analyzing Software Evolution
  • Reengineering of Legacy Systems
  • Novel Trends in Software Evolution

More specific topics available include:

  • Code clones - meaning, reasons, detection, removal
  • Analysis of software repositories and bug databases for better understanding of software evolution
  • Predicting bugs and other properties by mining bug databases
  • Refactoring, reverse and re-engineering
  • Migration of large legacy systems
  • Migration towards service oriented architectures and web services
  • Interrelation of software evolution and software testing
  • Aspect-oriented development and software evolution
  • Architectural evolution
  • Empirical studies in the field
  • Runtime evolution
  • ...

Further areas and topics may be covered during course as well. The precise formulation of the assigned topics can be adjusted further individually.

Guidelines and Hints

Preparing a presentation:

  • 30 minutes may seem like a lot, but it is not! Choose a focal point for the talk and limit other details. The time is too short to present a topic in full detail. Focus on the main concepts and on what makes the presented work interesting.
  • 15-20 slides shall be sufficient. It usually takes about 2 minutes on average to go through a slide. It is often the case that less is more in this context
  • Do not pack slides full of text. Clear pictures and diagrams are often helpful in expressing the intended ideas. When using text, focus on the essence. Again, less is often more in this context
  • Examples are always helpful, however, do not overdo them.
  • Consider whether each part is really necessary and whether it adds any value to the talk
  • Interact with the audience - see how they react to different parts of the talk, ask for affirmation on complicated parts
  • Evaluation of the topic - present your own independent position on the topic, the related materials, possibly also other opinions, your justification and reasoning behind your choice of topic, as well as related topics
  • Seek feedback from your peers and tutors

The presentation slides should be provided to the tutor at latest a week before the presentation appointment. This is to ensure that the participants have enough time to include any feedback on the final version of the slides. In addition, participants are encouraged to discuss early versions of the presentations with the tutor to get some early tips.

Preparing a report:

  • 12-15 pages of content (not including title, table of contents, references, etc.)
  • Include sufficient background of the problem setting
  • Present available approaches and methods in detail. Closely related approaches may find their place too, provided there is good justification for that.
  • Evaluation and assessment of the presented approaches, as well as the topic as a whole is essential. Feedback from the presentation and the ensuing discussion may be very useful at this point
  • An outlook on potential future developments on the topic and related topics
  • Due: end of the semester. It is possible to submit the report even before the presentation, however this is not encouraged, due to the inability to include feedback from the discussion after the presentation


The presentation sessions will take place on Tuesdays, 16:15 - 17:45, starting May 18.

Schedule details:

  • 18.05.2010: Software Clones and Evolution (Baris Ozturk)
  • 25.05.2010: Software Testing and Evolution (Arne Sieverling)
  • 01.06.2010: Cancelled
  • 08.06.2010: Predicting Bugs from History (Nicola Sheldrick)
  • 15.06.2010: Evolution of Component-based Software (Baris Ozturk)
  • 22.06.2010: Refining Black-box Tests by Machine Learning (Arne Sieverling)
  • 29.06.2010: TBA (Nicola Sheldrick)
  • ...

The talk titles are preliminary and generic, reflecting the seminar topics. The exact talk titles will be refined shortly.


The course will be largely based on the Software Evolution book by Tom Mens and Serge Demeyer (Springer, 2008, ISBN 978-3-540-76439-7). A few copies will be made available from the students' library at the institute. There is a number of references to further resources in the book itself, below is a brief list of other resources where relevant information can be found.

Software Aging and Software Maintenance are also fields closely related to Software Evolution, which provide an even broader spectrum of research for the curious of mind. Topics from these fields may also be presented in this course, should the suggested topics be insufficient.

2024 © Software Engineering For Distributed Systems Group

Main menu 2