A Software Product Line for Enterprise Applications
The Mandarina Enterprise project began in 2006 at the Universidad de los Andes. Initially conceived as the master's thesis of Andres Yie and Juan Bohórquez, it has been modified and incorporated throughout the years in various projects and courses at the University. The main product of this project is a model transformation chain for automatic generation of enterprise applications (EAT-MTC). Along the evolution of the MTC, some variability issues have been included. As a result, currently we have a complete software product line.
The EA-MTC addresses two aspects of software development in the context of enterprise applications, and more specifically, management information systems:
- Improve productivity
- Achieve independency from technology
Very often in software development we find that repetitive and tedious tasks consume a significant amount of time that can be used for other crucial activities. This enables a situation in which a potentially greater amount of defects could be introduced in the application under development. To tackle this problem, the EA-MTC uses a Model Driven Approach to generate some of the necessary source code that a developer would have to write manually. By doing this, our approach:
- Simplifies the design process
- Increases the amount of generated code
- Guarantees higher quality products
- Reduces the use of development resources
Achieve Independency from Technology:
Based on the Model-Driven Architecture (MDA) principles of interoperability and reuse, the EA-MTC aims to reduce the time, cost and complexity associated with the re-implementation of applications on different platforms. By defining Platform-Independent Models (PIMs) that document the desired business functionality and behavior, and separating them from the underlying platform implementation, our approach diminishes the impact of technological constraints on the solution being constructed. Platform-Specific Models (PSMs) are then developed in order to materialize the given solutions on a specific technological platform.
The Transformation Chain
Figure 1 shows the EA-MTC. It uses various metamodels and transformations to convert high-level models rooted in the problem domain, into low-level models rooted in the solution domain. As the chain progresses each transformation creates a model that expresses the desired solution in a more technologically-related manner. The metamodels are described up next:
Enterprise Applications Metamodel
The Enterprise Applications Metamodel (EA) is the domain where the business concepts are modeled with no dependencies on the underlying platform. It includes a set of elements that allow the developers to express business entities and the relationships among them. A model conforming to this metamodel acts as the input for the transformation process.
Enterprise Architecture Metamodel
The Enterprise Architecture Metamodel (EARC) represents the layers of the system, the communication among them and the architectural elements contained in each layer. It is part of a structuring process in which the application is now expressed in terms of the logical constructs that constitute it. An EARC model is also platform-independent.
Java Enterprise Edition Metamodel
The JEE Platform Metamodel (JEE) provides a more concrete view on how the solution will be implemented. The application is now modeled in terms of the artifacts that comprise this technology, but maintaining the logical structure defined in previous models.
Java Language Metamodel
The Java Metamodel (JAVA) handles the concepts from this language that can be used to ultimately implement the desired solution. Concepts such as Class, Methods and Attributes represent the elements that will be converted into the source code of the application. All previous decisions and semantics are expressed in terms of this programming language.
Figure 1. EA-MTC
| Rubby Casallas
David Méndez Acuña