• Aucun résultat trouvé

8.4 Propri´et´es s´emantiques des relationships pour les LdPs

8.4.1 Dans l’espace de variabilit´e

Les propri´et´es couvrent les besoins classiques d’expression relationnelle des mod`eles de variabilit´e. Relations structurelles hi´erarchiques

❼ G´en´eralisation (sp´ecialisation) : couplage non sym´etrique s´emantiquement, qui permet de cr´eer un genre (hyperonyme) `a partir d’esp`eces (hyponyme), de cr´eer des super types `a partir de sous-types (parent - child ).

❼ Classification : (is a) permet de cr´eer des types `a partir d’instances.

❼ Agr´egation : association non sym´etrique, qui exprime un couplage fort et une relation de subordination de type “ensemble / ´el´ement”. Une paire d’´el´ements peut ˆetre reli´ee par une relation de type has a, marquant une d´ecomposition structurelle. Les cycles de vies de l’agr´egat et de ses ´el´ements agr´eg´es peuvent ˆetre ind´ependants.

❼ Composition (d´ecomposition): soit part-of, element-of, decomposed-in, repr´esente une re-lation plus soutenue d’agr´egation entre ´el´ements (agr´egation par valeur), o`u les cycles de vies des ´el´ements (les composants) et de l’agr´egat (le composite) sont li´es : si l’agr´egat est d´etruit (ou copi´e), ses composants le sont aussi.

Relations de configuration et variations s´emantiques

Les relations de configuration expriment des conformances causales. Elles sont de trois grandes familles qui peuvent ˆetre sp´ecialis´ees (cf. section suivante), `a savoir :

❼ requires : un ´el´ement e1 en n´ecessite un autre e2 pour fonctionner. En termes d’exigences de fonctionnement, r1est satisfaite, seulement quand r2est atteinte.

❼ co-implies : les ´el´ements e1 et e2 sont indissociables pour fonctionner. ❼ excludes : deux ´el´ements ne peuvent fonctionner de concert.

Divers usages de configuration

Plusieurs variations s´emantiques ´etendent les trois types de configuration, par exemple : ❼ implication : impacts, implies, includes, extends, requires, uses, provided-by, contributes-to,

influences, depends-on,

❼ co-implication : co-implies, realized-by,

❼ exclusion : excludes, incompatible with, mutex-with, conflicts et inconsistent-with (repr´e-sentation d’incoh´erence, de type d´eriv´ee).

Certaines s´emantiques insistent sur le fait qu’un ´el´ement ne peut remplir ses obligations ssi un autre ´el´ement est pr´esent, `a l’exemple de requires, uses et depends-on ; d’autres s’attachent `a d´ecrire l’interaction d’un ´el´ement avec un autre, par ex. impacts, et extends.

Ci-apr`es sont list´ees quelques variantes d’implication :

❼ hints : un variant a une influence positive sur un autre ; exemple l’espace m´emoire faible a un impact sur la taille de la carte.

❼ hinders : un variant a une influence n´egative sur un autre ; exemple : une fr´equence de processeur ´elev´e entraˆıne une augmentation de moyens de refroidissements.

❼ recommends : une forme moins critique de requires, elle peut par ex. servir `a exprimer une valeur par d´efaut.

❼ discourages : une forme all´eg´ee de excludes de criticit´e moyenne.

❼ interacts : il y a interaction entre deux variants si l’un modifie le comportement de l’autre. G´en´eralement ces variants sont reli´es `a des mod`eles d’ex´ecution.

❼ impacts : la s´election d’un ´el´ement a un impact sur un autre (sans plus de d´etails sur le type d’impact, ni sur son caract`ere positif ou n´egatif).

Abstraction et verticalit´e

Par ailleurs, certaines relations sont caract´eris´ees par leur verticalit´e. Les relations verticales sont relatives `a une pr´ecision de d´etails et de granularit´e, et ´egalement au franchissement d’une “fronti`ere” marqu´ee entre des niveaux d’abstractions. L’abstraction, outre son caract`ere par sch´e-matisation, caract´erisant la notion mˆeme de mod`ele (qui ne fait pas l’objet de l’´etude), permet une d´efinition de niveaux de mod´elisation. Des relations d’abstraction / raffinement pars`ement la description de l’espace de mod´elisation.

❼ satisfies : un ´el´ement r´epond aux attentes, aux besoins et aux d´esirs d’un autre.

❼ realized-by / provided-by : d´ecrit la notion de r´ealisation d’un ´el´ement plus abstrait par un autre.

❼ implements : d´ecrit la notion cl´e entre une impl´ementation, un ´el´ement concret, et sa sp´ecification, un ´el´ement abstrait. De mani`ere informelle, la relation peut ˆetre exprim´ee de la mani`ere suivante : un ´el´ement x impl´emente un ´el´ement plus abstrait y ssi x exhibe la s´emantique sp´ecifi´ee par y, en terme de comportement, de structure, etc.

❼ refines : (raffinement) le raffinement peut ˆetre de diverse nature, intra et extra mod`eles soit h´et´erog`ene ou homog`ene. Cette relation reste g´en´erique et les relations de sp´ecialisation, de r´ealisation, de satisfaction, et d’impl´ementation par exemple apportent une s´emantique adapt´ee `a chaque situation. De mani`ere globale, le raffinement propose une description davantage d´etaill´ee (de l’impl´ementation, des services) d’un ´el´ement.

