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 classes
Diagramme de classes
Un diagramme de classes permettre de spcifier la structure et les liens entre les objets dont le systme est compos.
Statique : Ne pas utiliser de verbes d'action pour relier les classes Une classe isole est une classe inutile Doit tre vrai tout le temps Reprsente LE programme On ne peut pas tout montrer sur un seul schma
Les classes
Abstrait Syntaxe libre Nom : type [= Initialisation] Attribut driv Attribut de classe Opration de classe Responsabilit
{abstract}
25
Personne
Manger() Dormir() Travailler() $GetNbPersonne() //FaireBonneAction()
Personne
visibilit
La notion de visibilit indique qui peut avoir accs
Public
Protected
Private
Hritage et agrgation
Coeur 1 Personne 1 0..32 Dent
0..32
Composition
1
Agrgation
Hritage
Dentiste
Cardinalit multiplicit
uvre, il faut que les langages de programmation objets supportent lhritage multiple.
Dans notre exemple, comment le compilateur peut-il
garantir, lors de limplmentation de la classe T, quil ny ait pas deffet de bord ou de conflit entre les proprits pZ hrite de la classe Z et pY hrite de la classe Y?
Par exemple, JAVA ne supporte pas lhritage multiple.
directement; elles ne donnent pas naissance des objets, mais servent de spcifications plus gnrales -de typepour manipuler les objets instances (dune) ou plusieurs de leurs sous-classes.
une opration afin dindiquer que le corps de lopration doit tre dfini explicitement dans les sous-classes.
Les interfaces
comportement visible, sous forme dun ensemble doprations (pas dattributs et dassociations), et ne fournit aucune implmentation de ses services
Le polymorphisme
Les associations
Les associations reprsentent des relations structurelles entre classes dobjets. Une association
symbolise une information dont la dure de vie nest pas ngligeable par rapport la dynamique gnrale des objets instances des classes associes. La plupart des associations sont binaires, cest-dire quelles connectent 2 classes.
Personne
Societe
Societe
Personne
1..* -employe
0..1 -employeur
Societe
Cardinalit-Multiplicit
Personne
employeur : Societe
Societe
employe : ListeOfPersonne
Personne
1..* -employes
Societe
Navigabilit
Personne
Societe
employes : Personne
Association rflexive
parents. Nous modlisons des systmes artificiels, une reprsentation de la ralit, pour lesquels un ou des utilisateurs devront enregistrer dans une base de donnes les objets instances des classes que nous avons identifies. Il nest pas possible dimposer dans un modle que toute personne a 2 parents, car au moment de la saisie les utilisateurs devront remonter Adam et Eve Il est juste quune personne a 2 parents et peut avoir plusieurs enfants. Toutefois, le rle doit indiquer le rle jou par une personne par rapport une autre personne; ainsi une personne est parent ou enfant (au singulier) dune autre personne.
Classe d'association
Personne 1..* -employes 0..1 Societe
O mettre le salaire???
La classe ContratTravail est une classe normale qui peut hriter, tre associe d'autres classes, .
Associations exclusives
Societe 0..1
ANPE
chaque sige a un numro qui est unique pour chaque avion. Cette notion proche de la cl primaire du modle de bases de donnes relationnelles, nous permet de prciser la cardinalit des associations.
Le diagramme se lit de la faon suivante: un avion contient un sige pour un numro donn .
Trouver un qualificateur?
qualificateur
Association n-aires
Une association n-aire lie plus de deux classes Dans une association n-aire, la multiplicit
apparaissant sur le lien de chaque classe s'applique sur une instance de chacune des classes, l'exclusion de la classe-association et de la classe considre Une ligne pointill d'une classe-association peut tre relie au losange par une ligne discontinue pour reprsenter une association n-aire dote d'attributs, d'oprations ou d'associations.
Dpendance
Relation de dpendance : relation d'utilisation
unidirectionnelle et d'obsolescence (une modification de l'lment dont on dpend, peut ncessiter une mise jour de l'lment dpendant).
bind(String,100)
Collection100String
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 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.