• Aucun résultat trouvé

Une Nouvelle Approche de Composition des Langages de Modélisation Spécifiques aux Domaines

N/A
N/A
Protected

Academic year: 2021

Partager "Une Nouvelle Approche de Composition des Langages de Modélisation Spécifiques aux Domaines"

Copied!
228
0
0

Texte intégral

(1)

HAL Id: tel-02424816

https://tel.archives-ouvertes.fr/tel-02424816

Submitted on 28 Dec 2019

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Une Nouvelle Approche de Composition des Langages

de Modélisation Spécifiques aux Domaines

Anas Abouzahra

To cite this version:

Anas Abouzahra. Une Nouvelle Approche de Composition des Langages de Modélisation Spécifiques aux Domaines. Génie logiciel [cs.SE]. Université Ibn Zohr (Agadir, Maroc). Faculté des sciences, 2019. Français. �tel-02424816�

(2)

CENTRE DES ÉTUDES DOCTORALES IBN ZOHR

Formation doctorale : MATHÉMATIQUES, INFORMATIQUE ET APPLICATIONS

T H È S E DE DOCTORAT

Mention : INFORMATIQUE

Spécialité : Génie Logiciel

Par

Anas ABOUZAHRA

Thème de recherche :

Une Nouvelle Approche de Composition des

Langages de Modélisation Spécifiques aux Domaines

Thèse dirigée par

Pr. Karim AFDEL

etpréparée au sein du laboratoire

LabSIV

Présentée le

Samedi 30 novembre 2019

à la

Faculté des Sciences d’Agadir

Devant la Commission d’examen :

D. MAMMASS, Professeur, Faculté des Sciences, Agadir Président

K. AFDEL, Professeur, Faculté des Sciences, Agadir Directeur de thèse

S. RAKRAK, Professeur, F. S. T., Marrakech Rapporteur

Y. LEFDAOUI, Professeur Habilité, E. S. T., Salé Rapporteur

M. MACHKOUR, Professeur Habilité, Faculté des Sciences, Agadir Rapporteur

A. SABRAOUI, Professeur Assistant, Faculté des Sciences, Agadir Invité

« Avec le temps, le plaisir d’avoir

raison tout seul moisit »

E. W. Dijkstra, On the road of scientific thought

(3)
(4)

Remérciments

La réalisation d’une thèse est certes un long travail mais aussi une aventure humaine sans laquelle nos recherches auraient peu de sens. C’est celle-ci que je vais essayer de retracer dans ces remerciements. Cette étape importante n’est pas la plus simple, et je vous prie par avance de m’excuser pour les oublis éventuels.

Mes remerciements vont tout d’abord à Karim AFDEL que je ne saurais assez remercier pour avoir accepté de diriger ma thèse et m’avoir supporté et soutenu tout au long de celle-ci. Merci également à Ayoub SABRAOUI pour accepter de m’accompagner sur mes travaux de thèse. Merci pour ta disponibilité, ta rigueur et tes conseils. Je remercie chaleureusement les personnes qui ont acceptées d’évaluer mon travail et de participer à mon jury. Le président de la commission d’examen, Driss MAMASS, les rapporteurs, Said RAKRAK, Youssef LEFDAOUI et Mustapha MACHKOUR. Un grand merci pour leurs relectures minutieuses, leurs remarques enrichissantes et leur vision éclairée permettant de mettre en perspectives mon travail. Merci également pour s’être rendus disponibles pour la soutenance et pour m’avoir fait confiance.

Je tiens aussi à remercier Jean Bézivin pour son aide, son soutien, son écoute tout au long de mes travaux et pour nos nombreux échanges qui ont précédés le démarrage de cette thèse et abouti à sa visite à Agadir et sa conférence sur l’Ingénierie Dirigé par las Modèle et le future du Génie Logiciel, sans laquelle je n’aurais pas pu commencer ce travail.

Mes travaux se sont nourris de nombreux échanges qui ont su baliser le chemin de ma thèse. Fruits de rencontres multiples, ils ont ainsi contribué à l’aboutissement de mon travail et à le rendre si agréable et passionnant. Pour cela, je remercie Ahmed D. CHOUKAIRI, Abdelhamid El MOUSADIK, L. Mina IDRISSI HASSANI, Jean Pierre MULLER, Benoit Combemale, Cyril PIOU, mais également tous ceux avec qui j’ai eu la chance d’échanger.

Ce travail a aussi et avant tout été réalisé au sein d’une équipe de recherche dont les relations entre ses membres sont le moteur au quotidien de mes travaux. Ainsi, merci à toute l’équipe pour les nombreux moments et réunions de travail passés ensemble, à chaque fois très agréables.

Ces années de travail n’auraient pu être réalisées sans un soutien extérieur et infini de ma famille et de mes amis. Mes parents d’abord, sans lesquels je n’aurai jamais pu en arriver là. Merci pour cela, merci aussi pour votre compréhension et vos sacrifices. Je remercie mon épouse, qui a partagé au quotidien avec moi les bons comme les mauvais moments avec une compréhension saisissante. Je n’oublie pas mon fils, qui a su me donner la motivation nécessaire dans les moments de doutes à travers ces regards et ses sourires. Enfin merci aussi à mes frères, ainsi qu’au reste de ma famille.

(5)

Résumé

Contribution aux nouvelles plateformes de Modélisation Logicielle - Une approche d’Ingénierie Dirigée par les Modèles pour la composition des Langages de Modélisation Spécifiques aux Domaines

L’ingénierie dirigée par les modèles (Model Driven Engineering - MDE) a apporté plusieurs améliorations significatives dans le développement des systèmes complexes en préconisant de se focaliser sur une préoccupation plus abstraite que la programmation classique. Il s’agit d’une forme d’ingénierie générative dans laquelle tout ou partie d’un logiciel est produite à partir de modèles. Une des idées fondamentale du MDE est d’utiliser autant de langages de modélisation différents (Domain Specific Modeling Languages - DSML) que les aspects métiers, chronologiques ou technologiques du logiciel le nécessitent. Le défi actuel de la communauté du génie logiciel est de simplifier la définition de nouveaux DSML en fournissant des technologies du méta-niveau telles que des approche de composition de syntaxes abstraites, de génération d’éditeurs syntaxiques (textuels ou graphiques), des outils d’exécution, de validation et de vérification (statique et dynamique). Ces approches vont permettre d’accélérer le développement des DSMLs et de baisser son coût.

Au regard des travaux existants dans le MDE et de l’expérience acquise avec les langages de programmation, nous proposons dans cette thèse une revue systématique précise des techniques permettant d’exprimer une composition de DSML. Nous proposons ensuite une nouvelle approche de composition de DSMLs basé sur la composition de leurs syntaxes abstraites. Ce faisant, nous proposons trois règles de composition : composition par référence, composition par spécialisation et composition par fusion. En plus, notre approche fournit une fonctionnalité de génération de code basée sur ces règles afin de projeter la composition sur les syntaxes concrètes du DSML composé et d’assister le développement des éditeurs graphiques associés à celui-ci.

En outre, il était indispensable de valider les apports de cette approche. Dans ce cadre une étude de cas exploratoire a été menée. Les avantages de notre approche ont été mesurés en fonction de trois indicateurs : le temps de développement, les composants logiciels réutilisés et la capacité d'apprentissage.

Enfin, notre approche a été illustrée à travers l’implémentation d’un cas d’étude pratique qui consiste à développer la plateforme logicielle AGPlan dans lequel deux domaines interagissent : Les Ressources Humaines et la Science Actuarielle ; sollicitant ainsi l’implémentation de deux DSMLs ; chacun dédiée à l’un d’entre eux. Cependant, cette solution implique une redondante des interfaces graphique et une synchronisation difficile des données. Une meilleure solution a été apportée par la composition de ces deux DSMLs afin de les regrouper dans un seul DSML au centre d’un atelier bi-disciplinaire. Nous avons mis à contribution notre approche de composition des DSMLs sur ce cas d’étude et montré son efficacité.

