• Aucun résultat trouvé

6.5 Politiques

6.5.1 Politique par concession

Principes

La politique par concession modifie l’initialisation de la négociation en faisant intervenir uniquement l’initiateur et les bénéficiaires en tant que parties négociantes. L’initiateur s’oriente alors vers les béné- ficiaires de la clause et exploite leurs capacités à faire des concessions. Ainsi, l’initiateur effectue des demandes de concession aux bénéficiaires. Compte tenu de leur responsabilité, comme les bénéficiaires s’appuient sur une clause et expriment des attentes vis-à-vis de celle-ci, ces demandes de concessions ont bien un sens, car elles visent à exploiter les capacités potentielles des bénéficiaires à assouplir leurs attentes, s’ils y sont disposés. Les bénéficiaires peuvent alors, en fonction de leur contribution ou non à la clause en échec, relâcher les contraintes de la clause en échec (i) par changement complet de la clause

7. La responsabilité de contributeur n’est pas exploitée par le modèle de négociation car celle-ci décrit davantage des composants qui interviennent plus indirectement dans les clauses en étant par exemple nécessaires à leur fermeture (voir annexe

Bsur le cycle de vie des contrats dansConFract). Ces composants contributeurs n’ont alors pas de rôle actif à jouer dans la négociation, contrairement aux composants bénéficiaires et garant dont les capacités, en terme de bénéfice/garantie vis-à-vis d’une clause, peuvent être exploitées.

Chapitre 6. Modèle de négociation

pour une nouvelle clause moins contrainte (relâchement de la clause entière), ou par changement de cer- tains termes paramétrés de la clause(relâchement de certains termes de la clause)8. Il est à noter que le

fait que les concessions proposées soient plus ou moins contraints les uns par rapport aux autres n’est pas forcément mesurable. Cela dépend beaucoup du formalisme de spécification utilisé et de l’espace dans lequel les valeurs sont définies. Par exemple, enQML, comme les spécifications expriment souvent des valeurs de seuils sur des valeurs entières, il est possible d’évaluer, statiquement sur les formules, qu’une spécification est plus ou moins contrainte qu’une autre. Par contre, dans le langageCCL-J, comme il est possible de spécifier dans le cas général de nombreux éléments à l’exécution, la comparaison de deux spécifications exprimées dans ce formalisme n’est pas forcément possible.

La mise en œuvre de cette politique exploite fortement la distinction affinée entre les rôles de béné- ficiaire principal et de bénéficiaire secondaire (cf. sectionB.3). En effet, en plus de la distinction due à la différence de visibilité, les bénéficiaires principaux sont ici distingués des bénéficiaires secondaires car ils possèdent des capacités de négociation plus développées. Les bénéficiaires principaux sont direc- tement concernés par la clause et ont la capacité de modifier la clause. En revanche, les bénéficiaires secondaires ont un rôle plus passif et ne peuvent pas faire avancer la négociation. Les bénéficiaires prin- cipaux négocient donc en leur nom, ainsi qu’en celui des bénéficiaires secondaires. Dans notre exemple précédent, pour la postcondition du contrat de composition externe sur <vs> (cf. page75), <ia> est le bénéficiaire principal car responsable de la correcte utilisation du contrat et de l’usage de <vs>, et <sf> bénéficiaire secondaire, car simple client du service et plus indirectement concerné.

Processus général

En cas d’échec d’une vérification, le processus de négociation piloté par la politique par concession se décompose selon les trois phases décrites dans la Fig.6.7.

1. Tout d’abord (phase 1), l’initiateur demande la négociabilité de la clause en échec à tous les bé- néficiaires, principaux et secondaires, et détermine la négociabilité de la clause par le biais d’une fonction additive pondérée. En effet, comme les avis exprimés par les différents bénéficiaires n’ont pas la même pertinence, différents poids sont attribués aux composants bénéficiaires, pour prendre en compte ces différences. Couplé à cela, la fonction additive pondérée permet alors à l’initiateur d’évaluer la négociabilité globale, qui se traduit par un seuil de négociabilité, en modérant l’avis exprimé par chaque composant par son poids. Ainsi, une clause est négociable in fine si un certain seuilde composants importants l’acceptent. Après évaluation de la négociabilité par l’initiateur, si la clause n’est pas négociable, la négociation atomique échoue pour cette politique.

2. Dans le cas contraire, si la clause est négociable (phase 2), l’initiateur demande aux bénéficiaires principaux de faire des concessions en lui passant une référence de la clause en échec. Les bénéfi- ciaires principaux peuvent alors proposer des concessions qui représentent des modifications soit sur la clause entière, soit sur certains termes paramétrées de la clause. Ces étapes de demandes et propositions de modifications sont itérées, et pour chaque modification proposée, l’initiateur ef- fectue les modifications puis réévalue la clause concernée. Si l’évaluation de la clause reste fausse alors l’initiateur annule la modification pour rétablir le contexte initial et redemande des conces- sions. Au contraire, si l’évaluation est vraie alors la négociation atomique est réussie, et l’initiateur finalise la négociation en demandant aux bénéficiaires d’effectuer les concessions correspondantes.

