• Aucun résultat trouvé

3.2 Le métamodèle HDCRAM

3.2.3 Vers un métamodèle exécutable

Nous avons donc modélisé notre architecture à l’aide du langage UML, ce qui per- met une spécification formalisée, claire et précise de l’architecture et une compréhension qui ne requiert pas d’être un expert dans le domaine (avec il est vrai le besoin d’avoir des notions UML). Néanmoins, une des limitations du langage UML est qu’il ne per- met pas de simuler de façon fonctionnelle le système modélisé. Il n’est utilisé que dans l’optique de modéliser des concepts complexes au niveau structurel (ce qui est déjà loin d’être trivial) et d’apporter une vue plus générale des concepts utilisés. Il faut par la suite utiliser des transformations de modèles afin de pouvoir simuler ces concepts et valider l’approche retenue. S’il s’avère que le code programme généré ne fournit pas les résul- tats escomptés il va falloir identifier à quel niveau les spécifications n’ont pas été assez finement déclarées. Une solution serait alors de pouvoir effectuer une simulation bien avant la génération de code. Dans l’optique d’effectuer des simulations de concept dans le cadre d’une modélisation PIM, il est nécessaire de requérir l’utilisation d’un langage de métaprogrammation exécutable. Ce type de langage permet d’ajouter une description comportementale à une description structurelle des objets afin d’effectuer des simula- tions fonctionnelles du système modélisé. Cette étape de modélisation, dont le résultat est appelé métamodèle exécutable, s’incrit dans le troisième objectif de cette thèse re- présenté à la quatrième ligne de la figure 4 résumé par la figure 3.12.

FIG. 3.12:Définition d’HDCRAM à l’aide d’un métalangage de programmation

L’avantage de l’utilisation d’un langage de métaprogrammation exécutable est qu’il peut être écrit indépendamment de toute cible matérielle. De plus il peut être utilisé afin de générer le code programme. De cette façon on évite tout problème relatif à la cohabi- tation de plusieurs langages hétérogènes pour la définition d’un système comme décrit en Annexe 1. Notre approche s’inscrit donc dans une approche dite IDM (Ingénierie Dirigée par les Modèles) qui ne se limite plus à l’unique utilisation de métamodèles MOF/UML mais s’ouvre à d’autres langages de métamodélisation.

Le langage que nous avons retenu pour l’élaboration du métamodèle exécutable de l’architecture HDCRAM est Kermeta [103], [104]. Kermeta est développé à l’INRIA de Rennes par l’équipe Triskell, il dispose d’un environnement de développement de métamodèles basé sur EMOF (Essential Meta Object Facility) [105] et est parfaitement intégré à l’environnement Eclipse. Kermeta permet non seulement de décrire la structure des métamodèles, mais aussi leur comportement. Il permet ainsi de définir et d’outiller

94

UN MÉTAMODÈLE EXÉCUTABLE

de nouveaux langages spécifiques à un domaine (DSL : Domain Specific Language) en améliorant la manière de spécifier, simuler et tester la sémantique opérationnelle des métamodèles. Cette démarche respecte parfaitement l’approche MDA puisque Eclipse utilise le langage Ecore pour la construction de métamodèle et que ce dernier est une version comparable à MOF. De plus, il est possible d’effectuer une transformation des constructions vers un fichier textuel XMI ce qui permet une interopérabilité avec d’autres logiciels de modélisation. Plus de précisions sur Kermeta sont fournies en Annexe 1.

Il pourrait sembler antinomique de requérir à la définition d’un langage dédié à un certain domaine alors que l’on veut définir un système à un très haut niveau d’abstraction. Néanmoins, ayant pour objectif la définition d’un métamodèle exécutable pour un équi- pement RC nous sommes déjà dans une optique de restriction du champ d’exploration. Ainsi, nous visons à restreindre les libertés offertes par UML afin de nous focaliser sur une utilisation pour un contexte RC. Il est à noter que la restriction est moins importantes que si nous avions eu recours à un langage de type C ou VHDL. Ce langage pourra être par la suite enrichi par des spécificités de chaque domaine de recherche (algorithmiques, logicielles, matérielles . . . ) et ainsi constituer un nouveau profile dédié aux équipements RC.

Il existe un langage créé pour la RC par J. Mitola nommé RKRL (Radio Knowledge Representation Language). Ce langage permet de rendre interprétable par toute machine RKRL, ou compatible RKLR, les données de son environnement et son fonctionnement propre dans le temps et l’espace. L’utilisation de ce langage permet à un équipement de comparer les données de l’environnement avec les modèles qu’il possède et d’en déduire les paramètres de fonctionnement optimal. RKRL va bien plus loin qu’un langage de modélisation et ne peut être utilisé dans le cadre de cette thèse. En effet, l’utilisation de ce langage permet de changer le comportement de l’équipement par modification des paramètres opérationnels, mais il permet aussi d’interpréter les besoins des utilisateurs exprimés en langage naturel afin de satisfaire ses demandes. Pour illustrer cela, on peut reprendre l’exemple suivant extrait de [2].

FIG. 3.13:Service avancé d’aide à l’utilisateur

Sur cet exemple on voit clairement que le langage RKRL permet de comprendre les besoins des utilisateurs et d’y répondre suivant les données relevées dans son environ-

3.3 LE SIMULATEURHDCRAM

95

nement (localisation, heure, date . . . ). L’un des problèmes évident de ce type de langage naturel est l’ambiguïté et la complexité que représente son interprétation par une ma- chine. Bien que ce genre de technologie commence à faire son apparition notamment dans un moteur de recherche internet développer par Powerset (récemment racheté par Microsoft) ou encore le fournisseur de services mobiles Chacha (qui permet de poser vo- calement n’importe quelle question et d’obtenir une réponse unique par message texte) elle est encore loin d’être mature. De plus le langage RKRL n’a pas été conçu dans l’op- tique de contrôler les ressources matérielles en fonction de leurs spécificités propres et son utilisation requiert une connaissance certaine de ce langage.