UML : Unified Modeling Language Recommended: UML distilled A brief guide to the standard Object Modeling Language Addison Wesley based on Frank Maurer lecture, Univ. of Calgary in french : uml.free.fr/index.html 1 UML : Unified Modeling Language Objective: Capture requirements Analyse a problem Design a solution Code a solution Keyword : Creativity Technology 2 UML : Unified Modeling Language Use cases Class Diagram Interaction Diagrams State Diagrams Activity Diagrams But two different enterprises, two different UML!!! 3
UML : Unified Modeling Language Use cases Class Diagram Interaction Diagrams State Diagrams Activity Diagrams 4 Use Cases Use case specifies the behavior of a system capture the intended behavior (the what) of the system omitting the implementation of the behavior (the how) Customer requirements/ early analysis Buttons of the interface! sequence of actions to yield an observable result of value to an actor 5 What is a use case? Represents a functional requirement on the system Use case involves interaction of actors and the system Description of a sequence of actions, including variants (specifies desired behavior) Market Analysis Financial Officer 6
A use case diagram Analyze risks Valuation <<uses> Trader Price details Capture deal Sales system Limit exceeded 7 Use cases: terms and concepts Unique name Sequence of actions (event flows) textual (informal, formal, semi fomal) Main flow of events: The use case starts when the system prompts the Customer for a PIN number. The Customer can now enter a pin number... interaction diagrams 8 Actors Role that a user plays with respect to the system A role can be played by several users and a user can play several roles Actors carry out use cases look for actors, then their use cases Actors do not need to be humans! Actors can get value from the use case or participate in it 9
Actors Actors can be specialized Officer Financial Officer connected to use cases only by association association = communication relationship (each one sending, or receiving messages) 10 Use case description Generic, step-by-step written description of a use case s event flow Includes interactions between the actor(s) and a use case Clear, precise, short descriptions May contain extension points 11 Example use case description Capture deal 1. Enter the user name & bank account 2. Check that they are valid 3. Enter number of shares to buy & share ID 4. Determine price 5. Check limit 6. Send order to NYSE 7. Store confirmation number 12
Représentation par scénario Guichet Retrait en espèces Syst. central Saisie compte Demande opération Authentification? Retrait (200F) Vérification solde Débit Autorisation 13 Guichet Application Syst. Central Organizing Use Cases Uses Extends 14 Extends relationship Capture deal Limit exceeded Allows to model the part of a use case the user may see as optional Allows to model conditional subflows Allows to insert subflows at a certain point, governed by actor interaction Capture the base use case For every step ask what could go wrong how might this work out differently Plot every variation as an extension of the use case 15
Uses/Includes relationship Used to avoid describing the same flow of events several times, by putting the common behavior in a use case of its own Analyze risks Valuation <<uses> Price details Avoids copy-and-paste of parts of use case descriptions 16 Comparing extends/uses Different intent extends to distinguish variants set of actors perform use case and all extensions actor is linked to base case uses/includes to extract common behavior often no actor associated with the common use case different actors for caller cases possible 17 A use case diagram Analyze risks Valuation <<uses> Trader Price details Capture deal Sales system Limit exceeded 18
Properties of use cases Granularity: coarse or fine, but rather coarse Achieve a discrete goal Use cases describe externally required functionality Often: Capture user-visible function 19 When and how Requirements capture - first thing to do Use case: Every discrete thing your customer wants to do with the system give it a name describe it shortly (some paragraphs) add details later 20 Gestion d une bibliothèque. On veut développer un système pour gérer les prêts dans une bibliothèque. Une première analyse des besoins fait ressortir les faits suivants : - une bibliothèque prête des livres ou des magazines à des emprunteurs, - les livres, les magazines et les emprunteurs sont enregistrés dans le système - une bibliothèque gère l achat de nouveaux titres. Les titres sont en général achetés en plusieurs exemplaires - les livres et magazines sont retirés des prêts lorsqu ils ne sont plus à jour ou abimés - les client interagissent avec les bibliothécaires qui gèrent le système - un emprunteur peut réserver un titre qui n est pas disponible. Lorsqu il y a un retour, un emprunteur en attente est averti - une réservation est annulée lorsqu un emprunteur récupère le livre correspondant ou à sa demande explicite - le bibliothécaire doit pouvoir gérer les prêts, les emprunteurs, les réservations -. 21
Exemple Fil-Rouge : le Monopoly Pour illustrer, on utilise l exemple de la réalisation d un logiciel pour jouer au Monopoly On essaiera à travers cet exemple d illustrer les erreurs communes 22 Diagramme de cas d'utilisation du Monopoly Argent Terrains Argent Joueurs Chance Caisse de communautée Terrains Maisons et Hôtels Banque Maisons et Hôtels Dés Les «cas d utilisation» sont plutôt des actions! 23 Acheter, Vendre quoi? Lancer les dés? hypothequer acheter vendre gestion terrain echanger achetermaison Banque Joueur tirer carte vendremaison Adversaire deplacer L adversaire est aussi un joueur! (même rôle) action payer recevoir Utilité de «Action» emprisonner 24
Nom du rôle «Player»! System 1 Rôle «Banquier» lancer les dés créer une partie acheter ajouter un joueur ne pas acheter joueur player supprimer un joueur Vendre commencer une partie Quitter une partie hypothéquer ne pas hypothéquer On ne met pas les «NON» cas d utilisation échanger ne pas échanger faire faillite Cartes chance, communauté? 25 monopoly tirer_carte payer_loyer se déplacer lancer les dés aller prison payer impôts /taxes bénéficier parc gratuit hypothéquer terrain recevoir salaire case départ joueur échanger terrains Le sen des flèches «extends»! cartes terrains vendre cartes maisons/hôtels terrains 26 acheter maisons/hôtels cartes g Interface Monopoly Achat propriétés Sortir de Prison Rendre une hypothèque Vente propriétés Vente bâtiments Donner/Recevoir de l'argent Lancer dés Banque (logiciel) Achat bâtiments Joueurs Verser une hypothèque hypothéquer Payer prison racheter hypothèque Tirer carte Double Relancer «Uses» ou «Extend» Le rôle d un joueur est-il essentiellement de lancer les dés? 27
lancer les dés se déplacer donner bonus/salaires Attention de ne pas trop hiérarchiser Un «Use case» est quelque chose de concret acheter vendre échanger transactions terrains hypothéquer / déshypothéquer joueur vendre faire transactions transactions constructions acheter monopoly transactions cartes vendre acheter échanger 28 Example: extension points Capture deal 1. Enter the user name & bank account 2. Check that they are valid extension point: reenter data in case they are invalid 3. Enter number of shares to buy & share ID 4. Determine price 5. Check limit 6. Send order to NYSE 7. Store confirmation number 29