ICSE logotype

Workgroup on Standard Exchange Format

Progress Towards a Format

 

 

News

  • November 13, 2000.  This web site has been renovated in honour of CASCON and WCRE.
  • We have lost our contact person for the C++ AST and API topic.  We are looking for someone to take up this responsibility.
  • The Events calendar has been moved to another page and trip reports added.
  • At this time, the current GXL version is 0.7.2.
  • A collection of schema diagrams has been started.

Ongoing Work

Syntax for Exchanging Schemata and Data

GXL allows the exchange both data and schemata using attributed, typed graphs. GXL models the data to be exchanged as typed graphs and the schemata as UML-like diagrams. The portion of GXL used to represent data includes features from RSF (UVic), TA (UWaterloo), GraX and Tgraphs (UKoblenz), Progres (UBundeswehr) and RPA (Philips). The portion of GXL for encoding data is ready to be used. The portion of GXL for representing schemata is still to be determined, but the goal is to remain compatible with OMG's MOF, while keeping the SEF easy to learn, use, and implement. The future work for this area is to:
  • formally specify schemas and their encoding 
  • construct translators from well-known SEFs such as TA, RSF, Tgraphs, and Progres 
  • create standard benchmarks to validate the above
If you are interested in becoming involved in this area, you should read the GXL home page, and contact Ric Holt or Andreas Winter.

Step 1 Detailed specification and documentation of GXL to support tool construction.

Step 2 Construction of tools that use GXL.

C++ AST and API

There are currently number of different approaches to representing C++ at the AST level, including work by the Datrix Group (Bell Canada), by Bauhaus (UStuttgart), by GUPRO (UKoblenz), and by Kontogiannis (UWaterloo). These schemas, and others, seem more or less equivalent to each other. The group recommended looking at the various schemata available for C++ and developing a unified schema. Future work for this area:
  • arrive at a common schema
  • develop a corresponding API to access this data
The previous contact person, Sebastién Lapierre, has a new job outside of reverse engineering and we are seeking a new contact person.  If you would like to assume this role, please send me a message.  The following to-do list was established by the previous contact person.

Step 1: The aim is to consolidate equivalent schemas into a single schema. The Datrix schema will serve as the basis of a first schema evaluation, upon which modifications or additions will possibly be made if need be. The researchers present at WoSEF have chosen to study the Datrix schema and discuss this schema. The Datrix schema has been chosen because: 

The tool usage (how to do system parsing) is also documented.

Step 2: With the aid of Ric's lab, the Datrix schema should be formally described as expected in the schema description sections of TA and GXL.

Step 3:Study the APIs used by others, in particular, IBM's CodeStore for C++ API, and the TA-DOM approach for LSEdit (from U of Waterloo).
 

Format for Higher Level Program Structure

During the workshop, a comparison was made between various schemas that record information from the architectural level down to the externally visible declarations, include the FAMIX schema (UBerne/Nokia), the Bauhaus (UStuttgart) schema, and the TA++ schema (UOttawa). It was agreed that the structure and meaning of these schemata are quite similar and that some effort should be made to reconcile them. Future work for this area is
  • creating a reference schema for high-level program information
Sander Tichelaar has created a Wiki page for discussing this topic. Susan Sim is collecting input and output schemas for tools (both written descriptions and diagrams) in a gallery.

Getting Involved

There are a number of ways that you can get involved with the exchange effort.

Supporters

The following groups have committed to refining GXL to be the standard exchange format:
  • Bell Canada (Datrix Group), Canada
  • IBM Centre for Advanced Studies, Canada
  • Mahindra British Telecom, India 
  • Nokia Research Center (Software Technology Laboratory), Finland
  • Philips Research (Software Architecture Group), The Netherlands
  • RWTH Aachen (Department of Computer Science III), Germany
  • University of Berne (Software Composition Group), Switzerland 
  • University Bw München (Institute for Software Technology), Germany 
  • University of Koblenz (IST, Re-Group), Germany 
  • University of Oregon (Department of Computer Science), U.S.A. 
  • University of Ottawa (Knowledge Based Reverse Engineering), Canada 
  • University of Paderborn (AG Softwaretechnik), Germany 
  • University of Stuttgart (BAUHAUS Group), Germany 
  • University of Victoria (RIGI Group), Canada 
  • University of Waterloo (Software Architecture Group), Canada 

Organizers

Susan Elliott Sim

Department of Computer Science
University of Toronto
10 Kings College Rd.
Toronto, Ontario
Canada
M5S 3G4
Tel. +1 416 978-4158
Fax. +1 416 978-4765
simsuz@cs.utoronto.ca
Ric Holt

Department of Computer Science
University of Waterloo
Waterloo, Ontario
Canada
N2L 3G1
Tel. +1 519 888-4567, x4671
Fax. +1 519 885-1208
holt@plg.uwaterloo.ca
Rainer Koschke

Institut für Informatik
Programmiersprachen und Compilerbau
Universität Stuttgart
Breitwiesenstraße 20-22
70565 Stuttgart
Germany
Tel. (+49) +711-7816-206
Fax. (+49) +711-7816-380
koschke@informatik.uni-stuttgart.de

Acknowledgements

WoSEF logo was created by Tiago Campos, TRAFFX Design, Toronto, Canada.