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 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 users.
This tutorial will share our knowledge concerning the reengineering of object-oriented legacy systems. We will draw upon our experiences with the FAMOOS project to show you techniques and tools we have used on real industrial OO systems to detect and repair problems. In particular, we will discuss approaches such as reverse engineering, design extraction, metrics, refactoring and program visualisation.
Prerequisites: Participants should have practical programming experience in at least one OO language (Smalltalk, C++, Java, Eiffel, etc.). Familiarity with UML is useful, though not required.
Serge Demeyer is a professor in the Department of Mathematics and Computer Science at the University of Antwerp in Belgium. He leads a research group investigating software reengineering (LORE - Lab On REengineering). His main research interest concerns software engineering (more precisely, reengineering in an object-oriented context), but for historical reasons, he maintains a heavy interest in hypermedia systems as well. He is an active member of the corresponding international research communities, serving on various conference organizing and program committees.
Stéphane Ducasse is an assistant professor in the Software Composition Group at the University of Berne. He served as technical leader of the FAMOOS Esprit project, a project whose goal was to propose 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.
Oscar Nierstrasz is a Professor of Computer Science at the University of Berne, where he leads the Software Composition Group. He is the author of numerous publications on object-oriented and component-based technology. He has been active in the object-oriented research community for many years, serving on the programme committees of the ECOOP, OOPSLA and many other conferences.