Model Driven Development of Pervasive Systems
by Javier Muñoz, Vicente Pelechano and Joan Fons
Computing-based systems growth is arriving to all environments of our daily life. This situation requires solid engineering methods in order to develop robust systems. Model-driven architecture guidelines application to pervasive systems development can help to build better systems in an easy way.
Current trends in software engineering claim that models must play a more important role in the development of robust systems. These approaches suggest that models must be the most important artefacts in the development cycle; therefore systems developers build and transform systems models in order to achieve automatic code generation. The Object Management Group (OMG) has reflected these trends in its Model Driven Architecture (MDA) proposal, which is being adopted as a new industrial strategy. MDA guidelines application to pervasive systems development can help to build better systems in an easy way.
The MDA proposal defines the building blocks for constructing model driven methods, but it does not specify concrete techniques. In order to make MDA more useful, a MDA method should provide techniques for each MDA building block. Applying the MDA approach (see Figure 1) we propose the following techniques:
- A precise language for building Platform Independent Models (PIMs). System developers use this language for precisely describing the system with high-level constructs. We propose to use the Pervasive Modelling Language (PervML).
- One or many modelling languages for building Platform Specific Models (PSMs). The constructs of these languages must be direct rep-resentations of constructs of the technology they model. Currently, we are working in the development of a language for modelling an OSGi system. OSGi is a Java middleware initially created for hosting software of residential gateways.
- PIM to PSM transformations. These transformations define how a PIM can be converted to a PSM. Currently, model transformations are a hot research topic. We apply graph grammars for defining the transformations from PervML to OSGi.
- PSM to source code transformations. Finally, the code generation from the PSMs is the last step of the development method. Due to the fact that PSMs are expressed using technological terms, transformation to source code is immediate. We are applying templates to the elements of models in order to obtain the source code.
|Figure 1: MDA building blocks and our proposed techniques for pervasive computing.
Pervasive Modelling Language (PervML) is a language designed with the aim of providing the system analyst with a set of constructs that allow to precisely describing the pervasive system. PervML promotes the separation of roles where developers can be categorized as analysts and architects. Systems analysts capture system requirements taking as an input the users needs and they describe the system at a high level of abstraction using three diagrams (models) that constitute what we call the Analyst View. On the other hand, system architects specify what COTS (devices and/or software systems) realize system services building other three specification models that constitute what we call the Architect View. Figure 2 shows the language organization. The dashed arrow of Figure 2 defines the construction order of the conceptual models that our approach proposes.
|Figure 2: PervML is structured in six models.
We define the graphical notation of PervML by using the extension capabilities that UML provides.
In order to integrate OSGi in our development method, we have to be able to create models that are built using OSGi constructs. We have developed an OSGi metamodel for defining these constructs and their relationship. The models (PSMs) are represented using an UML profile.
To define transformations between PIM and PSM involve jumping a wide gap between abstraction levels. Currently standards for transformation definition do not exist. We use graph transformations and graph grammars as the model transformation engine. From a mathematical point of view, a model can be seen as a graph where model elements are labelled nodes and the relationships between model elements are edges. In this way we apply the existing knowledge for defining graph transformations in order to achieve model transformations in the MDA context.
Our current research focuses on developing tools supporting this method. These tools guide system developers to systematically develop pervasive systems. They allow the developers to build conceptual models (PIMs) that constitute the source of an automatic code generator which applies model transformation rules to obtain a fully functional pervasive system.
Javier Muñoz Ferrara, Universidad Politécnica de Valencia/SpaRCIM, Spain