Diagrammes dynamiques en UML

Documents pareils
Les diagrammes de modélisation

Cours de Génie Logiciel

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Conformité aux exigences de la réglementation "21 CFR Part 11" de la FDA

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Table des matières Sources

Cours STIM P8 TD 1 Génie Logiciel

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Chapitre I : le langage UML et le processus unifié

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

Qualité du logiciel: Méthodes de test

Documentation pour l envoi de SMS

Chapitre 2. Classes et objets

Université de Bangui. Modélisons en UML

Initiation à LabView : Les exemples d applications :

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Ingénierie des Modèles. Méta-modélisation

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Algorithmes de recherche

UML : DIAGRAMME D ETATS

Projet Active Object

Cours Informatique Master STEP

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Conception de circuits numériques et architecture des ordinateurs


Le Guide Pratique des Processus Métiers

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Cours d algorithmique pour la classe de 2nde

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

TP3 : Creation de tables 1 seance

Initiation à la programmation en Python

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Héritage presque multiple en Java (1/2)

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

WEA Un Gérant d'objets Persistants pour des environnements distribués

OASIS Date de publication

DirXML License Auditing Tool version Guide de l'utilisateur

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No5-1

Java Licence Professionnelle CISII,

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Montage non-linéaire. Techniques et méthodes

Cours Programmation Système

4D Server et les licences : fonctionnement et environnement

Cours Composant 2. Qualité logicielle et spécications algébriques

Diagramme de classes

Votre appareil est configuré en usine pour permettre d'envoyer immédiatement des SMS.

Boîte à outils OfficeScan

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Algorithmique avec Algobox

4. Groupement d objets

Recherche dans un tableau

5004H103 Ed. 02. Procédure d installation du logiciel AKO-5004

Septembre 2012 Document rédigé avec epsilonwriter

Propagation sur réseau statique et dynamique

Wildix Web API. Guide Rapide

Courriel Archiver Version 2: Sommaire. Archiver : Sommaire. Comment ça marche Support Technique Préférences. Recherche

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Alcatel OmniPCX Office

TABLEAU CROISE DYNAMIQUE

Service pénal Fiche contrevenant

ACQUISITION ANALYSE PRÉSENTATION

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

AccuRead OCR. Guide de l'administrateur

OCL - Object Constraint Language

v7.1 SP2 Guide des Nouveautés

LE PROTOCOLE D ACCORD PREELECTORAL (PAP)

«courtier» : un broker ou un dealer au sens de la Loi de 1934 dont l'établissement principal est situé aux États-Unis d'amérique;

Mobyt Intégration par Webservice TABLE DES MATIERES

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

1. Introduction Création d'une requête...2

Manuel d'utilisation

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Mode d emploi de la mise à jour du microprogramme

Excel 2007 Niveau 3 Page 1

Guide utilisateur de l application messagerie vocale visuelle pour smartphone

Introduction aux algorithmes répartis

GdsCompta. Logiciel de comptabilité générale

Conditions d utilisation

Initiation au logiciel de gestion bibliographique Zotero

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Tutorial sur SQL Server 2000

Mobyt Intégration HTTP TABLE DES MATIERES

Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11

Transcription:

machines initial La ligne messages fragments en UML, collaboration, d'état-transition, d'activité LIRMM / Université Montpellier 2 22 novembre 2015

