Академический Документы
Профессиональный Документы
Культура Документы
Eric Cariou
Master Technologies de l'Internet 1re anne
Universit de Pau et des Pays de l'Adour
UFR Sciences Pau Dpartement Informatique
Eric.Cariou@univ-pau.fr
1
Introduction
http://www.omg.org/spec/UML/
Modles
Historique
But initial
Problme
Analyse
Spcification
Implmentation
Test
Analyse
Conception
Spcification d'implmentation
....
13 diagrammes diffrents
Diagrammes structurels
Diagrammes de comportement
Plan
Diagrammes fonctionnels
Cas d'utilisation
Diagrammes statiques
Diagrammes dynamiques
Diagrammes d'implmentation
10
Objectif de l'utilisateur
Interaction du systme
12
Acteur
Vendeur
Prendre la
commande
Acheteur
Demander
un crdit
Cas d'utilisation
Directeur du magasin
tend
gnralise
inclut
13
Plan
Diagrammes fonctionnels
Diagrammes statiques
De classes
D'objets
De composants
De structure composite
Diagrammes dynamiques
Diagrammes d'implmentation
14
Diagramme de classes
Association
Sous-typage/gnralisation
Diagramme de classes
Diagramme conceptuel
Diagramme de spcification
Diagramme d'implmentation
Mais encore une fois, peut utiliser des diagrammes de classe pour
16
modliser autre chose que du code objet
Diagramme de classes
Association
Commandes
Attributs
Oprations
date : string
prpay : boolean
nombre : string
prix : float
Client
1
*
Cardinalits
nom : string
adresse : string
montant-crdit() : int
envoyer()
terminer()
Gnralisation
1
Classe
Rle d'association
Articles
Ligne-de-commande
quantit : int
prix : int
est-satisfait : boolean
Client-entreprise
Client-individuel
nom-du-contact : string
montant-crdit() : int
limite-crdit() : int
facture-du-mois(int)
noCarteBleue : int
{ montant-crdit() = 0 }
Produit
Contrainte
Note
17
Diagramme de classes
Attributs
Diagramme de classes
Oprations
Diagramme de classes
<< interface >>
Vhicule
Voiture
dmarrer()
avancer(int distance)
arrter()
Interface
Conducteur
Implmentation
Voiture
Nom en italique
Ne peut tre instancie
Dpendance,
utilisation
Moto
4 Roue
Vhicule
Agrgation
Vhicule
dmarrer()
avancer(int distance)
arrter()
Voiture
20
Diagramme de classes
Association unidirectionnelle
1..*
A
0..1
A
*
2..5
21
Diagramme de classes
Enumeration
Classe d'association
Entreprise 1 employeur
<<enumeration>>
TypeContrat
CDD
CDI
emplois
Poste
intitul : string
salaire : float
type : TypeContrat
22
Diagramme de classes
Entreprise
employ
Personne
{xor}
directeur
{ordered}
Sous-tche
Association
membres
{subset}
prsident 1
Personne
23
Diagramme de classes
Elments drivs
Banque
/argent : int
Client
nom : string
Exemples
Compte
solde : int
crditer(int)
dbiter(int)
* /banques
Diagramme de classes
Contraintes
25
Diagramme d'objets
Diagramme d'objets
Point
Point:P1
int X
int Y
2
x = 12
y = 20
contient
*
Rectangle
Diagramme
d'objets
:P2
Nom/identificateur
de l'objet
x = 30
y = 40
Rectangle:
Etat de l'objet
Association
Objet
move(int, int)
:points
Diagramme de
classe
Objets multiples
27
...
Point p1 = new Point(12,20);
Rectangle rect = new Rectangle(p1, new Point(30,40));
...
Attention
Diagramme de composants
Composant
Composant composite
Port
Connecteur
29
Diagramme de composants
Port
Interface
fournie
Dlgation
Interface
requise
Composant
interne
30
31
Plan
Diagrammes fonctionnels
Diagrammes statiques
Diagrammes dynamiques
D'tats
De squence
D'activit
De communication
De temps
Diagramme d'implmentation
32
Diagrammes dynamiques
Diagrammes d'tats
33
Diagramme d'tats
do/contrle
article
article reu
[pas tous en stock]
Transition
Evnement
Garde
article reu
[tous disponibles]
En attente
Livraison
do/initialiser
la livraison
livr
Livr
Transition
Activit
Etat
34
Diagramme d'tats
Diagramme d'tats
do/contrle
article
article reu
[pas tous en stock]
articles reus
[tous disponibles]
En attente
annul
annul
Livraison
do/initialiser
la livraison
livr
Livr
annul
Annul
36
Diagramme d'tats
Contrle
[pas tous contrls]/
traiter larticle suivant
faire/contrle
article
article reu
[pas tous en stock]
articles reus
[tous disponibles]
Actif
Livraison
faire/initialiser
la livraison
livr
En attente
annul
Annul
Livr
37
Diagramme d'tats
Autorisation
En attente
do/contrle
paiement
Contrle
[paiement OK]
Autoris
Livraison
Rejet
Livr
Autorisation
Autoris
tat de fin
Livr
Rejet
38
Diagramme d'tats
Etats historiques
Exemple
39
Diagramme d'activits
Diagrammes d'activits
A utiliser
Inconvnient
Conception : une tche qui est excute soit par un humain ou par
un ordinateur
Spcification/implmentation : une mthode ou le comportement
d'une classe
40
Diagramme d'activits
Diagrammes d'activits
trouver une
boisson
mettre le filtre
dans la machine
ajouter de leau
dans le rservoir
Test
[pas de caf]
[trouv caf]
mettre du caf
dans le filtre
Garde
prendre
des tasses
Barre de synchronisation
[pas de limonade]
[trouv limonade]
prendre de la
limonade
Activit
mettre en marche
la cafetire
^potcaf.en marche
prparer le caf
lumire teinte
verser le caf
Fin
boire la boisson
41
Diagramme d'activits
service
financier
traitement de la
commande
gestion du stock
rception
de commande
rception
articles
autorisation
de paiement
[non OK]
Contrler la
ligne de cmde
prendre articles
en attente
*[pour chaque article choisi]
[en stock]
[OK]
annuler
commande
complter
la commande
affecter articles
la commande
[besoin rappro]
recommander
larticle
ajouter la reste
au stock
42
Diagramme de squence
43
Diagramme de squence
Diagramme de squence
:fentre d'entre
d'une commande
:commande
prepare()
Objet
:ligne de
commande
:article
Message
enStock:=controle()
Itration
[enStock]retirer()
Condition
besoinrappro:=
besoinRappro()
Dlgation soi-mme
Ligne de vie
de lobjet
[besoinrappro]new
:article
rapprovis.
44
Diagramme de squence
[besoinrappro]new
:article
rapprovis.
[enStock]new
:article
livr
Cration
45
Diagramme de squence
Prcise explicitement quand les objets sont actifs (au sens flot
de contrle d'un processus / thread)
:transaction
Message asynchrone
new
Activation,
flot de
contrle
:coordinateur
de transaction
new
:premier
contrleur de
transaction
new
Ligne
de vie
:second
contrleur de
transaction
ok
Destruction de l'objet
tout est fait ?
ok
Dlgation soi-mme
46
Diagramme de squence
Cadre d'interaction
Types de cadres
Alt
Loop
Par
Boucle
Opt
Region
47
Diagramme de squence
-- tir de [Fowler2004]
procedure distribuer
foreach (ligne)
if (produit.valeur
> $10000
spcial.distribuer
else
standard.distribuer
endif
end for
if (ncessiteConfirmation)
coursier.confirmer
end procedure
48
Diagrammes de collaboration
49
Diagramme de communication
Diagramme de communication
Du ? Des ?
Objet
Message
Numro de squence
:commande
1.1*[pour toutes les lignes]:prepare()
Dlgation
soi-mme
1.1.2.1: besoinrappro:=
besoinRappro()
1.1.1:enStock:=controle()
1.1.2:[enStock]retirer()
Itration
:article en stock
:ligne de commande
1.1.3:[enStock]new
:article livr
Garde
1.1.2.2:[besoinrappro]new
:article rapprovisionn
51
/source
:capteur temprature
Nom de rle
Rle
1 : changement_tat(valeur)
1
Contrleur
1
Utilisation de
collaboration
source
Rle jou
par un objet
Observation
observateur
observateur
*
/observateur
:afficheur
:log
Itration en parallle
Diagramme d'instances
Diagramme de collaboration
nomme Observation
52
Diagramme de collaboration
* : itration, || : en parallle
Exemples
Types de messages
54
Diagrammes d'tats
Diagrammes d'activits
Sorte de mlange
d'un diagramme de
squence et d'un
diagramme d'activit
56
Diagramme de temps
57
Plan
Diagrammes fonctionnels
Diagrammes statiques
Diagrammes dynamiques
Diagrammes d'implmentation
De paquetages
De dploiement
58
Diagrammes d'implmentation
Diagramme de paquetages
Utile au programmeur
Diagramme de dploiement
Diagramme de paquetages
Diagramme de paquetages
Interface utilisateur
saisie commandes
Interface utilisateur
Liste diffusion
AWT
Dpendance
Package
Application
saisie commandes
Application
liste de diffusion
Commandes
Clients
61
Diagramme de dploiement
Diagramme de dploiement
base de
donnes
Composant
Noeud
serveur
Client
Interface
PC sous Windows
UI
Dpendance
62
Avantages d'UML
Inconvnients d'UML