O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Support de cours Conception orientée objets - partie 2.pdf

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
POO-JAVA-partie3.pdf
POO-JAVA-partie3.pdf
Carregando em…3
×

Confira estes a seguir

1 de 53 Anúncio

Mais Conteúdo rRelacionado

Mais de YasushiTsubakik (17)

Mais recentes (20)

Anúncio

Support de cours Conception orientée objets - partie 2.pdf

  1. 1. Diagrammes d’activités 1
  2. 2. Les diagrammes d’activités permettent de modéliser les traitements (adaptés à la modélisation des flots de contrôle et des flots de données). Permettent de représenter graphiquement le comportement d’une méthode ou l’exécution d’un scénario de cas d’utilisation. La représentation des diagrammes d’activités est proche de celle des diagrammes d’états-transitions, mais leur sémantique diffère. 2
  3. 3. Les diagrammes d’états-transitions : adaptés aux systèmes réactifs et chaque diagramme est relatif à une classe (ou objet). Les diagrammes d’activités ne sont pas rattachés à une classe particulière. On peut attacher un diagramme d’activités à n’importe quel élément de modélisation afin de visualiser ou de décrire son comportement. Différence principale entre diagramme d’interaction et diagramme d’activités est que les premiers mettent l’accent sur le flot de contrôle d’un objet à l’autre; les seconds modélisent sur le flot de contrôle entre activités. 3
  4. 4. Les diagrammes d’activité ont un pouvoir d’expression proches des langages de programmation objet. Par exemple, la spécification des actions de base comme l’affectation, les structures conditionnelles, les boucles, ainsi que des instructions particulières spécifiques à la programmation objet (appel de méthodes, exception,…). Les diagrammes d’activités peuvent être bien adaptés pour la phase de spécifications détaillées des traitements. 4
  5. 5. Terminologie 5
  6. 6. Action, activité et Transition = éléments principaux d’un diagramme d’activité. - Action (action) = plus petit traitement qui peut être exprimé en UML, en agissant sur le système. Une action peut être rapprochée de la notion d’instruction élémentaire d’un langage de programmation (comme Java). Par exemple : une affectation de valeur à un attribut, un accès à la valeur d’une propriété, un calcul arithmétique simple, l’émission ou réception d’un signal ; 6
  7. 7. Quelques types d’actions utilisées en UML Action appeler (call operation) : invocation d’une méthode sur un objet (de manière synchrone ou asynchrone). Lorsque l’action est exécutée, les paramètres sont transmis à l’objet appelé. appel asynchrone : l’action est terminée et les éventuelles valeurs de retour seront ignorées.  appel synchrone : l’appelant est bloqué pendant l’exécution de l’action jusqu’à la fin d’exécution et, le cas échéant, les valeurs de retour pourront être réceptionnées. 7
  8. 8. Action envoyer (send) : crée un message et le transmet à un objet appelé. C’est un appel asynchrone (ne bloque pas l’objet appelant). Bien adapté à l’envoi de signaux (send signal). Action créer (create) ou détruire (destroy) : permet d’instancier (resp. de détruire) un objet. 8
  9. 9. Activité (activity) : définit un comportement représenté par une séquence d’actions. Le flot d’exécution est modélisé par des nœuds reliés par des arcs (les transitions). Une activité est un comportement (behavior) et peuvent lui être associés des paramètres. 9
  10. 10. Un nœud d’activité permet de représenter les étapes le long du flot d’une activité. Il existe trois types : 1. les nœuds d’exécution (executable node) 2. les nœuds d’objets (object node) 3. les nœuds de contrôle (control nodess). Différents types de nœuds d’activités 10
  11. 11. Nœuds d’activité (activity node) et nœuds de contrôle, graphiquement : 11
  12. 12. Nœuds de contrôle 12
  13. 13. nœud de bifurcation (fourche) ou d’union (synhronisation) nœud initial nœud final nœud final de flot nœud de décision ou de fusion, 13
  14. 14. Nœud de décision (decision node) = un nœud de contrôle qui permet d’effectuer un choix entre plusieurs flots sortants. - Un arc entrant et plusieurs arcs sortants. Ces derniers sont généralement dotés de conditions, appelées gardes. L’utilisation d’une garde [else] est recommandée après un nœud de décision. Dans le cas où plusieurs arcs sont franchissables (i.e. plusieurs conditions de garde sont vraies), seul l’un d’entre eux est retenu et ce choix est non déterministe. Graphiquement : 14
  15. 15. Nœud de fusion (merge node) = nœud de contrôle qui rassemble plusieurs flots entrants en un seul flot sortant. Il n’est pas utilisé pour synchroniser des flots concurrents (rôle du nœud d’union), mais pour choisir un flot parmi plusieurs. Graphiquement : idem qu’un nœud de décision : 15
  16. 16. Nœud de bifurcation ou de débranchement (fork node) = nœud de contrôle qui sépare un flot en plusieurs flots concurrents. : il possède un arc entrant et plusieurs arcs sortants. Graphiquement : 16
  17. 17. Nœud d’union ou de jointure (join node) = nœud de contrôle qui synchronise plusieurs flots entrants : il possède plusieurs arcs entrants et un seul arc sortant. Lorsque tous les arcs entrants sont activés, l’arc sortant es activé. Graphiquement, représenté comme un nœud de bifurcation : Remarque Il est possible de fusionner un nœud de bifurcation et un nœud d’union : trait plein avec plusieurs arcs entrants et plusieurs arcs sortants : 17
  18. 18. Nœud initial = nœud de contrôle à partir duquel le flot débute lorsque l’activité est invoquée. Une activité peut avoir plusieurs nœuds initiaux. Un nœud initial possède un arc sortant et pas d’arc entrant. Nœud final = un nœud de contrôle possédant un ou plusieurs arcs entrants et aucun arc sortant.  2 sortes : 18
  19. 19. Nœud de fin d’activité : l’exécution de l’activité enveloppante s’achève et tout nœud ou flot actif au sein de l’activité enveloppante est abandonné. Si l’activité a été invoquée par un appel synchrone, un message (reply) contenant les valeurs des paramètres de sortie est retourné à l’appelant. Nœud de fin de flot Lorsqu’un flot d’exécution atteint ce nœud, il se termine, mais n’influe pas sur sur les autres flots actifs de l’activité enveloppante. 19
  20. 20. 20 20 Desserrer frein à main Passer 1ère vitesse Appuyer sur pédale d’embrayage Relâcher pédale d’embrayage Nœud initial Nœud final Nœud de bifurcation (fork) Nœud d‘union (jointure)
  21. 21. 21 Réceptionner marchandise Contrôler quantité Contrôler qualité enregistrer Nœud de bifurcation (fork) Nœud d‘union (jointure) synchronisations Nœud initial Nœud final
  22. 22. 22 DemanderTarif PayerLePrix DemanderDélai [sommeDisp < tarif] [ELSE] Branchement conditionnel Garde = expression conditionnelle Exemple de branchement conditionnel IF – THEN – ELSE (Nœud de décision)
  23. 23. 23 réceptionnerArticle vérifierArticle commanderArticle * (pour chaque Article) réceptionnerArticle vérifierArticle commanderArticle [il reste des articles] [il n’a plus d’articles] Schémas équivalents : itération
  24. 24. = nœud d’activité qu’on peut exécuter (i.e. une activité). Il gère également les exceptions. Nœud d’exécution Enter un code  nœud d’action = nœud d’exécution = l’unité fondamentale de fonctionnalité exécutable dans une activité. Exécution d’une action = transformation ou calcul dans le système modélisé. Les actions sont généralement liées à des opérations qui sont directement invoquées. Un nœud d’action doit avoir au moins un arc entrant. Graphiquement : 24
  25. 25. Nœud d’objet (object node) : on a vu la modélisation des flot de contrôle dans un diagramme d’activités. Les flots de données sont un élément essentiel des traitements dans un diagramme d’activités : représentent les arguments des opérations, les valeurs de retour, par exemple. Un nœud d’objet permet de définir un flot d’objet (les données) dans un diagramme d’activités. Ce nœud représente l’existence d’un objet généré par une action dans une activité et utilisé par d’autres actions. Nœud d’objets 25
  26. 26. - Les Pins d’entrée ou de sortie : les nœuds d’objets sont pour spécifier les valeurs passées en argument à une activité et ses valeurs de retour. On les appelle les pins (d’entrée ou de sortie). - L’activité ne peut débuter que si l’on affecte une valeur aux différents pins d’entrée. Quand l’activité se termine, une valeur est à chacun des pins de sortie. - Le passage des paramètres se fair par valeurs, c-à-d que la modification des valeurs d’entrée au cours du traitement de l’action est visible seulement à l’intérieur de l’activité. - Graphiquement : 26
  27. 27. Une transition matérialise le passage d’une activité vers une autre. Graphiquement, les transitions sont représentées par des flèches en traits pleins qui lient les activités entre elles. Une transition est déclenchée dès que l’activité source est terminée et provoque immédiatement le début de la prochaine activité. Les transitions sont franchies de manière atomique (durée négligeable), ce qui n’est pas le cas des activités. Les transitions 27
  28. 28. Exemple : Graphiquement : 28 Activité-1 Activité-2 Transition automatique établirFacture envoyerFacture
  29. 29. 29 insererCarte saisirCode [codeInvalide et essais<4] [codeValide] choisirOperation [retrait] [depot] saisirMontant choisirCompteAcrediter insererCheque/Liquide restituerCarte saisirMontant choisirCompteAcrediter afficherLesOffres vérifierProvisionCompte [nonAutorisé] [autorisé] distribuerBillets [codeInvalide et essais >3] Exemple de diagramme d’activités : utiliser un DAB
  30. 30. 30 client commanderProduit gererCommande expedierProduit recevoirProduit reglerFacture encaisserFacture commande commande [passée] [reglée] Etat de l’objet Couloirs d’activités (swimlanes) départ fin fournisseur Flot d’objets Couloirs d’activités ou swimlanes : Ils représentent les acteurs qui exécutent les activités.
  31. 31. 31 passerCommande verifierDisponibilité consulterTarif devis evaluerDevis [valider] [modifier] [annuler] établirFacture préparerCommande Facture [émise] Facture [réglée] réglerFacture validePaiement expédierCommande clôturerDossier client serviceComptabilité serviceLivraison établirDevis Autre exemple GérerCommande
  32. 32. 32 enregisterCommande envoyerFacture enregisterPaiement payerFacture Service comptable client Exemple Simplifié: Swimlanes (couloirs d’activités)
  33. 33. 33 Nœud d’action : « Accept event » « Send signal » « Accept time event » détecterArrivéeTrain faireClignoterFeux abaisserBarrière Attendre 5 sec Représentation de certaines actions de communication qui ont une notation spéciale Partie d’un diagramme d’activités
  34. 34. L. Audibert M. Blay-Fornarino Ch. Gnao S. Graïne Wikipédia Références : cours de 34
  35. 35. 35
  36. 36. Diagramme d’états-transitions (diagramme d’états) 36
  37. 37. • Un diagramme états-transitions est un automate à états finis, qui décrit les différents états par lesquels passe un objet (instance quelconque d’une classe) en réponse à des événements •permet de décrire les changements d'états d'un objet, en réaction aux interactions avec d'autres objets ou avec des acteurs. • représente les interactions asynchrones dans le système. • détermine les états stables par lesquels passe le système : parmi beaucoup d’états caractérisant un système, seuls quelques uns sont significatifs pour le problème donné • caractéristique d’un état : sa durée et sa stabilité, il représente une conjonction des valeurs des attributs d'un objet. • une transition représente le passage d'un état vers un autre. 37
  38. 38. 38 État initial État final État-1 État-n CREATE DESTROY Un objet est caractérisé par un ensemble d’attributs, qui changent de valeur au cours du temps. Les valeurs des attributs = l’état de l’objet
  39. 39. • Une transition est déclenchée par un événement : l'arrivée d'un événement conditionne la transition (la transition est automatique lorsqu'on ne spécifie pas l'événement qui la déclenche) • On peut conditionner le franchissement d’une transition, à l'aide de «gardes», qui sont des expressions booléennes, exprimées en langage naturel et encadrées par des crochets. 39
  40. 40. Graphiquement : Etat-Transition-événement 40 État final État-i État-j CREATE DESTROY événement
  41. 41. On peut associer une action à un événement qui va déclenche une transition : La syntaxe est la suivante : Evénement / Action Evénement/action  A l’arrivée d’un événement, l’action est déclenchée 41
  42. 42. Les 3 notions sur lesquelles est basé un diagramme d’états : 1. état d’un objet (situation d’un objet définie par ses propriétés) 2. événement 3. comportement des objets (leurs actions et leurs activités). 42
  43. 43. Rmq : la dynamique du système est modélisée par plusieurs diagrammes d’états-transitions. On construit un diagramme d’états-transitions pour chaque classe (ou classeur, en général), qui possède un comportement dynamique important. Un diagramme d’états-transitions ne peut être associé qu’à une seule classe. État initial (à sa création, un objet entre dans un pseudo-état : l’état initial) (Comme dans un diagramme d’activités) État final est un pseudo-état qui indique la fin d’un diagramme d’états. (Comme dans un diagramme d’activités) 43
  44. 44. Événement Un événement se produit pendant l’exécution du système modélisé. Les diagrammes d’états-transitions permettent de spécifier les réactions d’un système à des événements discrets (comme les signaux). Un événement a une durée négligeable. Quand un événement est reçu, une transition peut être déclenchée et faire passer l’objet dans un autre état.  Plusieurs types d’événements explicites et implicites : signal, appel de méthode, … Syntaxe : <nom_evenement> ( [ <param1> : <type> [; <param2> : <type> ... ] ] ) 1. Événement Signal : Un signal matérialise une communication asynchrone à sens unique entre deux objets. Un même objet peut être à la fois expéditeur et destinataire. 44 Interruption d’E/S <<signal>> <<signal>> <<signal>> souris clavier + Periph : int + abs : int + ord : int + caract : int
  45. 45. 2. Événement d’appel : call event Il représente la réception d’un appel d’une opération (méthode) par un objet. Paramètres de l’opération = paramètres de événement appelant. Syntaxe d’un événement d’appel = syntaxe d’un signal. Les événements appelants sont des méthodes déclarées au niveau du diagramme de classes. 3. Événement de changement : change généré quand une condition (sur des valeurs d’attributs) devient VRAIE. syntaxe : when ( <condition_booléenne> ) Les événements de création et de destruction d’objets («create» et «destroy») sont deux cas spéciaux d’événements d’appel. La création d’un objet débute par l’envoi d’un événement de création («create») à sa classe. L’objet commence à exister dans son état initial et finit à son arrivée dans l’état final (sa disparition, «destroy»). 45
  46. 46. 4. Événement temporel : after ou when générés par le passage du temps, Spécifiés de manière absolue (date précise), ou relative (durée). syntaxe événement temporel spécifié de manière relative : after ( <durée> ) Syntaxe événement temporel spécifié de manière absolue : when ( date = <date> ) 46
  47. 47. Elle définit la réponse d’un objet à l’occurrence d’un événement. Souvent, elle relie deux états. Elle indique qu’un objet dans un état E1 peut entrer dans l’état E2 et exécuter certaines activités, si un événement déclencheur se produit et que la condition de garde est vérifiée. Syntaxe : [ <événement> ][ '[' <garde> ']' ] [ '/' <activité> ] où « garde » est une expression booléenne sur les attributs de l’objet ou sur les paramètres des événements déclencheurs Transition Lorsqu’une transition se déclenche (tir d’une transition), son effet (l’activité spécifiée après ’/’ ) s’exécute. Elle peut être : •une opération simple (comme une assignation) •l’envoi d’un signal ; •l’appel d’une opération ; •une liste d’activités, etc. 47
  48. 48. Transition interne Sont déclenchées par des règles similaires à celles des transitions externe, mais une transition interne ne possède pas d’état cible et l’état reste le même à la suite du déclenchement. Syntaxe = la même que celle d’une transition classique. Mais, les transitions internes ne sont pas représentées par des arcs, elles sont spécifiées dans un compartiment. Exemple : 48 S SaisieMotDePasse entry / set echo Invisible exit / set echo normal character / traiterCaractère help / afficherAide clear / remise à zéro chrono et password après 30 sec / exit
  49. 49. Les transitions internes ont des noms prédéfinis : entry, exit, do et include : entry : permet de spécifier une activité qui s’exécute quand on entre dans l’état. exit : permet de spécifier une activité qui s’exécute quand on sort de l’état. do : commence dès que l’activité entry est terminée. Si une transition se déclenche pendant que l’activité do est en cours, cette dernière est interrompue et l’activité exit de l’état s’exécute. include : permet d’invoquer un sous-diagramme d’états-transitions. 49
  50. 50. Point de jonction Sans point de jonction Avec point de jonction 50
  51. 51. 51 saisirFormulaire demanderConfirmation afficherProblème go/testerEntrée [valide] [else] Point de décision (comme dans un diagramme d’activités) H* lavage séchage lustrage attente reprise arretD’urgence after(5 mn) after(5 mn) after(3 mn) after(3 mn) arretD’urgence État historique : est un pseudo-état qui mémorise le dernier sous-état actif d’un état composite. Graphiquement : cercle contenant un H. H* : pour représenter un état historique imbriqué.
  52. 52. Notation abrégée : pour indiquer qu’un état est composite et que sa définition est donnée sur un autre diagramme. État composite = état décomposé en régions contenant chacune un ou plusieurs sous-état(s). Associer un fournisseur aux produits fournis 52
  53. 53. 53

×