• Aucun résultat trouvé

I NGENIERIE D IRIGEE PAR LES M ODELES ainsi des informations à jour du système, et permettant de réaliser des adaptations par des

3 I NGENIERIE D IRIGEE PAR LES M ODELES

3. I NGENIERIE D IRIGEE PAR LES M ODELES ainsi des informations à jour du système, et permettant de réaliser des adaptations par des

modifications du modèle.

Un modèle à l exécution sert ainsi de base pour la surveillance l analyse et l adaptation d un

système en exécution. Grâce à leur connexion causale les modèles à l exécution décrivent des

systèmes et, en même temps, spécifient comment les systèmes doivent se comporter : les modèles à

l exécution sont descriptifs et prescriptifs

Les modèles à l exécution évoluent dans le temps. Les modifications des modèles peuvent être effectuées de façons différentes : par des transformations, par des opérations prédéfinies, par des

outils spécialisés Selon que la partie prescriptive ou descriptive d un modèle est modifiée, les

conséquences sont différentes Les modifications des éléments prescriptifs d un modèle à l exécution

provoquent des changements (adaptations/reconfigurations) dans le système. Les modifications dans

les éléments descriptifs d un modèle sont occasionnées par le système lors d un changement dans le

système, sa représentation dans le modèle change aussi ; et doivent donc être valides vis-à-vis du modèle prescriptif.

Les métamodèles des modèles à l exécution doivent ainsi fournir des mécanismes de construction de modèles permettant la définition de :

la partie prescriptive du modèle spécifiant comment le système doit être,

la partie descriptive du modèlespécifiant l état du système à l exécution,

les modifications valides de la partie prescriptive du modèle (des adaptations)

exécutables à l exécution,

les modifications valides de la partie descriptive du modèle exécutables à

l exécution, et

la connexion causalesous forme de flux d information entre le modèle et le système. Dans [57], Lehmann et al. proposent un processus de méta-modélisation de modèles à l exécution

qui répond aux besoins ci-dessus. La Figure 16 présente les concepts derrière ce processus sous la

forme d un méta-métamodèle. Ce méta-métamodèle fournit les mécanismes nécessaires pour la formalisation de métamodèles de modèles à l exécution

Figure 16. Méta-métamodèle de modèles à l exécution [57]

D après ce méta-métamodèle, chaque métamodèle conforme définit des types (Types) composés de champs (Fields et d éléments exécutables ExecutableElements). Les champs représentent des relations entre les types et sont classifiés comme prescriptifs (PrescriptiveField) ou descriptifs (DescriptiveField )ntuitivement les éléments d un modèle contenu dans les champs prescriptifs sont

descriptifs La distinction de champs permet d identifier ainsi les parties descriptives et prescriptives

des modèles lors du processus de méta-modélisation.

Les éléments exécutables (ExecutableElements) représentent des opérations permettant la

modification des éléments d un modèle Les éléments exécutables sont classifiés comme des éléments

de modification de la partie descriptive (DescriptionModificationElements DME) ou des éléments de modification de la partie prescriptive (SpecificationModificationElements SME). Les DMEs

encapsulent les mécanismes de synchronisation d état des modèles les SMEs représentent des

adaptations possibles (reconfigurations) du modèle et du système.

Les éléments descriptifs d un modèle sont contenus dans les champs descriptifs. Ainsi, chaque

DME définit les champs descriptifs qu il modifie en utilisant la relation d association alters. Un DME

peut être associé à d autres DMEs à travers la relation uses afin d exprimer que son exécution

implique l exécution des DMEs associés

L adaptation d un modèle peut influencer sa partie prescriptive et en conséquence son état Ainsi

les SMEs peuvent définir des relations alters et uses avec des champs prescriptifs et des éléments exécutables respectivement.

Enfin, le proxy (Proxy type) permet la formalisation de la connexion causale des modèles à

l exécution avec le système modélisé Un proxy classifie les éléments d un modèle afin de le connecter

avec son système associé A l exécution le proxy interagit avec un élément externe au travers d une interface de communication bien définie Cette interface est définie sous la forme d élément exécutable

et est donc appelée lors de l adaptation du modèle afin de modifier le système (externalExecution), ou disponible aux proxys pour envoyer des informations du système en exécution au modèle (callbacks).

D après ce processus de méta-modélisation de modèles à l exécution nous pouvons constater que différents modèles, descriptifs et prescriptifs, peuvent représenter un même système ou des aspects

différents d un système en exécution.

Dans la section précédente, nous avons évoqué qu il est difficile de développer un système logiciel

complexe à partir d un seul modèle : différents aspects du système doivent être considérés. De manière

similaire l administration de l exécution d un système ne peut pas être couverte par un seul modèle à l exécution. En effet, Blair et al. ont déclaré que :

« in practice, it is likely that multiple [runtime] models will coexist and that different styles of models may be required to capture different system concerns. » [48]

