Vous êtes sur la page 1sur 79

Institut Suprieur des Etudes Technologiques de Djerba Dpartement technologies de lInformatique

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.

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

lments composant une collaboration:


1. Objets: Instance dune classe.

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.

Exemple sans lien

leLivre :Livre unMembre: Emprunteur

mb :MembreBiblio

unExemplaire :Exemplaire

Ajout des messages sur les liens...


On indique les messages ct des liens appropris sur le diagramme de collaboration.
n, cond, : message

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

Reprsentation des interactions


Numro du message: Lorsquun objet O reoit un message (synchrone), le numro de ce message est

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.

Attention (cohrence des divers diagrammes) :

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

Reprsentation des messages


Un message est spcifi sous la forme suivante :

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.

Reprsentation des messages


A
1: 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

Exemple avec interactions

leLivre :Livre unMembre: Emprunteur


emprunter(cetExemplaire)
2.1: est_emprunt

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

1: k : = obtenirNom() :ProfAdjoint {destroyed}

: Doyen
2: new ProfAgrg(n)

3 : destroy()

:ProfAgrg {new}

Message avec garde

concurrence
Le message 1 est un message simple itratif. Les messages 2.a et 2.b sont des messages synchrones concurrents.

Les messages 3.a et 3.b sont des messages asynchrones concurrents


3.a: envoyer(piste) 1: * alerte()

t:TourDeContrle

:Pompiers

2.b: dplacer(piste,parking)

b:Boeing747

3.b: atterrir(piste)

2.a: dplacer(piste,parking)

a1:Avion tat = _terre position = piste

a2:Avion tat = _terre position = piste

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.

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

SimpleChat OCSF Client Common

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

des composant via les interfaces requises et fournies

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

Composants Vue de la structure interne


Pour montrer la structure interne dun composant

Magasin
EntreCmdes <<delegate>>

:Commande
Personne

port
EntreCmdes

Entte LigneCmde

:Client

Compte ItemCommandable

<<delegate>>

Assembly connector

:Produit

Compte

Diagramme de composants MVC

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

Chaque ressource est 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

Machine de Joe:PC :Planificateur Admin:MachineHote


mise jour

GUI

:Gestionnaire Horaires
rservations Accs_bd

:Runions_BD

Exemple 3