next up previous contents
suivant: C. Exécution d'une configuration monter: B. Aspects dynamiques d'une précédent: B.3 Algorithmes   Table des matières

Sous-sections

B.4 Opérations sur les configurations

La structure d'une configuration d'entrée est susceptible d'évoluer dans le temps: elle peut être éditée. Cette évolution est réglée par un ensemble déterminé d'opérations, qui décrivent les évolutions possibles d'une configuration tout en imposant des contraintes sur celles-ci.

B.4.1 Opérations élémentaires

Une opération élémentaire sur une configuration est une fonction qui à une configuration $ C$ et un ensemble de dispositifs $ \Delta $ associe une nouvelle configuration $ C'$ et un nouvel ensemble $ \Delta'$. $ \Delta'$ comprend les dispositifs de $ \Delta $ plus les dispositifs susceptibles d'être non consistants dans $ C'$, c'est-à-dire les dispositifs pouvant nécessiter une mutation.

Quatre opérations élémentaires sont énumérés par la suite, et décrits chacun par un algorithme simple montrant comment $ C'$ et $ \Delta'$ s'obtiennent à partir de $ C$ et $ \Delta $.

B.4.1.1 Clonage de dispositifs

Le clonage d'un dispositif non composite $ d$ dans une configuration consiste à créer puis à ajouter dans cette configuration un nouveau dispositif possédant les mêmes valeurs d'attributs, mais ne comportant pas de connexion.

$ Op_{cloner(d)}: (C, \Delta) \mapsto (C', \Delta')$

avec $ d \in C.dispositifs$.

  1. Création d'un dispositif $ d'$ vide;
  2. Copie dans $ d'$ des valeurs des attributs atomiques et des fonctions de $ d$;
  3. Copie dans $ d'$ des paramètres et des slots non s-mutables et non absents de $ d$;
  4. Ajout de $ d'$ à $ C.dispositifs$;
  5. Ajout de $ d'$ à $ \Delta $.

B.4.1.2 Ajout d'un dispositif

L'ajout d'un nouveau dispositif dans une configuration consiste en la copie d'un des dispositifs prototypes présents dans un des dossiers de prototypes de la configuration. L'opération d'ajout est la même que celle de clonage (même algorithme), à ceci près que le dispositif cloné appartient à l'un des dossiers de prototypes de la configuration.

$ Op_{ajouter(p)}: (C, \Delta) \mapsto (C', \Delta')$

avec $ p \in D.prototypes$ et $ D \in C.bibliotheque$.

  1. Appliquer $ Op_{cloner(p)}$ à $ (C, \Delta)$;
  2. $ p.parent = C$;

B.4.1.3 Connexion

Une opération de connexion consiste à relier un slot de sortie à un slot d'entrée par une nouvelle connexion. Elle est définie ainsi pour deux slots non externes:

$ Op_{connecter(s, e)}: (C, \Delta) \mapsto (C', \Delta')$

avec:

  1. Création d'une nouvelle connexion $ x = s \rightarrow e$;
  2. Ajout de $ x$ à $ C.connexions$;
  3. Ajout de $ \{d_1, d_2\}$ à $ \Delta $.

B.4.1.4 Déconnexion

Une opération de déconnexion entre deux slots consiste à supprimer la connexion correspondante dans la configuration.

$ Op_{deconnecter(s, e)}: (C, \Delta) \mapsto (C', \Delta')$

avec:

  1. Suppression de la connexion $ s \rightarrow e$ de $ C.connexions$;
  2. Ajout de $ \{d_1, d_2\}$ à $ \Delta $.

B.4.1.5 Suppression d'un dispositif

La suppression d'un dispositif dans une configuration implique la suppression de toutes les connexions qui lui sont liées.

$ Op_{supprimer(d)}: (C, \Delta) \mapsto (C', \Delta')$

avec $ d \in C.dispositifs$

  1. Pour toute connexion $ s \rightarrow e$ de $ C$ telle que $ s \in d.slots$ ou $ e \in d.slots$, appliquer $ Op_{deconnecter(s, e)}$ à $ (C, \Delta)$;
  2. Suppression de $ d$ dans $ C.dispositifs$.

B.4.2 Opérations consistantes

Une opération consistante sur une configuration est une fonction qui à une configuration $ C$ associe une nouvelle configuration $ C'$ dont les dispositifs sont consistants. Une opération consistante peut être définie à partir d'une suite d'opérations élémentaires, de la manière suivante:

$ Op_{(Op_1, \dots, Op_n)}: C \mapsto C'$

  1. Soit $ \Delta = \varnothing$;
  2. Appliquer dans l'ordre les $ Op_i$ sur $ (C, \Delta)$;
  3. Appliquer l'algorithme de mutation avec propagation sur $ \Delta $.


next up previous contents
suivant: C. Exécution d'une configuration monter: B. Aspects dynamiques d'une précédent: B.3 Algorithmes   Table des matières
Pierre Dragicevic 2005-07-22