Une sémantique formelle des diagrammes d’interaction d’UML via les réseaux de Petri J. Cardoso — C. Sibertin-Blanc — C. Soulé-Dupuy Université Toulouse 1 - IRIT
Une notation pour la modélisation O-O des systèmes UML Une notation pour la modélisation O-O des systèmes Diagrammes de classe Diagrammes d’interaction : les communications entre les entités du système diagramme de Séquence / de Collaboration Diagrammes de comportement : diagramme d’Activité / d’Etat-Transition d’une entité Diagrammes d’architecture technique
Diagramme de Séquence
Diagramme de Collaboration
Diag. d’interaction : questions Quelle sémantique ? Analyse des propriétés, simulation, génération du code. Quelle modèle d’exécution ? Contrôle centralisé, ou la ligne de vie de chaque objet définit son comportement, et l’interaction résulte de l’exécution concurrente des objets.
Diag. d’interaction : syntaxe abstraite activation : structure arborescente (déclenchement d'une procédure) précédence : ordre partielle sur les messages d'une procédure action : action émettrice, synchrone ou non
De la syntaxe à la sémantique Formaliser la signification intuitive des diag. d’interaction 1) Passer de l’ordonnancement des messages à celui des actions : !m, ?m : actions d’envoi et de réception de m m1 précède m2 => !m1 < !m2 ; !m < ?m 2) traitement des procédures : _begin, _end : actions de début et de fin de procédure m active une procédure => ?m < m_begin ; . . . 3) Messages synchrone / asynchrone : m1 synchrone et précède m2 => ?m1 < !m2 4) Localisation du contrôle : ordonnancer l’ensemble des actions que chaque objet doit réaliser (=> faisabilité d’un contrôle purement local) 1) - 3) => l’ordre minimal < 1) - 4) => l’ordre d’exécution lg<
L’ordre minimal < Exple 1 Exple 2 Précédence UML : m1 préc m2 préc m3 L’ordre minimal < : Exécution conforme : respecte l’ordre minimal
Localisation du contrôle (1) On cherche une relation d'ordre qui : étende l’ordre minimal soit constituée de : - envoi / réception de messages - précédences locales à un objet O1 O3 O2 1: m1 2: m2 3: m3 Ordonnancement local des actions dans O1 : !m1 puis ?m3 dans O2 : ?m1 puis !m2 dans O3 : ?m2 puis !m3 L’ordre lg< :
Localisation du contrôle (2) Objectif : éviter les synchronisations inter-objet qui peuvent être obtenues par transitivité à partir de contraintes : de type envoi / réception d’un message locale à un objet Principe : ajouter dans chaque objet toutes les contraintes «raisonnables», sérialiser le plus possible les actions, en donnant priorité aux réceptions sur les émissions (= retarder le plus possible les émissions), l’interaction ne progresse (par émission) que lorsqu’elle est stabilisée (ttes les émissions précédentes ont été reçues).
Localisation du contrôle (3) Le calcul : L’ordre maximal << (sérialise) L’ordre local l< (obtenu par transitivité) L’ordre com< (complément de <) L’ordre lg< = l< U com<
Le réseau de Petri généré O1 O3 O2 1: m1 2: m2 3: m3
Exple 2 O1 O3 O2 1: m1 3: m3 2: m2 Le RP généré L’ordre lg<
Exploitation des résultats Th1 : toute exécution du RP est conforme (sans blocage et respecte l’ordre minimal). Th2 : le contrôle est local ssi l’ordre com< ne comporte que des envoie/réception de messages, Les autres contraintes nécessitent un communication supplémentaire. Pour chaque objet, l’ordre lg< indique les interactions qu’il doit réaliser => c’est la spécification de son diagramme d’activité.
ufrinfo: jkljkljkl klkopkkkkkkkkkkkk Conclusion Proposition d’une sémantique opérationnelle pour les diagrammes d’interaction d’UML qui : capture la possibilité d’un contrôle locale, rend un diagramme exécutable (par génération d’un RP), permet de vérifier la cohérence entre un diagramme d’interaction et le comportement de chaque objet. Reste à faire : gérer les alternatives d’un diagramme d’interaction, gérer les objets qui participent à plusieurs diag. d’inter. diagnostiquer les causes de la non-localité du contrôle.