Introduction machines initial La ligne messages fragments statiques ( d'instances et classe) Structure d'un système Signatures méthos Dynamique du système

Sommaire machines initial La ligne messages fragments 1 machines initial 2 3 La ligne messages fragments

Sommaire machines initial La ligne messages fragments 1 machines initial 2 3 La ligne messages fragments

machines machines initial La ligne messages fragments machines, aussi appelés d'état-transition, servent à modéliser la dynamique d'un sous-système, souvent d'une classe. Une machine décrivant le comportement d'une classe décrit en fait la dynamique toutes ses instances à la réception ou à l'envoi messages. fermer verrouiller Ouverte Fermee Verrouillee ouvrir verrouiller Figure: Diagramme d'état-transition très simple pour une porte

machines initial La ligne messages fragments Un état modélise une situation où un certain invariant (généralement implicite) est maintenu (la porte est fermée, un compte bancaire a un sol positif,...) Transition : passage d'un état à un autre Il peut y avoir plusieurs événements déclencheurs possibles, auquel cas on les liste tous (en les séparant par s virgules). L'action peut être une aectation d'attribut, un appel métho,... Quand aucun événement déclencheur n'est spécié, la transition est dite spontanée. A Figure: m[c]/a B Une transition

initial machines initial La ligne messages fragments Un pseudo-état initial (noté graphiquement par un petit disque noir) représente un sommet qui est la source d'une seule transition vers l'état par défaut d'une machine à état ou d'un état composite. La transition initiale peut être munie d'une action. L'état nal matérialise le fait qu'une région (une machine à état ou une région d'état composite) est terminée (voir notation gure 3). Figure: Etat initial Etat final initial et Final

machines initial La ligne messages fragments Un état composite : soit contient une seule région soit est décomposé en 2 ou plusieurs régions orthogonales Un état inclus dans une région d'un état composite est appelé un sous-état cet état composite. C'est un sous-état direct quand il n'est pas contenu par un autre état, et sinon un sous-état indirect.

Exemple machine à état avec état composite machines initial La ligne messages fragments Figure: Exemple machine à état avec état composite

Exemple avec état à régions orthogonales machines initial La ligne messages fragments Figure: État composite orthogonal, extrait du document spécication d'uml 2.0

Comportement d'entrée et sortie, comportement dans un état machines initial La ligne messages fragments PreparationBoisson /do clignoter() /entry emissionbip() /exit emissionbip() Figure: Actions d'entrée et sortie s états, comportement dans les états + on evenement / action

Historiques machines initial La ligne messages fragments Il existe s états dits mémoire qui permettent rerentrer dans un état composite dans le même sous-état que quand on en est sorti. Il y a ux états mémoire : historique superciel et historique profond. Historique superciel (Shallow history) (noté H). L'historique superciel représente le sous-état actif le plus récent (mais pas les sous-états ce sous-état). Historique profond (Deep history) (noté H*). L'historique profond représente la conguration active la plus récente l'état composite qui contient directement l'historique profond (c'est-à-dire la conguration active la rnière fois qu'on a quitté l'état composite). H H* Shallow history DeepHistory

Autres pseudo-états machines initial Il existe d'autres pseudo-états comme les jonctions, les choix ou les branchements, nous ne les détaillerons pas ici. La ligne messages fragments

Question cours machines initial La ligne messages fragments Nous étudions une montre très simple. Elle possè ux boutons : avance et mo. Le mo par défaut est le mo achage. Quand on appuye une fois sur le bouton mo, la montre passe en mo modication s heures. Chaque pression sur le bouton avance incrémente l'heure d'une unité. Quand on appuye une nouvelle fois sur le bouton mo, la montre passe en modication s minutes. Chaque pression sur le bouton avance incrémente les minutes d'une unité. Quand on appuye une nouvelle fois sur le bouton mo, la montre repasse en mo achage. Représentez le diagramme d'états la montre.

Sommaire machines initial La ligne messages fragments 1 machines initial 2 3 La ligne messages fragments

d'activité machines initial La ligne messages fragments permettent représenter s ots contrôle et données. Ils permettent donc par exemple représenter le comportement d'une opération ou d'un cas d'utilisation. d'activité sont s graphes, avec diérents types n uds et d'arcs. Ils mettent en jeu principalement : s n uds actions s n uds contrôle permettant spécier l'enchaînement s actions (synchronisation, branchement,...) s n uds d'objet permettant représenter les objets créés ou utilisés au cours d'une activité s arcs transition permettant relier les n uds.

Exemple machines initial La ligne messages fragments Inserer monnaie [credit insuffisant] [credit suffisant] Choix boisson Distribution cuillere Distribution boisson Emission bip

Représentation graphes ot contrôle machines initial La ligne messages fragments N ud initial (Initial no). Point d'entrée pour invoquer une activité. Un jeton contrôle est placé au n ud initial quand l'activité commence. N ud n d'activité (Activity nal no). Stoppe tous les ots dans une activité. Un jeton atteignant un n ud n d'activité fait avorter tous les ots en cours, l'activité est donc terminée et le jeton est détruit (ainsi que tous les jetons circulant dans l'activité). N ud n ot (Flow Final no). Termine un ot. Le n ud ot nal détruit les jetons y entrant.

