World Applied Sciences Journal 19 (10): 1453-1461, 2012
ISSN 1818-4952
© IDOSI Publications, 2012
DOI: 10.5829/idosi.wasj.2012.19.10.1415
Corresponding Author: Ghulam Rasool, Comsats Institute of Information Technology Lahore, Pakistan.
1453
CREAT: Customizable Reverse Engineering Abstraction Technique
Ghulam Rasool and Shafiq Hussain
1 2
Comsats Institue of IT Lahore, Pakistan
1
Department of Engineering, Computing and Technology, University of Sunderland UK
2
Abstract: Emergent advancements in technology, new business requirements and stakeholder’s needs escort
to frequent migration from legacy systems to more powerful, dedicated, secure and reliable computing systems.
Different reverse engineering methodologies, techniques and tools are used to extract artifacts from existing
legacy systems starting from the implementations and going back to design, architecture and requirements.
Most presented techniques supplemented with tool support are specific to particular projects and their
generalization and customization is always questionable. This paper presents customizable software reverse
engineering technique integrated with different recovery techniques and tools to extract different artifacts from
legacy systems. The concept of technique is validated through different examples.
Key words: Reverse engineering Architecture recovery Program understanding Software maintenance
Re-engineering
INTRODUCTION dead and 80% of IT systems are running on legacy
Today’s technology is unfortunately tomorrow’s cost of software is increasing with respect to time and
legacy systems because of ever increasing trend toward the use of reverse engineering is getting more and
adoption of new technology and complexity of systems. more attention in the field of legacy and embedded
The long life cycles, continuous maintenance, new applications. Mostly existing techniques and tools are
business requirements and technology evolutions supporting the object oriented languages but they lack
demand the restructuring/refactoring/re-engineering of similar support for procedural languages which really
legacy software systems that were developed 10-15 years requires their restructuring, refactoring and reengineering
ago. The field of reverse engineering has gained major as mentioned in above references. For example, COBOL
attention of researchers during the last two decades due applications are still used by different Government,
to its benefits for understanding existing legacy systems private and commercial organizations which require their
and transitions of these systems into modern systems re-engineering. Data reengineering is most important
which can cope with recent technology and business aspect for data intensive applications in order to
needs. It is an important decision to develop a completely recover database transactions stored hundreds of years
new system from scratch, or to reuse the existing system before.
components and libraries in the new system development Reverse engineering can extract design information
which definitely can save the cost as well as time. It is from source code at higher level of abstraction. Ideally
evident from history that documents normally generated the abstraction level should be as high as possible which
during the development of systems are inconsistent with is difficult to achieve. “The completeness of a reverse
the source code due to frequent maintenance in structure engineering process refers to the level of detail that is
of the existing systems. Source code is frequently the provided at an abstraction level”. In most cases, the
only complete and reliable software artifact available for completeness decreases as the abstraction level increases
reverse engineering legacy systems. According to IBM [3 4]. Abstraction play key role during reverse engineering
survey report of different legacy applications, 250 billion process because there is huge abstraction gap between
lines of source code are maintained in 2000 [1]. It is also the artifacts available in the source code and artifacts at
reported in another study that old languages are still not design level.
platforms [2]. Statistics clearly reflect that the maintenance