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