|
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.
|