• Aucun résultat trouvé

Etat de l’art

2.4 Ing´ enierie dirig´ ee par les mod` eles

Figure 2.12 – Chronogramme d’ex´ecution des tˆaches correspondant au comportement du r´eseau de Petri avec inhibiteurs `a stopwatch

2.4 Ing´enierie dirig´ee par les mod`eles

Comme nous nous int´eressons `a l’ing´enierie syst`eme d’un point de vue temps r´eel, nous pr´esentons dans cette section le paradigme nomm´e ing´enierie dirig´ee par les mod`eles (IDM) qui est une pierre angulaire dans la conception logicielle des syst`emes temps r´eel. En effet, l’IDM permet de fluidifier le passage d’une ´etape `a l’autre lors des cycles de d´eveloppement grˆace l’interop´erabilit´e entre les outils de mod´elisation, d’analyse, de transformation et de g´en´eration de code.

L’ing´enierie Dirig´ee par les Mod`eles-IDM (Model-driven Engineering) est un paradigme pro-metteur pour le d´eveloppement de logiciels. L’IDM est une pratique de l’ing´enierie des syst`emes qui d´ecrit `a travers des mod`eles le probl`eme pos´e et sa solution. Le but de l’IDM est d’aug-menter le niveau d’abstraction dans la repr´esentation d’un syst`eme et l’automatisation de sa construction. Dans l’IDM, les mod`eles jouent un rˆole important dans le d´eveloppement de logi-ciels. L’automatisation de la production du syst`eme peut ˆetre r´ealis´ee par des transformations de mod`eles.

D´efinition 2.4.1 Un mod`ele est une abstraction et une simplification de syst`emes permettant de comprendre et de fournir des r´eponses relatives au syst`eme mod´elis´e. Ensuite, un syst`eme peut ˆetre d´ecrit par diff´erents mod`eles li´es les uns aux autres.

Les mod`eles sont consid´er´es comme des entit´es centrales dans l’IDM. Un mod`ele est une re-pr´esentation abstraite d’un (ou partie de) syst`eme. Il montre une vue partielle du syst`eme en simplifiant ce qui doit ˆetre captur´e ou automatis´e. Par cons´equent, une meilleure repr´esentation du syst`eme n´ecessite souvent plusieurs mod`eles. L’utilisation de mod`eles a pour objectif d’am´ e-liorer la qualit´e du logiciel obtenu, car il est plus facile de comprendre, de simuler, d’analyser et de valider des mod`eles abstraits que les programmes informatiques.

D´efinition 2.4.2 Un m´eta-mod`ele est une abstraction permettant de mettre l’accent sur les propri´et´es du mod`ele lui-mˆeme. Un m´eta-mod`ele d´ecrit les diff´erents types d’´el´ements du mod`ele et la fa¸con dont ils sont agenc´es.

Pour connaˆıtre la nature des diff´erents mod`eles utilis´es dans les syst`emes informatiques, on identifie deux relations. La premi`ere relation est repr´esent´ee par, indiquant une repr´esentation d’un objet qui est mod´elis´e `a travers un mod`ele. Par exemple, un programme informatique peut ˆ

etre repr´esent´e par un diagramme de classes. La deuxi`eme relation est conforme `a, indique la d´ependance d’un mod`ele `a un langage de mod´elisation. Un mod`ele est conforme `a son m´ eta-mod`ele comme un programme est conforme `a la grammaire du langage de programmation selon lequel il est ´ecrit [Sch06].

Fi gure 2. 13 Il lus trat ion de s con ce pt s de m ´et a-mo d ´el isat ion

2.4. ING ´ENIERIE DIRIG ´EE PAR LES MOD `ELES

