La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 8: Modelling Interactions and Behaviour.

Présentations similaires


Présentation au sujet: "Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 8: Modelling Interactions and Behaviour."— Transcription de la présentation:

1 Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 8: Modelling Interactions and Behaviour

2 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour2 8.1 Diagrammes dinteraction Les diagrammes dinteraction sont utilisés pour modéliser les aspects dynamiques dun système Ils aident à visualiser comment le système exécute ses tâches. Un diagramme dinteraction est souvent construit à partir dun diagramme de classes et dun cas-type Lobjectif est de montrer comment un ensemble dobjets peut réaliser une tâche demandée par un acteur

3 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour3 Interactions et messages Un diagramme dinteraction montrent comment un ensemble dobjets et dacteurs communiquent ensemble afin: de réaliser un cas-type de réaliser une certaine fonctionnalité Lensemble des différentes étapes à accomplir sappelle une interaction. Un diagramme dinteraction montre différents types de communication entre objets, acteurs et sous-systèmes: E.g. appel à des méthodes, information envoyés sur un réseau Ceux-ci sont appelés messages.

4 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour4 Les éléments se trouvant dans un diagramme dinteraction Des instances de classes Représentés par des rectangles comme dans les diagrammes dinstances Acteurs Représentés par des personnages-allumettes comme dans les diagramme de cas-type Messages Représentés par des flèches horizontales

5 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour5 Création dun diagramme dinteraction Un diagramme de classes et des cas-type doivent dabord être élaborés Il existe deux sortes de diagramme dinteraction Diagramme de séquence Diagramme de collaboration

6 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour6 Un exemple de diagramme de séquence

7 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour7 Diagramme de séquence Un diagramme de séquence montre la séquence temporelle déchange de message entre lacteur et les objets réalisant une certaines tâche Les objets sont disposés horizontalement Lacteur qui initie linteraction se trouve généralement à lextrême gauche La dimension verticale représente le temps Une ligne verticale, appelée ligne de vie, est accrochée à chaque objet ou acteur La ligne de vie sépaissie pour devenir une boite dactivation lorsque lobjet est actif, i.e., durant la période dactivation. Un message est représenté par une flèche joignant deux boites dactivation. Un message a un nom et peut aussi avoir une liste darguments et une valeur de retour.

8 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour8 Encore le même exemple, avec plus de détails

9 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour9 Une itération à travers plusieurs objets sindique à laide dun astérisque précédent le nom du message Diagramme de séquence – avec des messages répétés

10 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour10 Un X à la fin dune ligne de vie indique que lobjet a été détruit Diagramme de séquence – destruction dun objet

11 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour11 Diagramme de collaboration – un exemple

12 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour12 Diagramme de collaboration Un diagramme de collaboration illustre comment les objets coopèrent dans la réalisation dune interaction Un diagramme de collaboration est un graphe dont les objets sont les sommets. Des liens de communication sont ajoutés entre ces objets Les messages sont associés à ces liens. Représentés par des flèches Lordonnancement temporel est indiqué à laide dune numérotation

13 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour13 Encore le même exemple, avec plus de détails

14 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour14 Liens de communication Un lien de communication existe entre 2 objets lorsquà un moment il est possible denvoyer un message dun objet à un autre. Plusieurs situations peuvent rendre cet échange possible: 1. Les classes sont en association -Il sagit là de la situation la plus commune -Si tous les messages sont envoyés dans la même direction, lassociation peut alors être rendue unidirectionnelles

15 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour15 Dautres liens de communication possibles 2. Le récepteur est contenu dans une variable locale de la méthode émettrice -Ceci se produit fréquemment lorsque lobjet a été créé par la méthode émettrice ou lorsquun résultat précédent a retourné un objet. -Le stéréotype a utiliser est «local» ou [L]. 3. Une référence à lobjet récepteur a été reçu comme paramètre par la méthode émettrice -Le stéréotype a utiliser est «parameter» or [P].

16 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour16 Dautres liens de communication possibles 4. Le récepteur est un objet global -Ceci se produit lorsque la référence à lobjet peut être obtenue à laide dune méthode statique -Le stéréotype a utiliser est «global», ou [G] 5. Les objets communiquent à travers un réseau -Nous suggérons dutiliser «network».

