ROMEO: reverse engineering from OO source code to OMT design

The reverse engineering method of object oriented systems (ROMEO) takes the source code for an existing OO system and derives a no-loss representation of the system documented in object-oriented modeling technique (OMT) format. This representation of the system is derived through the use of a series of transformations. This paper describes in detail all the transformation steps needed for the extraction of the object design, discusses the experience gained from the application of the method to a case study and outlines the tools that can support the ROMEO methodology.

[1]  Hanspeter Mössenböck,et al.  Scene: using scenario diagrams and active text for illustrating object-oriented programs , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[2]  Yih-Farn Robin Chen,et al.  The C++ Information Abstractor , 1990, C++ Conference.

[3]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[4]  Antero Taivalsaari,et al.  Workshop on object-oriented legacy systems and software evolution , 1995, OOPSLA '95.

[5]  Wei-Tek Tsai,et al.  Omega-an integrated environment for C++ program maintenance , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[6]  Helen M. Edwards,et al.  Deriving a logical data model for a system using the RECAST method , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[7]  Clifford C. Huff,et al.  Elements of a realistic CASE tool adoption budget , 1992, CACM.

[8]  Theodoros Lantzos A Reverse Engineering Methodology for Object-Oriented Systems , 1998, ECOOP Workshops.

[9]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[10]  Helen M. Edwards,et al.  Recast: reverse engineering from COBOL to SSADM specification , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[11]  R.J. Kusters,et al.  On the practical use of CASE-tools: Results of a survey , 1993, Proceedings of 6th International Workshop on Computer-Aided Software Engineering.

[12]  Bjarne Stroustrup,et al.  The C++ programming language (3. ed.) , 1997 .

[13]  Norman Wilde,et al.  Maintenance Support for Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

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

[15]  Chris F. Kemerer,et al.  Now the learning curve affects CASE tool adoption , 1992, IEEE Software.

[16]  Panagiotis K. Linos,et al.  A tool for understanding object-oriented program dependencies , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[17]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[18]  M.L. Griss,et al.  Software reuse architecture, process, and organization for business success , 1997, Proceedings of the Eighth Israeli Conference on Computer Systems and Software Engineering.

[19]  Steven P. Reiss,et al.  Support for Maintaining Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

[20]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[21]  Juhani Iivari,et al.  Why are CASE tools not used? , 1996, CACM.

[22]  Antero Taivalsaari,et al.  Object-oriented software evolution and re-engineering , 1997 .

[23]  Ian M. Graham,et al.  Migrating to object technology , 1994 .