3. Autrement, dans une dernière étape (phase 3), dans le cas où aucune proposition ne s’avère être satisfaisante ou si l’initiateur ne reçoit que des demandes de retrait venant des bénéficiaires prin-

8. Dans ce cas, le bénéficiaire ne voit que la clause en échec, et selon l’expressivité du langage de spécification, il relâche la contrainte soit en modifiant certains termes donnés de la clause, soit en remplaçant entièrement la clause.

6.5. Politiques

cipaux, il procède alors à une dernière consultation pour demander aux bénéficiaires principaux et secondaires l’autorisation de retirer la clause.

Participant Initiateur Participant

de la clause (Phase 3) de la clause Demandes/Propositions (Phase 2) de relâchements Retrait éventuel Négociabilité (Phase 1)

Phases de négociation Processus de négociation Résultats de négociation

Négociation réussie

OUI NON

OUI Négociation impossible

Clause non négociable,

Clause maintenue, Clause modifiée (1) NON OUI (2) ou Clause retirée (2), NON Négociation en échec OUI (1) NON

Echec de vérification d’une clause

Réponse

Demande de négociabilité Réponse

Réponse Réponse

Finalisation

Analyse des propositions:

Demande de négociabilité

Raisonnement Raisonnement

Existence d’un relâchement autre qu’un retrait?

Attente des réponses Raisonnement

Demande de relâchement

Réinitialisation du contexte

Proposition de retrait Attente des réponses Attente des réponses

Raisonnement Raisonnement

Demande de retrait Demande de retrait Proposition de relâchement Exécution du relâchement Bénéficiaire Principal Finalisation Retrait de la clause? Clause négociable? Négociation de la clause Clause revalidée? Contrôleur de contrats Bénéficiaire Secondaire

FIGURE6.7 – Processus de négociation atomique par concession

Modèles de décision

Dans le déroulement la négociation par concession, les bénéficiaires principaux raisonnent en s’ap- puyant sur une liste d’alternatives qui décrit leurs préférences et représente les concessions successifs à faire au cours de la négociation. Ainsi, chaque composant Ci du système qui possède une responsa-

bilité de bénéficiaire dans une clause identifiée id, associe à cette dernière un ensemble d’alternatives ordonnées, représenté de la façon suivante :

Aid,Ci := {A 1 id,Ci, A 2 id,Ci, ..., A n

id,Ci,STOPouRELEASE}.

et dans laquelle chaque Aj

id,Ci, j∈ [1, n] représente la j

iemealternative (nouvelle formule, modifications

d’un terme de la formule) du composant bénéficiaire Ci pour la clause id.

Ainsi, au cours de la négociation, à chaque fois que l’initiateur émet une demande de concession au composant, celui-ci renvoie successivement, à partir de cette liste d’alternatives, une concession qui

Chapitre 6. Modèle de négociation

correspond à une des modifications de la clause ou des attributs. L’alternative STOP, resp. RELEASE, permet de notifier la fin de la concession en conservant la clause, resp. en autorisant le retrait de la clause. Les alternatives Aj

id,Ci sont optionnelles car un composant peut ne pas avoir de modifications à

proposer sur la clause, en revancheSTOPetRELEASE, sont obligatoires et exclusives car, au minimum, un bénéficiaire, doit exprimer si la clause sur laquelle il s’appuie doit être maintenue, ou au contraire peut être complètement retirée.

D’un point de vue méthodologique, ces modèles de décision doivent être fournis pour tout composant contractualisé qui a une responsabilité dans une clause dont on souhaite qu’elle puisse être négociée. Pour un système à composants contractualisés donné, les clauses et les contrats sont en nombre relativement réduit. De plus, comme parmi celles-ci, un certain nombre de clauses sont définies pour vérifier et détecter des erreurs fonctionnelles ou d’assemblages, elles ne sont pas destinées à être négociées. Il n’y a donc finalement qu’un très faible nombre de clauses négociables et pour lesquelles il faut fournir de telles listes d’alternatives, mais celles-ci sont malgré tout pertinentes compte tenu des propriétés qu’elles spécifient. Bilan

La politique par concession exploite les capacités des composants bénéficiaires et conduit à effectuer des modifications sur la clause en échec (remplacement de la clause, modifications de termes de la clause, retrait/maintien de la clause), sur les attributs des composants dans le but de relâcher les contraintes ou leurs contributions à la clause. En revanche, avec cette politique, la négociation reste confinée à un seul niveau de la hiérarchie des composants et n’exploite pas réellement la notion de composant hiérarchique mise en avant par le modèle Fractal . Pour pallier ceci et fournir au modèle de négociation d’autres formes de négociation, nous intégrons au modèle une autre politique par effort qui exploite d’autres responsabilités et permet de propager cette négociation vers des composants de niveaux inférieurs.