Report:

Workshop on Object-Oriented Reengineering (WOOR'99)

Toulouse / France , Monday September 6th, 1999

Harald Gall and Serge Demeyer

On September 6th, 1999 a workshop on the theme of Object-Oriented Reengineering was organized in conjunction with the ESEC/FSE'99 conference in Toulouse, France. This workshop was the second in its row, as two years before the same workshop was organized (see http://www.iam.unibe.ch/~famoos/ESCE97/).

The workshop included 5 papers and finally attracted 8 participants from Europe, America and Asia. The papers covered a range of topics: from UML, exchange models, architecture, visualization, to procedural to object-based transformation.

Although this time the workshop did not attract that many participants as in 1997, it turned out to be a very productive day with lots of sparkling discussions and fresh insights.

Below is a list of resolutions and recommendations that we wanted to share with others.

 

What is a "better system" ?

If someone wants to reengineer a system, there is always the underlying question to improve that system. However, what criteria should one use to assess improvement ? The consensus within the group was that these criteria should always stem from the business case that serves as the reengineering context. If not, the field will loose its credibility. In that context it is also good to point out that reengineers should be aware of reengineering economics, i.e. analyzing whether the cost is worth the gain.

 

How to organize tool- and method-adoption ?

Accepting the idea that reengineering needs a business case, implies that one must take special care to convince software industry to adopt methods and tools. Here as well a practical and down-to-earth approach seems most appropriate. For instance, make sure that your tools and methods fit in well with existing business processes. Also, consider a positive "Trojan horse" approach by injecting tools, methods and students into existing (industrial) projects. "Do the simplest thing that may possibly work" may serve as a guiding principle, especially concerning the trade-off

between automated versus manual approaches.

What is the "big picture" of a system ?

While reverse engineering there is often the need or goal for the "big picture" of the system. Concerning such an overview blueprint, the group agreed that the presence of UML as a de facto standard is a good thing, although we concluded that in itself UML is not sufficient. Something especially lacking is a format for exchanging "big pictures", the Big Picture eXchange Format (BPIXF) as we called it. Related to system blueprints is visualization in general, which is considered a good practice for program understanding. Especially because -- as was experienced by all practitioners around the table -- documentation is and will always be incomplete. Given this insight, humans are necessary in any reengineering loop, yet the question when to inject human expertise remains an open one.

 

What makes object-oriented reengineering different from normal reengineering?

Although the group did not tackle that question explicitly, some of the issues raised during the discussions were relevant in that context. For instance, it was pointed out that combining static and dynamic analysis is much more relevant in object-oriented reengineering because of late binding. Also, the issue of distribution becomes a lot more important as this often provides a business case for migrating towards objects.

 

In general the workshop raised several interesting research and practice questions that were discussed on the basis of individual industrial experiences. As one of the bottom lines of the workshop one could summarize: "Reengineer always on the basis of a business case and do the simplest thing possible".

 

For more information, the workshop papers and the list of participants can be consulted on the web (see http://www.iam.unibe.ch/~famoos/ESCE99/). The papers are also available as a technical report from the Technical University of Vienna in Austria (TUV-1841-99-13) at http://www.infosys.tuwien.ac.at.

 

List of attendees

Clayton Stuart, IT Consulting Engineer, Germany

Demeyer Serge, University of Berne, Switzerland

Egyed Alexandre, University of Southern California, USA

Gall Harald, Technical University of Vienna, Austria

Müller Hausi, University of Victoria, Canada

Nierstrasz Oscar, University of Berne, Switzerland

Streckenbach M., University Passau, Germany

Zhao Jianjun, Fukuoka Institute of Technology, Japan

 

Position papers

Round-Trip Software Engineering Using UML: From Architecture to Design and Back

Nenad Medvidovic, Alexander Egyed, David S. Rosenblum

 

Understanding class hierarchies with KABA

M. Streckenbach, G. Snelting

 

Extracting Reusable Software Architectures: A Slicing-Based Approach

Jianjun Zhao

 

SNIFF+ talks to Rational Rose

Sander Tichelaar, Serge Demeyer

 

Object-Model Driven Abstraction-to-Code Mapping

Harald Gall, Johannes Weidl