Advances in Computer and Electrical Engineering - Model Driven Architecture for Reverse Engineering Technologies
Latest Publications


TOTAL DOCUMENTS

18
(FIVE YEARS 0)

H-INDEX

1
(FIVE YEARS 0)

Published By IGI Global

9781615206490, 9781615206506

Author(s):  
Liliana María Favre

The model-driven architecture (MDA) is an approach to model-centric software development. The concepts of models, metamodels, and model transformations are at the core of MDA. Model-driven development (MDD) distinguishes different kinds of models: the computation-independent model (CIM), the platform-independent model (PIM), and the platform-specific model (PSM). Model transformation is the process of converting one model into another model of the same system, preserving some kind of equivalence relation between them. One of the key concepts behind MDD is that models generated during software developments are represented using common metamodeling techniques. In this chapter, we analyze an integration of MDA metamodeling techniques with knowledge developed by the community of formal methods. We describe a rigorous framework that comprises the NEREUS metamodeling notation (open to many other formal languages), a system of transformation rules to bridge the gap between UML/OCL and NEREUS, the definition of MDA-based reusable components, and model/metamodeling transformations. In particular, we show how to integrate NEREUS with algebraic languages using the Common Algebraic Specification Language (CASL). NEREUS focuses on interoperability of formal languages in MDD.


Author(s):  
Liliana María Favre

This chapter discusses software evolution, challenges and strategic directions in the context of MDA. Various authors agreed that it is difficult to define completely software and then, software evolution. Software is certainly more that bits stored in a file, it is an abstract idea that encompasses the concepts, algorithms embodied in the implementation as well as all its associated artifacts and processes. Research seems to confirm that computer software and process software have much in common. Osterweil (2003) assures that software processes are software too. In other paper (Osterweil, 2007), he suggests analyzing the nature of software and proposes to define taxonomies for exploring characteristics and approaches to the development, verification of qualities and software evolution. The exploration of these questions is an important current of software engineering research. On the other hand, evolution is defined as a process of gradual change and development from fewer and simpler forms to higher, more complex, or better ones. In biology, evolution is related to develop over time often many generations, into forms that are better adapted to survive changes in their environment. Thus, evolution captures the notion of something improving and changes occur in species in successive generations, i.e. individuals get old and species evolve. Jazayeri (2005) analyzes the definition of software evolution. The concept of “specie” in software may be associated to meta-levels describing families (species) of software systems. These meta-levels or architectures are created as improvements to previous existing ones and describe evolved families of software systems.


Author(s):  
Liliana María Favre

This chapter discusses the main steps for transforming NEREUS constructions into object oriented languages. As an example, we use the Eiffel language that allows integrating specifications with Eiffel contracts (Meyer, 1992). Figure 1 shows the main steps. The Eiffel code is constructed gradually. First, associations and operation signature are translated. The transformation is supported by reusable components. From OCL and NEREUS specifications it is possible to construct contracts on Eiffel and /or feature implementations by applying heuristics.


Author(s):  
Liliana María Favre

MDA requires the ability to understand different languages such as general purpose languages, domain specific languages, modeling languages or programming languages. An underlying principle of MDA for integrating semantically in a unified and interoperable way such languages is using metamodeling techniques.


Author(s):  
Liliana María Favre ◽  
Claudia Teresa Pereira ◽  
Liliana Inés Martinez

The model driven architecture (MDA) is an initiative proposed by the object management group (OMG), which is emerging as a technical framework to improve productivity, portability, interoperability, and maintenance (MDA, 2003). MDA promotes the use of models and modelto- model transformations for developing software systems. All artifacts, such as requirement specifications, architecture descriptions, design descriptions, and code are regarded as models. MDA distinguishes four main kinds of models: computation independent model (CIM), platform independent model (PIM), platform specific models (PSM), and implementation specific model (ISM).


Author(s):  
Liliana María Favre

Formal and semiformal techniques can play complementary roles in MDA-based software development processes. We consider it beneficial for both semiformal and formal specification techniques. On the one hand, semiformal techniques lack a precise semantics; however, they have the ability to visualize language constructions, allowing a great difference in the productivity of the specification process, especially when the graphical view is supported by means of good tools. On the other hand, formal specification allows us to produce a precise and analyzable software specification and clarifies the intended meaning of metamodels, helps to validate model transformations, and provides reference for implementations; however, they require familiarity with formal notations that most designers and implementers do not currently have and the learning curve for the application of these techniques requires considerable time. A combination of metamodeling and formal specification techniques can help us to address MDAbased processes such as reverse engineering, forward engineering and round-trip engineering. In light of this, we propose to use the algebraic metamodeling language, called NEREUS which can be viewed as an intermediate notation. NEREUS can be integrated with different formal languages and object-oriented languages. It is particularly suited for specifying metamodels based on the concepts of entity, relation and system. Most of the MOF metamodel concepts can be mapped directly to NEREUS.


Sign in / Sign up

Export Citation Format

Share Document