Sites Inria

Version française

RMOD Research team

Analyses and Languages Constructs for Object-Oriented Application Evolution

Team presentation

The goal of RMoD is to support remodularization of object-oriented applications. This objective is tackled from two complementary perspectives: reengineering and modularity constructs for programming languages. In the reengineering perspective we will propose new analyses to understand and restructure existing large applications (specialized package metrics, adapted visualizations, layer identifications). In the modularity construct context we will work on a pure trait-based language and new modular abstractions. We will also propose the definition of dedicated secure language constructs based on a modular and layered kernel as one direct application of modularization. These programming language constructs will be experimented on Pharo, a platform for dynamic web development. Pharo will be used as a testbed for a pure-traits language, which will be used to assess the impact of modular classes in terms of reuse orthogonally to inheritance.

Research themes

Remodularization of Existing Applications
The evolution of an application is severely hampered in presence of strong coupling among its parts. Therefore answering the following questions is crucial: How to support the substitution of certain parts while limiting the impact on others? How to identify reusable parts? How to modularize an object-oriented application?

We plan to enrich Moose, our reengineering environment, with a new set of analyses. We decompose our approach in three main and potentially overlapping steps:

  • Tools for understanding applications at large: packages/modules,
  • Remodularization analyses, and-- Software Quality and Open DashBoard.

Language Constructs for Modular Design
While the previous axis focuses on how to help remodularizing existing software, this second research axis aims at providing new language constructs to build more flexible and recomposable software. We will build on our work on traits and classboxes but also start to work on new areas such as isolation in dynamic languages. We will work on the following topics:

  • Towards a pure trait language
  • Reconciling Dynamic Languages and Isolation

International and industrial relations

Created Company

We created a company named Synectique. It offers advanced dedicated tools to help companies taking decision on their IT software.

International Contacts



Keywords: Software engineering Object-oriented programming Language design Reengineering Program understanding Software visualization Metamodeling Modules Remodularisation Code analysis Trait Classbo