Q. How Does SRC Recover Missing Source
Code?
A. Before the ReSource technology was developed,
many programmers and analysts thought it was impossible to recover
missing source code. Here's how SRC accomplishes the seemingly impossible:
Step 1. Disassembly.
When a program is compiled, source code is translated into a binary
representation. During disassembly, this binary object file is converted
into psuedo Assembler statements so that ReSource can work
directly with the machine instructions and their operands.
Step 2. Pattern Matching.
Next, the disassembled machine instructions are matched against
known sets of instructions created from COBOL statements. ReSource's
automated analyzer compares the disassembled machine instructions
with code patterns from its extensive repository, which includes
various dialects of COBOL. Since COBOL statements must consistently
compile into a corresponding pattern of machine code, a specific
set of machine code will always represent the same COBOL statement.
The resulting pattern-matched source code contains all of the appropriate
COBOL statements and references to operands used in those statements.
Step 3. Operand Analysis.
Pattern matching is ideal for recovering COBOL procedure statements,
but does not provide much information about other program elements.
Operands of the machine instructions are detected during disassembly
and decompilation. An analysis of the operands recovers data items
in file descriptions, working storage and linkage sections. These
data items are recovered in a manner similar to procedure statements.
Step 4. Validation.
Once the new source has been created, that source is compiled
using the same version of compiler and same compile options as the
original executable module. The result of this compile is then compared
to the disassembled version of the original executable. Discrepancies,
if any, are resolved prior to returning the new source to the customer.
Step 5. Supporting Information.
External clues may assist in completing the source code reconstruction.
Supporting information may include file layouts, source of copybooks
and related programs along with JCL, documentation, and program
and application specifications.
This step enables SRC analysts to attach meaningful data and paragraph
names that are either the original names or are similar in style.
This type of service is offered in addition to the basic recovery
service.
The source code recovered by ReSource maintains the original
logic of the program. SRC guarantees the code be functionally equivalent
to the original executable source code.
SRC technical strategy is based on the assumption that all executable
object code that customers deliver to SRC results from a clean compile.
This means the original source code at the time it was compiled
was syntactically valid. The executable object code contains everything
required by the computer to execute the instructions contained in
the original source code and nothing superfluous. The source code
can be run on an IBM mainframe or equivalent using the IBM 360/370/390
instruction set.
The ReSource technology regenerates COBOL and Assembler source
code for IBM MVS mainframe environment. It can handle a variety
of COBOL dialects including: COBOL II, OS/VS COBOL, IBM ANS COBOL,
and CA/OPTIMIZER (Capex) COBOL. In addition, ReSource can
recover source code from BMS Maps, CICS, DLI, IMS, DB2, SQL and
Report Writer.
For a more thorough explanation, see Solutions For Recovering Lost
Source Code and other articles in our "News" section.
Back To Top
Q. What are the benefits of source code
recovery?
A. ReSource/Recovery provides better results in less
time and for less money than other options. Compared with other
options, ReSource/Recovery:
- Saves time. Recovery takes a fraction of the time of other options.
With less than two years to the Year 2000, that's an important
advantage.
- Saves staff time. No programmers need to be pulled off existing
projects to re-build the application.
- Saves money. Recovery costs a fraction of the cost of rewriting
code.
- Reduces risk. 100% functionality is guaranteed.
- Preserves investment in the application software.
- Preserves the logic of the original source code.
- Offers guaranteed functionality.
Back To Top
Q. How does recovery compare with other
options?
A. Organizations that are missing source code have only
three options:
- Scrapping or replacing the application.
- Rewriting the code.
- Recovering the code.
Scrapping or replacing the application.
Unless the application software needs to be replaced, scrapping
an entire application because a few source programs are missing
is a costly overreaction. If the application is replaced with an
off-the-shelf system, extensive retrofitting is needed. If a replacement
is created in-house, it will tie up programmers when they are needed
to address other issues.
Rewriting code.
Rewriting code is also costly and time consuming. Code specification
and design are especially complicated, because the new code must
fit the missing modules exactly. Add the time needed for development,
testing and integration, and you'll understand why the cost for
rewriting COBOL ranges from $10 to $60 a line. With demand for programmers
increasing, prices are escalating.
Example. An organization with 30 million lines of COBOL is missing
300,000 lines, or 1% of its source. The missing code represents
2,800 function points (FPs). If each FP takes 20 hours to recover
at a cost of $894, rewriting the code will take 56,000 hours and
cost $2,505,000. That's 28 years of work, or two years for 14 programmers.
Recovering code.
Source code recovery costs less than other options, takes less time,
preserves the original logic of the program and offers many other
benefits.
The Source Recovery Company can recover your missing code - and
you don't have to worry about losing any functionality. With the
ReSource proprietary technology and SRC's team of experienced recovery
experts, the recovered program is guaranteed to perform exactly
like the original.
The ReSource proprietary source recovery process, which uses pattern
recognition algorithms to examine compiled object code, has been
used commercially since 1991 to help some of the world's largest
corporations and government agencies.
Back To Top
Q. Are there other uses for source code
recovery?
A. There are many uses for the source code recovery process,
in addition to the many recoveries that were done for Year 2000
projects. SRC sees itself as being in the asset management business
- a company's source code portfolio is among its most important
assets, and those assets need to be protected. The source code recovery
process can be used for any programming task using COBOL; Assembler;
CICS, DB2 or IMS.
Examples include:
- Fixing audit violations
- Migration or conversion of applications or systems
- Currency conversions
- Metric conversions
- Zip code and area code conversions
Back To Top
Q. How can billions of lines of source
code be missing?
A. There are many reasons why companies and agencies lose
their source code.
Here are just a few:
- A company merges with, or is acquired by, another company
- A consultant is brought in on a special project;
- An archival tape is discarded too early;
- A backup is never saved;
- A key employee leaves without documenting a program;
- A project is reassigned and libraries are not completely transferred.
- HDA Crash
Back To Top
Q. Can the source code recovery process
be used for programs outside the IBM mainframe environment?
A. While we believe the ReSource™ technology can be used
to recover source code in virtually any environment, we have chosen
to invest our resources into recovering source code in the IBM mainframe
environment, because it covers most business applications worldwide.
Since every platform has its own instruction set which is the foundation
for its operation, our ReSource™ technology is limited to supporting
the IBM System 360/370/390 instruction set. See our links page for
companies that provide similar services on other platforms.
Back To Top