Cours UML
Cours UML
Cours UML
Wajdi BOUAJILA
Plan
Quest que UML? Diagramme de cas dutilisation Diagramme de classes Diagramme de squences Diagramme de communication Diagramme dtat-transition Diagramme dactivit Diagramme de paquetage Diagramme de dploiement Diagramme de composant Correction du projet Sivex Proposition dune correction de concours (2009)
La modlisation : Pourquoi
Pourquoi raliser des modles? A quoi cela peut-il vraiment servir part me faire
perdre du temps alors quil serait plus rapide de passer directement au codage? Vous avez peut tre aussi travaill partir de modles raliss par les autres et vous navez pas vraiment saisie lintrt? Voire vous vous tes dit mes ces modles sont faux, je ne fais pas comme cela dans mon code ?
Un modle ?
Un modle est avant tout une reprsentation abstraite
du monde rel. => Un modle va donc nous servir communiquer et changer des points de vue afin davoir une comprhension commune et prcise dun mme problme.
impossible de lapprhender dun seul bloc=> dgrossir le problme Ce mode de rsonnement est la base mme des niveaux dabstraction que lon retrouve dans les mthodes : Merise (niveau conceptuel, niveau logique, niveau physique) RUP1 (niveau fonctionnel, niveau analyse, niveau conception). =>enrichir un modle de niveau N par lanalyse de niveau N+1.
Cest un outil pour documenter
Historique d'UML
Janv-97 1.0 Nov-97 1.0 Juillet-96 0.9 Oct-95 0.8 2005 2.0 2006 2.1 Sept-97 1.1 (OMG) 2000 1.4
UML 1.x
UML 2.0
UML 2.3
Pour communiquer, travailler plusieurs Pour Comprendre la big picture Par approche oriente objets Avec diffrents modles pour diffrentes vues
mthode) UML est Indpendant des mthodologies UML Support des systmes concurrents et rpartis, base de composants UML: un mta-langage de modlisation pour unifier les modles utiliss dans les mthodes
La notation UML
Diagramme de Use case
Uti li sateur
<<actor>> Un acteur parle au systme (Acteur principal) Le systme parle un acteur (Acteur secondaire) Un acteur est : Un humain (via une IHM) Du soft Du hard
Autre Systme
Utilisateur
VerifierBonneMarche
CapteurTemperat ure
Exemple
Nature de l interaction
Paquetage
Distributeur de billets
Consulter solde compte Retirer de l agent Mettre en marche / arrter Ravitailler le coffre
SI Banque
visualise dbite
Client
Technicien
Cas d utilisation objectif du systme motiv par un besoin
systme (variation dun comportement normal ) Inclusion (<<includes>>) : un cas intgre le comportement dun autre (raffinement ou factorisation) Utilisation (<< uses>>) : spcialisation avec hritage (ajout ou remplacement de comportement)
Strotypes
dont la description permet d expliciter le comportement du systme pour une situation donne.
tlphoner
Appelant Appel communication directe ligne occupe sans rponse communication par rpondeur
ligne en drangement
etc...
exemple
Une socit de vente par correspondance vous demande de dvelopper son systme informatique. Ce systme doit pouvoir prendre en compte des commandes passes par la poste et des commandes passes par internet. Il doit suivre les expditions qui ne sont effectues que si le paiement est OK. Les paiements se font par carte bancaire dans le cas d'internet et par chque dans le cas de la poste. Les paiements sont valids par un systme bancaire appartenant la socit et existant. Il faut rcuprer ce systme. Le nouveau systme est charg aussi de la gestion de stocks, lorsqu'un article atteint un seuil minimal, alors il faut passer une nouvelle commande au fournisseur adquat. A la rception de la commande, la mise jour de la base est faite par un employ. Dans le cas d'un paiement accept et de stock disponible, l'expdition est faite par un robot existant au quel il suffit de passer les coordonnes du client, et la liste des produits achets. En cas d'indisponibilit, une lettre doit tre envoy au client.
correction
ClientPoste Passer Commande Poste include Include
SystemBancaire
ClientInternet
Expedier Commande
Robot
La notation UML
Diagramme de squences
Diagramme de squences
Un diagramme de classe permet de dcrire les
intractions entre diffrentes entits et/ou acteurs : par exemple des objets dans un modle d'un logiciel, des sous-systmes dans un modle d'un systme complet. - Le temps est reprsent comme s'coulant du haut vers le bas le long des "lignes de vie" (lifeline) des entits. - Des flches reprsentent les messages qui transitent d'une entit vers l'autre. Le nom des message apparat sur chaque flche. Si l'extrmit de la flche est pleine, le message est synchrone. Si l'extrmit de la flche est creuse, le message est asynchone.
vnements et messages
Message Asynchrone :
Message Synchrone :
d'intractions. Il existe 10 oprateurs dfinis dans la notation UML2.0 permettent de dcrire des diagrammes de squence de manire compacte
dsigne un fragment combin optionnel comme son nom l'indique : c'est dire qu'il reprsente un comportement qui peut se produire... ou pas. Un fragment optionnel est quivalent un fragment "alt" qui ne possderait pas d'oprande else (qui n'aurait qu'une seule branche)
Oprateur "Break"
L'quivalent de ce diagramme de squence sans l'oprateur break correspond aux deux diagrammes de squence dans le diapositive suivant:
"par" est utilis pour reprsenter des intractions ayant lieu en parallle
Oprateur "Loop"
L'oprateur "Loop"
(boucle) est not "loop". Cet oprateur est utilis pour dcrire un ensemble d'intraction qui s'excutent en boucle. En gnral, une contrainte appele garde indique le nombre de rptitions (minimum et maximum) ou bien une condition boolenne respecter.
La notation UML
Diagramme de communication
Dfinition
Un diagramme de communication est un diagramme
d'interaction qui prsente les messages changs en fonction de la structure. un diagramme de communication rend compte de l'organisation spatiale des participants l'interaction Il est souvent utilis pour illustrer un cas d'utilisation ou pour dcrire une opration. Le diagramme de communication aide valider les associations du diagramme de classe en les utilisant comme support de transmission des messages.
Rectangle avec tiquette de la forme nomObjet:nomClasse ou :nomClasse On reprsente uniquement les objets pertinents i.e. interagissant dans le cas dutilisation ou le scnario quon veut dcrire. 2. Liens: Instances de certaines associations dans le diagramme de classes. On ne reprsente que les instances dassociations pertinentes pour la collaboration dcrite. 3. Acteurs: On peut reprsenter les acteurs participant au cas dutilisation ou scnario dcrit. Lacteur initiant un cas dutilisation est appel initiateur.
mb :MembreBiblio
unExemplaire :Exemplaire
La flche est issue de lmetteur et pointe vers le destinataire. Lassociation correspondante dans le diagramme de classe doit tre navigable dans la mme direction que la flche. Le destinataire doit pouvoir comprendre le message (opration approprie?)
utilis comme prfixe pour tous les messages envoys par O jusqu ce que O rponde ce message.
En gnral, les messages de retour napparaissent pas explicitement dans les diagrammes de collaboration. Types de messages: simple, synchrone, asynchrone Aussi: garde, itration, etc.
methodeR doit tre une mthode de la Classe A dans le diagramme de Classes, MthodeS doit tre une mthode de la Classe B dans le diagramme de Classes MthodeT doit tre une mthode de la Classe D dans le diagramme de Classes
cond est une condition sous forme dexpression boolenne entre crochets. sq est le numro de squence du message. On numrote les messages par envoi et sous-envoi dsigns par des chiffres spars par des points : ainsi lenvoi du message 1.4.3 est antrieur celui du message 1.4.4 mais postrieur celui du message 1.3.5. La simultanit dun envoi est dsigne par une lettre : les messages 1.6.a et 1.6.b sont envoys en mme temps. iter spcifie (en langage naturel, entre crochets) lenvoi squentiel (ou en parallle, avec ||). On peut omettre cette spcification et ne garder que le caractre "*" (ou "*||") pour dsigner un message rcurrent envoy un certain nombre de fois. r est la valeur de retour du message, qui sera par exemple transmise en paramtre un autre message. msg est le nom du message. par dsigne les paramtres (optionnels) du message.
A
1: [cond] message()
A
1: res:= message()
B
Message
B
Message conditionnel
B
Message avec retour
A
1: *[i:=1..n] message()
1: m1()
A
2: m4()
1.1: m2() 1.a: m1()
A
1.b: m2()
B BB
Itration
B
1.2: m3()
Invocations synchrones
Concurrence
leMembre :MembreBiblio
2: emprunter 1: okPourEmprunter()
cetExemplaire :Exemplaire
Cration et destruction dynamiques dobjets Ajout dune contrainte ({new} ou {destroyed}) aprs ltiquette dans le rectangle reprsentant lobjet cr ou dtruit. Si au cours des interactions reprsentes par le diagramme, un objet est cr puis dtruit, on utilise la contrainte {transient}. Les messages de cration et de destruction dobjets: new, destroy
exemple
: Doyen
2: new ProfAgrg(n)
3 : destroy()
:ProfAgrg {new}
concurrence
Le message 1 est un message simple itratif. Les messages 2.a et 2.b sont des messages synchrones concurrents.
t:TourDeContrle
:Pompiers
2.b: dplacer(piste,parking)
b:Boeing747
3.b: atterrir(piste)
2.a: dplacer(piste,parking)
La notation UML
Diagramme dtat-transition
Introduction
Permet de dcrire le cycle de vie dun Objet : Les diffrents tats quil peut atteindre Les rgles rgissant le passage dun tat un autre Au niveau mtier permet de dcrire les rgles de gestion assurant comment sont utiliss les objets du monde (ex. facture). Au niveau logique : Transposition au niveau des objets concrets (ie futur code) Spcification de rgles de comportement des objets concrets (ex. objet graphique).
tat : Objet: caractris en principe par lensemble des valeurs prises par les attributs de lobjet un instant t. Mais selon cas peut se rduire ltude de certains attributs. Mtier: caractrise ltat dune entit au sens large : tat stable, en cours dexcution, attente dun vnement Transition : traduit le passage possible dun tat un autre avec ventuellement des conditions sur lvnement lorigine de lactivation de la transition (condition de garde).
Type dtat
Type dtat : tat initial : traduit linitialisation du diagramme dtat (1 seul par diagramme). tat final : caractrise la fin du diagramme (0..n). tat simple : caractrise ltat dun objet tat composite: permet de grer labstraction en dfinissant un super tat dans lequel une squence dtat et de transition peuvent dcrire plus finement ce qui se passe dans cet tat (ex. ltat Inscription peut tre dcompos en tat saisi, tat frais inscription calculs, frais pays, inscrit).
Type dvnement
Type dvnement pouvant dclencher une transition : Rception dun signal : envoi dun message asynchrone par un autre objet ou par un acteur (point de vue mtier) Appel de mthode (call event) sur lobjet modlis (synchrone ou asynchrone). (point de vue objet) coulement dune dure (time event) relative (10 sec) ou absolue (date prcise). Utilisation du mot cl after Changement de condition (change event) : dcrite par une expression boolenne sur des variables (tat dune variable, dun objet, dune valeur globale) mot cl when
Exemple
Point de dcision
Il est possible de reprsenter des alternatives pour
) Elle permet de partager des segments de transition. Tous les chemin sont potentiellement valides. Point de choix ( reprsenter par )
Saisie formulaire Demander confirmation
Go/valideEntre() [else]
Entre valide
Afficher problmes
Etat composite
Un tat composite est graphiquement compos en
Composer numro
Chiffrer (n)
Numroter
Entry/numro.apprend(n)
[Num.valid]
Chiffrer (n)
Gestion de la concurrence
Les diagramme dtat permettent de dcrire
fork
join
tat historique
Exemple de diagramme possdant un tat historique
profond permettant de reprendre le programme de lavage ou de schage d'une voiture l'endroit o il tait arriv avant d'tre interrompu.
La notation UML
Diagramme de paquetage
Dfinition
Un diagramme de paquetage est un diagramme de
structure qui montre les paquetages et, ventuellement, les relations entre eux. Un paquetage tant un conteneur logique permettant de regrouper et d'organiser les lments dans le modle UML (classes, use cases, etc.) le Diagramme de paquetage sert reprsenter les dpendances entre paquetages, cest--dire les dpendances entre ensembles de dfinitions.
Utilit
Trs utilis, indispensable pour les grands modle Indispensable pour dfinir larchitecture dun modle,
pour grer un modle et son dveloppement par une quipe Utile ds lanalyse et fondamentale en conception
Dpendance
un paquetage est dpendant dun autre sil
lutilise
<<import>>
Client
Server
La notation UML
Diagramme de composant
Dfinition
Composant
Un composant doit fournir un service bien prcis Les fonctionnalits quil encapsule doivent tre
cohrentes entre elles et gnriques Un composant est une unit autonome reprsente par un classeur structur, strotyp component, comportant une ou plusieurs interfaces requises ou offertes. Son comportement interne, gnralement ralis par un ensemble de classes, est totalement masqu : seules ses interfaces sont visibles. Pour montrer les instances des composants, un diagramme de dploiement doit tre utilis
Composants et interfaces
Composant
EntreCmdes Personne
Commande
PaiementComptes
interface requise
composant Commande
<<provided interfaces>> EntreCmdes PaiementComptes <<required interface>> Person
interfaces offertes
Composants et relations
Une flche de dpendance permet de mettre en relation
RechercheClient
Systme de commande
RechercheClient
Repositoire Clients
(3) dpendance
AccsProduit AccsProduit
(1) composant
Systme dinventaire
(2) interface
Composants et relations
rservations
Planificateur
rservations
Gestionnaire dhoraires
accsBD
mise jour
GUI
mise jour
accsBD
Runions_BD
Magasin
EntreCmdes <<delegate>>
:Commande
Personne
port
EntreCmdes
Entte LigneCmde
:Client
Compte ItemCommandable
<<delegate>>
Assembly connector
:Produit
Compte
La notation UML
Diagramme de dploiement
Dfinition
Un diagramme de dploiement dcrit la disposition
physique des ressources matrielles qui composent le systme Il montre la rpartition des composants sur chaque matriels Chaque ressource tant matrialise par un nud
reprsent par un cube comportant un nom Un nud est un classeur et peut possder des attributs (quantit de mmoire, vitesse du processeur, ).
Exemple
noeuds M2:MachineX GPS satellite
Communication sans fil
S:Serveur
M1:MachineX
C1:Client C2:Client
TCP/IP
lien
Exemple 2
internet
GUI
:Gestionnaire Horaires
rservations Accs_bd
:Runions_BD
Exemple 3