Vous êtes sur la page 1sur 75

Institut Suprieur des Etudes Technologiques de Djerba Dpartement technologies de lInformatique

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.

Les niveaux dabstraction


Pour un problme complexe, il est conceptuellement

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

Jacobson (use case - sdl) Booch-93 Rumbaugh( OMT2)

UML 1.x

UML 2.0

UML 2.3

Cest quoi UML?


Objectifs : spcifier, construire, visualiser et documenter

les systmes base de logiciel

Pour communiquer, travailler plusieurs Pour Comprendre la big picture Par approche oriente objets Avec diffrents modles pour diffrentes vues

UML : Langage et non simple notation graphique (ni

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

D. Cas dutilisation : les acteurs


Un acteur est un rle dun ou plusieurs objets situs lextrieur du systme et qui interagissent avec lui pour remplir une fonctionnalit donne de ce systme. Un acteur caractrise le rle jou par un objet lextrieur du systme.

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

Use Case :Use Case


Un Cas dutilisation ( use case ) est une fonctionnalit remplie par le systme et qui se manifeste par un ensemble de messages changs entre le systme et un ou plusieurs acteurs.

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

Acteur regroupe des lments de secondaire modlisation


<<actor>>

SI Banque

visualise dbite

Client

Acteur personne ou systme externe l origine d une interaction avec le systmes


On ne peut retirer de l argent que dans la limite du stock

Le technicien teint le distributeur avant de ravitailler le coffre

Technicien
Cas d utilisation objectif du systme motiv par un besoin

Liens entre cas d utilisation


Trois types de liens entre cas dutilisation :
Extension (<<extends>>) : comportement optionnel du

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)

Extends ou uses utilisent lide de factorisation, mais :


Dans lextension, un acteur ralise le cas de base et ses

extensions Dans lutilisation, il ny a pas en gnral dacteur associ au cas commun

Strotypes

Cas d utilisation et scnarios


Un scnario est une srie d vnements ordonns

dans le temps, simulant une excution particulire du systme

Pour chaque cas d utilisation, il existe un ou plusieurs scnarios

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...

Transition vers les objets


La ralisation d un cas d utilisation ncessite la

collaboration de plusieurs objets


Chaque objet de la collaboration participe la ralisation des scnarios. Chaque scnario peut tre dcrit par rapport aux interactions entre les objets de la collaboration travers

un diagramme de collaboration ou un diagramme de squence

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.

Ce qui nous demande gnralement


Un tableau dont les noms des colonnes sont:
Nom d acteur Description Rle

Scnarios pour chaque cas dutilisation

correction
ClientPoste Passer Commande Poste include Include

Verifier Paiement Fournisseur Verifier Stock Include include Extend

SystemBancaire

ClientInternet

Passer Commande Internet

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

Reprsentation des classes

Personne
Manger() Dormir() Travailler() $GetNbPersonne() //FaireBonneAction()

Personne

visibilit
La notion de visibilit indique qui peut avoir accs

l'attribut. Elle ne peut prendre que 3 valeurs possibles :


Caract -re + Rle Mot cl Description Toutes les autres classes ont accs cet attribut. Seules la classe elle-mme et les classes filles (hritage) ont accs cet attribut. Seule la classe elle-mme a accs cet attribut.

accs public accs protg accs priv

Public

Protected

Private

Hritage et agrgation
Coeur 1 Personne 1 0..32 Dent
0..32

Composition
1

Agrgation

Hritage
Dentiste

Cardinalit multiplicit

Hritage = Est un Composition et Agrgation = Est compos de

Gnralisation multiple (1)


La gnralisation - sous sa forme dite multiple

existe galement entre arbres de classes disjoints.

Gnralisation multiple (2)


Pour que la gnralisation multiple puisse tre mise en

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.

Les classes abstraites


Les classes abstraites ne sont pas instantiables

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.

La proprit abstraite peut galement tre applique

une opration afin dindiquer que le corps de lopration doit tre dfini explicitement dans les sous-classes.

Les interfaces

Finalit des interfaces


Une interface dcrit le comportement dune classe, dun composant, dun sous-systme, dun paquetage ou de tout autre classificateur

Finalit et ralisation des interfaces

Finalit et ralisation des interfaces


Une interface possde uniquement la spcification dun

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.

Est Employe par

Personne

Societe

Nom d'association Nom de rle

Est Employe par

Personne -employe -employeur

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

Qualit des associations


Naturellement, toute personne a 2

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???

L'association et la classe ne forme qu'un lment

La classe ContratTravail est une classe normale qui peut hriter, tre associe d'autres classes, .

Associations exclusives
Societe 0..1

1..* Personne 0..* {or}

ANPE

Les qualificateurs (1)


Considrons le schma suivant. Il dcrit le fait quun

avion contient plusieurs siges qui ont chacun un numro.

Cependant, ce schma ne nous permet pas de dire que

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.

Les qualificateurs (2)


En UML, lanalyste peut utiliser la notion de qualificateur pour reprsenter ce concept. Celui-ci est reprsent par un rectangle contenant le qualificateur qui portera lassociation entre Siege et la classe Avion qualifie.

Le diagramme se lit de la faon suivante: un avion contient un sige pour un numro donn .

Les qualificateurs (3)


Le diagramme ci-dessous indique que dans un

avion, pour une range donne, il y a 4 siges.

Trouver un qualificateur?

qualificateur

Association : Gnration du code

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).

Les classes paramtres


Element :T size : int Collection +Add(Element: T): void +Exist(Element: T): boolean +Remove(Element: T): T

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 :

Les fragments combins


Un fragment combin reprsente des articulations

d'intractions. Il existe 10 oprateurs dfinis dans la notation UML2.0 permettent de dcrire des diagrammes de squence de manire compacte

Oprateur "Alternative -- Alt


L'oprateur "alt" dsigne un choix, une alternative. Il reprsente deux comportements possibles : c'est en quelque sorte l'quivalent du SI...ALORS...SINON

Oprateur "Option -- Opt


L'oprateur "opt"

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:

Oprateur "Parallel -- par


L'oprateur

"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.

Fragment combin -- mixte

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

Etat et transition interne


Diagramme actif: possibilit de spcifier des actions Action : opration associe un tat non interruptible Activit : idem mais interruptible. Ces oprations peuvent tre excutes : Ds lentre dans ltat A la sortie de ltat Pendant lactivation de ltat interruptible) Les transitions peuvent galement raliser des actions

Point de dcision
Il est possible de reprsenter des alternatives pour

franchir une transition, on utilise soit:


Point de jonction ( reprsenter par

) 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

deux ou plusieurs sous-tat. Exemple cabinet tlphonique


Composer numro
Dbut
Entry/tonalit prt Exit/cesse tonalit

Composer numro

Chiffrer (n)

Numroter
Entry/numro.apprend(n)

[Num.valid]

Chiffrer (n)

Gestion de la concurrence
Les diagramme dtat permettent de dcrire

efficacement les mcanismes concurrents.

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.