17 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour17 Comment choisir entre un diagramme de séquence et un diagramme de collaboration Les diagrammes de séquence Rendent explicite la séquence temporelle dans linteraction Les cas-type ont aussi un tel ordre temporel Les diagrammes de séquence constituent donc le choix naturel lorsque linteraction est construite à partir dun cas-type. Facilite une écriture détaillée des messages Moins despace est généralement disponible dans un diagramme de collaboration

18 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour18 Comment choisir entre un diagramme de séquence et un diagramme de collaboration Diagramme de collaboration Peuvent être vus comme la prolongation dun diagramme de classes Préférable lorsque linteraction est déduite du diagramme de classes Sont aussi très utiles pour valider des diagrammes de classes

19 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour19 Diagramme de collaboration et patron de conception Un diagramme de collaboration peut être utilisé pour représenter différents aspects dun patron de conception

20 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour Diagrammes détat Un diagramme détat décrit le comportement dun système, dune partie dun système ou dun objet. A tout instant, un système ou un objet se trouve dans un certain état. Être dans un état donné signifie que le système se comportera dune façon spécifique en réponse aux événements se produisant. Certains événements vont provoquer des changements détats Dans ce nouvel état, le système se comportera de façon différente. Un diagramme détat est un graphe dans lequel les états sont des nœuds et dont les arcs représentent les transitions.

21 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour21 Exemple de diagramme détat tic-tac-toe OTurn XTurn Tie OWin XWin

22 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour22 Les états A tout instant, le système se trouve dans un état Il demeura dans cet état jusquà loccurrence dun événement provoquant un changement détat Un état se représente à laide dun rectangle arrondi contenant le nom de cet état États spéciaux: Un disque noir représente létat initial Un disque noir entouré dun cercle représente un état final

23 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour23 Transitions Une transition représente un changement détat en réponse à un événement Cette transition est considérée instantanée Létiquette associée à une transition est lévénement causant ce changement détat

24 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour24 Diagramme détat – un exemple avec conditions et délais

25 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour25 Diagramme détat – un exemple avec transition conditionnelle

26 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour26 Les activités dans les diagramme détat Une activité peut être lancée lorsque le système se trouve dans un état Une activité a une durée En réponse à la terminaison de lactivité, le système peut effectuer un changement détat Les transitions peuvent aussi se produire lorsque lactivité est en cours: -Lactivité se termine alors et le changement détat seffectue

27 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour27 Diagramme détat – un exemple avec activité

28 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour28 Les actions dans un diagramme détat Une action se réalise de façon instantanée Lorsquune une transition se produit Lorsque le système entre dans un certain état Lorsque le système sort dun certain état

29 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour29 Diagramme détat – un exemple avec actions

30 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour30 Diagramme détat – un autre exemple

31 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour31 Sous-états et diagrammes imbriqués Un diagramme détat peut être imbriqué dans un autre. Les états dans un diagramme interne sont des sous-états

32 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour32 Diagramme détat – un exemple avec sous- états

33 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour Diagrammes dactivité Un diagramme dactivité est similaire à un diagramme détat. Les transitions sont causées par la terminaison dune activité. Un diagramme dactivité peut servir à mieux comprendre la succession des étapes quun système doit accomplir afin de réaliser une certaine tâche peut aussi servir à mieux comprendre les cas-type et la façon dont ils sont interreliés est le plus souvent associé à plusieurs classes Lune des forces des diagrammes dactivité est de représenter des activités concurrentes.

34 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour34 Un exemple de diagramme dactivité

35 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour35 Représentation de la concurrence La concurrence dans un diagramme dactivité se représente à laide de points de rencontre, de fourchettes et de rendez-vous. Une fourchette (fork) a une transition entrante et plusieurs transitions sortantes -Lexécution se sépare alors en différents fils dexécution Un rendez-vous a plusieurs transitions entrantes et sortantes -Lorsque toutes les transitions entrante ont été effectué alors seulement peuvent être lancée les transitions sortantes

36 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour36 Représentation de la concurrence Un point de rencontre (join) a de multiples transitions entrantes et une transition sortante -La transition sortante seffectue lorsque toutes les transitions entrantes se sont produites -Chacune des transitions entrantes seffectue dans un fil dexécution distinct. -Lorsque quune transition entrante se produit, le fil correspondant est bloqué jusquà ce que les autres transitions soient complétées.