❼ allocated-to : un ´el´ement est allou´e `a une certaine ressource physique.

Concernant la d´ecomposition structurelle inter-mod`ele et homog`ene, des relations de g´en´e-ralisation / sp´ecialisation, classification, agr´egation et d´ecomposition font office de relations de raffinement.

Similarit´e et chevauchement s´emantique

Alors que les mod`eles de variabilit´e trouvent leur fondement dans l’expression des diff´erences, certaines relations se d´edient `a l’expression de similarit´es. Deux ´el´ements substituables peuvent diff´erer dans leurs caract´eristiques non-fonctionnelles, telles que le temps d’ex´ecution, l’espace m´emoire requis, le coˆut, la licence, les restrictions l´egales d’usage, le niveau de confiance de conformit´e, etc.

`

A un niveau de mod´elisation donn´e, sur une mod´elisation inter-mod`ele (mˆeme “type” de mod`eles), une ´equivalence entre deux ´el´ements traduit que ces deux ´el´ements font r´ef´erence `a un ´el´ement commun du monde r´eel et repr´esentent donc un concept identique. Cette relation est qualifi´ee de bissimilaire math´ematiquement parlant.

Ces relations permettent une d´efinition du chevauchement entre des mod`eles (overriding) que se soit `a un mˆeme niveau et type de mod´elisation avec une finalit´e de fusion (merge) de mod`eles, ou entre deux types de mod`eles pour de la v´erification de coh´erence (entre mod`ele de classe et diagrammes `a ´etats par exemple). En effet, f1´equivalent `a f2signifie Jf1K = Jf2K, mˆeme s´emantique. Y apparaissent les appellations same, equivalent, identity.

Une relation de correspondance s´emantique entre ´el´ements de mod`eles (“overlapping ele-ments”) est de grande importance pour raisonner sur les mod`eles, de mˆeme que pour les int´egrer et les r´econcilier.

Relations et comportements

Des relations telles celles de hi´erarchisation ou de configuration pr´esent´ees pr´ec´edemment sont qualifi´ees de statiques ; `a l’inverse d’autres peuvent marquer une dynamicit´e par la description d’un comportement d´esir´e ou une mod´elisation `a l’ex´ecution (runtime).

8.4. Propri´et´es s´emantiques des relationships pour les LdPs

Les d´ependances d’activation sont au nombre de cinq :

❼ excluded activation : un ´el´ement exclut le fonctionnement d’un autre ;

❼ required activation : (subordinate activation) un ´el´ement peut ˆetre actif, ssi un autre est actif dans la mˆeme fenˆetre temporelle ;

❼ concurrent activation : (collateral activation) deux ´el´ements sont actifs de mani`ere concur-rentielle. L’activation est simultan´ee, et la d´ependance est donc bidirectionnelle. La d´esi-gnation collateral en est un synonyme.

❼ sequential activation : un ´el´ement est actif `a la suite d’un autre. L’activation de deux ´el´ements est s´equentielle, l’un juste apr`es l’autre. Ce type de d´ependance peut repr´esenter des flux de contrˆole ou des op´erations de flux de donn´ees. La d´esignation serial en est un synonyme.

❼ synergetic activation : deux ´el´ements ou plus doivent se synchroniser sporadiquement du-rant leur p´eriode d’activation. Ces relations repr´esentent la pr´esence de relations s´equen-tielles dans un environnement de concurrence.

D´edi´e `a une pr´eoccupation donn´ee

Certaines s´emantiques s’orientent vers une pr´eoccupation sp´ecifique, en voici quelques exemples : ❼ resource usage : dans le cas de ressources disponibles de mani`ere limit´ee dans le temps, cette s´emantique marque une exclusion temporairement limit´ee en fonction de la pr´eemption d’une resource donn´ee ;

❼ environment induced : un ´el´ement est li´e `a son environnement physique ou `a un contexte mod´elis´e `a un certain niveau d’abstraction ;

❼ provided by : dans le cas de services, un ´el´ement est fourni par un autre, induisant une d´ependance de type n´ecessit´e et s´equencement ;

