Download Introduction

Transcript
V.3. Construction du réseau global
Cet indéterminisme sera d'ailleurs fréquemment levé par la structure même des ObCS (voir par
exemple l'ObCS d'implémentation de la classe Fichier_protégé), mais le concepteur peut fort bien
souhaiter conserver cet indéterminisme jusqu'à l'implémentation.
L'ObCS de la classe ServeurG, tel qu'il résulte de l'étape 2, est illustré en Figure V.7.
Etape 3 : Gestion de l'instanciation dynamique.
On pourrait croire, d'après le processus de construction tel qu'il a été décrit jusqu'ici, que la création
dynamique de nouveaux objets dans le système va entraîner la génération de nouveaux réseaux
représentant leurs ObCS, et que le système est donc modélisé par un ensemble de réseaux dont la
structure évolue, d'une manière comparable à l'extension dynamique des transitions d'invocation
décrite dans [Huber…89].
Nous ne voulons pas, cependant, gérer un ensemble de réseaux qui évolue dans le temps, parce que
c'est renoncer à la plupart des possibilités de validation formelle liées à la théorie des RdP (toutes
celles qui reposent sur l'analyse de la matrice d'incidence). Au contraire notre but est de fournir un
ensemble de réseaux déterminé statiquement qui produise le même comportement résultant.
L'étape 3 permet d'obtenir ce résultat en conservant un réseau pour chaque classe d'objets du système,
et en rassemblant par pliage le marquage d'un nombre quelconque d'instances de cette classe.
On a indiqué au chapitre III.3 que les attributs définis pour une classe d'objet sont utilisés comme
registres de son ObCS. Le chapitre II.2 a montré que les registres des RPO étaient une facilité
syntaxique pour désigner des jetons présents dans des places cachées du réseau.
L'ObCS de chaque classe est modifié de la manière suivante :
1° Introduction des places-attribut : une nouvelle place est ajoutée pour chaque attribut de la
classe, et le type de cette place est le même que celui de l'attribut. Chaque place-attribut est
connectée en entrée et en sortie à chaque transition où l'attribut associé est utilisé, et les arcs
sont étiquetés avec le nom de l'attribut. Par utilisation d'un attribut on doit entendre :
-
Affectation d'une valeur à l'attribut au sein de l'action de la transition ;
-
Utilisation de la valeur de l'attribut au sein d'une expression ;
-
Appel d'une opération interne qui utilise dans son code l'attribut ;
-
Test de la valeur de l'attribut dans une précondition ;
-
Utilisation de l'attribut comme paramètre réel d'un appel de service.
2°) Certaines transitions (TI ou transitions privées) peuvent n'avoir aucune place d'entrée dans
l'ObCS, décrivant ainsi des services ou des actions internes qui sont toujours activables. Si le
cas se présente, on ajoute à ces transitions une place en entrée et sortie, cette place possédant
un marquage initial d'un jeton simple ;
3°) Le type de la classe est ajouté à la définition du type de chaque place de l'ObCS (y compris les
places qui ont été ajoutée aux étapes précédentes) à l'exception des places paramètre et résultat
des TI et de places résultat des transitions de retour. On ajoute conformément la variable self
aux arcs adjacents ;
151