Back to my home page

IRM | FSA | iCampus | TWiki

Ongoing Research

INGI

Intensional Views

Evolving and maintaining software requires an adequate documentation of its design and implementation. However, due to the software’s constant evolution, it is often difficult to keep its design and implementation synchronised. Intensional source-code views have been proposed as an active documentation technique to alleviate this problem. They increase our ability to understand, modularize and browse the source code by grouping together source-code entities that address the same concern. They facilitate software development and evolution, because alternative descriptions of the same intensional view can be checked for consistency and relations among intensional views can be defined and verified. Finally, they enable us to specify knowledge developers have about source code that is not captured by traditional program documentation mechanisms.

For more information on intensional views or the Intensional View Environment (IntensiVE), please consult my publications or the IntensiVE website. Our 2006 paper published in the Elsevier Journal on Computer Languages, Systems & Structures gives a fairly complete and readable overview of the approach. As a teaser, here is a screenshot of the Smalltalk implementation of our IntensiVE tool suite:

Aspect Mining

Since 2004, we have been exploring the use of formal concept analysis to mine for potential aspects in object-oriented source code. In collaboration with research colleagues at CWI (The Netherlands), the Technical University of Delft (The Netherlands) and ITC-IRST (Italy) we have been looking at how to combine three different techniques (two based on formal concept analysis and one based on fan-in analysis) to identify automatically potential crosscutting concerns in existing (non aspect-oriented) software systems. In particular, we are looking into techniques based on formal concept analysis and fan-in analysis and on how they can be combined for the purpose of aspect mining. More recently, we have conducted an in-breadth survey of different automated, code-level aspect mining techniques. For more information on any of these topics please consult my publications.

As a teaser, here's a screenshot of DelfSTof, our conceptual code mining tool, at work:

DelfSTof at work

Automated Generation of Program Manipulation and Analysis Tools

In collaboration with my PhD student Diego Ordonez we are working on a generic framework for the automated generation of program manipulation and analysis tools. From the specification of a programming language, it is possible to generate a variety of tools that reason about or manipulate programs written in that language. The level of automation that can be achieved for this generation process depends on how detailed the specification is. In addition to a set of production rules that specify the language syntax, the language specification may contain extra information ranging from annotations that reveal some of the language designer's intentions, to a complete formal specification of the language semantics. In practice however, especially in a context where we are dealing with many different languages, or where the languages themselves evolve over time, we often do not have much more than the syntax specification. Therefore, we are exploring lightweight techniques that allows us to generate program manipulation and analysis tools, in a way that is as automated as possible, based on syntactic information only. More precisely, to generate a tool for a given language, we start from a high-level grammar specification of that language, enriched with extra annotations revealing some of the intentions of the language designer and some relations between language constructs. This specification is then passed to a language-parametric and tool-specific tool generator which semi-automatically generates the desired tool from the language specification. Although each tool generator is specifically dedicated towards generating a particular kind of tool, a generic tool generator framework can be conceived that can be reused for many different tools and languages.

This research is conducted in the context of our research project APPAREIL with our industrial partner Rhea Systems.

Software Restructuring


In the context of our FRFC-funded research center on software restructuring (with ULB and UMH), we study formalisms for automated software restructuring, refactoring techniques, transformation approaches and the model of intensional views.

Language Design for Ambient Intelligence and Adaptive Mobile Computing

In the context of Sebastián González's Ph.D. research we are designing language features to enhance the dynamic adaptation of mobile applications to the context. The approach is an extension of the prototypes with multiple dispatch model to allow for subjective dispatch, i.e. exhibited behaviour depends not only on the callee's state but also on the caller's.

Mail me | last modified on December 23, 2010; Status: stable.