Recast: Evolution of Object-Oriented Applications


Recast: Evolution of Object-Oriented Applications is a project funded by the Swiss National Science Foundation (SNSF project # 620-066077) led By Prof. S. Ducasse from 2002 to 2006.


This research project is about reengineering object-oriented applications. Reengineering such applications inherits complex problems related to software maintenance, i.e., program understanding, program analysis, and program transformation and adds to them (1) the complexity introduced by late binding, dynamic typing, and incremental definition specific to object-oriented programming, and (2) the complexity related to the new way of software development (multiple parallel versions, frameworks, and products lines). Based on our research experience, this research project is structured in three non-orthogonal directions: (a) reengineering, (b) analysis of versions and (c) migration of object-oriented applications towards components.


Software Engineering, Object-Oriented Programming Reengineering, Reverse Engineering, Program Understanding, Architecture, Meta-Model, Code Analysis, Frameworks, Patterns.


Most of the effort while developing and maintaining a system is spent supporting its evolution [Som96]. This document presents RECAST, a research project whose goal is to support the evolution of objectoriented applications. The following two laws due to Manny Lehman illustrate the vision of RECAST. They stress the fact that software must continuously evolve to stay useful and that this evolution is accompanied by complexity.

RECAST is based on the vision that supporting evolution of applications will be always mandatory. This is independent of the language and the paradigm used to develop the applications. Tools and techniques are necessary to support the evolution of applications. RECAST structures the research on evolution of object-oriented applications around three directions.

The concrete results we want to obtain within a period of three to four years are the following.