Architecture-Driven Modernization for Software Reverse Engineering Technologies

Architecture-Driven Modernization for Software Reverse Engineering Technologies

Liliana Martinez (Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina), 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) and Claudia Pereira (Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina)
Copyright: © 2013 |Pages: 20
DOI: 10.4018/978-1-4666-4217-1.ch012


Modernization of legacy systems 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. The new OMG (Object Management Group) initiative for modernization aligned with this requirement is Architecture-Driven Modernization (ADM). Reverse engineering techniques play a crucial role in system modernization. In this chapter, the authors describe the state-of-the-art in the model-driven modernization area, reverse engineering in particular, and discuss about existing tools and future trends. In addition, they describe a framework to reverse engineering models from object-oriented code that distinguishes three different abstraction levels linked to models, metamodels, and formal specifications. As an example, this chapter shows how to reverse engineering use case diagrams from Java code in the ADM context focusing on transformations at metamodel level. The authors validate their approach by using Eclipse Modeling Framework.
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, 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.

  • 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 can not 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.

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: