Aller au contenu. | Aller à la navigation

Outils personnels

Navigation

Vous êtes ici : Accueil / Articles / An environment for modelling and code generation for collaborative portals

An environment for modelling and code generation for collaborative portals

Par Amen Souissi publié 05/01/2010 21:05, Dernière modification 06/04/2010 12:39
The work of my thesis is to study the possibility of bidirectional propagation of changes to a model of a transformation chain of models. The work will require the proposal of the mechanism of propagation, and the study of reversible transformations. This work will be accompanied by an update of the transformation chains of models of Ecreall by using latest technology of MDE: development of an environment for developing and executing the transformation chain, specification of different meta-models and transformations, including mechanisms for tracing and debugging that will be used for the propagation of changes in the transformation chain. The first phase, therefore, is to develop an environment for modelling and code generation for collaborative portals. This environment should provide a GUI for creating projects, modelling and execution of the transformation chain. It should provide as an interface to allow users to create their own transformation chains, run it and install it automatically. The second phase is to study related issues to the bidirectional propagation of changes to a model of a transformation chain of models.

 Introduction

 

The Model Driven Engineering (MDE) is an active research area. The main idea of the MDE is to specify in a model of high level of abstraction the concerns of the domain, and then to generate the code from this model. The code generation does not usually starts directly with the highest level model: models of intermediate levels are introduced to facilitate, to conduct audits, simulations, or to allow us to reuse the transformations or existing code generators. Each level of abstraction is associated with a meta-model, a kind of grammar to describe the models of this level (we say that a model must correspond to its meta-model).The transition from one model to another is done using a model transformation based on meta-models.

The MDE allows applications to specify a high level of abstraction without worrying about underlying technologies. Transformations and generations code models will project the technology. This approach can overcome the technology and can provide better sustainability of development: when technology evolves or changes, models of high levels do not need to change, only the code generator and some intermediate models must be modified .Similarly, the MDE allows to project the same application on different technological areas. The high level of abstraction can also concentrate on developing the business without having to worry about the technology, simplifying like this the application design.

Ecreall is already using MDE approach for developing these Web applications, but empirically. Ecreall has developed a set of tools to capture requirements and develop applications using hadoc models. From these models, Ecreall generates a set of corresponding functional code for Web applications. This MDE approach allows Ecreall applications to provide robust and reliable applications in a very short time. It also allows to reuse partial developed models. Ecreall would continue to innovate the MDE approach by formalizing these meta-models, especially high levels, to capture new models: such as business processes of customers, improving its transformation chain by using recent MDE's techniques...

A strong point of the MDE is to maintain synchronized the different models of chain: the generated code and the intermediate models always correspond exactly to the high level models. The easiest way to maintain this synchronization is to change only the high-level models, and to generate systematically other models of transformation chain and code.

However, like any computer program, the generated code may contain errors (bugs) that are detected in the generated code or intermediate models. In this case, the user must find the source of these errors, correct them and regenerate them. This task is difficult: it requires a good knowledge of the code, the models and various transformations. Solutions consist into tracing the changes in the origin of the model's elements or code (Vincent thesis, in progress within the team DaRT). They can find all the elements that contributed to the flawed code or the flawed model . The user can then correct the high level model and then regenerate the whole chain. It still requires a good understanding of transformation and regeneration of models.

We want to propose a solution in which the user can directly edit the model or the flawed code. This change is then propagated through the system into other models. The change may occur at any level in the chain,and then spread in both directions. Of course, for this to work it is required for the transformations to be reversible, which is not always the case.

The transformations are usually written as a set of rules, each rule specifying how to transform one or several elements to another set of elements. A rule is often written without thinking that the transformation is in one direction. For some, the dual rule can be written easily, for others it requires a greater effort, and sometimes it is impossible to write it. We believe that there are recurring patterns for writing transformation rules, which would systematize the writing of the dual rule for these patterns. In this case, the bidirectional propagation could find these patterns and then use the dual rule. In other cases, the mechanism would require that the user writes himself the dual rule. And finally, in case the rule is absolutely not reversible, the mechanism would indicate that it is impossible to propagate the change.

The work of my thesis is to study the possibility of bidirectional propagation of changes to a model of a transformation chain of models. The work will require the proposal of the mechanism of propagation, and the study of reversible transformations.

This work will be accompanied by an update of the transformation chains of models of Ecreall by using latest technology of MDE: development of an environment for developing and executing the transformation chain, specification of different meta-models and transformations, including mechanisms for tracing and debugging that will be used for the propagation of changes in the transformation chain.

The first phase, therefore, is to develop an environment for modelling and code generation for collaborative portals. This environment should provide a GUI for creating projects, modelling and execution of the transformation chain. It should provide as an interface to allow users to create their own transformation chains, run it and install it automatically.

The second phase is to study related issues to the bidirectional propagation of changes to a model of a transformation chain of models.

 

 I. First phase

I.1. SIC4W (Collaborative Information System for Web)


The new environment, which will be known SIC4W (see figure below), will allow Ecreall to specify, test and build applications models at a high level of abstraction. For this we will use a transformation chain of models starting from models of collaborative portal specified at a high level of abstraction up to the code generating through the intermediate models for operations audits and simulations. It should be noted that for the same high level model it is possible to generate the code for different target technologies (e.g. PLONE, ZOPE application [5] or other).



SIC4W

For the development of this environment we have chosen between a set of recent technologies dedicated to the field of IDM (transformation model to model, code generation ...).

Among the most famous tools we found Eclipse[1], which is a development tool that can manipulate the concepts of model and meta-model through its EMF plug-in(Eclipse Modelling Framework)[2]. EMF allows the creation and generation of the code associated with a model, and it also allows the automatic generation of basic editors for the meta-models. Backup files of the models are written in XML, XSD (XML Schema Definition) which enables the transportation and reuse of our models with other tools. There are also the GMF plugin (Graphical Modeling Framework)[2] which creates a graphical editor for a given metamodel.

Generally Eclipse is a set of plug-ins that provides the services. This environment can also help us to develop our own plug-ins. We can install them and then use them through its graphical interface. We decided, therefore, to create our environment as a set of Eclipse plug-ins. First because it is easy to use and adaptable, and secondly because it provides standardized tools for modelling and manipulation of models. We found an implementation (Ecore) of MOF meta-model ( Meta-Object Facility)[11] standardized by the OMG. Indeed, the MOF standard features 4 layers of models.

  1. M0 presenting the real world.
  2. M1 presenting models of real world and witch are described by the meta-model of the M2 layer.
  3. M2 which presents meta-models that describe models of the M1 layer and are described by meta-meta-models of the M3 layer .
  4. M3 which presents meta-meta-model that describe meta-models of the M2 layer and are described by themselves.

Ecore is an implementation proposed by Eclipse for this standard, and any meta-model in Eclipse (e.g. UML2) is described by the Ecore meta-model. There are also tools for model transformation such as Operational QVT (Query / View / Transformation) [4, 3], tools for generating code from a model like Acceleo MTL [7, 6]. These newer technologies are standardized by the OMG and implemented in Eclipse as plug-ins.

For the modelling, we have chosen Papyrus tool [8] that allows the modelling and the use of UML2 profiles. Papyrus is developed by the GMF Eclipse plug-in .A very important point of this tool is that the backup file is a DI2 file which is a standard UML diagram.

The basic structures of our tool are developed. We then find all the plug-ins that defines our environment and help us to manipulate the transformation chains .

The following figure shows the process when using our environment. Orange means that the feature is under development, green means that the feature is functional and clear that the functionality has not reached the stage of development.

 

process

 

The most important step for our environment, is to define the meta-model for our collaborative portals, the intermediate meta-models and the transformations that alows us to go from one level to another until the code generation.

We began, therefore, by defining a meta-model called MACoP (Modeling and Analysis of Collaborative Portal). This meta-model is composed by several packages containing meta-classes describing notions and modelling concepts for collaborative portals. The input patterns of SIC4W environment are described by this meta-model.

We also began define a UML2 profile for the MACoP meta-model. This profile will enable the creation of the UML2 diagrams used for modelling the collaborative portals. The philosophy of MACoP meta-model will be detailed in the following paragraphs.

 

 I.2. MACoP (Modelling and Analysis of Collaborative Portal)

 

A very important step is to find the initial meta-model for the modelling collaborative portals with a high level of abstraction, the goal here is to abstract from any technology and focus on the concepts of collaboration. For that we turned to the modelling of collaborative information systems in the field of industrial engineering. In this case study of information system is needed.

I.2.1. IS (Information System)

 

