Vous êtes sur la page 1sur 30

heg Haute cole de gestion

de Neuchtel

UML Langage unifi pour la


modlisation objet

heg Haute cole de gestion


de Neuchtel

Dmarche

Ce document de rvision du cours UML a t ralis sur la


base de louvrage:
Le guide de lutilisateur UML
Booch / Rumbaugh / Jacobson
Eyrolles (traduction franaise) [BRJ-00]

heg Haute cole de gestion


de Neuchtel

Limportance de la modlisation

Quest quun modle?


Un modle est une simplification de la ralit

Pourquoi modliser?
Les modles permettent de mieux comprendre le
systme que lon dveloppe

Nous construisons des modles pour les systmes


complexes parce que nous ne sommes pas en
mesure dapprhender de tels systmes dans leur
intgralit.
[BRJ-00 p5-7]

heg Haute cole de gestion


de Neuchtel

Les quatre principes de modlisation

1. Le choix des modles crer a une forte


influence sur la manire daborder un
problme et sur la nature de sa solution.
2. Tous les modles peuvent avoir diffrents
niveaux de prcision.
3. Les meilleurs modles ne perdent pas le sens
de la ralit.
4. Parce quaucun modle nest suffisant lui
seul, il est prfrable de dcomposer un
systme important en un ensemble de petits
modles presque indpendants.
[BRJ-00 p8-9]

heg Haute cole de gestion


de Neuchtel

UML - Langage

UML est un langage conu pour:

visualiser
spcifier
construire
documenter

les artefacts dun systme forte composante


logicielle

[BRJ-00 p14]

heg Haute cole de gestion


de Neuchtel

Processus de dveloppement (de) logiciel

Un processus correctement dfini aide


choisir:
les artefacts produire
les procdures dvelopper
les intervenants chargs de leur cration et
de leur gestion
la manire demployer ces artefacts pour
valuer et diriger le projet dans son
ensemble
[BRJ-00 p14]

heg Haute cole de gestion


de Neuchtel

UML - 3 sortes de briques

Elments

structurels
comportementaux
de regroupement
dannotation

Relations

de dpendance
dassociation
de gnralisation
de ralisation

Diagrammes

de classes
dobjets
de cas dutilisation
de squence
de collaboration
dtats-transition
dactivits
de composants
de dploiement

[BRJ-00 p18]

heg Haute cole de gestion


de Neuchtel

Les lments structurels

