Object Modeling to Re-Engineer Legacy Systems

This paper summarizes our experiences in using computer-supported methods to develop a software architecture to support the re-engineering of the Janus Combat Simulation System. We have analyzed the Janus FORTRAN source code, interviewed Janus domain experts, developed an object-oriented architecture for the Janus Combat Simulation subsystem, and validated the architecture with an executable prototype. In this paper, we propose methods to facilitate the evolution of the software component of these systems by recovering the behavior of the systems using systematic methods, and illustrate their use in the context of the Janus System.

[1]  Jonathan P. Bowen,et al.  Ten Commandments of Formal Methods , 1995, Computer.

[2]  Betty H. C. Cheng,et al.  Using informal and formal techniques for the reverse engineering of C programs , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[3]  Richard L. Piazza,et al.  Design Recovery for Distributed Systems , 1997, IEEE Trans. Software Eng..

[4]  Betty H. C. Cheng,et al.  A Two-Phase Approach to Reverse Engineering Using Formal Methods , 1993, Formal Methods in Programming and Their Applications.

[5]  Linda M. Wills,et al.  Recognizing a program's design: a graph-parsing approach , 1990, IEEE Software.

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

[7]  Song C. Choi,et al.  Extracting and restructuring the design of large systems , 1990, IEEE Software.

[8]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[9]  Lawrence Markosian,et al.  Using an enabling technology to reengineer legacy systems , 1994, CACM.

[10]  Alan R. Hevner,et al.  Using function abstraction to understand program behavior , 1990, IEEE Software.

[11]  Kevin Lano,et al.  Integrating formal and structured methods in reverse-engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[12]  Giuseppe Visaggio,et al.  Identification and extraction of 'domain independent' components in large programs , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[13]  Wojtek Kozaczynski,et al.  Recovering reusable components from legacy systems by program segmentation , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[14]  Aniello Cimitile,et al.  A reverse engineering method for identifying reusable abstract data types , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[15]  Wojtek Kozaczynski,et al.  Automated support for legacy code understanding , 1994, CACM.

[16]  John D. McGregor,et al.  Understanding object-oriented: a unifying paradigm , 1990, CACM.

[17]  J. A. Zimmer Restructuring for style , 1990, Softw. Pract. Exp..