Mots clés. Ingénierie Dirigée par les Modèles, Modélisation Spécifique aux Domaines,

(6)

Abstract

Contribution to new Software Modeling platforms - A Model Driven Engineering approach for Domain Specific Modeling Language composition.

Model Driven Engineering (MDE) has allowed several significant improvements in the development of complex systems by putting the focus on a more abstract concern than conventional programming. It is a form of generative engineering in which, all or part of, a software is generated from models. One of the fundamental ideas of the MDE is to use as many different Domain Specific Modeling Languages (DSML) as the business, chronological or technological aspects of the software require. The current challenge for the software engineering community is to simplify the definition of new DSMLs by providing meta-level technologies such as abstract syntax composition approaches, generation of syntax editors (textual or graphical), validation and verification (static or dynamic). These approaches will accelerate the development of DSMLs and lower its cost.

In view of the existing work in the MDE and the experience acquired with programming languages, we propose in this thesis a systematic review of the approaches for composing DSMLs. We then propose a new DSML composition approach based on the composition of their abstract syntaxes. In doing so, we propose three composition rules: composition by reference, composition by specialization and composition by fusion. In addition, our approach provides a code generation feature based on these rules in order to project the composition on the concrete syntaxes of the composed DSML, but also to assist the development of its associated graphical editors.

In addition, it was essential to validate the contributions of our approach. In this context, we conducted an exploratory case study. The benefits of our approach were measured trough three performance indicators: development time reused of software components, and interface learnability.

Finally, our approach has been illustrated through the implementation of a practical case study that consists in developing the AGPlan workbench. This is an example in which two domains interact: Human Resources and Actuarial Science; requesting the implementation of two DSMLs; each dedicated to one domain. However, this solution involves redundant graphical interfaces and difficult data synchronization. A better solution is to compose the two DSMLs in order to group them in a single one at the heart of a bi-disciplinary workbench. We used our DSML composition approach to this end and demonstrated its effectiveness.

(7)

Table des matières

... 12

Chapitre 1

Introduction ... 13

1. Contexte ... 11 2. Enjeux ... 13 3. Problématique ... 15

4. Cadre de contribution de la thèse ... 18

5. Contribution ... 19

6. Structure de la thèse ... 22

Chapitre 2

Etat De l’Art ... 23

1. Introduction ... 24

2. Le MDE : une approche centrée sur les modèles ... 25

2.1 Qu’est-ce qu’un modèle ... 25

2.2 L’architecture MDA ... 28

2.3 La transformation de modèle ... 29

3. Les langages dédiés de modélisation : DSMLs ... 32

3.1 Les dimensions d’un DSML ... 32

3.2 Le projet de modélisation EMP ... 34

4. La composition des DSMLs ... 38

5. Synthèse de l’état de l’art ... 49

... 51

Chapitre 3

La composition des modèles dans le MDE : une SLR ... 52

1. Préambule ... 53 2. Méthodologie ... 56 2.1 Protocole de conduite de la SLR ... 56 2.2 Questions de recherche ... 58 2.3 Sources de données ... 60 2.4 Requête de recherche ... 60

2.5 Critères d’inclusion et critères d’exclusion ... 62

2.6 Évaluation de la qualité des études primaires ... 62

2.7 Collecte et analyse de données ... 63

3. Résultats... 67

3.1 Résultats de la recherche et sélection des Etudes Primaires ... 67

3.2 Evaluation de la qualité des EPs ... 75

3.3 Extraction des informations d’analyse ... 77

4. Réponses aux questions de recherche ... 80

4.1 Réponse à la question de recherche n° 1 ... 81

4.2 Réponse à la question de recherche n° 2 ... 83

4.3 Réponse à la question de recherche n° 3 ... 84

4.4 Réponse à la question de recherche n° 4 ... 85

4.5 Réponse à la question de recherche n° 5 ... 87

5. Limites et conclusions ... 90

5.1 Limites de notre SLR ... 90

5.2 Conclusions ... 91

Chapitre 4

Règles de composition de DSMLs ... 93

1. Préambule ... 95

(8)

2.1 Définition des syntaxes abstraites ... 97

2.2 Définition des syntaxes concrètes ... 98

2.3 Objectif du Cas d’étude ... 102

3. Règles de composition ... 103

3.1 Composition par Référence ... 103

3.2 Composition par Spécialisation ... 106

3.3 Composition par Fusion ... 108

4. Projection sur les syntaxes concrètes ... 112

4.1 Cas n°1 ... 112

4.2 Cas n°2 ... 113

4.3 Cas n°3 ... 114

4.4 Cas n°4 ... 116

5. Synthèse ... 118

Chapitre 5

Expérimentation et validation ... 119

1. Implémentation des DSMLs du cas d’étude ... 121

2. Fonction de génération de code ... 127

2.1 Génération pour une composition par référence ... 128

2.2 Génération pour une composition par spécialisation ... 132

2.3 Génération pour une composition par fusion ... 133

3. Expérimentation et Résultats ... 136

3.1 Expérimentation ... 136

3.2 Résultats ... 138

4. Discussion et synthèse ... 142

Chapitre 6

AGPlan : un DSML dédié à l’Actuariat ... 143

1. Spécification ... 144

1.1 Description des données et des hypothèses ... 144

1.2 Calcul des avantages sociaux ... 146

1.3 Modalités de calcul ... 147

1.4 Résultats des calculs et livrables ... 148

1.5 Spécification technique ... 148

2. Définition des DSMLs ... 151

2.1 Définition des métamodèles ... 151

2.2 Syntaxes concrètes et interfaces graphiques ... 152

3. Composition des DSMLs... 158

4. Discussion et synthèse ... 160

... 161

Chapitre 7

Conclusions et Perspectives ... 162

1. Résumé des contributions ... 163

2. Perspectives ... 166

Bibliographie ... 168

(9)

Liste des figures

Figure I.1 Exemple de composition de modèle dans un scénario MDE ... 17

Figure I.2 Relations entre système, modèle, métamodèle et langage [50] ... 27

Figure I.3 Pyramide de modélisation de l’OMG ... 28

Figure I.4 L’architecture MDA ... 29

Figure I.5 La transformation de modèle ... 30

Figure I.6 Les dimensions d’un langage de modélisation ... 33

Figure I.7 Le projet EMP et son écosystème ... 35

Figure I.8 Une version simplifié du métamodèle EMF Ecore ... 36

Figure II.1 Le protocole de conduite d’un SLR proposé par Breton et al. [35] ... 56

Figure II.2 Le protocole défini pour notre SLR ... 57

Figure II.3 Construction de la requête de recherche ... 61

Figure II.4 Activités du processus «Sélection des études primaires» ... 67

Figure II.5 Evolution des publications à travers le temps ... 70

Figure II.6 Distribution des scores des EQs ... 77

Figure II.7 Distribution des scores des EAs ... 79

Figure II.8 la répartition des EPs et de leurs études interdépendantes sur les forums de recherche ... 89

Figure II.9 Le processus de l’étude exploratoire ... 96

Figure II.10 Extrait du métamodèle Multipages ... 97

Figure II.11 Extrait du métamodèle Feuille de Tableur ... 98

Figure II.12 Extrait du métamodèle Expression Binaire ... 98

Figure II.13 Extrait de la syntaxe concrète du DSML Multipages ... 99

Figure II.14 Maquette de l’éditeur graphique du DSML Multipages ... 100

Figure II.15 Extrait de la syntaxe concrète du DSML Sheet ... 100

Figure II.16 Maquette de l’éditeur graphique du DSML Sheet ... 101

Figure II.17 Extrait de la syntaxe concrète du DSML Binary Expression ... 101

Figure II.18 Maquette de l’éditeur graphique du DSML Binary Expression ... 102

Figure II.19 Maquette de l’interface graphique du DSML ciblé ... 102

Figure II.20 Le métamodèle MMC1 obtenu par la règle Refexpression ... 105

Figure II.21 Le métamodèle MMC2 obtenu par la règle RefrefersTo ... 106

