Automated Production of Fully Functional Applications with OlivaNova Model Execution
by Oscar Pastor, Juan Carlos Molina and Emilio Iborra
OlivaNova Model Execution (ONME) is an implementation of OO-Method, an object-oriented methodology for the development of applications. It was created at the Technical University of Valencia, in the context of a successful cooperation between academia and industry.
The idea of generating code from models has been implemented in a variety of ways with relative success. Normally, the process is based on the use of some UML-compliant diagrams. The amount of code automatically produced from those diagrams is relatively small compared to that of a fully functional application. Consequently, hand-coding is still the most significant phase in the process of applications development.
Such implementations can be catalogued as MDCG (Model-Driven Code Generation) tools, because models are used to assist developers in the task of programming applications. In other words, models can be seen as guidelines but are never considered to be true 'programming artefacts'.
ONME's proposal goes one step further. It constitutes a real Model-Based Code Generation (MBCG) set of tools. Unlike Model-Driven tools, in Model-Based Code Generation tools, models play a central role in the development of applications, and can be regarded as true programming artefacts. While it is true that MBCG tools have been successfully applied in certain domains like real-time and embedded systems, the goal of OlivaNova Model Execution is to provide an MBCG solution for information systems in general.
The technical background is simple yet powerful. The relevant conceptual primitives required to specify an information system are precisely defined. A set of UML-compliant diagrams that represent them is provided, conveniently complemented with the required textual information. This provides a kernel of UML modelling constructs, where the huge variety of concepts provided by UML is reduced to a precise subset of conceptual primitives. Every conceptual primitive has its corresponding software representation counterpart. The implementation of this set of mappings between conceptual primitives and their corresponding software representations is the core of what in ONME terms is called 'The Programming Machine', a Conceptual Model Compiler.
ONME began in 1995 as a research project led by Prof. Dr. Oscar Pastor at the Technical University of Valencia, and funded by private software firm Consoft. The aim of the project was to provide an implementation of the OO-Method. In 1999, CARE Technologies was created as a spin-off from the research project, and developed OlivaNova Model Execution. The cooperation between CARE and the Technical University of Valencia has been continuous and fruitful ever since, constituting a great example of productive technology transfer between academia and industry. High-quality research and PhD dissertations have been developed in this shared context, and the continual improvement of the product's technical quality from an industrial point of view is a fundamental goal of the project.
Fundamentals of the OO-Method Approach
The OO-Method focuses on clearly separating the Problem Space (the 'what') from the Solution Space (the 'how'). The definition of a problem (the abstract description of an application, represented in the corresponding Conceptual Schema) can occur independently from any concrete reification (concrete implementation of a solution).
The formalism behind the OO-Method is OASIS, an object-oriented formal specification language for information systems. This formal framework provides a sound characterisation for the conceptual constructs required to specify an information system. Its two main components are the Conceptual Model and the Execution Model.
|Figure 1: OO-Method's four views.
The Conceptual Model is divided into four complementary views: the objects view, the dynamic view, the functional view and a fourth view to specify user interfaces. These four views allow all the functional aspects of an application to be described in an abstract manner by means of a set of conceptual constructs (also called conceptual primitives or conceptual patterns) that have clear, precise semantics. Most of these conceptual patterns have a UML-based graphical syntax, which hides the complexity and the formalism of the underlying OASIS specification.
The Execution Model defines the behaviour of objects belonging to the specified system (Conceptual Schema) at execution time. The rules governing the conversion of the Conceptual Schema into its corresponding software representation, fully dependent on the target technological platform, are defined in the context of the Execution Model. The Model Compiler implements the set of mappings that relate conceptual patterns to software representations, under the assumption that any programming decision has a conceptual counterpart that can be obtained and properly represented at a higher level of abstraction (the Conceptual Schema).
|Figure 2: MDA and model execution.
Conclusions and Further Work
The OO-Method is fully supported by the ONME Execution tools. OlivaNova Modeler allows Conceptual Models to be defined. It manages a high-level repository of OASIS formal specifications that can be validated to ensure they are correct, complete and non-ambiguous. OlivaNova Transformation Engines implement the Execution Model for different platforms and programming languages by assigning the quoted coding pattern (a software representation) to each conceptual pattern, so as to automatically produce applications that are functionally equivalent to the conceptual models used as input.
In essence, this constitutes a full, operative implementation of the modern MDA proposal where, in terms of MDA terminology, an automated environment is provided for PIM-PSM transformations, with the Conceptual Schema being the PIM and the resulting software process the PSM.
OO-Method and its implementation as ONME allow for the rapid and automated development of applications directly from models. It has been successfully applied in industrial contexts such as warehouse management, utilities management and a billing system for a water supplier firm, apartment rental and time-sharing and a managerial accounting system.
Future work in cooperation with the OO-Method research group at the Technical University of Valencia will include:
- decorating Conceptual Models with so-called design models so as to produce applications that not only work as specified but also meet appearance requirements
- raising the level of abstraction to include Requirements Models as a step prior to the definition of Conceptual Models, and automating the generation of Conceptual Models from Requirements Models
- including an Organisational Modelling layer on top of the Conceptual Modelling layer and automating the generation of Requirements Models (or even Conceptual Models) directly from Organisational Models
- defining quality metrics to assess the quality of Conceptual Models.
Oscar Pastor, Universidad Politécnica de Valencia/SpaRCIM
Tel: +34 96 387 73 50
Juan Carlos Molina, Emilio Iborra, CARE Technologies S.A., Spain
Tel: +34 96 643 55 55
E-mail: jcmolinacare-t.com, eiborracare-t.com