====== TD5 - Diagramme de séquence en analyse ====== ===== Je comprends (15mn) ===== Attention en ligne vous trouverez un très grand nombre de diagrammes de séquence incohérents ! Cours sur les diagrammes de séquence Les diagrammes de séquence en analyse permettent de mieux comprendre l'application à réaliser. Ils restent "superficiels" dans la mesure où ils ne visent pas à mettre en avant l'architecture du système. Plus tard, nous étudierons ces diagrammes dans un objectif de détermination de l'architecture du système et de "codage". Dans ce cas, nous parlerons de **diagrammes en conception**. Ils seront plus détaillés. "Les diagrammes de séquences sont la représentation graphique des interactions entre les acteurs et le **système** (**pas entre acteurs!!**) selon un ordre chronologique". {{:2016_2017:s2:td:sequence_2017-02-08_a_15.47.14.png?500|}} Relativement au diagramme de séquence ci-dessus répondez aux questions suivantes : - Quels sont les acteurs? - Comprenez-vous le scénario? - Quelle structure correspond à une boucle? à une condition? - Quel objet est créé? - Qui exécute le comportement de "réserver une chambre à une date donnée" ? - Qui répond à "available(date)" ? - Qui fait appel à "available(date)" ? - Qui exécute "lookForAvailableHotels(Place)" ? - Définissez les classes correspondantes et les méthodes qui leur sont associées. - Que devez-vous modifier pour que les //lignes de vie// correspondent à des classes ? (( mettez ":" devant le nom de la classe par exemple :HotelChain, et si vous voulez identifier le nom de l'objet par exemple "Hilton:HotelChain")) - Quelles méthodes devraient implémenter ces classes? ===== Je m'implique, J'apprends (45 mn) ===== * Q1 : **Représentez le diagramme de séquence Système** correspondant au cas d'utilisation //(3) Un internaute s'inscrit sur le site pour devenir client// de la galerie d'art Nous le décomposons ainsi : - L'internaute saisit son nom, son prénom, son adresse email; - Le système vérifie que ces informations sont valides (e.g., email bien formé; le nom et l'email ne sont pas déjà connus, etc.); - Le système crée un client et enregistre le nouveau //compte client//; - Le système signale au client que tout s'est bien passé. * Q2 : **Enrichissez le diagramme de séquence Système** et visualisez la présence de flots alternatifs par des notes //(comme dans le slide 32 par exemple//): * A1 : Données non valides \\ * A2 : Client déjà enregistré \\ * Q3 : **Représentez le diagramme de séquence Système** correspondant au cas d'utilisation //Acheter des oeuvres d’art// Nous partons du principe que l'utilisateur a déclenché ce scénario précédemment, ce qui a eu pour conséquence de créer le panier puis de le connecter au début du scénario ci-après. - Le système propose les oeuvres d’art. - Tant que le client ne demande pas à payer - Le client sélectionne une oeuvre d’art. - Le système place l'oeuvre dans le panier - Le client demande à payer. - Le système réserve le contenu du panier dans les stocks((Vous pouvez affiner ici la notion de Stock!!)). - Le système demande au système de paiement l’encaissement du panier. - Le système de paiement valide le paiement et retourne une facture. - Le système enregistre le retrait du stock. - Le système confirme l’achat au client * Q4 : **Complétez le diagramme de classe** pour prendre en compte les nouveaux objets apparus par votre analyse du diagramme de séquence. * Q5 : Peut-on avoir payé sans que l'oeuvre soit retirée du stock ? Se peut-il qu'une oeuvre dans le panier ne soit plus en Stock au moment où le client demande à payer? au moment du paiement? ====== Partie Etude Fil Rouge(1h) ===== [[2019_2020:s2:etudefilrouge:seq1|Etude Fil Rouge sur les diagrammes de séquence]] ====== Références ====== [[https://www.uml-diagrams.org/sequence-diagrams-combined-fragment.html|En savoir plus sur les "Fragments"]]