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