Surprising as it may seem, many of the early adopters of the object-oriented paradigm already face a number of problems typically encountered in large-scale legacy systems. Software engineers are now confronted with millions of lines of industrial source code, developed using object-oriented design methods and languages of the late 80s and early 90s. These systems exhibit a range of problems, effectively preventing them from satisfying the evolving requirements imposed by their customers.
This tutorial will share our knowledge concerning the reengineering of object-oriented legacy systems. We will show you techniques and tools we have applied on real industrial OO systems to detect and repair problems. In particular, we will discuss issues like reverse engineering, design extraction, metrics, refactoring and program visualisation.
Participants should have practical programming experience in at least one OO language (Smalltalk, C++, Java, Eiffel, ...). Familiarity with UML is useful, though not required.
This tutorial will be lecture based, but involves a large amount of interaction with the audience.
The presenters have presented tutorials on Object-Oriented Reengineering at both OOPSLA and ECOOP and have written a book entitled "Object-oriented Reengineering Patterns" (Morgan Kaufmann Publishers, 2002).
Serge Demeyer is a professor in the Department of Mathematics and Computer Science at the University of Antwerp in Belgium. There he leads a research group investigating the theme of "Software Reengineering" (LORE - Lab On REengineering). His main research interest concerns software engineering (more precisely, reengineering in an object-oriented context) but due to historical reasons he maintains a heavy interest in hypermedia systems as well. He is an active member of the corresponding international research communities, serving in various conference organization and program committees.
Stéphane Ducasse is a post-doctoral researcher in the Software Composition Group in Berne. He served as technical leader of the FAMOOS Esprit project; a project whose goal it was to come up with a set of reengineering techniques and tools to support the development of object-oriented frameworks. He is an expert in object-oriented programming, design patterns, framework development, reflective programming and component technology. He is one of the main designers of the MOOSE reengineering environment that is the basis for CodeCrawler, a program understanding tool. He is the main organizer of the annual European Smalltalk Advanced Seminars.