Section: Overall Objectives
Reengineering and remodularization
While applications must evolve to meet new requirements, few approaches analyze the implications of their original structure (modules, packages, classes) and their transformation to support their evolution. Our research for the coming years will focus on the remodularization of object-oriented applications. There is a limited number of approaches to understand, analyze and restructure large legacy systems. Automated approaches including clustering algorithms are not satisfactory because they often ignore user inputs. Our vision is that we need better approaches to support the transformation of existing software. The reengineering challenge tackled by RMoD is formulated as follows:
How to help remodularize existing software applications?
We are going to develop analyses and algorithms to remodularize object-oriented applications: either at the same paradigmatic level (modules/packages) or for a migration towards other abstractions such as components or aspects. This is why in a first period, we are going to study and build tools to support the understanding of applications at the level of packages and modules. This will allow us to understand the results of the analyses that we will build in a second period. Finally we are going to work on migrations directed by the results of our analysis. We plan to support the migration process by providing feedback on the impact of the suggested transformations. These steps will be implemented on top of the Moose reengineering environment and validated on large open-source applications in different languages such as JBoss, ArgoUML or Squeak.