Figure II.22 Le métamodèle MMC3 obtenu par la règle Spépage ... 108

Figure II.23 Le métamodèle MMC4 obtenu par la règle Fussheet ... 111

Figure II.24 La syntaxe concrète CS_C1 obtenu par projection de Refexpression ... 112

Figure II.25 Maquette de l’éditeur graphique du DSML C1 ... 113

Figure II.26 La syntaxe concrète CS_C2 obtenu par projection de RefrefersTo ... 114

Figure II.27 Maquette de l’éditeur graphique du DSML C2 ... 114

Figure II.28 La syntaxe concrète CS_C3 obtenu par projection de Spépage ... 115

Figure II.29 Maquette de l’éditeur graphique du DSML C3 ... 116

Figure II.30 La syntaxe concrète CS_C4 obtenu par projection de Fussheet ... 116

Figure II.31 Maquette de l’éditeur graphique du DSML C4 ... 117

Figure II.32 Les métamodèles MM_Multipage et MM_Sheet implémentés en Ecore ... 121

Figure II.33 Extrait du code généré par EMF avec un exemple d’utilisation ... 122

Figure II.34 Architecture d'un éditeur graphique construit avec les APIs d’EMF Edit ... 123

Figure II.35 Extrait du code généré par EMF Edit ... 124

Figure II.36 Capture d’écran de l’éditeur graphique du DSML Multipage ... 125

Figure II.37 Extrait de l’implémentation de l’éditeur du DSML Multipage ... 125

(10)

Figure II.39 Extrait de l’implémentation de l’éditeur du DSML Sheet ... 126

Figure II.40 Architecture d'un éditeur graphique construit avec notre générateur code ... 128

Figure II.41 Architecture des classes générées pour une composition par référence de type agrégat ... 129

Figure II.42 Code généré pour une composition par référence de type agrégat ... 130

Figure II.43 Architecture des classes générées pour une composition par référence de type conteneur ... 131

Figure II.44 Code généré pour une composition par référence de type conteneur ... 131

Figure II.45 Architecture des classes générées pour une composition par spécialisation ... 132

Figure II.46 Code généré pour une composition par spécialisation ... 133

Figure II.47 Architecture des classes générées pour une composition par fusion ... 134

Figure II.48 Code généré pour une composition par fusion ... 135

Figure II.49 Architecture de classes générée pour la règle Spépage ... 136

Figure II.50 Extrait du code de l’éditeur ExtendedMultipageEditor ... 137

Figure II.51 Extrait du code de la classe MultipageItemProvider ... 138

Figure II.52 Estimation du gain de temps de développement grâce à notre solution ... 140

Figure II.53 Estimation du code réutilisé grâce à notre solution ... 141

Figure II.54 Architecture modulaire d'AGPlan, sur socle Eclipse RCP... 149

Figure II.55 Organisation des greffons de l'outil AGPlan ... 150

Figure II.56 Extrait du métamodèle "Science Actuarielle" ... 151

Figure II.57 Extrait du métamodèle "Ressources Humaines" ... 151

Figure II.58 Syntaxe concrète du DSML Ressources Humaines ... 152

Figure II.59 Création d'un nouveau projet ... 153

Figure II.60. Création d'un nouveau calcul IFC ... 154

Figure II.61. Assistant de création d'un calcul IFC ... 154

Figure II.62 Interface graphique d'import des données des salariés d'une entreprise ... 155

Figure II.63 Définition des hypothèses ... 156

Figure II.64 Présentation des résultats ... 156

Figure II.65. Modèle de rapport final de l'étude IFC ... 157

(11)

Liste des tableaux

Tableau II.1 Liste des bibliothèques numériques de recherche ... 60

Tableau II.2 Adaptation de la requête de recherche pour chaque source de données et résultats obtenus ... 68

Tableau II.3 Résultats des recherches ... 68

Tableau II.4 Elimination des duplications et des études interdépendantes ... 70

Tableau II.5 Liste complète des EPs, leurs informations de base et leurs études interdépendantes ... 71

Tableau II.6 Résultats de l'évaluation de qualité des EPs ... 75

Tableau II.7 Résultats de l’évaluation d'analyse des EPs ... 77

Tableau II.8 Résultats de notre générateur en terme de % de code généré ... 139

Tableau II.9 Résultats de notre générateur en terme de % de code réutilisé ... 140

Tableau II.10 Livrable Indemnité de fin de carrière ... 148

Tableau II.11 Livrable Prime D'ancienneté... 148

(12)

Liste des abréviations

SE Software Engineering

MDE Model Driven Engineering

DSM Domain Specific Modeling

DSML Domain Specific Modeling Language

OOP Object Oriented Programming

AOP Aspect Oriented Programming

OMG Object Management Group

MOF Meta-Object Facility

SLR Systematic Literature Review

EMF Eclipse Modeling Framework

EMP Eclipse Modeling Project

IAS 19 International Accounting Standard Nineteen

UML Unified Modeling Language

MDA Model Driven Architecture

LOP Language Oriented Programming

EBNF Extended Backus-Naur Form

CS Concrete Syntax

AS Abstract Syntax

SD Semantic Domain

XMI XML Metadata Interchange

CMOF Complete MOF

EMOF Essential MOF

SMOF Semantic MOF

QVT Query/View/Transformation

IoT Internet of Things

EP Etude Primaire QR Question de Recherche CI critère d'Inclusion CE Critère d'Exclusion EQ Evaluations de Qualité EA Evaluation d'Analyse

MDD Model Driven Development

MDSD Model Driven Software Development

MDSE Model Driven Software Engineering

CM Collaborative Modeling

PoC Proof of Concept

(13)

I

NTRODUCTION

&

(14)

Chapitre 1

I

NTRODUCTION

Sommaire

1. Contexte ……….……….11

2. Enjeux ………..………..……….13

3. Problématique ………...……….15

4. Cadre de contribution de la thèse ………...………..18

5. Contribution ………..…...………..19

6. Structure de la thèse ………..22

os travaux de recherche ont trait à la composition des composants logiciels. La composition est une des solutions pour obtenir un nouvel artefact à partir d’artefacts déjà existantes à moindre coût et avec un gain de temps certain. Cette thèse s’inscrit dans le domaine du Génie Logiciel (Software Engineering ; SE) et plus particulièrement dans deux disciplines de recherche : l’Ingénierie Dirigée par les Modèles (Model Driven Engineering ; MDE) et la Modélisation Spécifique aux Domaines (Domain Specific Modeling ; DSM). La Modélisation Spécifique aux Domaines est devenue populaire dans le domaine du développement logiciel au cours des dernières années. Elle permet de concevoir une application en utilisant un Langage de Modélisation Spécifique à un Domaine métier particulier (Domain Specific Modeling Language ; DSML). Ce dernier étant représenté par un système d’abstractions qui décrit certains de ces aspects ; souvent appelé métamodèle.

Fournir un nouveau DSML est un travail complexe et coûteux. Par ailleurs, le MDE apporte des solutions pour réduire la complexité et améliorer la réutilisabilité dans le développement logiciel. En effet, le développement d'un logiciel complexe implique de le diviser en parties indépendantes avant de les assembler ultérieurement. C’est ainsi que le MDE s’est toujours intéressé à la composition de modèles. Ainsi, les coûts de développement d’un nouveau DSML peuvent être réduits par la réutilisation de DSMLs existants à travers une approche de composition drivée par les métamodèles.

Nous proposons dans ce manuscrit de tirer parti des avancées dans les deux communautés (MDE et DSM) et d’associer les deux disciplines pour proposer une approche de composition qui permet d’obtenir un nouveau Langage de Modélisation Spécifique à un Domaine par composition des métamodèles de DSMLs existants.

(15)

11 Chapitre 1. Introduction

1.

C

ONTEXTE

Les logiciels constituent l’innovation la plus importante du 20ème siècle. Dans les pays en

