Reverse Engineering of Object-Oriented Code

Author(s):  
Liliana Favre ◽  
Liliana Martinez ◽  
Claudia Pereira

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.

Author(s):  
Liliana Favre ◽  
Liliana Martinez ◽  
Claudia Pereira

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.


2018 ◽  
pp. 424-447
Author(s):  
Liliana Favre ◽  
Liliana Martinez ◽  
Claudia Pereira

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.


Author(s):  
Liliana Martinez ◽  
Liliana Favre ◽  
Claudia Pereira

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.


Author(s):  
Liliana Maria Favre ◽  
Liliana Martinez ◽  
Claudia Teresa Pereira

Modernization of legacy systems is a new research area in the software industry intended to provide support for transforming an existing software system to a new one that satisfies new demands. This chapter analyzes software modernization based on the architecture-driven modernization (ADM). In this context, software modernization is supported by metamodels to describe existing systems, discoverers to automatically create models of these systems, and tools to understand and transform complex models created out of existing systems. This chapter provides an overview of the-state-of-the-art in ADM-based software modernization techniques. Taxonomy of different techniques is described. A description of how traditional techniques such as static and dynamic analysis can be integrated with ADM standards is presented. This chapter also analyzes current challenges and strategic directions in software modernization.


Author(s):  
Liliana Maria Favre ◽  
Liliana Martinez ◽  
Claudia Teresa Pereira

Modernization of legacy systems is a new research area in the software industry intended to provide support for transforming an existing software system to a new one that satisfies new demands. This chapter analyzes software modernization based on the Architecture Driven Modernization (ADM). In this context, software modernization is supported by metamodels to describe existing systems, discoverers to automatically create models of these systems and, tools to understand and transform complex models created out of existing systems. This chapter provides an overview of the-state-of-the-art in ADM-based software modernization techniques. Taxonomy of different techniques is described. A description of how traditional techniques such as static and dynamic analysis can be integrated with ADM standards is presented. This chapter also analyzes current challenges and strategic directions in software modernization.


Author(s):  
Imran Rafiq Quadri ◽  
Majdi Elhaji ◽  
Samy Meftali ◽  
Jean-Luc Dekeyser

Due to the continuous exponential rise in SoC’s design complexity, there is a critical need to find new seamless methodologies and tools to handle the SoC co-design aspects. We address this issue and propose a novel SoC co-design methodology based on Model Driven Engineering and the MARTE (Modeling and Analysis of Real-Time and Embedded Systems) standard proposed by Object Management Group, to raise the design abstraction levels. Extensions of this standard have enabled us to move from high level specifications to execution platforms such as reconfigurable FPGAs. In this chapter, we present a high level modeling approach that targets modern Network on Chips systems. The overall objective: to perform system modeling at a high abstraction level expressed in Unified Modeling Language (UML); and afterwards, transform these high level models into detailed enriched lower level models in order to automatically generate the necessary code for final FPGA synthesis.


Author(s):  
Francesca Arcelli Fontana ◽  
Claudia Raibulet ◽  
Marco Zanoni

To better understand and exploit the knowledge necessary to comprehend and evolve an existing system, different models can be extracted from it. Models represent the extracted information at various abstraction levels, and are useful to document, maintain, and reengineer the system. The Knowledge Discovery Metamodel (KDM) has been defined by the object management group as a meta-model supporting a large share of reverse engineering activities. Its specification has also been adopted by the ISO in 2012. This paper explores and describes alternative meta-models proposed in the literature to support reverse engineering, program comprehension, and software evolution activities. We focus on the similarity and differences of the alternative meta-models with KDM, trying to understand the potentials of reciprocal information interchange. We describe KDM and other five meta-models, plus their extensions available in the literature and their diffusion in the reverse engineering community. We also investigate the approaches using KDM and the five meta-models. In the paper, we underline the limited reuse of models for reverse engineering, and identify potential directions for future related research, to enhance the existing models and ease the exchange of information among them.


Author(s):  
Nassim Kharmoum ◽  
Sara Retal ◽  
Yassine Rhazali ◽  
Soumia Ziti ◽  
Fouzia Omary

One of the most crucial objectives of enterprises is bridging the gap between its businesses and information systems. In this vein, many approaches have emerged among them: the Model-Driven Architecture (MDA). This approach is an initiative of the Object Management Group (OMG) and considers the model as the central entity in the software systems development process offering many techniques allowing transformation between models. In addition, the OMG introduces for the MDA three abstraction levels, namely Computation Independent Model (CIM), Platform Independent Model (PIM), and Platform-Specific Model (PSM). This contribution proposes a disciplined method that ensures an automatic alignment between businesses and information system models at CIM and PIM levels. The source model consists of E3value model, which is the Business Value model, whereas, the generated model represents UML2 Communication diagrams, that are the UML's behavior and interaction models. The transformation is achieved automatically using meta-models and ATLAS Transformation Language and proved to be effective.


2014 ◽  
Vol 4 (3) ◽  
Author(s):  
Sonja Ristić ◽  
Slavica Aleksić ◽  
Milan Čeliković ◽  
Vladimir Dimitrieski ◽  
Ivan Luković

AbstractReengineering is one of the key concepts in software maintenance and evolution. It generally includes some form of reverse engineering followed by some form of forward engineering or restructuring. In the paper we focus on database reverse engineering. Model-driven software engineering promotes the idea of abstracting implementation details by focusing on: models as first class entities and automated generation of models or code from other models. In the approach meta-models are used to define the modeling languages. A database reverse engineering process can benefit of integrating meta-modeling and meta-models in the process. The plethora of models related to databases points out to the need and importance of model-to-model transformations between these models at different abstraction levels. These transformations are based on meta-models that are conformed by the source and target models of the transformations. A database reverse engineering process can be performed through a chain of model-to-model transformations based on a set of meta-models. In the paper we discuss the importance of meta-modeling in the context of database reverse engineering and present a case study illustrating an approach to database reverse engineering.


Sign in / Sign up

Export Citation Format

Share Document