Conceptuels (reprsentent des concepts intellectuels


Les classes
Les interfaces
Les collaborations
Les cas dutilisation
Les classes actives

Physiques (reprsentent des ralisations concrtes)


Les composants
Les noeuds
[BRJ-00 p19]

heg Haute cole de gestion


de Neuchtel

Les lments comportementaux

Les interactions
Les messages

Les automates tats finis (machines tatstransition


Les tats

[BRJ-00 p22]

heg Haute cole de gestion


de Neuchtel

Les lments de regroupement, dannotation

Les paquetages

Les notes

[BRJ-00 p23]

heg Haute cole de gestion


de Neuchtel

Les relations

La dpendance
Cible

Lassociation
La gnralisation
Parent

La ralisation
Contrat
[BRJ-00 p24]

heg Haute cole de gestion


de Neuchtel

Architecture

Vocabulaire
Fonctionnalit

Vue de
conception
Comportement

Vue
dimplmentation

Assemblage du
systme
Gestion de
configuration

Vue des cas


dutilisatio
n
Vue des
Vue de
processus
dploiement

Performance
Capacit monter en charge
Dbit

Topologie du
systme
Distributiuon
Livraison
Installation
[BRJ-00 p34]

heg Haute cole de gestion


de Neuchtel

Architecture

Logical View

Vue de
conception

Component View

Vue
dimplmentation

Vue des cas


dutilisatio
n
Vue des
Vue de
processus
dploiement

Use Case View

A crer!

Deployment View

[BRJ-00 p34]

heg Haute cole de gestion


de Neuchtel

Architecture

Utilisateur final
Vocabulaire
Fonctionnalit

Vue logique
Analystes/Testeurs
Comportement

Intgrateurs systmes
Performance
Capacit monter en charge
Dbit

Vue
dimplmentation

Vue des cas


dutilisatio
n
Vue des
Vue de
processus
dploiement

Programmeurs
Assemblage du
systme
Gestion de
configuration

Ingnieurs systme
Topologie du
systme
Distributiuon
Livraison
Installation
[PK-00 p81]

heg Haute cole de gestion


de Neuchtel

Modlisation des lments non-logiciels

1. Modliser sous forme de classes les


abstractions que lon porte sur les lments
2. Crer de nouvelles briques laide de
strotypes

[BRJ-00 p59]

heg Haute cole de gestion


de Neuchtel

Relation de dpendance

La plupart du temps, les dpendances servent


montrer quune classe en utilise une autre comme
argument dans la signature dune opration. On
parle alors de relation dutilisation: si la classe
utilise change, lopration de lautre classe peut
en tre affecte

[BRJ-00 p66]

heg Haute cole de gestion


de Neuchtel

Diagramme dactivits

Lillustration dune chose intrinsquement


dynamique (comme le comportement dun
systme) laide de diagrammes (qui sont des
artefacts intrinsquement statiques, surtout
lorsquon les dessine sur une feuille de papier, un
tableau blanc ou au dos dune enveloppe) prsente
des limites pratiques videntes. Sur lcran de
lordinateur, on peut animer les diagrammes
comportementaux afin quils simulent un systme
excutable
[BRJ-00 p105]

heg Haute cole de gestion


de Neuchtel

Modlisation dun schma logique de BD

Les diagrammes de classes UML constituent un


surensemble de diagrammes entits-associations
(E-A), un outil de modlisation courant pour la
conception des bases de donnes. Alors que les
digrammes E-A classiques sont centrs sur les
donnes, les diagrammes de classes vont un peu
plus loin et permettent galement la modlisation
de comportements. Dans la base de donnes
physique, ces oprations logiques sont en gnral
transformes en dclencheurs (triggers) ou en
procdures stockes ( stored procedures).
[BRJ-00 p118]

heg Haute cole de gestion


de Neuchtel

Porte des attributs de classes

La porte dune caractristique prcise si cette


caractristique apparat dans chaque instance du
classificateur ou sil ny a quune seule instance de la
caractristique pour toutes les instances du classificateur.

Dans lexemple ci-dessus:


header
a une porte instance
uniqueID a une porte classificateur ou constante de classe
[BRJ-00 p133]

heg Haute cole de gestion


de Neuchtel

+ Informel

+ Formel

Modlisation de la smantique dune classe

Responsabilits
Smantique globale
Spcification du corps de chaque
opration
Spcification des pr et postconditions
de chaque opration (texte structur)
Dfinir un automate tats finis
Spcifier une collaboration
Spcification des pr et postconditions
de chaque opration (langage OCL)
[BRJ-00 p142]

heg Haute cole de gestion


de Neuchtel

Interfaces et classes abstraites

Les interfaces ressemblent aux classes abstraites


(par exemple, ni les unes ni les autres ne peuvent
avoir dinstances directes), mais elles en sont
assez diffrentes pour tre des lments de
modlisation distincts en UML. Les classes
abstraites peuvent avoir des attributs, ce qui nest
pas le cas des interfaces. De plus, ces dernires
chevauchent les fontires des modles. Une mme
interface peut tre ralise la fois par une classe
(une abstraction logique) et par un composant
(une abstraction physique qui fournit une
manifestation de la classe).
[BRJ-00 p171]

heg Haute cole de gestion


de Neuchtel

Les interfaces et les frontires des modles

Abstraction
logique

Abstraction
physique

[BRJ-00 p171]

heg Haute cole de gestion


de Neuchtel

Paquetages et classes

Il existe une diffrence importante entre les classes


et les paquetages: les classes sont des abstractions
dlments rencontrs dans un problme ou dans
une solution, alors que les paquetages sont des
mcanismes utiliss pour organiser ces lments
dans un modle. Les paquetages nont aucune
identit (ce qui signifie que les instances de
paquetages nexistent pas et quils sont invisibles
dans le systme en excution), tandis que les
classes ont une identit (elles ont des instances,
qui sont les lments dun systme en excution).
[BRJ-00 p189]

heg Haute cole de gestion


de Neuchtel

Objets concrets et objets prototypes

La diffrence smantique entre objets concrets et


objets prototypes est subtile et ne concerne
vraiment que les concepteurs confirms
Les objets concrets apparaissent dans des
reprsentations statiques, telles que des
diagrammes dobjets, des diagrammes de
composants et des diagrammes de dploiement,
alors que les objets prototypes apparaissent dans
des diagrammes dinteraction et des diagrammes
dactivits.
[BRJ-00 p205]

heg Haute cole de gestion


de Neuchtel

Objets et rles

Les objets qui participent une interaction sont des


lments concrets ou des prototypes
Objet concret: Jean Dupont, le caissier
Objet prototype: un caissier

On peut trouver des instances de classes, de composants, de


nuds et de cas dutilisation dans le contexte dune
interaction. Mme si, par dfinition, les classes abstraites et
les interfaces ne peuvent pas avoir dinstances directes, il
est possible de trouver des instances de ces lments dans
une interaction. Elles ne reprsentent pas des instances
directes de la classe abstraite ou de linterface, mais
peuvent indiquer, respectivement, des instances indirectes
(prototypes) de nimporte quels enfants concrets de la classe
abstraite ou une classe concrte qui ralise cette interface
[BRJ-00 p221]

heg Haute cole de gestion


de Neuchtel

Les messages

Un message est la spcification dune


communication entre objets, qui transporte des
informations et qui saffiche dans le but de
dclencher une activit. La rception dune
instance de message peut tre considre comme
une instance dun vnement.
Lorsquon transmet un message, laction qui en
rsulte est un nonc excutable qui forme une
abstraction dune procdure de calcul. Cette
action peut conduire un changement dtat.
[BRJ-00 p223]

heg Haute cole de gestion


de Neuchtel

Les actions dclenches par les messages

call

invoque une opration pour un objet.


Un objet peut senvoyer un message,
qui rsulte en linvocation locale
dune opration

return

renvoie une valeur lmetteur

send

envoie un signal lobjet

create

cre un objet

destroy

dtruit un objet. Un objet peut se


dtruire lui-mme
[BRJ-00 p223]

heg Haute cole de gestion


de Neuchtel

Application des cas dutilisation

On peut appliquer les cas dutilisation un


systme dans son intgralit. On peut galement
les appliquer une partie dun systme, aux soussystmes ainsi quaux classes individuelles et aux
interfaces.

[BRJ-00 p235]

heg Haute cole de gestion


de Neuchtel

Les relations entre cas dutilisation

Un cas dutilisation peut comporter des variantes.


Dans tous les systmes intressants, on trouve des
cas dutilisation qui sont des versions spcialises
dautres cas dutilisation, des cas dutilisation qui
font partie intgrante dautres cas dutilisation et
des cas dutilisation qui largissent le
comportement dautres cas dutilisation essentiels.

[BRJ-00 p235]

heg Haute cole de gestion


de Neuchtel

Gnralisation, inclusion et extension

[BRJ-00 p242]