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 © 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.
We are currently developing an reengineering environment named Moose that supports OO reengineering and serves as basis for RECAST. CodeCrawler is based on such an environment. Most of the research papers and work we did in the context of reengineering are based on Moose. Moose supports the following languages: Smalltalk, CRecast: Evolution of Object-Oriented Applications and Java. The latest version is available as part of CodeCrawler. Moose is platform independent as it have been ported to VisualWorks 7.0 which is available in a non-commercial form. So Moose is running on PC, Mac, Unix, and Linux.
For more information,