Dimensions of reengineering environment infrastructures

Over the last decade many research groups and commercial companies have been developing reengineering environments. However, many design decisions such as support for multiple models, incremental loading of information, tool integration, entity grouping, and their impacts on the underlying meta-model and resulting environment have remained implicit. Based on the experience accumulated while developing the Moose reengineering environment and on a survey of reengineering environments, we present a design space defined by a set of criteria that makes explicit the different options and especially their dependencies and trade-offs. Using this design space, developers of future environments should have a better understanding of the problems they face and the impact of design choices.

[1]  Kim Mens,et al.  Declaratively codifying software architectures using virtual software classifications , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

[2]  Dominic A. Orchard,et al.  XML Linking Language (XLink) Version 1. 0. World Wide Web Consortium, Proposed Recommendation PR - x , 2000 .

[3]  Kim Mens,et al.  Supporting software development through declaratively codified programming patterns , 2002, Expert Syst. Appl..

[4]  Peter Wegner Dimensions of object-based language design , 1987, OOPSLA 1987.

[5]  Stéphane Ducasse,et al.  A hybrid reverse engineering approach combining metrics and program visualisation , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[6]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.

[7]  Oscar Nierstrasz,et al.  A meta-model for language-independent refactoring , 2000, Proceedings International Symposium on Principles of Software Evolution.

[8]  Timothy C. Lethbridge,et al.  Architecture of a Source Code Exploration Tool: A Software Engineering Case Study1 , 1997 .

[9]  M. N. Armstrong,et al.  Evaluating architectural extractors , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[10]  Rudolf K. Keller,et al.  Selecting a model interchange format: the SPOOL case study , 2000, Proceedings of the 33rd Annual Hawaii International Conference on System Sciences.

[11]  Robb Nebbe FAMIX Ada language plug-in 2.2 , 1999 .

[12]  Rainer Koschke,et al.  Atomic architectural component recovery for program understanding and evolution , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[13]  Stéphane Ducasse,et al.  Moose: an Extensible Language-Independent Environment for Reengineering Object-Oriented Systems , 2000 .

[14]  Stéphane Ducasse,et al.  Understanding Software Evolution Using a Flexible Query Engine , 2001, FFSE@CSMR.

[15]  Stéphane Ducasse,et al.  Why Unified is not Universal? UML Shortcomings for Coping with Round-trip Engineering , 1999, UML.

[16]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[17]  Roel Wuyts,et al.  Declarative reasoning about the structure of object-oriented systems , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[18]  Richard C. Holt,et al.  E/R schema for the Datrix C/C++/Java exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[19]  Sander Tichelaar FAMIX Java language plug-in 1.0 , 1999 .

[20]  Thomas G. Lane A Design Space and Design Rules for User Interface Software Architecture , 1990 .

[21]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[22]  Serge Demeyer,et al.  The FAMOOS Object-Oriented Reengineering Handbook , 1999 .

[23]  Harald C. Gall,et al.  Visualizing software release histories: the use of color and third dimension , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[24]  Jean-Francois Girard,et al.  Data exchange in Bauhaus , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[25]  Michel Dagenais,et al.  An analysis framework for understanding layered software architectures , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[26]  Sander Tichelaar,et al.  Modeling Object-Oriented Software for Reverse Engineering and Refactoring , 2001 .

[27]  Michele Lanza,et al.  A hybrid reverse engineering platform combining metrics and program visualization , 1999 .

[28]  Harald C. Gall,et al.  A comparison of four reverse engineering tools , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[29]  Stéphane Ducasse,et al.  Understanding software evolution using a combination of software visualization and software metrics , 2002, Obj. Logiciel Base données Réseaux.

[30]  Susan Elliott Sim,et al.  A structured demonstration of program comprehension tools , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[31]  Stephen R. Schach,et al.  Comprehending Multilanguage and Multiparadigm Software , 1999 .

[32]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[33]  Hausi A. Müller,et al.  Domain-retargetable reverse engineering , 1993, 1993 Conference on Software Maintenance.

[34]  Steven J. DeRose,et al.  Xml linking language (xlink), version 1. 0 , 2000, WWW 2000.

[35]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[36]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[37]  Philip A. Bernstein,et al.  Microsoft Repository Version 2 and the Open Information Model , 1999, Inf. Syst..