Reverse Engineering of Object-Oriented Code: An ADM Approach

Reverse Engineering of Object-Oriented Code: An ADM Approach

Liliana Favre (Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina & Comisión de Investigaciones Científicas de la Provincia de Buenos Aires, Argentina), Liliana Martinez (Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina), and Claudia Pereira (Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina)
DOI: 10.4018/978-1-5225-5643-5.ch017
OnDemand PDF Download:
No Current Special Offers


Software modernization is a new research area in the software industry that is intended to provide support for transforming an existing software system to a new one that satisfies new demands. Software modernization requires technical frameworks for information integration and tool interoperability that allow managing new platform technologies, design techniques, and processes. To meet these demands, Architecture-Driven Modernization (ADM) has emerged as the new OMG (Object Management Group) initiative for modernization. Reverse engineering techniques play a crucial role in system modernization. This chapter describes the state of the art in the model-driven modernization area, reverse engineering in particular. A framework to reverse engineering models from object-oriented code that distinguishes three different abstraction levels linked to models, metamodels, and formal specification is described. The chapter includes an analysis of technologies that support ADM standards and provides a summary of the principles that can be used to govern current modernization efforts.
Chapter Preview


In the last years, software modernization, understood as technological and functional evolution of legacy systems, has become a new area of research in the software industry whose aim is to provide principles, methods, techniques and tools to support the transformation from an existing software system to a new one that satisfies new demands. The growing demand for modernization is due, among others, to several factors:

  • New methods and modeling languages such as UML (UML, 2011a; UML, 2011b) and RUP, new platforms, Internet-related technologies, and new architectures such as SOA (Service-Oriented Architecture) and MDA (Model-Driven Architecture) (MDA, 2012), the OMG proposal for MDD (Model-Driven Development), have encouraged the modernization of legacy systems in order to achieve competitive advantages for organizations (Brambilla, Cabot and Wimmer, 2012).

  • The emergence of the Cloud computing paradigm is leading to the migration of traditional desktop applications into the Cloud due to the benefits obtained for both consumers and providers of IT services.

  • The great technological advance in mobile technologies, such as improved processing power and data storage, Internet access, video and audio players, office applications, makes mobile devices resemble a personal computer. Then, many existing software system needs to be migrated to these mobile platforms.

To meet new demands, existing systems must constantly evolve. However, some systems cannot be modified or adapted to incorporate the new requirements. A number of solutions have been proposed to deal with this problem. These solutions fall generally into three categories: redevelopment, which rewrites existing applications; wrapping, which wraps an existing component in a new and more accessible software component; and migration, which moves the existing system to a more flexible environment, while retaining the original system data and functionality (Bisbal, Lawless, Wu & Grimson, 1999). Each of these solutions have a greater or lesser degree of impact on the system, and consequently in the organization. The best solution should be to restore the value of the existing system, extracting and exploiting investment and knowledge to migrate to a new system that incorporates the new requirements and/or new technologies. However, the lack of both standardization of legacy artifacts and automated processes supported by CASE (Computer Aided Software Engineering) tools are the most important limitations in this approach. MDD techniques such as metamodeling and model transformation can be used to evolve existing systems (Favre, 2010). These techniques can help reduce software evolution costs by automating many basic activities, including code manipulation. In this context, a new approach known as Architecture-Driven Modernization (ADM) (ADM, 2012) has emerged complementing OMG standards such as MDA. The outstanding ideas behind MDA are separating the specification of the system functionality from its implementation on specific platforms, managing the software evolution from abstract models to implementations. Models play a major role in MDA which distinguishes Computation Independent Model (CIM), Platform Independent Model (PIM) and Platform Specific Model (PSM). Some authors also distinguish Implementation Specific Model (ISM) as a description (specification) of the system in source code.

The ADM approach has established a set of solutions for information system modernization. ADM is defined as “the process of understand and evolve existing software assets for the purpose of software improvement, modifications, interoperability, refactoring, restructuring, reuse, porting, migration, translation, integration, service-oriented architecture deployment” (ADM, 2012). The OMG ADM Task Force (ADMTF) is developing a set of standards (metamodels) to facilitate interoperability between modernization tools. To date, ADMTF has published the standards KDM (Knowledge Discovery Metamodel), ASTM (Abstract Syntax Tree Metamodel) and SMM (Software Metrics Metamodel) (KDM, 2011; ASTM, 2011; SMM, 2012).

Complete Chapter List

Search this Book: