Vous êtes sur la page 1sur 38

UML

Introduction

UML (Unified Modeling Language) est un langage unifi pour la modlisation objet.

UML est un langage (de modlisation objet) et propose une notation et une smantique associe cette notation (i.e. des modles), mais pas de processus (i.e. de dmarche proposant un enchanement dtapes et dactivits qui mnent la rsolution dun problme pos). UML unifie des mthodes objet, et plus particulirement les mthodes Booch93 de G. Booch, OMT-2 (Object Modeling Technique) de J. Rumbaugh et OOSE (Object-Oriented Software Engineering) dI. Jacobson. UML a une approche entirement (i.e. couvrant tout le cycle de dveloppement : analyse, conception et ralisation) objet (et non fonctionnelle) : le systme est dcompos en objets collaborant (plutt quen tches dcomposes en fonctions plus simples raliser).

Diffrents diagrammes

Diagrammes capturant l aspect statique du systme


Diagramme des cas d utilisation Diagramme de classe et de paquetage Diagramme d objet Diagramme de composants Diagramme de dploiement

Diffrents diagrammes (2)

Diagrammes capturant l aspect dynamique du systme

Diagramme de collaboration Diagramme de squence Diagramme d activit Diagramme d tat-transition

Diffrents diagrammes (3)

Modle de classes

Saisit la structure statique d'un systme en montrant les objets dans le systme, les relations entre les objets, les attributs et les oprations qui caractrisent chaque classe d'objets Deux diagrammes

Diagrammes de classes Diagrammes dobjets

Diagramme de classes/Diagramme dobjets


association

Personne

1..*

Entreprise

employ +assigner(unProjet: Projet)

employeur

assigner(nouveauJeu) vous : Personne kalisto : Entreprise

lien

Description dune classe


Vhicule
+Marque : String +Modle : String +NImm : String #Turbo : boolean = True +NB_Roues : int = 4
+Demarrer() +Rouler() +Freiner(vitesse:float):Temps

Description dune classe (2)

Les attributs
Syntaxe complte :
<visibilit> <nomAttribut>:<type>=<valeur par dfaut>

Visibilit :
+ pour une opration publique, cest--dire accessible toutes les classes (a priori associe la classe propritaire) ; # pour les oprations protges, autrement dit accessibles uniquement par les sous-classes de la classe propritaire ; - pour les oprations prives, inaccessibles tout objet hors de la classe.

Description dune classe (3)

Les oprations (ou mthodes)

Une opration est un travail quune classe doit mener bien, un contrat quelle sengage tenir si une autre classe y fait appel. Pour la programmation, il sagit dune mthode de la classe. Syntaxe complte :
<visibilit><nomOpration>(listeParamtres):typeRetour {proprit}
proprit est un prdicat ou un invariant que doit satisfaire lopration

Relations entre classes

Associations dclines en

Association simple Agrgation Composition

Gnralisation/Spcialisation Ralisation

Associations

Une association reprsente les liens qui existent entre les instances des classes associes. Plusieurs liens entre objet peuvent se projeter sur une mme association L association exprime une connexion smantique bidirectionnelle entre classe

Associations (2) : les cardinalits

Un rle est dot dune multiplicit qui fournit une indication sur le nombre dobjets dune mme classe participant lassociation.

1 : Obligatoire (un et un seul) 0..1 : Optionnel (0 ou 1) 0..* ou * : Quelconque n..* : Au moins n n..m : entre n et m l,n,m : l , n, ou m

les cardinalits se lisent en UML dans le sens inverse du sens utilis dans MERISE

Associations (3)

Il est frquent quun lien smantique entre deux classes soit porteur de donnes qui le caractrisent

Employ

embauche
1..* 1..*

Entreprise

Numro de contrat

Agrgation

Lagrgation est une relation compos-composant ou partie de dans laquelle les objets reprsentant les composants d'une chose sont associs un objet reprsentant l'assemblage (ou l'agrgation) entier. L'agrgation est une forme spciale d'association. Le symbole reprsentant lagrgation est le losange. Il est situ ct de la classe compose.

Document

Paragraphe

Phrase

Composition

Relation partie-de plus stricte : pas de partage Le compos encapsule ses composants Dure de vie du composant est gale celle du compos (le compos na pas dexistence propre).
Muraille Chteau
maMuraille : Muraille monDonjon : Donjon

Chteau

Donjon

En programmation

Spcialisation/Gnralisation

La relation Gnralisation/spcialisation se traduit par est une sorte de . Elle implique le partage de code et le sous-typage

Spcialisation/Gnralisation (2)

Gnralisation complte ou incomplte

Une gnralisation peut tre prcise complte ou incomplte grce un commentaire associ au diagramme
Animal {incomplte}

Chien

Chat

Cheval

Exemple

Ralisation

Une ralisation est une association entre deux classificateurs dans laquelle un classificateur sengage excuter le contrat dfini par lautre classificateur

Cas dutilisation (Use Case)

Les cas d utilisation permettent de dfinir un systme en fonction des besoins exprims par les utilisateurs.

Recenser et clarifier les besoins des clients


Dfinition des acteurs (Rle). Description de leurs actions vis vis du systme Dlimitation de la frontire du systme Dfinition des actions/ractions du systme

Un acteur (actor) est un ensemble cohrent de rles jous par des entits externes (utilisateur, dispositif matriel ou autre systme) qui interagissent avec le systme.

Plusieurs utilisateurs peuvent tenir le mme rle.

Pour une salle des march, il y a plusieurs personnes qui joue le rle de ngociant
Un ngociant peut acheter pour son propre compte.

Un utilisateur peut avoir plusieurs rles.

Reprsentation graphique :

Actor

L acteur et le systme:

L'acteur consulte ou modifie l'tat du systme.

Quelles informations communiques au systme. Quelles sont les actions de l acteur Quelles informations sont communiques par le systme.

Le systme rpond une action de l acteur.


Cas dutilisation : exemple

Relation d utilisation: Un cas dutilisation contient le comportement dun autre (sous fonction).

Relation d extension: Un cas dutilisation prcise un autre cas.

Cas dutilisation

Cas dutilisation

Le nom du cas dutilisation Lacteur primaire du cas dutilisation Le systme concern par le cas dutilisation

Le niveau du cas dutilisation Objectif utilisateur Sous-fonction (pour les cas dutilisation tendant un autre ou destins tre inclus)

Les oprations Les points dextension (afin de programmer les conditions)

Cas dutilisation

Diagramme d objet (1)

Ce diagramme prsente

l identit des objets leur classe (qui peut tre indfinie) leur tat (pas ncessairement la valeur de leur variable d instance) les liens entre les objets une qualification des liens

Diagramme d objet (2): exemple

unePorte

unAutreObjet

maVoiture : Twingo
: Fentre

objet anonyme

Diagramme d objet (3): exemple

maVoiture : Twingo
couleur = bleu vitesse = 20

Moi : Conducteur

Conduit

encoreUneAutre : Voiture

[ Voiture en Panne]

Diagramme dobjet (4)

uneMaison:Maison

uneChambre:Piece
[Chauffe]

se couche

Paul:Personne

Diagramme dobjets (5)

De l objet la classe

Une classe reprsente un ensemble d objets. Un objet sera obligatoirement attach une classe. Les objets similaires sont regroups dans la mme classe.