Object-Oriented Modular Architecture for Ground Combat Simulation

Abstract : This paper addresses the need to modernize the software of the Janus(A) systems into a maintainable and evolvable structure. It describes the effective use of computer-aided prototyping techniques for re-engineering the legacy software to develop an object-oriented modular architecture for the Janus combat simulation system. Janus(A) is a software-based war game that simulates ground battles between up to six adversaries. It is an interactive, closed, stochastic, ground combat simulation with color graphics. Janus is "interactive" in that command and control functions are entered by military analysts who decide what to do in crucial situations during simulated combat. The current version of Janus operates on a Hewlett Packard workstation and consists of a large number of FORTRAN modules (1918 FORTRAN routines, 115 C routines, and a total of 393,000 lines of source code). The FORTRAN modules are organized as a flat structure and interconnected with one another via 129 FORTRAN COMMON blocks, resulting in a software structure that makes modification to Janus very costly and error-prone. The Software Engineering group at the Naval Postgraduate School was tasked to extract the existing functionality through reverse engineering and to create a base-line object-oriented architecture that supports existing and required enhancements to Janus functionality. The object models produced in this project have proven invaluable to the contractors during the code implementation phase of the U.S. Army TRAC HLA Warrior project.

[1]  Olin Bray,et al.  Reengineering a Configuration-Management System , 1995, IEEE Softw..

[2]  Luqi,et al.  The Story of Re-engineering 350,000 Lines of FORTRAN Code , 1999, Electron. Notes Theor. Comput. Sci..

[3]  Luqi,et al.  Compositional Semantics of a Real-Time Prototyping Language , 1993, IEEE Trans. Software Eng..

[4]  Spencer Rugaber,et al.  Domain analysis for transformational reuse , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[5]  Stan Jarzabek,et al.  Design of a generic reverse engineering assistant tool , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[6]  Luqi,et al.  A computer-aided prototyping system , 1988, IEEE Software.

[7]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[8]  Luqi,et al.  A Prototyping Language for Real-Time Software , 1988, IEEE Trans. Software Eng..

[9]  Luqi,et al.  Re-engineering the Janus (A) combat simulation system , 1999 .

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

[11]  William G. Griswold,et al.  Tool support for planning the restructuring of data abstractions in large systems , 1996, SIGSOFT '96.

[12]  Daniel M. Berry,et al.  Formal Methods: The Very Idea Some Thoughts About Why They Work When They Work , 1998, Monterey Workshop.

[13]  Luqi,et al.  Architectural Re-engineering of Janus using Object Modeling and Rapid Prototyping , 1999, Proceedings Tenth IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype (Cat. No.PR00246).