Représentation graphes ot contrôle machines initial La ligne messages fragments N ud d'action (Action no). Unité fondamentale la fonctionnalité exécutable d'une activité. Une action s'exécute quand toutes les contraintes sur ses ots contrôle entrants sont satisfaites (jonction implicite). L'exécution consomme les jetons contrôle entrants puis présente un jeton sur chaque ot sortant (branchement implicite). Flot contrôle (Control ow). Passage s jetons. jetons oerts par le n ud source sont oerts au n ud stination.

Représentation graphes ot contrôle machines initial La ligne messages fragments N ud décision (Decision no). Choix parmi les ots sortants. Chaque jeton arrivant sur un n ud décision ne peut traverser qu'un seul ot sortant. jetons ne sont pas dupliqués. Ce sont les gars sur les ots sortants qui permettent le choix (les gars doivent assurer le déterminisme du choix). N ud branchement (Fork no). Partage d'un ot en ots concurrents. jetons arrivant d'un branchement sont dupliqués sur les ots sortants.

n'aectent pas le ot s jetons. Représentation graphes ot contrôle machines initial La ligne messages fragments N ud jonction (Join no). Synchronisation plusieurs ots. Si un jeton contrôle est oert sur chaque ot entrant, alors un jeton contrôle est oert sur le ot sortant. N ud fusion (Merge no). Rassemblement plusieurs ots. Tous les jetons oerts sur les ots entrants sont oerts sur le ot sortant sans synchronisation. Partition d'activité (Activity Partition). Intie s actions ayant une caractéristique commune. partitions

Sommaire machines initial La ligne messages fragments 1 machines initial 2 3 La ligne messages fragments

machines initial La ligne messages fragments permettent représenter les interactions entre s instances particulières. Un diagramme met en jeu : s instances, et éventuellement s acteurs, s messages échangés par ces instances. Un message dénit une communication entre instances. Ce peut être par exemple l'émission d'un signal, ou l'appel d'une opération. Le diagramme permet d'insister sur la chronologie s interactions : le temps s'écoule grosso modo du haut vers le bas. ont été profondément modiés lors du passage d'uml1.x à UML2.0, et à l'heure actuelle, peu gens utilisent la nouvelle notation

Exemple nom du diagramme instances machines initial La ligne messages fragments sd appelsdemethos b:bibliotheque l:livre a:abonne emprunter(a) setestempruntepar(a) getnomemprunteur() getnom() envoi message messages reception message Figure: Premier exemple diagramme ligne activation

La ligne machines initial La ligne messages fragments À chaque instance est associée une ligne, qui représente la l'objet. événements survenant sur une ligne (réception message ou envoi message) sont ordonnés chronologiquement. La ligne est représentée par une ligne pointillée quand l'instance est inactive, et par une boîte blanche ou grisée quand l'instance est active. Quand une instance est détruite, on stoppe la ligne par une croix. sd creationdestruction m:meeting r:rapport Figure: Ligne

messages machines initial La ligne messages fragments messages sont représentés par s lignes èchées. À chaque extrémité la ligne èchée correspond un événement (réception ou envoi). Le sens la èche permet déterminer dans quel sens va le message. Messages synchrones et asynchrones (voir Figure 11). Figure: message asynchrone appel synchrone retour synchrone Messages