La figure 2.13 repr´esente la mod´elisation d’un r´eseau de Petri (RdP). La partie (a) de la figure repr´esente un RdP avec l’arc inhibiteur. Ce r´eseau comprend quatre places et deux transi-tions connect´ees par les arcs. Les arcs normaux sont repr´esent´es par les fl`eches, cependant l’arc inhibiteur a un cercle `a la fin de l’arc. La partie (b) de la figure repr´esente le m´eta-mod`ele de r´eseau de Petri de la partie (a). En effet, un r´eseau se compose des places (instances de la classe Place), des transitions (instances de la classe Transition) et des connexions (instances de la classe Connection). Les connexions relient les noeuds (instances de la classe Node). Un noeud peut ˆetre soit une place soit une transition. Il y a deux types de connexions : l’arc normal (instance de la classe NormalArc) et l’arc inhibiteur (instance de la classe InhibitorArc). Une connexion a une source et une cible qui sont des noeuds. Chaque noeud peut avoir un ensemble d’arcs entrants (ayant le rˆole inputRel ) et un ensemble d’arcs sortants (ayant le rˆoleoutputRel ). La partie (c) de la figure repr´esente le m´eta-m´eta-mod`ele du r´eseau de Petri. Ce m´eta-m´eta-mod`ele se compose des ´el´ements et des relations de trois types diff´erents : composition, h´eritage et r´ef´erence. Ce m´eta-m´eta-mod`ele est conforme `a lui mˆeme car si on cherche `a m´eta-mod´eliser ses ´el´ements on obtiendra un m´eta-m´eta-m´eta-mod`ele qui lui ressemble.

2.4.1 M´eta-mod´elisation

La m´eta-mod´elisation est le processus de d´efinition du m´eta-mod`ele d’un langage de mo-d´elisation. Un langage de mod´elisation est un langage artificiel qui peut ˆetre utilis´e pour exprimer des informations ou connaissances de syst`emes dans une structure. Un langage de mod´elisation peut ˆetre graphique ou textuel.

— Les langages de mod´elisation graphiques se basent essentiellement sur l’utilisation des diagrammes avec (i) des symboles nomm´es qui repr´esentent des concepts, (ii) des liens qui relient les symboles et repr´esentent des relations, et (iii) diverses autres notations graphiques pour repr´esenter des contraintes ou des propri´et´es.

— Les langages de mod´elisation textuelles peuvent utiliser des grammaires normalis´ees pour cr´eer des expressions.

Afin d’organiser et de structurer les mod`eles, l’OMG (Object Management Group) [OMGc] a d´efini une architecture appel´ee ; “Architecture `a 4 niveaux” repr´esent´ee dans la figure 2.14.

Figure 2.14 – Architecture `a 4 niveaux d´efinie par l’OMG [WO01]

— Le niveau M3 correspond au MOF (Meta-Object Facilities) [OMGe]. Le MOF est un lan-gage de d´efinition de m´eta-mod`eles. Les langages de niveau M3 sont conformes `a

eux-mˆemes, c’est-`a-dire qu’ils peuvent se d´efinir. Par exemple, le langage Ecore [Ecl] est une impl´ementation du MOF, int´egr´ee au framework de devloppement Eclipse sous forme d’un plugin nomm´e EMF (Eclipse Modeling Framework ) [emf].

— Le niveau M2 contient les m´eta-mod`eles d´efinis par M3, comme les m´eta-mod`eles de UML (Unified Modeling Language) [G+02], de CWM (Common Warehouse Metamodel ) [PCTM02], de BPMN (Business Process Management Notation), etc.

— Le niveau M1 contient les mod`eles qui sont conformes aux m´eta-mod`eles du niveau M2, par exemple, les mod`eles exprim´es en diagrammes de classes d’UML.

— Le niveau M0 repr´esente les syst`emes r´eels ou les codes ex´ecutables correspondant aux mod`eles du niveau M1.

2.4.2 Transformation de mod`eles

La transformation de mod`eles permet `a un ou plusieurs mod`eles sources d’ˆetre automati-quement transform´es en un ou plusieurs mod`eles cibles selon des r`egles de transformation. On peut d´efinir des correspondances entre des mod`eles du mˆeme langage ou des mod`eles de lan-gages diff´erents. Les outils de transformation sont essentiels pour maximiser les avantages de l’utilisation de mod`eles et minimiser les efforts de construction du syst`eme mod´elis´e. Ainsi, ils peuvent consid´erablement am´eliorer la productivit´e du d´eveloppement logiciel.

D´efinition 2.4.3 Une transformation de mod`eles est une fonction ϕ : S → C, telle que : ϕ prend en entr´ee un ensemble de mod`eles source S et g´en`ere en sortie un ensemble de mod`eles cible C. S et C sont les ensembles de mod`eles conformes `a deux ensembles de m´eta-mod`eles. Si les deux ensembles de m´eta-mod`eles sont identiques, la transformation du mod`ele est appel´ee endog`ene, sinon elle est appel´ee exog`ene.

Figure 2.15 – Transformation de mod`eles en mod`eles en IDM

La figure 2.15 montre une vue d’ensemble du m´ecanisme de transformation de mod`eles tel qu’il est utilis´e via l’ing´enierie dirig´ee par les mod`eles. En g´en´eral, une transformation de mod`eles est un programme compos´e d’un ensemble de r`egles de correspondance. Une r`egle de transformation est une description de la mani`ere dont un ou plusieurs ´el´ements du langage source peuvent ˆetre transform´es en un ou plusieurs ´el´ements du langage cible.

On s’int´eresse `a deux types d’approches de transformation de mod`eles.

— La transformation de mod`eles `a base de graphe en mod`eles `a base de graphe (Model to Model - M2M). Ce type de transformation est support´e par des langages de description de