STG, Inc

Department of Defense Activity Address Directory (DODAAD)

Defense Logistics Agency

HP COBOL to C++

History: STG, Inc. awarded a contract to TSRI for the transformation, re-factoring and documentation of the DOAAD system, along with re-hosting the system's database.

The DODAAD system ran on an HP-UX OS based system utilizing a combination of VT100 escape sequences for direct screen and keyboard I/O supported by a large number of platform specific extensions to ANSI standard COBOL Display and Accept statements. The unstructured COBOL code had a highly convoluted control structure with 639 GOTOs, overlapping PERFORM THRU ranges, and premature exiting via GOTO from PERFORM THRU ranges. In addition the COBOL source code contained embedded SQL Screen Displays and Screen Accept statements that were tightly interleaved with the business logic.

Challenge: TSRI resolved challenges for the DODAAD project in four distinct areas; code transformation, re-factoring, data manipulation, and the graphical user interface (GUI).

Transformation: The transformation of DODAAD code from COBOL into C++ was accomplished with 100% automation. The DODAAD business logic, data base logic and GUI logic were segregated during this transformation into distinct C++ classes with the business logic, data base logic and GUI logic layers interleaved but easily distinguishable by the C++ method invocations defined for operations associated with each layer. Further segregation and segmentation of these layers through automated re-factoring was required to support the objectives of the DODAADS target architecture.

Re-factoring: Re-factoring was used to partition the application into multiple tiers of classes and methods, to simplify the convoluted control structure, and to eliminate redundancy. Re-architecting DODAAD into clean object-oriented C++ with the introduction of the multi-tier architecture required a sequence of automated re-factoring operations. Automated GOTO elimination was accomplished using local and global control flow analysis during a post-transformation re-factoring phase. Multi-level GOTOs, (whose returns were ambiguous because a multi-level PERFORM separated the return from the invoked paragraph), were removed by encapsulating the GOTO target code into functionally equivalent method invocation sequences. When this resulted in redundancy, automated merging removed duplicate methods. GOTOs that violated perform ranges were similarly factored out of the control structure in the transformed C++ application logic.

Data Manipulation Tier: Generation of the data manipulation tier was accomplished by automatic partitioning, segregation and rewrite operations. The SQL originally embedded in the HP UX COBOL was mapped into a separate data base management tier by introducing method invocations to C++ classes in the data manipulation layer. All HP UX SQL calls were transformed into ODBC compatible SQL and passed from the application into an ODBC manipulation layer. The ODBC data manipulation layer provided the application with data base independence and separated the data base access tier from the business logic tier.

Graphical User Interface (GUI) Tier: The HP UX COBOL Display and Accept statement were transformed and re-factored into a distinct layer of C++ classes and methods. This separated the GUI functionality from the business logic. DODAADS did not require a Browser interface, so legacy GUI commands were mapped into C++ commands that drove a simple terminal interface. The segregation of GUI logic did, however, prepare the modernized system for a future web based interface when needed.

Summary: The partitioning of DODAAD into separate Business Logic, Data Base, and GUI tiers, was achieved through automated re-factoring, enabling the customer to satisfy stringent DTIC architectural requirements. While DODAAD did not become a web-enabled application, the system was re-architected sufficiently during its transformation into C++ that web-enablement is an easy subsequent step. The DODAAD modernization project illustrates the effectiveness of automated transformation followed by automated re-factoring for migrating monolithic mainframe applications into multi-tiered object-oriented architectures capable of platform independence.

Results: This pilot project demonstrated TSRI's capability for complete automatic modernization of a mission-critical Defense Logistic Agency (DLA) system into C++ while meeting the DoD's stringent architectural requirements. TSRI awaits deployment of the DODAAD pilot by STG and the government and expects to begin work on phase-2 in early 2005.



Printable

| | ©2004, ©2005 the Software Revolution, Inc. All rights reserved.