développement, ils se développent à une vitesse vertigineuse. Aujourd'hui, les logiciels ne sont plus de simples outils d'assistance à la production industrielle, ils sont devenus une partie intégrante de notre quotidien. Que nous effectuions un virement bancaire, prenions un rendez-vous chez le médecin ou lisons tout simplement des nouvelles. Où que nous allions, quoi que nous fassions, nous utilisons des logiciels. Ils sont dans nos ordinateurs portables, dans nos smartphones et même dans nos aspirateurs. Le besoin de développer de nouveaux logiciels ne fera qu'augmenter et ce de manière exponentielle dans les prochaines années. Car nos besoins augmentent et notre nombre fait de même. Par conséquent, il est nécessaire de produire de plus en plus d'applications, mais également de moderniser les systèmes en place. De plus, nous devons faire face à une complexité des systèmes qui ne cesse de croître. En effet, les domaines d'ingénierie émergents tels que l'ingénierie de la santé, l'ingénierie de neurones, l'ingénierie financière et de nombreuses autres ingénieries se développent de plus en plus rapidement, poussant la complexité des systèmes vers une croissance inexorable.

Dans ce contexte particulier, la modélisation et en particulier le MDE [1-2], dont les principes sont de revaloriser le rôle de la modélisation, en la mettant au cœur du développement logiciel, et d’augmenter le niveau d’automatisation tout au long du processus de développement, a considérablement modifié ce paysage. Le MDE est une méthodologie de développement centrée sur les modèles [3]. Elle place le niveau des traitements au niveau des modèles plutôt qu'à celui des programmes [4-5]. Un modèle est une représentation abstraite d’un système, qui permet aux développeurs de mieux exprimer leurs exigences dans un domaine particulier. Ainsi, la modélisation réduit la complexité croissante des systèmes, principalement en réduisant l'écart entre l’espace de traitement du problème et les espaces technologiques [6] [3]. Une approche a particulièrement tiré parti de l’avancé du MDE afin de répondre à la croissance de la complexité des systèmes et au besoin augmentant des ingénieries en matière de logiciels ; la Modélisation Spécifique aux Domaines DSM. Cette approche consiste à définir formellement des langages de modélisation dédiés pour capturer la sémantique d’un domaine en particulier ; des DSMLs, et servir ensuite à concevoir et écrire les programmes durant le processus de développement [7]. Elle devient une technique de développement de plus en plus utilisée dans différents domaines. Elle est appréciée pour sa capacité de formalisation du langage dédié, qui facilite la modélisation et évite les différentes interprétations des modèles développés. Ainsi, elle peut fournir des outils logiciels aux ingénieurs métiers, non programmeurs, pour leurs permettre de construire eux-mêmes leurs logiciels spécifiques. A partir des modèles construits, ils pourront générer du code, exécuter des simulations, interopérer avec d’autres logiciels ou générer des documents.

Toutefois, les enjeux actuels et à venir des ingénieries modernes et de l’industrie mènent non seulement au besoin du développement rapide de nouveaux DSMLs mais aussi vers la nécessité de collaboration multidisciplinaire. En effet, lors de la conception d'un nouvel avion, par exemple, il faut basculer entre les aspects thermiques, mécaniques, électriques, aérodynamique, acoustique, de structure, de performance etc. Chacun de ces aspects est

(16)

complexe en soi. Mais les nombreuses relations entre ces différents sous-systèmes sont encore plus complexes. Il semble évident qu’exprimer des relations de composition entre modèles multidisciplinaires est une réalité à laquelle nous ne pouvons plus échapper. En outre, nous pouvons tirer parti de la composition des modèles pour accélérer la mise en œuvre de nouveaux DSMLs, qui de plus est une tâche fastidieuse et prend généralement beaucoup de temps [8]. En effet, cette opération peut être simplifiée par la composition de DSMLs existants pour les étendre ou en obtenir de nouveaux [9].

(17)

13 Chapitre 1. Introduction

2.

E

NJEUX

Depuis son apparition en 1968 suite à la première crise du logiciel, le génie logiciel s’est toujours préoccupé de réduire la complexité des logiciels, de simplifier leur développement et leur maintenance, et d’optimiser leur réutilisation. En effet, Dijkstra [10] et Parnas [11] ont été parmi les précurseurs dans les années 70 à suggérer le principe de la séparation des préoccupations (Separation of Concerns ; SoC) pour réduire la complexité croissante des systèmes en les divisant en unités de comportement ou en unités de fonction. Par conséquent, il faut assembler ces unités ultérieurement en utilisant une technique de composition. En fait, la composition des unités logicielles a toujours été au centre d’intérêt du génie logiciel. Des efforts successifs ont tentés de relever le défi de la complexité des systèmes par le biais de la composition des programmes, chacun apportant sa brique à l’édifice. Ainsi, diverses approches ont été proposées. D’abord dans la programmation impérative, telles que Chandy et Taylor [12], Vargas – Vera [13] et Martín et Lamport [14]. Arrivant à la programmation orientée objet (Oriented Object Programming ; OOP) qui a suggérée aux développeurs de décomposer les problèmes logiciels en unités fonctionnelles appelées objets. Malheureusement, selon Kiczales et al. [15] et Czarnecki et al. [16], les technologies OOP n’ont pas suffis, dans de nombreuses situations, à séparer clairement les préoccupations, non fonctionnelles et transverses, principales d'un système. Cependant, l'avènement de l'Ingénierie Dirigée par les Modèles a ouvert de nouvelles perspectives pour remédier à cette situation. En effet, Bernstein et al [17], Pottinger et al. [18], Reddy et al. [19], Estublier et al. [20], Fleury et al. [21], Bézivin et al. [22] et Kolovos et al. [23], ont été parmi les premiers à être convaincus que l'application du MDE aux contextes des systèmes complexes et à grande échelle, pour maitriser leur complexité et relever les défis industriels de l’avenir, nécessiterait l'utilisation de techniques permettant une composition flexible entre les modèles. Aussi, Mussbachar et al. dans [24] mentionnent que si l’opération de la transformation de modèles reste l’opération centrale dans le MDE, la composition de modèles n’en est pas moins importante, et reste aujourd’hui l’un des principaux axe où le MDE doit fournir des avancées considérables. Étant donné l’importance de la composition logicielle dans le SE, compte tenu de la promesse du MDE d’offrir de nouvelles possibilités d’amélioration en la matière. Nous considérons que l’un des enjeux majeurs du MDE est de fournir des techniques permettant la composition de modèles.

Une autre tendance émergeante dans le génie logiciel est l’utilisation des DSMLs pour faciliter et accélérer le développement logiciel dans les domaines d’ingénieries. Cependant, la conception et l’implémentation d’un DSML n’est pas une tâche facile et prend généralement un temps considérable. En outre, le besoin des ingénieries de domaines modernes en matière de logiciels s’accélère de plus en plus. Sans oublier la nécessité de fournir de plus en plus d’ateliers logiciels multidisciplinaires pour faire face aux chalenges du futur. Les éditeurs

Enjeu N° 1 : Fournir des techniques permettant la composition de modèles

L’un des enjeux majeurs du MDE est de valoriser l’opération de composition de modèles comme une opération majeure au même titre que la transformation et de fournir des techniques flexibles pour la réaliser.

(18)

logiciels doivent dans ce contexte répondre rapidement à la demande. En effet, les utilisateurs ayant alors besoins de regrouper les différentes informations dans une seule application changeront d’application afin de gagner en confort d’utilisation. Les éditeurs se doivent d’être réactifs et rapides. Éviter, ou minimiser du moins, le développement du code spécifique à l’intégration d’un DSML avec un autre est un moyen d’y parvenir. D’autant plus que garder les mêmes interfaces homme-machine permettrait aux utilisateurs de gagner en temps d’apprentissage d’une nouvelle application. Une solution serait de construire rapidement de nouveaux DSMLs par composition des existants.

En fait, la définition d’un DSML est basée sur un métamodèle et fournit souvent des outils de support en tant qu’éditeurs graphiques pour créer et gérer des modèles. Par conséquent, il serait judicieux de définir la composition des artefacts au niveau abstrait ; c’est-à-dire au niveau des métamodèles, puis déduire la projection de celle-ci sur les niveaux inférieurs ; c’est-à-dire aux niveaux des syntaxes concrètes et des éditeurs.

