The model driven architecture (MDA) is a framework for software development defined by the OMG (Object Management Group, 2006). The MDA initiative shifts the focus of software development from writing code to building models, separating the specification of functionality from the speci- fication of the specific implementation of that functionality (Miller & Mukerji, 2003). Key to MDA is the importance of models and transformations between them in the software development process. The first model of MDA is the computation independent model (CIM), which describes the business model independently of the software system to be implemented. The CIM is described with a vocabulary that is familiar to stakeholders. As it captures the domain without reference to a particular system implementation or technology, the CIM would remain the same even if the system were implemented mechanically, rather than in computer software (Meservy & Fenstermacher, 2005). CIM reduces the gap between stakeholders and software engineers (Miller et al., 2003). Recently, some proposals related to business modeling and MDA have appeared, for example, the use of activity diagrams (Mersevy et al., 2005), BPMN (White, 2004), or goal-oriented strategies (Birol, 2006). Several authors agree in the importance of using the “language of the business experts” (Francis, 2006) during the first stages of development, enhancing communication between the domain experts domain and software engineers. From the requirements engineering area, we have been working with natural language requirements models to describe the universe of discourse (Leite, Hadad, Doorn, & Kaplan, 2000). But, to fit in MDA framework, we have to map them into object-oriented models, defining a CIM that will be the basis for a MDA software development. To do this, we have proposed a transformation strategy and developed its associated tool, CIMTool, thus allowing the integration of the natural language models into the MDA framework. In this article, which is an integration of Leonardi (2003), Leonardi (2005), Leonardi and Mauco (2004), and Leonardi, Mauco, and Leoni (2005), we present the overall strategy defining OCL based transformation rules to derive a CIM from the language extended lexicon (LEL) and the scenario model (Leite et al., 2000).
MDA is an approach that makes modeling the primary focus of the software development (Miller et al., 2003). It is based on modeling different aspects and levels of abstraction of a system, and exploiting interrelationships between these models. The MDA starts with the idea of separating the specification of the operation of the system from the details of its implementations. In MDA, all artifacts such as requirements specification, architecture descriptions, design descriptions, and code are regarded as models. One of the key features of this framework is the notion of automatic transformations that are used to modify one model in order to obtain another one. MDA defines how models expressed in one language can be transformed into models in other languages. The MDA standard proposes UML as the specification language, and is divided into the following main steps:
Key Terms in this Chapter
MDA: An approach to IT system specification that separates the specification of functionality from the specification of the implementation of that functionality on a specific technology platform.
Stakeholder: People or organizations who will be affected by the system and who have a direct or indirect influence on the system requirements. They include end-users of the system, managers and others involved in the organizational processes.
Requirements Engineering: It comprehends all the activities involved in eliciting, modeling, documenting, and maintaining a set of requirements for a computer-based system. The term “engineering” implies that systematic and repeatable techniques should be used to ensure that system requirements are consistent, complete, and relevant.
CIM: MDA computation independent model that describes the business model of the organization. This model is independent of how the system is implemented.
Business model: An abstraction of how a business works. It provides a simplified view of the business structure that will act as the basis for communication or innovations and define the information systems requirements that are necessary to support the business.