A cet égard, dans [58], Vogel, Seibel et Giese proposent une catégorisation de différents types de modèles à l exécution et présentent les relations entre eux (voir la Figure 17). Ces types de modèles, classifiés par rapport à leur usage et aux éléments qu ils représentent sont :

3.I

NGENIERIE

D

IRIGEE PAR LES

M

ODELES

les modèles d implémentation sont similaires aux modèles utilisés dans le domaine de la réflexion pour représenter et modifier un système en exécution par une connexion causale. Ces modèles sont ainsi dynamiques car ils évoluent systématiquement avec un

système en exécution Tels modèles sont basés sur l espace de solution d un système : ils

sont couplés à l implémentation du système et au modèle computationnel.

les modèles de configuration et d architecture sont à un niveau supérieur des modèles

d implémentation mais ils fournissent aussi une représentation causalement connectée

du système. Ces modèles reflètent la configuration et l architecture courantes d un système )ls sont la base pour la supervision et l adaptation du système

les modèles de contexte et de ressourcesdécrivent l environnement opérationnel d un système en exécution Cela contient le contexte d un système : les informations qui caractérisent une entité personne, emplacement ou objet considérée pertinente pour

l interaction entre un utilisateur et une application ou pour le fonctionnement de

l application ; ainsi que les ressources du système.

les modèles d espace de configuration et de variabilité spécifient les variantes

possibles du système tandis que les modèles de configuration et d architecture

représentant l état du système courant Ces modèles définissent par intention ou par extension l ensemble des états possibles et autorisés du système Ainsi en utilisant ces modèles des points d adaptation d un système ainsi que des alternatives d adaptation

peuvent être identifiés.

les règles, stratégies, contraintes, besoins et buts peuvent faire référence aux modèles

des autres catégories et par conséquent leurs niveaux d abstraction sont similaires ou

supérieurs aux niveaux des modèles référés. Les modèles dans cette catégorie définissent quand et comment un système doit être adapté et sous quelles conditions.

Cette catégorisation permet de montrer que des types différents de modèles à l exécution peuvent

être utilisés au même temps. Les catégories, ainsi que les types et le nombre de modèles à utiliser dépendent des objectifs du système modélisé (propriétés fonctionnelles et non-fonctionnelles, activités

d administration : surveillance, analyse, adaptation, etc.) et de son domaine métier (systèmes embarqués, mobiles, etc.).

Cependant, lutilisation de multiples modèles lors de l exécution d un système emporte des problèmes de gestion des modèles et des relations entre eux Vogel et al proposent d affronter de tels problèmes en utilisant des méga-modèles [58]. Un méga-modèle est défini comme :

« A megamodel is a model that contains models and relations between those models or between elements of those models. » [58]

Un méga-modèle fournit un langage qui supporte la modélisation de modèles et de relations entre eux. La gestion des modèles et de leurs relations est réalisée ainsi d une façon orientée modèles permettant l utilisation des techniques de l )DM existantes

Les méga-modèles fournissent ainsi un haut niveau d automatisation pour utiliser des modèles à l exécution et des relations. Ils peuvent être utilisés pour analyser automatiquement l impact d un changement d un modèle sur ses modèles liés Les relations sont utilisées pour synchroniser un changement d un modèle avec ses modèles liés, et ces modèles synchronisés sont donc analysés pour

connaître l impact du changement initial Ce processus d analyse d impacts peut être utilisé, par exemple, pour valider une adaptation affectant différents modèles avant d adapter réellement le système.

3.6 SYNTHESE

L approche )DM vise à utiliser des modèles pour la construction d applications logicielles L )DM fournit deux propriétés fondamentales pour la construction d applications l abstraction et la

séparation de préoccupations. En effet, la méta-modélisation préconise l utilisation de langages de haut niveau d abstraction qui peuvent être exploitables de façon automatisé

De plus, une application peut être représentée (prescrite et/ou décrite) à travers plusieurs modèles chacun représentant une préoccupation différente de l application Des mécanismes de composition de modèles et de métamodèles sont utilisés afin d intégrer des préoccupations différentes de l application Grâce à ces propriétés lIDM contribue à la maîtrise de la complexité des applications.

L IDM offre des supports pour gérer tout le cycle de vie des applications, de la conception à

l exécution En effet l approche models@run.time part des principes de l )DM et propose d utiliser à l exécution les modèles produits à la conception des applications afin de supporter la gestion de leur

exécution L utilisation des modèles de développement à l exécution permet ainsi d effacer l écart entre les modèles de développement et les modèles à l exécution

Dans cette thèse l ingénierie dirigée par les modèles dans sa vision étendue models@run.time)

est utilisée comme paradigme pour la modélisation et l administration d applications Notre objectif est

d étendre à l exécution l utilisation des modèles produits à la conception des applications afin de supporter la gestion de leur exécution réduisant ainsi l écart entre la conception et l exécution des

CHAPITRE