37 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour37 Allées Un diagramme dactivité est souvent associé à plusieurs classes Le partitionnement des activités à travers les différentes classes peut être explicitement montré à laide dallées (swimlanes)

38 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour38 Diagramme dactivité – un exemple avec allées

39 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour Implémenter une classe à laide de diagrammes dactivité et détat Les diagrammes détat et dactivité sont utilisés pour les éléments plus complexes du système Pas toutes les classes justifient lutilisation de tels diagrammes Lutilisation conjointe de diagrammes dinteraction, dactivité et détat peuvent aider à concevoir la bonne implémentation. Ceci est particulièrement vrai lorsque le comportement dune classe, dun sous-système est distribué parmi plusieurs cas-type Un diagramme détat est utile lorsque différentes conditions produisent une réponse différentes aux même événements

40 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour40 Exemple

41 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour41 Exemple: La classe CourseSection États: Planned: closedOrCancelled == false && open == false Cancelled: closedOrCancelled == true && registrationList.size() == 0 Closed (course section is too full, or being taught): closedOrCancelled == true && registrationList.size() > 0

42 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour42 Exemple: La classe CourseSection États: Open (accepting registrations): open == true NotEnoughStudents (substate of Open): open == true && registrationList.size() < course.getMinimum() EnoughStudents (substate of Open): open == true && registrationList.size() >= course.getMinimum()

43 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour43 Exemple: La classe CourseSection public class CourseSection { // The many-1 abstraction-occurrence association (Figure 8.2) private Course course; // The 1-many association to class Registration (Figure 8.2) private List registrationList; // The following are present only to determine the state // (as in Figure 8.19). The initial state is 'Planned private boolean open = false; private boolean closedOrCanceled = false;

44 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour44 Exemple: La classe CourseSection public CourseSection(Course course) { this.course = course; registrationList = new LinkedList(); } public void openRegistration() { if(!closedOrCanceled) // must be in 'Planned' state { open = true; // to 'OpenNotEnoughStudents' state }

45 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour45 Exemple: La classe CourseSection public void closeRegistration() { // to 'Canceled' or 'Closed' state open = false; closedOrCanceled = true; if (registrationList.size() < course.getMinimum()) { unregisterStudents(); // to 'Canceled' state } public void cancel() { // to 'Canceled' state open = false; closedOrCanceled = true; unregisterStudents(); }

46 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour46 Exemple: La classe CourseSection public void requestToRegister(Student student) { if (open) // must be in one of the two 'Open' states { // The interaction specified in the sequence diagram of Figure 8.4 Course prereq = course.getPrerequisite(); if (student.hasPassedCourse(prereq)) { // Indirectly calls addToRegistrationList new Registration(this, student); } // Check for automatic transition to 'Closed' state if (registrationList.size() >= course.getMaximum()) { // to 'Closed' state open = false; closedOrCanceled = true; }

47 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour47 Exemple: La classe CourseSection // Private method to remove all registrations // Activity associated with 'Canceled' state. private void unregisterStudents() { Iterator it = registrationList.iterator(); while (it.hasNext()) { Registration r = (Registration)it.next(); r.unregisterStudent(); it.remove(); } // Called within this package only, by the constructor of // Registration to ensure the link is bi-directional void addToRegistrationList(Registration newRegistration) { registrationList.add(newRegistration); }

48 © Lethbridge/Laganière 2001 Chapitre 8: Modelling Interactions and Behaviour Risques et difficultés dans la modélisation des interactions et du comportement La modélisation dynamique est une tâche difficile Dans un système de grande taille, il existe de nombreux chemins que le système peut emprunter. Il est difficile dattribuer le bon comportement aux bonnes classes: Le processus de modélisation devrait être supervisé par le développeur le plus expérimenté Tous les aspects du modèle devrait être révisés attentivement. Travailler de façon itérative: -Développer un premier diagramme de classes, puis les cas-types, les responsabilités, et ensuite les diagrammes dinteraction, dactivité et détat; -Réviser et modifier ensuite les diagramme afin de les rendre consistants Le fait de dessiner différents diagrammes représentant des aspects différents, mais très liés, aide à mettre en lumière les problèmes potentiels


Télécharger ppt "Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 8: Modelling Interactions and Behaviour."

Présentations similaires


Annonces Google