X hits on this document





11 / 120

2 Reverse Engineering in Software Development

While a great deal of software that has been written is no longer in use, a

considerable amount has survived for decades and continues to run the global economy.

The reality of the situation is that 70% of the source code in the entire world is written in

COBOL [3]. One would be hard-pressed these days to obtain an expert education in

legacy programming languages like COBOL, PL/I, and FORTRAN. Compounding the

situation is the fact that a great deal of legacy code is poorly designed and documented

[3]. [6] states that “COBOL programs are in use globally in governmental and military

agencies, in commercial enterprises, and on operating systems such as IBM's z/OS®,

Microsoft's Windows®, and the POSIX families (Unix/Linux etc.). In 1997, the Gartner

Group reported that 80% of the world's business ran on COBOL with over 200 billion

lines of code in existence and with an estimated 5 billion lines of new code annually.”

Since it’s cost-prohibitive to rip and replace billions of lines of legacy code, the only

reasonable alternative has been to maintain and evolve the code, often with the help of

concepts found in software reverse engineering. Fig. 2.1 illustrates a process a software

engineer might follow when maintaining legacy software systems. Whenever computer

scientists or software engineers are engaged with evolving an existing system, fifty to

ninety percent of the work effort is spent on program understanding [3]. Having

engineers spend such a large amount of their time attempting to understand a system

before making enhancements is not economically sustainable as a software system

continues to grow in size and complexity. To help lessen the cost of program


Document info
Document views529
Page views530
Page last viewedSun Jan 22 14:51:42 UTC 2017