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