The origin of the term "information system" is "management information system". An abstract way, in literature, the concept defined or dashboards and reports to bound for managers, or all applications and their role in management. Nowadays there are several titles and several definitions for the “information systems” sometimes inconsistent or contradictory. Indeed this is due the way everybody sees the information system within an organization.

Two main approaches for defining information systems exist. First we have the systemic approach in which the information system is considered a resource of structured information and secondly we have the work system approach that considers an information-centric view of a set of organizational processes. Both approaches separate the management of information and his support, which is defined by the establishment of an technology organization.

Under the systemic approach, any organization can be seen as all three sub-systems interact: the operating system that handles the operational and that present the productive activity, the information system that is seen as a memory between the control system and the operating system and finally the control system which is responsible for taking decisions.

According to the work system approach, the information system is a view of the company. Describing an information system, he offers a way to keep an organization and its functioning through its information.

These approaches, set an information system within an organization but does not define it in the very detail. There are many definitions based on these last two. The definitions refers to the many resources while implementing an information system, including the technical resources. However, it may be useful, particularly, to distinguish the design and the management of technical aspects, contrasting information system and computer system.

During my research I found a definition involving interaction between the information system and the computer system within an enterprise. This definition will help us understand the purpose of our work.

Indeed according to C.Morley, J.Hughes and B.Leblanc [9] (see figure below) the information system of an enterprise is part of the reality consisting within an organized information, events that are affecting the information and the actors who act on this information or from this information, according to an objective process management and using technology information (business processes of the enterprise).

From the same source, the computer system is an organized set of technical objects (hardware, software, applications ...) whose implementation builds the infrastructure of the information system and allows it to function.

SI

 

I.2.2. Modelling collaborative portals based on  modelling of IS


In an abstract way by knowing the information system we will generate the virtual part of the computer system (software, applications and databases ...). This will allow us to adapt the computer system to changes in the information system (business processes, organizational structure ...). With this vision the computer system becomes dynamic.

As part of my work this vision is rest

ricted to the generation of collaborative portals that are part of the computer system of a company or a collaboration. In our context, a collaborative information system is seen as an information system for internal or external collaboration.

From a model describing a collaborative portal based on the modelling of information systems we will generate the associate collaborative portal (see figure below)

Modeling

MACoP (Modelling and Analysis of Collaborative Portal) is a meta-model still in definition state and will allow us to model the collaborative portals based on modelling of information systems. This meta-model is composed of two essential parts which are the substance that describes the objects of collaboration, the actors with their roles in the collaboration and their affiliations to organizational units, without forgetting the business processes and the form that describes the visual structure of collaborative portal.(a more detailed explanation of MACoP will be presented later).

 

II. Second phase

II.1.The spread of bidirectional changes


After the development of the environment, specification of intermediate meta-models and after the transformation chains, we want to include the concepts of traceability and bidirectional propagation of changes made on a model (or code) in the transformation chain.

The spread of bidirectional changes in a transformation chain is an area of recent research that is useful for synchronization of code and models of a chain. There are some works on this subject such as the work of Rafael Meneses and Rubby Casallas [10] that propose a method based on annotation for detecting and modelling the information changed in the code and then back in the intermediate models. This method is limited to changes in the code and not on the model. It proposes an independent approach of transformation rules and of the code generation rules.

Our studies on this subject are not yet so deep, considering we're still in the early phases of development of the environment and the specification of meta-models for collaborative portals,but our future work, will be, on this subject.

 

BIBLIOGRAPHy

 

[1] http://www.eclipse.org

[2] http://www.eclipse.org/modeling/

[3] http://smartqvt.elibel.tm.fr/

[4] http://www.omg.org/technology/documents/modeling_spec_catalog.htm#MOF_QVT

[5] web component developement with Zop3, Philipp von weitershausen

[6] http://wiki.eclipse.org/Acceleo

[7] MOF Model to Text Transformation Language, OMG

[8] http://www.papyrusuml.org/

[9] Pour l'analyse d'un système d'information, C.Morley, J.Hugues et B.Leblanc

[10] A Strategy for Synchronizing and Updating Models after Source Code Changes in Model-

Driven Development , Rafael Meneses and Rubby Casallas

[11] http://www.omg.org/mof/

[12] Jihed TOUZI.Aide à la conception de Système d'Information Collaboratif support de

l'interopérabilité des entreprises , PhD thesis.

[13] La méthode OSSAD Pour maîtriser les technologies de l’information .Tome 1 : Principes

[14] UML2 Modéliser une application web, Pascal Roques