Enjeu N° 2 : Construire rapidement de nouveaux DSMLs par composition des existants

L’un des enjeux majeur du DSM est de fournir une composition basée sur les métamodèles pour créer de nouveaux DSMLs par composition des existants.

(19)

15 Chapitre 1. Introduction

3.

P

ROBLEMATIQUE

Le génie logiciel est essentiellement impliqué dans la fourniture de langages textuels ou graphiques permettant de décrire et de définir les artefacts d’un système ; leurs structures, comportements et interactions. Les DSMLs offrent le moyen pour y parvenir et permettent aux concepteurs de traiter ces artefacts en tant que modèles. Les modèles sont destinés à être utilisés par des outils. Ainsi, il faudrait définir une description formelle de leurs concepts. Cet ensemble de concepts bien établi s’appelle un métamodèle. C’est le principe de la conception d’un DSML. Par conséquent, la composition des DSMLs est principalement une composition de leurs métamodèles.

La composition des métamodèles est l’un des problèmes particuliers d’un problème plus large en MDE, la composition des modèles. Cependant, la composition des modèles peut avoir diverses significations et atteindre au moins trois dimensions : syntaxe abstraite, syntaxe concrète et sémantique [25]. En tant que langage de modélisation, un DSML peut s’inspirer de l’opération de composition telle qu’elle est définie dans les langages de modélisation ; une association de sous-langues en un seul. Les sous-artefacts sont gérés dans leurs langages d’origines et l’artefact composé acquiert sa sémantique et sa syntaxe à partir de la composition [26]. Nous pouvons nous inspirer également de l’opération de composition telle qu’elle est définie dans les langages de programmation orientée objet. Dans ces derniers, il existe une conjonction franche entre l’unité sémantique (c’est-à-dire la classe) qui possède une interface spécifique et l’unité syntaxique (c’est-à-dire le fichier) qui est l’encapsulation de l’implémentation [27]. Lors de la composition des unités sémantiques, logiquement, l’outil de langage compose les unités syntaxiques. Par conséquent, une approche réussie de composition des DSMLs doit prendre en compte les trois dimensions d’un DSML (i.e. la syntaxe abstraite (métamodèles), la syntaxe concrète et la sémantique) et maintenir les liens entre elles.

La composition des modèles est un axe de recherche en expansion dans le MDE. Il a été inspiré par la programmation par aspects (Aspect Oriented Programming ; AOP) [28], la programmation générative [16], l'intégration de bases de données [29] et la transformation de modèle [5]. Il existe de nombreuses questions en suspens dans cet axe et plusieurs propositions l’ont traité. Néanmoins, il n’existe pas encore de vocabulaire standard ni d’ensemble de définitions normalisées sur la composition des modèles dans le MDE. C'est pourquoi, par exemple, le glossaire de termes et d'acronymes de l’Object Management Group (OMG) [30],

Constat N° 1 : Composition de DSMLs

La composition des DSMLs est principalement une composition de leurs métamodèles.

Constat N° 2 : Les dimensions de la composition des DSMLs

Une approche réussie de la composition des DSMLs doit prendre en compte les trois dimensions d’un DSML et maintenir les liens entre elles : la syntaxe abstraite (métamodèles), la syntaxe concrète et la sémantique.

(20)

qui standardise et promeut le modèle objet à travers le monde, ne contient aucune définition appropriée relative à la composition des modèles. Ainsi, certains considèrent la composition des modèles comme une opération effectuée uniquement sur des grandes unités de modélisation et non à des niveaux de granularité plus fins [31]. Quand, d’autres considèrent la composition des modèles comme la fusion de deux modèles ou plus sans ajouter de nouveaux éléments [31]. Alors, que d'autres encore considèrent la composition des modèles comme la mise en correspondance entre des éléments de différents modèles [31].