❼ invokes, synchronizes with, excludes, preempts : dans le cas de structures de processus et de proc´edures, utilis´es `a des fins d’am´elioration des performances du syst`eme, elles permettent la tra¸cabilit´e des flux de contrˆoles, le d´ebogage, et permet d’am´eliorer la tra¸cabilit´e, la maintenance, et la compr´ehension.

R´ecapitulatif des propri´et´es

Les propri´et´es s´emantiques sont li´ees `a d’autres attributs de d´efinition de la relation. Le ta-bleau 8.2 pr´esente les contraintes associ´ees `a la s´election de chaque propri´et´e s´emantique de l’espace de variabilit´e. Dans la pratique, des contraintes OCL sont ´etablies afin de v´erifier le comportement souhait´e. `A l’exemple du listing 8.4 qui pr´esente un invariant sp´ecifiant que la propri´et´e `a generalization, implique automatiquement d’avoir un type interconcern, une coordi-nation de type implication, un niveau de criticit´e high, et un impact de type induction.

c o n t e x t : P L S e m a n t i c s I n t e r p r e t a t i o n i n v : p r o p e r t y = S e m a n t i c s P r o p e r t y : : g e n e r a l i z a t i o n i m p l i e s c o n c e r n R e l a t e d = ConcernType : : i n t e r and p r o p o s i t i o n a l C o o r d i n a t i o n = CoordinationType : : i m p l i c a t i o n and c r i t i c i t y = C r i t i c i t y L e v e l : : h i g h and impact = R e l a t i o n I m p a c t : : i n d u c t i o n

Tableau 8.2: Propri´et´es s´emantiques pr´ed´efinies - espace de varia-bilit´e.

Nom Propri´et´es associ´ees

generalization intraconcern, implication, high criticity level, induction classification (is a) intraconcern, implication, high criticity level, induction

aggregation (has a) horizontal modeling level, intraconcern, implication, high criticity level, induction

composition (part-of, element-of, decomposed-in)

horizontal modeling level, intraconcern, implication, high criticity level, induction

requires horizontal modeling level, intraconcern, implication, high criticity level, induction

includes horizontal modeling level, intraconcern, implication, high criticity level

extends horizontal modeling level, intraconcern, implication, high criticity level

provided-by horizontal modeling level, intraconcern, implication, high criticity level, induction

uses intraconcern, implication, high criticity level, induction contributes-to intraconcern, implication, high criticity level, modification influences intraconcern, implication, high criticity level, modification depends-on intraconcern, implication, high criticity level

impacts implication, high criticity level

implies implication, high criticity level, induction

co-implies horizontal modeling level, intraconcern, co-implication, high criti-city level, induction

realized-by vertical modeling level, intraconcern, co-implication, high criticity level, induction

excludes horizontal modeling level, intraconcern, exclusion, high criticity level

incompatible-with intraconcern, exclusion, high criticity level, induction mutex-with intraconcern, exclusion, high criticity level, induction conflicts intraconcern, exclusion, high criticity level

inconsistent-with horizontal modeling level, intraconcern, exclusion, high criticity level, induction

hints intraconcern, implication, medium criticity level hinders intraconcern, exclusion, medium criticity level discourages intraconcern, exclusion, medium criticity level recommends intraconcern, implication, low criticity level

interacts intraconcern, co-implication, high criticity level, run

satisfies vertical modeling level, interconcern, implication, high criticity level, design, induction

realized-by / provided-by

vertical modeling level, interconcern, co-implication, high criticity level, design, induction

implements vertical modeling level, interconcern, implication, high criticity level, design, induction

`

8.4. Propri´et´es s´emantiques des relationships pour les LdPs

Nom Propri´et´es associ´ees suite. . . suite. . .

refines vertical modeling level, interconcern, implication, high criticity level, design, induction

allocated-to vertical modeling level, interconcern, implication, high criticity level, design, induction

equivalent horizontal modeling level, intraconcern, co-implication, high criti-city level excluded-activation horizontal, intraconcern, exclusion, run time, activation, high level required-activation horizontal, intraconcern, implication, run time, activation, high

level

concurrent-activation horizontal, intraconcern, co-implication, run time, activation, high level

sequential-activation horizontal, intraconcern, implication, run time, activation, high level

synergetic-activation horizontal, intraconcern, co-implication, run time, activation, high level

resource-usage horizontal, intraconcern, exclusion, high level

environment-induced horizontal, interconcern, implication, induction, high level provided by

flow-invokes horizontal, intraconcern, implication, activation flow-synchronizes-with horizontal, intraconcern, co-implication, activation flow-excludes horizontal, intraconcern, exclusion, activation flow-preempts horizontal, interconcern, implication, induction