• Aucun résultat trouvé

réutilisation de composants logiciels sur étagères.

Les efforts sont orientés vers le développement de familles de produits partageant des ca- ractéristiques communes plutôt que vers le développement de produits séparés. Concrète- ment cela consiste à configurer les plates-formes de développement logiciel extensibles, avec des actifs fondamentaux comme les DSLs, les patrons et les frameworks, afin d’opti- miser le développement et la maintenance de certains types d’applications. Le mécanisme d’extension est réalisé en se basant sur deux concepts : les schémas (factory schema) qui définissent et organisent les artefacts utilisés pour construire et maintenir le système, et les modèles (templates) qui forment une capacité de production pour la famille de produits en configurant les outils, les processus et les autres actifs fondamentaux.

Les usines à logiciels reposent fortement sur les langages dédiés pour soutenir l’automa- tisation [Greenfield and Short 2004]. Ces langages sont utilisés pour exprimer différents aspects des membres de la famille à développer avec l’usine. Généralement plusieurs DSLs sont nécessaires pour décrire une application. Chaque DSL (ou ensemble de DSLs) correspond à un point de vue donné de l’application.

La Figure 4.2 présente une vue d’ensemble de ces différentes approches de l’Ingé- nierie Dirigée par les modèles.

FIGURE4.2 – Ingénierie Dirigée par les Modèles

4.4

Conception d’un DSML

De façon générale, qu’il soit textuel ou graphique, un langage est caractérisé par sa syntaxe et sa sémantique. La syntaxe décrit les différentes constructions du langage et les règles d’agencement de ces constructions tandis que la sémantique permet de donner un sens à chacune des constructions du langage. La conception d’un DSML consiste alors essentiellement à définir sa syntaxe et sa sémantique. Les sections suivantes présentent ces différentes notions.

4.4.1

Syntaxe

Dans le contexte informatique, on distingue deux types de syntaxe : syntaxe abstraite et syntaxe concrète.

Syntaxe Abstraite

La syntaxe abstraite définit de façon structurelle les concepts, les relations et les règles de grammaire caractérisant le DSML. Les concepts représentent les types d’éléments ma- nipulés par le DSML alors que les relations et les règles de grammaire définissent com- ment ces éléments peuvent être combinés pour former des modèles valides [Greenfield and Short 2004]. La pertinence des concepts définis dépend fortement du niveau d’abstrac- tion souhaité. Abstraire un système consiste à en extraire les caractéristiques essentielles par rapport à un type d’utilisateur et à un domaine particulier. Ce faisant, l’abstraction permet non seulement de cacher les détails non essentiels à l’utilisateur, mais également de s’appuyer sur des connaissances métiers pour résoudre des problèmes récurrents de ce domaine.

Selon [Tolvanen 2006], la partie la plus importante dans le processus de conception d’un DSML est de trouver les bonnes abstractions. Afin de ne garder que les concepts qui sont pertinents au DSML, il faut soigneusement déterminer le niveau d’abstraction. Travailler au juste niveau d’abstraction est crucial pour le succès du DSML car il affecte directement son expressivité. Un niveau trop abstrait fait qu’un DSML ne pourra pas fournir suffisam- ment d’informations dans ses modèles. Un niveau d’abstraction trop détaillé, par contre, peut mener à un DSML compliqué, confus et difficilement compréhensible par les utilisa- teurs [Kahlaoui 2011]. D’une manière générale, le niveau d’abstraction d’un système est déterminé par la finalité de son utilisation [Kramer 2007]. Plus cette finalité est claire et explicite, plus il est facile de l’abstraire.

Deux approches sont principalement utilisées pour la définition de la syntaxe abstraite [Green- field and Short 2004] : la grammaire non-contextuelle (ou grammaire formelle e.g. Backus- Naur Form/Backus Normal Form-BNFs), utilisée surtout pour la définition des langages textuels et la méta-modélisation utilisée pour la définition des DSMLs. Cette distinc- tion est tout simplement d’ordre pratique, on constate que l’approche de la grammaire non-contextuelle est mieux adaptée à la description des langages textuels puisqu’elle est bien optimisée pour le traitement de texte, alors que l’approche de méta-modélisation se prête mieux à la description des langages graphiques de modélisation. Dans le contexte de l’IDM, la syntaxe abstraite est placée au cœur de la description d’un DSML. Elle est donc généralement décrite en premier et sert de base pour spécifier la syntaxe concrète que nous définissons dans la section suivante.

Dans l’exemple des cartes routières, la syntaxe abstraite qui correspond au méta-modèle inclura des concepts tels que Route, Autoroute, Échangeur, Distance . . . ainsi que les re- lations entre ces concepts par exemple une relation d’héritage entre le concept Route et le concept Autoroute pour signifier qu’une autoroute est une route particulière.

4.4. CONCEPTION D’UN DSML 34 Syntaxe concrète

Un DSML n’a qu’une seule syntaxe abstraite, mais peut avoir plusieurs syntaxes concrètes. La syntaxe concrète fournit à l’utilisateur un ou plusieurs formalismes gra- phiques et/ou textuels, pour manipuler les concepts de la syntaxe abstraite et ainsi en créer des instances. L’instance ainsi obtenue sera conforme à la structure définie dans la syntaxe abstraite. La syntaxe concrète textuelle est utilisée, principalement, pour les DSL dits « de programmation » alors que la syntaxe concrète graphique est plutôt réservée aux DSML.

