LORE / Research
This is the research page of "The Lab on Reengineering (LORE)", a research group investigating techniques to reeengineer software systems. LORE is directed by Prof. Serge Demeyer and is part of the University of Antwerp (Department of Mathematics and Computer Science).
The documentation is missing or obsolete, and the original developers have departed.
Your team has limited understanding of the system and unit tests are missing for many,
if not all, of the components. When you fix a bug in one place, another bug pops up somewhere
else in the system. Long rebuild times make any change difficult.
The above situation may look familiar. Unfortunately, many programming teams are facing the
above problems and don't know how to tackle them. LORE
is a Software Engineering group at the University of Antwerp
which investigates solutions for these problems. We see reengineering as an essential phase
in any software life-cycle because software systems —especially object-oriented ones—
must adapt to changing requirements in order to remain successful. To quote the book we wrote on
the subject: "It is not age that turns a piece of software into a legacy system, but the rate at
which it has been developed and adapted without being reengineered"
LORE is actively looking for industrial partners to set up research
projects in order to expand and validate our expertise. In particular, we are looking
for projects in the area of embedded systems and web applications where we can apply
our techniques. In our opinion such joint-projects between industry and academia are
the cornerstone for reengineering research from which both partners benefit. In that
context is important to point out that all tools that we have developed, originated
from research projects that were held in conjunction with industry.
- Serge Demeyer, Stéphane Ducasse,
and Oscar Nierstrasz.
Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2003.
Based on our research experience we offer expertise in the
following areas; companies who want to make use of our services
should contact us.
Experience with reverse- and reengineering techniques
applicable on large scale software systems. We offer a
full or half-day tutorial
on object-oriented reengineering
Consultancy services with some tool prototypes we developed to detect
potential problems in large software systems (duplicated code, abusive
inheritance, god classes, ...).
Education and training in applying
refactoring. We offer a
to train practicioners the trade-offs involved in cleaning up the code.
Projects (In reverse chronological order)
[2007 - 2011]
Fundamental Issues in Software Engineering: Modelling, Verification and Evolution of Software
Software-intensive systems are among the most complex artefacts ever built. In the development of such systems, the use of rigorous models and analysis methods is essential to make sure that the software satisfies its requirements and exhibits the desired properties (e.g., safety, security, reliability, consistency). At the same time, in order to adapt to the constantly changing requirements and technology, these systems must be able to evolve over time, without breaking their essential properties.
This project combines the leading Belgian research teams in software engineering, with recognised scientific excellence in model-driven engineering (MDE), software evolution, formal modelling and verification (FMV) and aspect-oriented software development (AOSD). The project aims to advance the state of the art in each of these domains. The long term objective of our network is to strengthen existing collaborations and forge new links between those teams, and to leverage and disseminate our research expertise in this domain at a European level.
[2006 - 2010]
Migration to Service-Oriented Architectures
In this project, LORE applies and refines existing reverse and reengineering techniques on industrial cases of KBC, Axa and Toyota. This project works towards a collection of best practices for migrating towards a service-oriented architecture.
[2005 - 2009]
Formal Support for the Transformation of Software Models
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 of the consecutive phases.
Therefore, in practice, modifications are often carried through only at
the lowest levels and not documented properly. This results in so-called
legacy systems, that embody complex functionality, but that have lost their
overall structure, making it impossible to maintain them in a cost-efficient way.
This project aims to deliver formal languages, models and tool prototypes
for managing software evolution in the vertical (lifecycle) and horizontical
[2005 - 2008]
Software Evolution, Refactoring, Improvement of Operational & Usable Systems
Embedded systems are becoming increasingly complex, more diverse, and
are frequently expanded to include more features. As a consequence,
the software is constantly changing: within Alcatel Bell rates of
10,000 lines of code changed per week are the norm. Unfortunately,
high change rates inevitably erode a well-designed well-documented
system and quickly turn it into a maintenance nightmare.
Alcatel Bell's internal development processes are certified with CMM level 3.
However these processes do not contribute to the long-term evolution of software.
Indeed, the addition of new features sometimes introduces unexpected bugs,
breaks design decisions, and distorts documentation. Consequently, it
is hard to assess which software components should be refactored
and to estimate the effort required to do so. Therefore, the SERIOUS project
aims to develop methods, metrics and tools to maintain ---even increase---
the quality of the software during its evolution.
In Belgium the project partners are Alcatel Bell
(http://www.alcatel.be/) and the University of Antwerp, research
group LORE (http://www.lore.ua.ac.be/). However, this local
consortium participates in a larger ITEA context with other companies
in Europe such as Philips and Nokia.
[2002 - 2006]
Architectural Resources for the Restructuring and Integration of Business Application
The aim of this project is to provide a methodology and
its associated tools in order to support the integration
of disparate business applications that have not
necessarily been designed to coexist. LORE
investigated ways to extract the architecture of existing
applications by analyzing run-time traces. To get those
traces we will rely on technology borrowed from
[2004 - 2005]
eBusiness in the farmaceutical care sector
This project addressed the development of a web-accessible service model by reengineering and integrating the back-office. This project is an example of how LORE disseminates its expertise to SMEs.
[2002 - 2006] A Formal Foundation for Software Refactoring
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. Based on
this formal model, we will try to answer the following
questions: (i) What is the exact meaning of behaviour
preservation in this context? (ii) Can tools resolve
conflicts between interacting refactorings? (iii) How can
one address the composability and scalability of
refactorings? (iv) How can the design be kept consistent
with the refactored code? (v) Which software quality
factors are influenced by refactoring?.
Foundations of Software Evolution
A working group investigating formal techniques and tools
to support large scale software evolution. This working
group involves nine research institutes from universities
in five different countries (Belgium, Germany, Austria,
Switzerland and Portugal) and is investigating techniques
and tools to support large scale software evolution. It
is sponsored by the Fund for Scientific Research in
Flanders - Belgium (FWO)
which corresponds to our national science fund.
Research Links to Explore and Advance Software Evolution
A research network which will explore ways to evaluate,
compare and combine a wide variety different techniques,
tools, formalisms and processes to ease software
evolution. The group will focus on two activities (a)
establish a sound scientific research method; (b) set up
an evolution benchmark. The network is sponsored by the
European Science Foundation.