Néanmoins nous pouvons définir la composition dans son sens le plus large comme le fait de créer des liens entre les éléments de modélisation appartenant à des modèles différents, qu’ils soient hétérogènes (i.e. conformes à différents métamodèles) ou homogènes (i.e. conformes au même métamodèle). En outre, ces liens peuvent être conservés dans d'autres modèles et donc traités dans différents scénarios d'application (tels que l'interopérabilité ou la traçabilité) à l'aide de toute technique de traitement des modèles (telle que la transformation de modèle ou la génération de code). Un tel scénario de composition de modèle est représenté par un exemple très simple dans la Figure I.1. Nous pouvons y voir deux modèles Ma et Mb qui sont connectés

par le biais d’un «extra» modèle Mcomp. Ce dernier conserve les liens entre Ma et Mb. Ici,

l'opération de composition associe quatre pétales du modèle Ma et un cercle du modèle Mb.

Ainsi, une transformation de modèle Mtrans est produite en traitant le modèle Mcomp et assemble

les pétales et le cercle en une fleur dans le modèle cible Mc.

Nous constatons dans l'exemple susmentionné que les liens de composition ont été collectés dans un «extra» modèle. Cependant, ils pourraient être directement définis dans les modèles sources. De plus, il n’y a pas de similitude claire entre les éléments composés, alors qu’il est parfois possible de déduire une composition en utilisant des règles de mise en correspondance ou des méthodes heuristiques. De même, de nombreuses questions peuvent être posées pour déterminer ce qu'est une composition des modèles dans un cadre MDE et comment l’implémenter. Par exemple nous pouvons nous demander est ce que toutes les informations présentes dans les modèles d'origines doivent être présentes dans les modèles composés ? Ou si l'opération de composition doit éliminer toute redondance de données dans les modèles composés ? Ou encore si l'opération de composition doit être effectuée sans perte d’information ? Ou si elle devrait produire des informations supplémentaires ?

En outre, plusieurs termes sont utilisés dans la littérature pour signifier l’opération de composer des modèles. En plus du mot « composition », le deuxième terme le plus utilisé est « fusion », qui est en fait un cas particulier de la composition des modèles, dans lequel toutes les informations contenus dans les modèles en entrée sont conservées dans les modèles en sortie. Par conséquent, chaque terminologie peut cacher derrière elle une sémantique différente et une représentation différente de l'opération de composition des modèles.

(21)

17 Chapitre 1. Introduction

Figure I.1 Exemple de composition de modèle dans un scénario MDE

Notre objectif n’est évidemment pas de répondre à toutes ces questions ou de prendre position, mais de proposer un cadre claire de notre approche de composition des modèles dans le contexte MDE. Ainsi, nous proposons de considérer une composition des modèles tout simplement comme une fonction produisant un modèle composé C en utilisant tout ou une partie des artefacts de deux modèles existants en entrée A et B :

ABC(1)

Constat N° 3 : Composition de modèles

La composition des modèles est le moyen de combiner plusieurs éléments issus de modèles existants pour en construire un nouveau. Cette composition réutilise tout ou une partie des modèles existants.

(22)

4.

C

ADRE DE CONTRIBUTION DE LA THESE

La définition de cette problématique nous amène à définir le cadre de contribution de cette thèse. Nous proposons un moyen de répondre à l’enjeu n°2, qui est de construire rapidement de nouveaux DSMLs par composition de DSMLs existants, dans le sens défini par le constat

n°1, c’est-à-dire à travers une composition de leurs métamodèles. Pour parvenir à cet objectif

nous définissons des règles de composition de métamodèles. Ces règles respectent le sens du

constat n°3, c’est-à-dire qu’elles permettent de combiner tout ou parties des métamodèles en

entrée. En outre, notre approche permet de valoriser l’opération de composition des modèles comme une opération importante dans le domaine de l’ingénierie Dirigée par les Modèles et de répondre ainsi à l’enjeu n°1. Puisque les métamodèles sont eux même des modèles conforme au métamétamodèle MOF (Meta-Object Facility ; standard définit par l’OMG dans le cadre du MDE [37]). Enfin, pour mieux répondre à l’enjeu n°2 sur l’aspect accélération de la construction de nouveaux DSMLs, nous proposons de tirer parti de nos règles de composition, dans le sens du constat n°2, qui préconise qu’une approche réussie de composition de DSMLs doit maintenir les liens entre la syntaxe abstraite (métamodèles), la syntaxe concrète et la sémantique. Ainsi, nous fournissons un générateur de code automatique qui part des règles de composition des métamodèles des DSMLs existants et génère une couche de code permettant une composition rapide de leurs syntaxes concrètes et de leurs éditeurs graphique, tout en préservant leurs sémantiques, pour produire le nouveau DSML composé.

(23)

19 Chapitre 1. Introduction

5.

C

ONTRIBUTION

Cette thèse a pour but de contribuer aux nouvelles plateformes de modélisation logicielle. Elle utilise des notions largement acceptées dans plusieurs autres domaines connexes comme l’Ingénierie Dirigée par les Modèles, la Modélisation Spécifique aux Domaines et la conception d’Interface Homme-Machine. La contribution de cette thèse étudie la composition des DSMLs dirigée par la composition de leurs métamodèles (cf. partie II).

Notre contribution repose sur quatre points :

1. Analyser l'état de l’art actuel de la composition des modèles dans le contexte de l'Ingénierie Dirigée par les Modèles en menant une Revue Systématique de la Littérature basée sur les directives proposées par Kitchenham et Charters [32] et Budgen et Brereton [33] ;

2. Définir formellement des règles de composition de métamodèles dans un contexte MDE permettant la composition des grammaires abstraites des DSMLs ;

3. Concevoir une fonction de génération de code facilitant la composition des éditeurs graphiques des DSMLs, basée sur la composition de leurs métamodèles, assortie d’une mise en œuvre d’un prototype ;

4. Valider nos travaux à travers un cas d’étude théorique simple ;

5. Concevoir et implémenter un DSML concret spécifique à l’ingénierie financière et plus précisément au domaine de l’actuariat en mettant en pratique notre approche.

Revue Systématique de la Littérature sur la composition des modèles

La première contribution de cette thèse consiste à analyser l'état de l’art actuel de la composition des modèles dans le contexte de l'Ingénierie Dirigée par les Modèles à travers une Revue Systématique de la Littérature (Systematic Literature Review ; SLR).

Notre objectif est de découvrir comment la composition des modèles est traitée, implémentée et utilisée dans le MDE et d'identifier les espaces d'amélioration possibles. En conséquence, dans le but de fournir une analyse complète du sujet, nous avons choisi de procéder à une analyse systématique de la littérature [32-36]. Elle aura comme objectif de répondre à des questions de recherche telles que : Quel types de correspondances entre les modèles sont utilisés dans l'état de l'art actuel du MDE ? Ou quel niveau d'automatisation est suggéré pour la création de correspondances entre les modèles pendant l'opération de composition ?

Une SLR demande un investissement conséquent en temps et en quantité de travail engagé, en particulier lorsque c'est la première fois que le sujet est traité. En contrepartie, contrairement à une revue narrative et non systématique, elle permet de minimiser les biais pouvant être inhérents soit à la matière première (données, connaissances) soit à la conduite de la revue elle-même, afin d'atteindre la plus grande objectivité possible. En outre, sa grande capacité de traçabilité et d'archivage permet par la suite une mise à jour plus facile, en fonction de l'avancement des connaissances.

L’intérêt de cette contribution est triple. Au-delà des résultats de cette analyse qui nous permettrons de mieux cibler notre contribution à l’état de l’art de la composition des DSMLs et

(24)

de vérifier la nouveauté de notre approche. Elle nous permet d’appréhender cette pratique (i.e. la SLR), encore moyennement appliquée dans le SE, afin de la diffuser dans notre structure de recherche. Aussi, elle nous permet de produire une publication de qualité pour nous ouvrir les portes des forums du MDE et nous faire connaitre par sa communauté, étant donné que cet axe de recherche est encore à ces débuts au sein de notre laboratoire.

Règles de composition des DSMLs

La seconde contribution de cette thèse est la définition et la formulation d'un ensemble de règles permettant la composition des DSMLs.

Comme cité précédemment, un DSML se définit par une grammaire abstraite exprimée sous la forme d’un métamodèle, c’est-à-dire un ensemble de constructions qui conceptualise le domaine dédié du langage et les relations entre ces constructions, d’une sémantique pour associer une interprétation sémantique à ces constructions, et de syntaxes concrètes qui permettent de représenter ces constructions et de les exposer aux utilisateurs pour qu’ils puissent les manipuler à travers des éditeurs. Actuellement, la sémantique comportementale d’un DSML est généralement décrite de manière ad-hoc. Par conséquent, nous nous focalisons dans ce travail uniquement sur les deux aspects : la grammaire abstraite et la syntaxe concrète.

En respect avec le constat n°1, le processus de création d'un nouveau DSML à partir d’une composition de DSMLs existants repose essentiellement sur la composition de leurs métamodèles. Dans ce cadre nous proposons trois règles de composition de métamodèles : la composition par référence, la composition par spécialisation et la composition par fusion.

Fonction de génération de code basé sur les règles de composition

La troisième contribution de cette thèse va dans le sens du constat n°2. Nous nous sommes intéressés à la projection de la composition des métamodèles des DSMLs sur leurs syntaxes concrètes. Définir la manière dont les métamodèles sont composés implique la manière dont les syntaxes concrètes peuvent être fusionnées et comment les éditeurs peuvent être réutilisés. Nous proposons de définir les contours d’une fonction de génération de code facilitant la composition des éditeurs des DSMLs à partir de la composition de leurs métamodèles.

Ensuite, nous proposons de développer un prototype qui implémente cette fonction de génération automatique de code. Il se basera sur l’infrastructure logicielle EMF (Eclipse Modeling Framework) [38] de l’Eclipse Modeling Project (EMP) [39] et permettra de générer une couche de code complémentaire au générateur de code d’EMF, permettant une composition rapide d’un nouveau DSML à partir de la définition d’une composition de DSMLs existants implémentés en EMF. Le gain est sera mesuré en termes de temps de développement qui peut être estimé via le pourcentage du code généré. Ensuite, en termes de composants réutilisés pouvant être estimés via le pourcentage de code réutilisé. Ainsi qu’en termes de capacité d’apprentissage, cela peut être estimé via la partie des fonctionnalités et des interfaces graphique conservées. Ces trois paramètres seront les indicateurs d’évaluation et de performance pour évaluer notre contribution.

(25)

21 Chapitre 1. Introduction

Expérimentation et validation par étude de cas

La quatrième contribution de cette thèse consiste en une étude expérimentale menée en mettant à l’œuvre notre prototype de génération de code automatique. Le but de cette expérimentation est tout d’abord de prouver le bien fondé de notre approche, puis d’obtenir des informations pour évaluer notre contribution. Les indicateurs d’évaluation et de performance susmentionnés seront utilisés à cette fin. Un cas d’étude théorique simple qui sera utilisé comme « fil rouge » tout au long des chapitres de cette thèse sera implémenté et évalué. Les résultats des expérimentations seront exposés et discutés.

Implémentation d’un DSML spécifique au domaine de l’Actuariat

La dernière contribution de cette thèse consiste à implémenter un cas d’étude pratique de développement de DSML en mettant en œuvre notre approche. Il s’agit d’un DSML dans lequel deux disciplines interagissent : La Gestion des Ressources Humaines et la Science Actuarielle ; créant ainsi une utilisation redondante des données et nécessitant une composition afin de les regrouper dans un même atelier bi-disciplinaire.

En collaboration avec un cabinet d'actuaires (Actuaria Global, Casablanca, Maroc [AC1]), nous avons développé l’outil AGPlan ; Un prototype de DSML dédié aux études de calcul des avantages du personnel selon la norme comptable internationale IAS 19 (International Accounting Standard Nineteen) [AC2]. Le calcul actuariel commence à partir d'une source de données (fichiers, base de données, etc.) contenant des informations sur les employés d'une entreprise. Ceci est fourni par le service des Ressources Humaines. Après de multiples manipulations, mathématiques, statistiques, et de projections sur les données, sollicitant des modèles actuarielles, l'étude se termine par un rapport présentant une estimation des provisions que l'entreprise doit épargner chaque année pour garantir les avantages de son personnel à court, moyen et long termes. Selon l'IAS 19, le personnel d’une entreprise doit bénéficier notamment des trois avantages suivants :

 Indemnité de fin de carrière.  Médaille de travail.

 Couverture Médicale.

(26)

6.

S

TRUCTURE DE LA THESE

Ce manuscrit est construit autour de trois parties principales.

La première partie est articulée autour de deux chapitres, le premier est cette introduction au contexte, aux enjeux, à la problématique et aux contributions de la thèse. Le second est une analyse des travaux existants dans un état de l’art élaboré sur deux axes : le premier introduit la métamodélisation et l’illustre par des définitions les concepts clés du MDE et des DSMLs. Le second énumère les travaux traitant de la composition, de l'extension et de la réutilisation des DSMLs.

La seconde partie est articulée autour de quatre chapitres, mettant en évidence nos contributions. Le premier est une revue systématique de la littérature sur la composition des modèles dans un contexte MDE. Le chapitre suivant traite des règles de composition de DSMLs que nous proposons : la composition par référence, la composition par spécialisation et la composition par fusion. Il analyse ensuite la possibilité de projection de la composition des DSMLs, décrite à l’aide de ces trois règles, sur leurs syntaxes concrètes. Le troisième chapitre de cette partie définit et présente l’implémentions d’un prototype de génération de code automatique qui a pour objectif d’assister le développeur dans la composition des éditeurs graphiques des DSMLs composés. Ensuite, il expose l’expérimentation de notre approche à travers un cas d’étude théorique simple qui nous a servi de fil rouge pour illustrer nos différentes propositions dans les chapitres précédant. Le but étant d’évaluer nos contributions à travers des indicateurs de performances. Les résultats des expérimentations sont exposés et discutés. Enfin, un dernier chapitre présente un cas d’étude réel plus pratique. Il vise la création d’un DSML dédié aux études du calcul des avantages du personnel selon la norme comptable internationale IAS 19, dans lequel deux disciplines interagissent. Ce cas d’étude met en lumière notre approche de composition de DSMLs.

La troisième partie est constituée d’un chapitre faisant le bilan de ce manuscrit avec un retour sur nos objectifs et ouvrant cette thèse vers de nouvelles perspectives de recherche.

(27)

Chapitre 2

E

TAT

D

E L

’A

RT

Sommaire

1. Introduction ………24 2. Le MDE : une approche centrée sur les modèles ………..……….……….….25

3. Les DSMLs ..…..……….……….32

4. La composition des DSMLs ……….……….. 38 5. Synthèse de l’état de l’art …...……….……….. 49

e chapitre présente une revue de la littérature des domaines de recherche auxquels contribue cette thèse et illustre l'importance de ce sujet de thèse en Informatique en général et en génie logiciel en particulier. L’objectif de ce chapitre est double : (i) Explorer l’état actuel des pratiques en matière de développement logiciel et plus précisément en matière de conception et de développement de DSMLs, et montrer comment le MDE et la composition des modèles apportent des solutions pragmatiques pour accélérer ce processus ; afin de faire face à la complexité croissante des systèmes ; (ii) Procéder à l’inventaire des différentes approches qui ont été proposées pour faciliter la création d’un nouveau DSML, en automatisant la projection de sa définition abstraite sur sa syntaxe concrète, ou en réutilisant, en partie, ou en totalité, des DSMLs existants, et analyser comment différents courants de recherches ont influencés ces approches. Ainsi, La section 1 introduit au MDE et aux DSMLS. La section 2 présente les principes clés de l’Ingénierie Dirigée par les Modèles. Nous y définissons les concepts de modèle, métamodèle, transformation de modèles, …etc.) puis passons en revue les travaux de normalisation de l’OMG. La section 3 décrit les principes des langages dédiés aux domaines offerts à travers les DSMLs. Ensuite, nous y mettons la lumière sur le projet EMP et l’écosystème d’outils qui l’entoure puisqu’il regroupe les outils les plus diffusés dans la communauté MDE pour créer et manipuler des DSMLs. La section 4 propose une synthèse des approches qui ont apportées des contributions pour la réutilisation des DSMLs et l’assistance à la création de nouveaux DSMLs. Enfin, la section 5 présente une synthèse de notre état de l’art et les conclusions que nous avons tirées.

(28)

1.

I

NTRODUCTION

Suite à l’apparition et à l’expansion du paradigme OOP pendant les années 80 et de son principe centrale du « tout est objet », le SE se porte aujourd’hui plus vers des approches de modélisation telle que l’Ingénierie Dirigée par les Modèles et le principe du « tout est modèle ». Cette approche peut être qualifiée à la fois d’être en continuité ou en rupture avec l’OOP [2, 40]. En continuité du fait que c’est la technologie objet qui a initié cette évolution vers l’utilisation des modèles à travers la conception des systèmes avec des diagrammes et notamment avec l’utilisation d’UML (Unified Modeling Language) [41]. Une fois la conception sous la forme d’objets communicants entre eux réalisée, il s’est posé la question de les ranger en fonction de leurs niveaux de traitement ou de leurs origines (métiers, techniques, etc.). Le MDE vient, de manière plus radicale que pouvaient proposer des approches comme les Patrons de Conception (Design Patterns) [42] et la Programmation Orientée Aspects, fournir le moyen de mettre en place un grand nombre de modèles pour décrire séparément chacune des préoccupations des parties prenantes d’un système complexe (les utilisateurs, les concepteurs, les architectes etc.) qui peuvent être multipliées par autant de disciplines qui collaborent dans ce même système (électriciens, mécaniciens, thermiciens, aérodynamiciens, etc.). C’est ainsi, par cette vision différente au cœur du MDE que celui-ci peut être qualifié d’être en rupture par rapport aux travaux de l’approche OOP.

L’Ingénierie Dirigée par les Modèles a permis plusieurs améliorations probantes dans le développement des systèmes complexes. Elle a permis de se focaliser sur une préoccupation plus abstraite que la programmation classique. Il s’agit d’une forme d’ingénierie générative dans laquelle tout ou partie d’un logiciel est générée à partir de modèles. Un modèle est une représentation abstraite, une simplification d’un système qui est suffisante pour le comprendre et répondre aux questions que l’on se pose sur lui. Un système peut être modélisé par différents modèles avec des relations entre les uns et les autres. L’idée essentielle qui émane de cette ingénierie est de pouvoir utiliser autant de langages de modélisation différents que les aspects chronologiques, sémantiques, techniques ou technologiques que le système nécessite ; nous parlons alors de langage de modélisation spécifique à un domaine : DSML. Afin de définir un DSML, il faut tout d’abord modéliser ces concepts ; une phase appelée métamodélisation, qui est une problématique clé du MDE. En outre, afin de tirer parti des modèles construit plus tard avec ce DSML (pour la génération de code, de documentation, la simulation, la validation, la vérification, etc.), une autre problématique clé est celle de la transformation de modèle.

(29)

Le MDE : une approche centrée sur les modèles 25

2.

L

E

MDE :

UNE APPROCHE CENTREE SUR LES

MODELES

2.1

Q

U

EST

-

CE QU

UN MODELE

Alors que le paradigme objet est fondé sur les deux concepts fondamentaux de « typage » et « polymorphisme », Le MDE est basé sur le concept central de « modèle ». Dans sa définition la plus simple, un modèle est une simplification de la réalité. Dans une définition plus large d'un modèle, Le Moigne dans [43] précise que :

«Le modèle est une représentation artificielle que «l’on construit dans sa tête»...et que l’on «dessine» sur quelque support physique : le sable de la plage, la feuille de papier, l’écran du "computeur"... Autrement dit un système de symboles, un système artificiel (créé par l’homme) qui agence des symboles... »

Il n’existe pas de définition universelle d’un modèle. Toutefois, de nombreux travaux s’accordent à un relatif consensus d’une certaine interprétation. A partir des travaux de Bézivin et al. [44] et de Seidewitz [45], nous pouvons considérer la définition suivante d’un modèle :

Les modèles peuvent être physiques, tels qu'une voiture miniature ou le plan d’architecture d'un bâtiment, ou symboliques, tels qu'un langage naturel, un programme informatique ou un ensemble d'équations mathématiques. Considérant certaines caractéristiques et la « Nature de la définition d'un modèle » ; Widman et al. affirment dans [46] que :

« Un modèle représente la réalité dans un but donné ; le modèle est une abstraction de la réalité au sens où il ne peut pas représenter tous les aspects de la réalité. Cela nous permet de traiter le monde de manière simplifiée, en évitant la complexité, le danger et l’irréversibilité de la réalité.»1

Cette affirmation illustre la première relation importante du MDE entre le modèle et le système qu’il représente, appelée « représentation de » dans [2, 45, 47]. Il reste néanmoins difficile de répondre à la question « qu’est-ce qu’un bon modèle ? » et donc de formaliser précisément cette relation. Toutefois un modèle doit, par sa nature et sa définition, être une représentation abstraite, suffisante et nécessaire, du système qu’il représente, pour répondre à

1 Du texte original : « A model represents reality for the given purpose ; the model is an abstraction of

reality in the sense that it cannot represent all aspects of reality.

This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibly of reality »

Définition N° 1 : Modèle

Un modèle est une abstraction d’un système, modélisé sous la forme d’un ensemble de faits construits dans une intention particulière. Un modèle doit pouvoir être utilisé pour répondre à des questions sur le système modélisé.

(30)

certaines interrogations en lieu et place de celui-ci, exactement de la même façon que le système aurait répondu lui-même. Minsky affirme dans [49] :

« Pour un observateur A, M est un modèle de l’objet O, si M aide A à répondre aux questions qu’il se pose sur O »2

Cette définition amène à l’identification d’une relation principale dans le MDE. Il s’agit du principe de la « substituabilité », que nous pouvons définir comme suit :

Ainsi, la notion de modèle dans le MDE est étroitement liée aux notions de propriétés, de comportement, d’analyse… de façon précise pour réponde à l’exigence de substituabilité d’un système. D’autant plus que ce modèle doit pouvoir être manipulé par une machine pour être productif. Il faut donc s’appuyer sur un langage de modélisation bien défini pour exprimer un modèle. En effet, de manière naturelle, la définition d’un tel langage a pris la forme d’un modèle, appelé métamodèle. Ce qui nous amène à notre troisième définition [37] :

Cette définition amène à l’identification d’une deuxième relation principale dans le MDE. Il s’agit du principe de « conformité » liant le modèle à son métamodèle, que nous pouvons définir comme suit [49] :

La Figure I.2 illustre les différents concepts que nous venons de définir. Pour cela, nous nous appuyons sur l’exemple utilisé dans [50] qui prend le domaine de la cartographie pour illustrer les concepts MDE.

2 Du texte original : « To an observer B, an object A* is a model of an object A to the extent that B can

use A* to answer questions that interest him about A » Définition N° 2 : Principe de Substituabilité

Un modèle, qui représente un system, doit être suffisant et nécessaire, pour se substituer à celui-ci et permettre d’analyser de manière abstraite certaines de ses propriétés, exactement de la même façon que le système les aurait analysé lui-même.

Définition N° 3 : Métamodèle

Un métamodèle est un modèle qui définit le langage (grammaire) d’expression (de modélisation) d’un modèle.

Définition N° 4 : Conformité

Un métamodèle est un langage formalisent des concepts et des relations fournissant un langage de modélisation. Une instance de ce langage qui adhère à ses concepts et à ses relations est appelé un modèle valide ; c’est-à-dire un modèle satisfaisant la conformité structurelle à son métamodèle.

(31)

Le MDE : une approche centrée sur les modèles 27

Figure I.2 Relations entre système, modèle, métamodèle et langage [50]

Dans cet exemple, le système modélisé n’est pas la France (en tant qu’espace physique) mais la France en tant qu’espace administratif. Il s’agit de l’ensemble de toutes les cartes décrites selon des conventions définies par l’Institut national de l’information géographique et forestière (IGN) français. La relation « conforme à » qui lie un modèle à son métamodèle est notée (χ) est le principe de « substituabilité » qui le modèle à son système est noté (μ). En cartographie, il est en effet obligatoire d’associer à chaque carte une légende, qui est la définition du « langage » utilisé pour réaliser cette carte. La carte doit, pour être utilisable, être conforme à cette légende. Plusieurs cartes peuvent être conformes à une même légende. La légende est alors considérée comme un modèle représentant cet ensemble de cartes (μ) et à laquelle chacune d’entre elles doit se conformer ( χ).

Si l’UML a fait l’unanimité comme langage de modélisation car il était déjà ancré dans les pratiques et bien installé dans le monde industriel avec les technologies de l’objet. Pour la métamodélisation il n’y avait pas d’équivalent. Par conséquent, de nombreux métamodèles ont vu le jour afin d’apporter chacun leurs spécificités dans un domaine particulier. Devant le risque de voir émerger indépendamment et de manière non standardisée cette importante variété de métamodèles, il était nécessaire et urgent de mettre en place un cadre standard pour la description des métamodèles. C’est ainsi que l’OMG a procédé à la définition du MOF comme standard pour la définition des métamodèles, qui prit lui-même la forme d’un modèle spécial : le métamétamodèle. Pour limiter le nombre de niveaux d’abstraction, il a été conçu de façon à ce qu’il soit auto-descriptif. Il est ainsi situé au sommet d'une architecture de modélisation en quatre couches, comme illustré sur la Figure I.3 :

 M3, le métamétamodèle MOF (couche auto-descriptive) ;  M2, les métamodèles ;

 M1, les modèles ;  M0, le monde réel.

L’approche consistant à considérer une hiérarchie de métamodèles n’est pas originale à l’OMG, ni même au MDE. Elle a été utilisée bien avant dans de nombreuses disciplines de l’informatique. Chaque hiérarchie définit un espace technique [51-53]. Nous distinguons par exemple l’espace technique des modèles, l’espace technique des grammaires (définies par les

Figure

Figure I.1 Exemple de composition de modèle dans un scénario MDE
Figure I.2 Relations entre système, modèle, métamodèle et langage [50]
Figure I.5 La transformation de modèle  En conclusion, nous proposons la définition suivante :
Figure II.1 Le protocole de conduite d’un SLR proposé par Breton et al. [35]
+7

Références

Documents relatifs

La montée en puissance de l’agroécologie suscite un regain d’intérêt sur le développement de pratiques agricoles durables. Dans les agroécosystèmes au climat tempéré

Notre objectif est de proposer un modèle multidimensionnel pour ces données biomédicales, plus particulièrement pour les données du magasin cardiovasculaire et de généraliser

Comme tout jugement d’´equivalence, l’´equivalence au sens de Turing d´epend d’une relation de congruence, dont toute personne soucieuse d’´eviter la p´etition de principe

Pour avoir une idée sur le volume amputé par les dépôts successifs de la vase au fond des barrages, nous avons représenté sur la figure 15, l’évolution dans le temps

Cette thése présente une étude sur les techniques MPPT les plus utilisées dans les systèmes PV, à savoir : la méthode de perturbation et d'observation (P&O), la méthode de

Nous avons donc orienté le projet TUNe afin de proposer un système d’administration qui ne repose sur aucun langage ou domaine d’administration et avons souhaité fournir au-dessus

Le l conducteur qui nous guide dans nos propositions d'innovation pédagogique autour de la plate-forme Pi- coLibre est la transposition de pratiques en usage dans les communautés

Cet article a pour objectif de contribuer à la compréhension des pratiques de comptabilisation des dépenses de R&D dans le contexte français, plus précisément d’examiner