La syntaxe concrète graphique décrit les éléments graphiques à utiliser pour créer des modèles du DSL et détermine leurs dispositions géométriques. Elle consiste en une in- terface utilisateur graphique permettant de manipuler (spécifier, ajouter, retirer, lier . . . ) les concepts du DSL. Chaque élément représentable du langage est associé à un symbole graphique. L’avantage principal d’une syntaxe visuelle est sa capacité à exprimer l’infor- mation sous une forme intuitive et facile à comprendre [Clark et al. 2004].

La Figure4.3 montre un exemple de carte routière avec la représentation généralement utilisée.

FIGURE4.3 – Syntaxe concrète pour des cartes routières

Dans la suite de ce document, nous entendons par DSML un langage de modélisation ayant une syntaxe concrète graphique. Les travaux que nous présentons s’articulent autour de ces DSML, notamment sur l’implantation de la syntaxe concrète graphique.

4.4.2

Sémantique

Généralement, la syntaxe abstraite ne comporte pas assez d’information pour définir le sens des constructions du DSML. Des informations supplémentaires sont nécessaires afin de pouvoir déterminer ce sens. Le but de la sémantique est donc de décrire le sens des constructions du langage. On distingue deux types de sémantique : la sémantique statique et la sémantique dynamique (ou comportementale).

La sémantique statique se concentre sur la signification d’un modèle avant son exécu- tion (par exemple pour la vérification des types), elle peut être exprimée sur la syntaxe abs- traite, soit à l’aide du langage de méta-modélisation lui-même (par exemple les multipli- cités - une Autoroute peut avoir plusieurs Échangeurs) soit en la complétant de contraintes

exprimées à l’aide d’un langage comme OCL (invariant, pré- ou post-condition - le Nu- mérod’un Échangeur doit toujours être positif).

La sémantique dynamique quant à elle s’intéresse au comportement des modèles à l’exécution. Elle permet d’exécuter un modèle en vue de l’animer, le simuler ou le véri- fier dynamiquement. La définition de cette sémantique comportementale se rapporte à la définition d’un mappage sémantique (Semantic Mapping, SM) vers un domaine séman- tique (Semantic Domain, SD) [Harel and Rumpe 2000]. Le domaine sémantique définit l’ensemble des significations possibles qui peuvent être accordées aux différents modèles du DSML. Le mappage sémantique établit le lien entre les éléments de la syntaxe et le sens qu’on leur donne.

La sémantique comportementale des DSMLs est généralement décrite de manière ad- hoc et nécessite beaucoup d’effort [Combemale 2008]. L’un des défis actuels de l’IDM consiste à donner les moyens d’exprimer la sémantique comportementale de façon pré- cise. Cette problématique fait l’objet de nombreux travaux tels que [alain Muller et al. 2005] et [Clark et al. 2008], mais cet aspect des DSMLs ne fait pas partie de nos travaux. La Figure 4.4 résume l’essentiel de la conception d’un DSML. Rappelons qu’un outil de méta-modélisation permet d’implanter un DSML, et que pour construire des modèles conformes au DSML il faut créer un éditeur graphique (un outil de modélisation) à partir de la syntaxe abstraite du DSML. Cet éditeur matérialise la syntaxe concrète.

FIGURE 4.4 – Conception d’un DSML

4.5

Synthèse

Dans le cadre de TUNe l’utilisation des DSML va permettre d’adapter les langages d’administration en fonction du contexte applicatif et ainsi de faciliter l’administration autonome des applications. Cependant, sans des outils appropriés, les DSML peuvent être difficiles à mettre en œuvre et coûteux à concevoir et à implanter. Le chapitre suivant présente les limites des DSML notamment en termes d’outils.

Chapitre 5

Limites des DSML et problématique

Les langages de modélisation dédiés sont réputés pour leur expressivité et leur fort niveau d’abstraction. Ils sont utilisés dans différents domaines pour permettre aux experts du domaine de concevoir des solutions en utilisant des concepts et des notations qui leur sont familiers. Or, il reste encore des contraintes qui renforcent l’hésitation des organi- sations envers cette technologie et empêchent son adoption à plus grande échelle. Nous présentons les principales limites dans les sections suivantes.

Le développement d’un DSML nécessite à la fois la connaissance du domaine, mais aussi une expertise en développement de langages. Peu de personnes possèdent cette double compétence [dsm 2012]. De ce fait, la décision de développer un DSML est souvent écar- tée par les organismes industriels. Comme nous allons le montrer dans les sections sui- vantes, il existe aujourd’hui plusieurs freins à l’acceptation des langages de modélisation dédiés, notamment liés au coût de développement du DSML ou encore à la délimitation du domaine. Mais la limitation la plus importante est certainement celle liée aux outils de méta-modélisation souvent jugés peu intuitifs, trop complexes ou pas assez matures. Nous nous sommes heurtés à cette complexité des outils de méta-modélisation dans notre ten- tative d’implanter des langages dédiés dans TUNe. De même, les retours d’expériences de nos partenaires industriels soulignent que le temps d’apprentissage pour la prise en main des outils de méta-modélisation existants peut être très élevé. Chez Airbus, ils sont convaincus du gain de productivité que pourraient leur apporter les langages dédiés et s’y essayent, mais cela relève encore du domaine de la recherche.