|
A History of Automated Software Re-Engineering
The following is a short history of automated automated software re-engineering and modernization projects, dating from 1989 through 1999. Before founding The Software Revolution in 1995, Mr. Philip Newcomb conducted 25 industrial research projects at Boeing Research and Technology that demonstrated the industrial value of automated software reverse-engineering, re-engineering, reuse, program understanding, testing, verification and validation on many major Boeing programs. As a subcontractor to Boeing Information System (BIS), Mr. Newcomb demonstrated the applicability of automated function and structural testing on the Mechanization of Contract Administration System (MOCAS) for the Defense Information System Agency (DISA), under the Defense Enterprise Information Services (DEIS I) contract. From 1995 through 1999 Mr. Newcomb developed and applied Revolution 2000™ to Y2K Independent Verification & Validation (IV&V) projects for over 30 major Fortune 500 customers. Starting in 2000, The Software Revolution, Inc built upon Revolution 2000™ creating eVolution 2000™, a technology that used knowledge-based technology for automated software modernization. In 1999 TSRI commenced development JANUS™, a pure MDM technology for automated modernization of legacy software systems. JANUS™ is the 4th in a series of automated software technologies developed by TSRI's founder since 1978. TSRI has used JANUS™ on over 30 major automated software modernization projects for the eight leading government Information Technology (IT) vendors.
Knowledge Integration Tool, 1985-1988: The Knowledge Integration Tool (KIT) a Knowledge Based Software Engineering (KBSE) environment was written in LISP and Carnegie Representation Language (CRL). KIT was an early generation reverse-engineering environment for Artificial Intelligence (AI) software written in Prolog, OPS and CRL. KIT was a facet of Crystal, a project between the Boeing AI Laboratory and the Carnegie Group to use AI for improving software engineering processes and practices.
Prototype Reverse Engineering Workbenches, 1989: Prototype reverse engineering workbenches for JCL, COBOL, Fortran and Ada, were written in Refine™, Dialect™ and Intervista™ from Reasoning Systems. These workbenches demonstrated the feasibility and value of model-based software modeling techniques in the USAF Knowledge Based Software Assistant (KBSA) program by improving software practices for conventional 3GL languages, including JCL, COBOL, Fortran and Ada. This program commenced a multi-year Boeing program that pioneered model-based software transformation technology on over 25 industrial projects within Boeing.
Generic Language Translator (GLT) 1989: The GLT was an early effort to incrementally derive generic pattern-based language transformation rules based on patterns in the syntactical structure of language constructs. This early attempt to use syntactical patterns as the basis for language transformation never achieved closure nor completeness and was eventually abandoned.
COS JCL to UNICOS Translator, 1989: The COS JCL to UNICOS Translator demonstrated the value of automated transformation technology by translating a job control language to a scripting language. It developed grammars and domain models for COS JCL and UNICOS C Shell, and rules for transforming COS JCL into UNICOS CSH. COS JCL is the Cray Operating System Job Control Language. UNICOS CSH is the Unix Operating System C Shell, or the Cray YMP. This language translation approach used transformation rules written directly in Refine™, a 5GL wide spectrum language, applied to the COS JCL language models. Lessons learned from this project and eVolution 2000™ a decade later, lead to the developement of TSRI's domain specific language for model-based language transformation, JTGEN.
Peace Shield Physical Configuration Audit (FRET 1), 1990: The Peace Shield Physical Configuration Audit demonstrated the value of using automation for checking code for conformance to coding standards. It was used to audit 350,000 lines of sub-contractor supplied code from the Peace Shield Program. FRET 1 was a production-level Reverse Engineering Workbench and source code audit tool for detecting coding and naming standards violations, dead code and other anomalies and deviations from coding standards. Specifically it analyzed FORTRAN 77 with imbedded EQUEL, an embedded SQL developed by Ingress.
Fortran Reverse Engineering Tool (FRET 2), 1990: FRET 2 extended the demonstration pilot of the FORTRAN Reverse Engineering Tool, FRET 1, to support inter-procedural control flow analysis, program unit analysis, set-use analysis, distributed processing and analysis merging.
C Loop Parallellization Project, 1990: This project illustrated the analysis of Berstein loop dependency conditions and performed program transformations by introducing forks and joins to replace loops in C programs. It also introduced parallel processing constructs into the C language to automate conversion of C programs from sequential to parallel processing.
Generic Language Workbench (GLW), 1990: The GLW developed a graphical user interface with pull-down menus, window management, window placement, window sizing, and hyper linking between sources and graphs. This work was the Production Prototype of the user interface used in a common commercial language reverse-engineering workbench.
The Source Code Analysis Tool System (SCATS) for C, 1990: Developement of the SCATS prototype produced a C reverse-engineering tool which automated software test support for avionics systems written in the C language. It had the capability for program partitioning and partition intersection analysis.
COBOL Reverse Engineering Workbench, 1991: This enhanced COBOL workbench included full control flow, full data flow (UD|DU analysis), control flow graphs, data flow graphs, structure charts, indented outline browser, postscript (for diagrams, tables and browsers), pretty printer windows, enhanced user interface, formatted document generation, query-based set use, and Semantic Transfer Language (STL).
Payroll Modularization Pilot, 1991: The payroll modularization pilot was applied to COBOL programs as large as 40,000 lines. The programs were decomposed into equivalent modularized programs. Modularization occurred interactively under user guidance or in a batch model. Data clean up and parameterization were performed automatically or under user guidance.
Ada Testing Workbench, 1991-1994: The Ada Testing Workbench project developed a reverse-engineering and testing workbench for Ada. It provided: (1) A Diana-Tree Compatible Ada Language Model with abstract syntax, lexical analyzer, scope analyzer, Ada type checker, Data Cross Reference Reports, and Ada Library Management. (2) An Automatic Software Testing Workbench Prototype with statement coverage testing analysis, decision branch coverage testing analysis, and path coverage testing analysis. (3) Automated Formal Semantics Capture Techniques with derivation of formal specifications from Ada code and mechanical theorem proofs for properties of program paths.
Fortran Workbench/CATIA FORTRAN Documentation, 1991: The FORTRAN Documentation project developed a prototype set of Refine/FORTRAN workbench extensions. These extensions allowed partial reverse-engineering and documentation of Boeing CATIA-related FORTRAN to satisfy Boeing coding standards.
Object-Oriented Model/Hierarchical State Machine Abstraction, 1991: The procedural to Object-Oriented Model (OOM) project developed a COBOL workbench extensions to support the abstraction of object-oriented classes from COBOL. Methods were extracted by a slicing program driven from a state machine model and control flow graphs. Control logic of the OOM was represented in state-transition tables in terms of state variables and methods. Methods associated with the same data variable could be merged. Data-flow models were generated in terms of methods and classes for each paragraph.
COBOL Workbench Robustification Enhancements, 1992: This project enhanced the Boeing COBOL Reverse Engineering Workbench (BREW) bringing the GUI closer to the motif standard. It also tested the parser and grammar on several systems of up to 1 Million LOC.
COBOL Workbench Testing Enhancements, 1992: Further enhancements to the Boeing COBOL Reverse Engineering Workbench (BREW) were devoloped during this project. These enhancements included language neutral control flow graphs and integrated test coverage specifications, (statement, decision, decision/condition and modified condition decision coverage).
COBOL Workbench/Data Centered Modularization, 1992: The Boeing COBOL Reverse Engineering Workbench (BREW) was extended to allow for modularization based upon 01 level record selections and program slices pertinent to 01 level data elements.
Refine Reverse Engineering Development and Documentation Tool (R2D2), 1993: The R2D2 tool was developed to automatically document Refine code. The tool generated structure charts, mini-specifications, and data models for individual functions and subsystems written in the Refine 5GL. R2D2 used an incremental outline browser for Refine knowledge-based objects and referenced functions. The outline browser displayed domain models, syntax, configuration control, problem reporting and problem resolution.
Procedural Methods(QPM) Translator, 1993: This translator was developed to transform Fortran code into a data-flow processing environment called the Quasi-Procedural Method. Fortran commons and parameters were transformed into data-base variables. A data driven dependency network was developed to dynamically determine efficient computation flow and reuse of cached function values.
COBOL Workbench/Redundancy Analysis, 1993: Developed an extension to Boeing COBOL Reverse Engineering Workbench (BREW) to assess the amount of redundancy in COBOL systems by comparison of trait vectors of paragraphs. Paragraphs were clustered based upon correlations between trait vectors.
COBOL Workbench/Trait Analysis, 1993: This project extended techniques for redundancy analysis by the adding composite and deductive traits and trait hierarchies. The project included the development of a light weight C++ trait analysis tool independent from the Boeing COBOL Reverse Engineering Workbench (BREW).
COBOL Workbench/ERMS Reengineering Pilot, 1993: The Boeing COBOL Reverse Engineering Workbench (BREW) was applied to allow the use of SQL in the Boeing Equipment Record Management System (ERMS), an 800,000 line COBOL system. This project developed BREW extensions to standardize data variable names, qualify data usage and introduce the Data Manipulation Interface (DMI) into ERMS.
COBOL Workbench/Usability & Stabilization, 1993: This effort made significant improvements in the usability of the COBOL Reverse Engineering Workbench (BREW) workbench providing a more complete analysis, a more robust interface, and broadened support for multiple dialects.
Cataloguing Facility, 1994: This project provided a facility to catalogue legacy systems into a persistent object base. It also developed a meta-modeling language for annotation and description of legacy system properties in a file system based ASCII description language.
Jovial Workbench, 1994: A prototype Jovial Language Workbench was developed for the J3B2 dialect of Jovial. This workbench supported modeling and analysis of Jovial and translation of Jovial into Ada.
The Marine Corp Reengineering (MCRE) project, 1994: The MCRE project developed and applied program understanding and transformation to support the migration of 1.3 Million lines of Marine Corp programs into the Joint Maritime Command Information System (JMCIS).
The Software Revolution Inc. (TSRI) was founded, May, 1995: Philip Newcomb left Boeing Research and Technology, in May 1995 and founded TSRI. He became a subcontractor to the Boeing Defense Enterprise Integration Services (DEIS I) contract.
Regression Testing Prototype, 1995-1996: The Software Revolution Inc. (TSRI) developed extensions to the commercially available version of the COBOL Reverse Engineering Workbench (BREW). This effort supported the automated regression testing analysis for the Mechanization of Contract Administration System (MOCAS) of the Defense Information System Agency (DISA) under the Defense Enterprise Information Services (DEIS I) contract.
Revolution 2000™, 1996: The Software Revolution Inc. (TSRI) developed a commercial suite of model-based program understanding technologies to support Y2K analysis for the Ada, C, COBOL, Fortran, Open-M, and Jovial languages. Y2K Customers for Revolution 2000™ included Boeing Information Systems (BIS), Bridgeway, Boeing Employee Credit Union (BECU), Idaho National Environmental Energy Laboratory (INEEL), Miter, PETRON, Reasoning Systems, TRW, and Weyerhaeuser.
|