Exemple nom du diagramme instances machines initial La ligne messages fragments sd appelsdemethos b:bibliotheque l:livre a:abonne emprunter(a) setestempruntepar(a) getnomemprunteur() getnom() envoi message messages reception message Figure: Premier exemple diagramme ligne activation

Syntaxe s noms message machines initial La ligne messages fragments La syntaxe pour le nom d'un message est : ([attribut =] signal-ou-nomoperation [( [liste-arguments])][: valeur-retour]) * où la syntaxe pour un argument est : ([nomparam =] valeur-argument) (attribut = nomparamout [: valeurargument]) - * signie : n'importe quel type message - signie : paramètre indéni Par exemple, on peut avoir les noms message suivants : getage() getage() :12 age=getage() :12 setage(age=15) setage(-)

Exemple d'appel métho sd appelsdemethos machines initial b:bibliotheque emprunter(a) getnomemprunteur() l:livre a:abonne setestempruntepar(a) getnom() getnomemprunteur():"toto" getnom:"toto" La ligne messages fragments Figure: Appels méthos ne sont pas à concevoir indépendamment s autres, comme par exemple le diagramme classes.

fragments séquence possible puis la version 2.0 d'uml existence plusieurs opérateurs composition machines initial La ligne messages fragments fragment combine nom l operateur operans sd ExAlternative alt u:user getauteurdulivre(nom) :auteur s:system [pas livre nomme nom] :"erreur : nom livre inexistant" [u non connecte] :"erreur : connexion requise" [ else ] ligne separation s operans conditions gar Figure: Opérateurs composition et fragments combinés

Alternative et optionnalité machines initial alternative (noté alt) permet représenter le choix (exclusif) entre plusieurs comportements optionnalité (noté opt) permet représenter un comportement qui n'a lieu que si une condition gar est vraie sd ExAlternative u:user getauteurdulivre(nom) s:system La ligne messages fragments alt [pas livre nomme nom] :"erreur : nom livre inexistant" [u non connecte] :"erreur : connexion requise" :auteur [ else ] 3 operans i.e. 3 comportements alternatifs conditions reprise du comportement commun

parallèle machines initial La ligne messages fragments L'opérateur composition parallèle (noté par) permet spécier s comportements qui peuvent avoir lieu en parallèlle les uns s autres. Cet opérateur est n-aire. Quand un comportement A est en parallèle avec un comportement B, l'ordre partiel s événements A et B est conservé. Raccourci syntaxique : corégion

séquentielle faible sd ExCompoFaible c1: c2: c3: machines initial La ligne messages fragments seq A B C E Figure: séquentielle faible (seq) A B D C E F C E D F F D sd ExOrdrePossibleSeq A C c1: c2: c3: E Figure: Un diagramme séquence pouvant en résulter B F D

séquentielle forte sd ExCompoForte c1: c2: c3: machines initial strict A B C E F D La ligne messages fragments Figure: séquentielle forte (strict) A B D C E F C E D F B E

Boucle machines initial La ligne messages fragments L'opérateur loop permet d'itérer s comportements. On doit pour cela spécier : le nombre minimum minint tours boucles, le nombre maximum maxint tours boucle (* signie inni), une condition gar, une unique opéran représentant le comportement sur lequel on boucle. Syntaxe la boucle : loop[ (minint [, maxint ] ) ] Par défaut, minint=0 et maxint=*..

Exemple boucle machines initial sd ExLoop loop bib:bibliotheque c:catalogue b:book C:Constraint getfirstbook() b=getfirstbook() [b.satisfies(c)] getnextbook() b=getnextbook() La ligne messages fragments Figure: Boucles dans les

Question cours machines initial La ligne messages fragments Une métho qui calcule le temps déménagement d'un déménagement avec empaquetage : temps trajet+temps d'empaquetage + distance au véhicule l'origine et la stination.