21. – 26. Januar 2001, Dagstuhl Seminar 01041
Interoperability of Reengineering Tools
Auskunft zu diesem Dagstuhl Seminar erteilt
Software Reengineering is the present-day term for all activities for renovating aging systems to be more responsive to changes. Problems of the 90s like the Y2k-problemor the problem of converting software to the new European currency witnessed the importance of concepts, tools and techniques to improve the quality and maintainability of software. Reengineering is a part of software engineering with its focus on all problems appearing during software maintenance of legacy software. Here, we focus on the technical part related to the software artifacts themselves and exclude all management aspects of software maintenance.
Software Reengineering activities are widespread and mostly focus on the development of tools for software analysis. The current state of practice is however that reengineering tools still solve insular problems and are treated as research prototypes within the research group that developed them. In this context, it is very important to define a data interchange format that allows for different reengineering tools to communicate so that integrated, multi-faceted representations of software systems can be created.
Even though this issue may look simple at the beginning, it involves a number of research issues to be resolved. One issue is the definition of the levels of abstraction that information about a software system is to be presented. These levels of abstraction may include the abstract syntax tree level, the data and control flow level, while a higher one may be the architectural level. The challenge to the research community is to design a formalism for each level of abstraction so that information about a software system can be passed from one analysis tool to another. Moreover, the formalism must allow for software systems and constructs in various languages to be presented. Another research challenge is the definition of schemata that allow for data emitted from different parsers to be fused in a uniform, normalized source code representation. Emerging markup languages such as XML may provide a vehicle for data fusion and data integration, in this context.
This Dagstuhl seminar aims at a concrete deliverable, namely the definition of an interchange language format for reengineering tools. Apparently such a language for describing software is needed on different levels of semantic expressiveness, like abstract syntax trees and abstract syntax graphs, call graphs, program dependence graphs, architecture descriptions, etc. Thus, tool interoperability highly relies on the agreement of common concepts, schemas, and information structures. Work on reverse engineering in the sense of extracting information to a higher level of abstraction can not be separated from the interchange aspect.
The aim of the seminar is to provide the working environment where:
- a) reengineering tasks and activities are categorized;
- b) schemata for language domain models are presented;
- c) data exchange formats are defined for different levels of abstraction and;
- d) the role of emerging markup language technologies (XML, RDF) is evaluated as a vehicle for reengineering tool interoperability.