
Research
As its name indicates our group is mainly interested in the study and development of formal tools and techniques in the context of software engineering. As far as applications are concerned, we focus on two areas: software evolution, and visual, model driven and aspectoriented software development. As far as techniques are concerned we focus on methods based on graphs and graph rewriting. The latter, i.e. the rulebased transformation of graphs and related discrete structures, offer a quite general and flexible formal tool for the description of system behaviour (graph transformation semantics) as well as for the formalization of complex transformations such as refactorings. The study of formal methods in the areas
mentioned is needed in order to obtain a conceptual framework for better and more reliable tools supporting the software development process. Relevant research questions include the following.
 How to introduce abstraction and refinement in the context of graphs and graph rewriting: in most applications the structures (configurations, program texts, ...) one deals with are too complex for a "flat" representation. Solving this requires the introduction of hierarchical structure into the graphs, in a way that can be combined with the rewriting operations. As the refinement operations may be viewed as
model transformations, one may hope that this work will contribute to providing a formal underpinning for OMG's MDA.
 How to improve the power and expressivity of graph rewriting. When applying graph rewriting to realistic situations, e.g. for the description of refactoring operations, one quickly realized that what is often needed are not individual, concrete rewriting rules, but rather large (potentially infinite ) sets of very similar rules. Most current approaches to graph rewriting do not provide sufficient support for this.
 In the area of AspectOriented software development, there is a widely recognized need for better highlevel models and semantics of aspects. It is worth investigating whether graph transformation semantics can yield a contribution here: is there a sensible way to provide such semantics for the base program and the aspects, and can one find a composition operation at the semantic level that is adequate for this situation?
Research projects
 ARRIBA: Funded by IWT, in cooperation with RUG (Ghent), VUB (Brussels), and LORE (UA).

This project aims at providing a methodology and its associated tools for supporting the integration of disparate business applications. This includes not only pure integration, but also issues concerning software (co) evolution and reengineering.
For more information: http://arriba.vub.ac.be
 Foundations of Software Refactoring. Funded by FWO, in cooperation with VUB Brussels and LORE (UA).

The aim of the project is to provide a solid foundation for software refactoring by the development of a suitable formal model. We aim at a lightweight model, facilitating the investigation of basic properties of refactoring, as well as the design of tools supporting the refactoring process. In particular, the potential of graph rewriting as a basis for such a model will be explored. There are several reasons to assume that graph rewriting is a good basic technique for building the model. In the first place, the notion of a (typed) graph enables one to express numerous kinds of diagrammatic representations in a natural way. Secondly, the existing body of results concerning the representation and analysis of graph rewriting processes provides a good starting point for the description and manipulation of complex refactoring processes. This should lead to, e.g., methods for the detection of conflicting refactorings, and methods for the optimization of refactoring processes. Thirdly, the question whether a given set of refactorings is allowable in the sense that it preserves program behaviour is obviously related to the characterization of graph properties that are preserved by the corresponding rewriting rules. Other important aspects are the complexity of refactorings, which can be studied in terms of the number of graph rewriting steps needed, perhaps in combination with the sizes of the graphs involved, and the issue of consistency between various levels of abstraction, which is related to work about hierarchical graphs.
For more information: http://www.win.ua.ac.be/~lore/refactoringProject/
 SegraVis  Funded by EU, as Research Training Network.

The primary objective of the project is to develop metalevel solutions for the definition, integration, and implementation of visual modeling techniques.
This includes issues such as
 using abstract syntax graphs and spatial relationship graphs. The corresponding classes of graphs can be specified either by metamodels or graph grammars.
 the use of graphbased semantics for defining the exact meaning of the models used.
 modularity, refinement and transformation: relevant concepts from formal methods like algebraic specifications, process calculi, Petri nets and graph
transformation shall provide the semantic background for corresponding features in visual modelling languages.
 integration, both at the syntactic and the semantic level.
 tool support: the use of graph transformationbased tools as meta case tools shall be evaluated, and the integration of tools shall be supported by means of an
XML/XMIbased interchange format for graphs and graph transformation.
For more information: http://www.segravis.org
Grants for pre and postdoc researchers are available: applications
Formal Support for the Transformation of Software Models  Funded by FWO, in cooperation with KUL (Leuven)
A typical characteristic of the software lifecycle is a gradual evolution from abstract, declarative models to concrete, computational ones. One of the major problems in the development of software systems is a lack of adequate support for evolution, i.e. evolution throughout the lifecycle as well as evolution in time. Consecutive models are hardly related, so that in practice various phases of the development cycle are only marginally or not at all worked out. Moreover, a modification of a software system often requires manual changes to all of the models in the consecutive phases. Therefore, in practice, modifications are often carried through only at the lowest levels and not documented properly. This results in socalled legacy systems, that embody complex functionality, but have lost their overall structure, making it impossible to maintain them in a costefficient way.
For more information: http://www.fots.ua.ac.be/research/fwomde.php
