Professional Documents
Culture Documents
Modlisation Objet
Pr. Omar El Beqqali
Omar.el-beqqali@insa-lyon.fr
omarelbeqqali@gmail.com
www.elbeqqali.net
O. El Beqqali 1
Plan
- Diagramme de collaboration
Le processus de dveloppement du logiciel - Diagramme de classes.
Les enjeux du Gnie Logiciel. - Diagramme d'objets
Le processus de dveloppement du logiciel. - Diagrammes d'tats-transitions
(GL) - Diagramme d'activits
O. El Beqqali 3
Spcification et conception du logiciel.
Mthodologie Objet : UML.
Objectifs
O. El Beqqali 4
La modlisation
O. El Beqqali 6
Conception par objets
Dmarche itrative plus que descendante (cycle itratif)
Grandes tapes
Identifier les entits du domaine
Structurer le domaine en analysant les proprits de ces
entits et leurs relations
Identifier les oprations que savent effectuer ces entits
Dcrire prcisment ces oprations en les reliant des
messages
Dcrire le lancement du programme
O. El Beqqali 7
Avantages de la conception objet
Implmentation Spcifications
fonctionnelles
Conception
Analyse
O. El Beqqali 9
Mthodes objets (historique)
OOD Object Oriented Design (G. Booch) 1991
HOOD Hierarchical Object Oriented Design (Delatte & al.) 1993
OOA Object oriented analysis (Schlaer ,Mellor) 1988, 92
OOA/OOD (Coad & Yourdon) 1991
OMT Object Modeling Technique 1991
OOSE Object oriented software engineering (Jacobson & al.) 1992
OOM Object oriented Merise (Bouzeghoub & Rochfeld) 1993
Fusion (Coleman & al.) 1994
Booch93 OMT-2
ABSTRACTION
Systme rel Modle
O. El Beqqali 16
UML : les diagrammes (2)
Fonctionnel
Diagramme de cas
dutilisation
Statique Dynamique
Diagramme de classes Diagramme dtats
Diagramme dobjets Diagramme dactivits
Diagramme de composants Diagramme de squence
Diagramme de dploiement Diagramme de collaboration
O. El Beqqali 18
Mcanismes de base
O. El Beqqali 19
O. El Beqqali 20
Cas dutilisation : Introduction
O. El Beqqali 21
Cas d'utilisation :
Notation (1)
Use Case
Ensemble cohrent de fonctionnalits fournies
par le systme ou un sous-systme en rponse
Cas d'utilisation une action de lutilisateur. Ce ci se traduit par
lchange de messages entre le systme et les
acteurs.
O. El Beqqali 22
Elaboration de CU
questions se poser :
quelles sont les tches de lacteur ?
quelles informations lacteur doit-il crer, sauvegarder, modifier,
dtruire, ou simplement lire ?
lacteur doit-il informer le systme de changements externes ?
On sintresse au domaine du quoi faire, pas du comment (sinon
on rentre dans la phase de conception)
on doit rester au niveau de linteraction acteur/systme
Frontire du systme
O. El Beqqali 23
Cas d'utilisation : Dmarche
O. El Beqqali 24
C.U
caractristiques (1)
Le cas d'utilisation utilise une description textuelle
Le cas d'utilisation est un cadre pour l'laboration des
diffrentes fins possibles pour le cas d'utilisation
L'analyse est complte lorsque tous les cas d'utilisation sont
tudis
Un cas d'utilisation dcrit l'change standard entre un acteur
externe et un systme; dcrit une famille de scnarios (voir
plus loin) incluant les cas d erreur.
L'acteur est l'initiateur de l'change, il peut tre:
Personne
quipement
systme externe
O. El Beqqali 25
Acteur
O. El Beqqali 26
Acteur
Diffrentes catgories dacteurs
Catgories
Acteurs principaux: personnes utilisant le systme ( qui va
servir le systme)
Acteurs secondaires: qui administrent le systme (paramtrent
le systme en lui fournissant les informations ncessaires ou
effectuent des m.a.j).
Exemple : bibliothque => ladministrateur est un A.S, le
membre est un A.P.
Types
Matriel externe: dispositifs matriels faisant partie du domaine
de lapplication.
Humains : utilisateurs du systme.
Logiciels, robots : qui exploitent les donnes du systme.
O. El Beqqali 27
Acteurs et cas dutilisation
systme
acteur
cas dutilisation
Guichetier
Note Opration sur
un guichetier est un employ
compte
de la banque jouant un r le
d'interface ent re le sy stme Lecteur code
informat ique et les clients
qu 'il reoit
prt
Gestionnaire de
prts
Tlphone
Appeler
Tlphone
Client
Interrompre
Recevoir
Appel Appel
Acteur Oprateur
C.U
O. El Beqqali 29
CU
caractristiques (2)
Identification d'une finalit de l'utilisateur
Un stimulus de dpart
Une pr-condition du systme au dclenchement
Un enchanement d'interactions
Une post-condition du systme la fin du cas
dutilisation
Enchanement dactions effectuer
Une fin normale (conditions dexcution ventuelles)
O. El Beqqali 30
Le cas d'utilisation
Acteur Acteur
Emetteur Use Case Receveur
Pr-condition
Scnario
Post-condition
O. El Beqqali 31
Cas d'utilisation :
Notation (2)
Les relations entre cas dutilisation :
-Extend
-Include
<<extend>>
Guichetier retrait
retrait Dhs
O. El Beqqali 33
Cas d'utilisation :
La notation (2)
La relation include indique que le UC point par la flche est une
sous partie de lautre UC .
factorisation des UC dont les fonctionnalits servent
frquemment dans des diffrents UC
(comportement communs plusieurs UC).
<<include>>
Retrait Saisie Ncompte
<<include>>
Emprunt
O. El Beqqali 34
Cas dutilisation et scenarii
scnario 2 scnario 3
scnario 1
scnario 4
Cas
Scnario = chemin dans le CU dutilisation
Description du CU
ensemble des scnarii
document avec flot dvnements
du point de vue de lacteur
dtaille ce que le systme doit fournir lutilisateur quand le CU est
excut
flot normal des vnements (80 %) -Nominal-
flots dvnements alternatifs
flots dexceptions (quand le CU ne ne termine pas correctement)
O. El Beqqali 35
Cas d'utilisation/scnario : Exemple
1/ Acheter un produit
O. El Beqqali 40
Cas d'utilisation:
un besoin
Acheter
un
produit
Vendeur
Acheteur
Catalogue
O. El Beqqali 41
Cas d'utilisation : Le scnario
Exemple Vente
O. El Beqqali 43
O. El Beqqali 44
Les diagrammes de squence (1)
O. El Beqqali 46
Diagrammes de squence (3)
O. El Beqqali 47
Diagrammes de squence :
exemple : systme de recherche dinformations
Systme
acteur
1 : entrer un mot de passe
4 : demande dinformations
6 : valider
Ligne
tlphonique
: Appelant : Appel
Message synchrone Dcroche
Numrotation
temps
Indications de sonnerie
*[pas dcroch] Sonnerie
Dcroche
O. El Beqqali 49
Diagrammes de squence
exemple : systme de gestion de comptes bancaires
: Banque Comptes:Compte
: Employ
opration(retrait,montant)
Compte?
compte(noCompte)
ok := retrait(compte,montant)
diminuer(montant)
[ok=True] imprimASigner
[ok=Faux] refus(retraitMax)
:A :B :A :B
P(a,b)
m m=P(a,b)
O. El Beqqali 50
Diagramme de squences
le suivi des vnements (trace event)
Exemple1 (Vente)
O. El Beqqali 54
O. El Beqqali 55
Diagrammes de collaboration
O. El Beqqali 56
Les interactions
Porte ouvrir()
:Cabine
Cabine +ouvrir()
+fermer() :Porte
+tat() Interaction entre 2 objets instances
des classes Cabine et Porte
Modlisation dune cabine dascenseur qui demande une porte de souvrir
O. El Beqqali 57
Diagrammes de collaboration
Reprsentation de lordre des envois de messages pour lexemple
De lascenseur :
: Ascenseur
4: dplacer(haut) 1: monter()
: Cabine 3: fermer()
: Porte
2: allumer()
: Voyant
O. El Beqqali 58
quivalence diagrammes de squence / collaboration
timer
fermer
F5(Rose)
portes ascenseur
5: ouvrir 7: fermer
3: dplacer
contrleur ascenseur
1:Appui bouton tage ascenseur
user
2: allumer
Diagramme bouton tage
de collaboration 6: timer 4: teindre O. El Beqqali 59
O. El Beqqali 60
Diagrammes de classes
Vue logique / statique / structurelle dun systme :
les classes et leur relations
Dans UML
Classes : structures et comportements
relations : associations, agrgations, dpendances,
gnralisation/spcialisation, noms de rles
contraintes
indicateurs de multiplicit et de navigation
Mais : toujours difficile de dterminer les classes
il faut des mthodes
Modle du domaine stable
Objets dans les diagrammes de squence et de collaboration,
O. El Beqqali 61
Diagramme de classes et dobjets (1)
UneClasse
priv : int Voiture de Toto Voiture de Toto
: Vhicule
public
protg
(Rose) Couleur = rouge Couleur = rouge
Masse = 895 kg Masse = 895 kg
opprivee( ) Puissance = 7 CV Puissance = 7 CV
oppublique( )
opprotge( ) Nom objet : classe
Visibilit et porte des attributs et des oprations :
Public : llment est visible pour tous les clients de la classe
Protg (protected): llment est visible pour les sous-classes de la classe
Priv (private): llment est visible pour la classe seule O. El Beqqali 62
Diagramme de classes et dobjets (2)
Exemple
Exemple
NomObjet Ali
Exemple
NomObjet : NomClasse Ali : tudiant
Exemple :tudiant
:NomClasse
Diagramme dobjets
Diagramme de classes est une instance de :Voiture :Moteur
Voiture Moteur
1 1
1
association lien
4
1 Un et un seul
0..1 Zro ou 1
N N(entier naturel)
1..* De 1 plusieurs
O. El Beqqali 66
Classes-Associations
Job
salary
O. El Beqqali 67
Associations qualifies (1)
sans cl avec cl
{Linstance de A , valeur du qualificatif } identifie le sous ensemble des instance de B :A
A qualificatif * B
{sous-ensemble} Banque centrale
No banque
Exemple :
1..* Contient 1 Fichier
Rpertoire
Nom fichier Banque
O. El Beqqali 69
Lagrgation
Une agrgation
Agrgat Elment agrg
(A) (B)
* Attache
E-mail Fichier
*
O. El Beqqali 70
Composition dobjets
Cas particulier dagrgation contenance physique
Si destruction objet compos destruction des composants
Fentre Agrgat A Classe B
Exemple
1 0 .. 1 *
Compos Composant
2 1 1
titre contenu
barre_dfilement
barre_dfilement : ascenseur
titre : en-tte
1 1 contenu : cadre
Bouton Texte
O. El Beqqali 71
La composition
Agrgation forte
Destruction du composite (x est une partie de y?)
=> Destruction automatique de tous ses composants
Composition
Exemple
Livre {ordered} Page
1 1..*
Agrgation
La contrainte { ordered } indique que
1
la collection des pages dun livre est ordonne
Couverture
O. El Beqqali 72
Lhritage
Moyen de raliser la classification ou
lorganisation en classes vocabulaire rserver
limplantation
Vhicule
Gnralisation :
regroupement, est- {incomplte} Vhicule arien
Vhicule terrestre
un , sorte-de
Spcialisation contraint e
(symtrique gnralisation):
raffinement de classe
Transmission super-classe
- par extension de proprits
(ajouter un attribut)
- par restriction de domaines Continue {disjoint} Discrte
sous-classes
de valeurs dattributs
O. El Beqqali 74
Gnralisation/spcialisation (2)
Livre Livre
Chat Chien
Roman
O. El Beqqali 75
Hirarchies de classes
Facture
Contraintes : date
pour
Livraison
{complte}, adresse 1 1..*
{incomplte}, montant
{disjoint}, imprimer()
expdier()
Attributs / oprations
destination {complete}
communs sont
montres au niveau le
plus haut. Facture_export Facture_Maroc
devise_paiement taux_TVA
montant_devise montant_ttc
convertir(devise) calcul_ttc()
La contrainte {complte} indique que la gnralisation est
termine et quil nest plus possible de rajouter des sous- O. El Beqqali 76
classes.
Hritage multiple
V hic ule
Exemple :
{disjoint}
O. El Beqqali 78
Paguetages: un espace de nommage
Client
Facturation:: * 1
Facture Client Socit
1 1
concerner acheter
1 *
Commande Produit
nomDuPackage : : NomDeLaClasse
O. El Beqqali 79
Paquetages : exemple
But : organiser un modle objet
clients Gestion
Gestion
Compte
Entreprise
<< accde >> (from Client)
Banque
Reseaux
lien de dpendance
O. El Beqqali 80
Diagrammes dtats transition Statecharts (1)
Attach une classe, il doit prsenter une classe par rapport ses tats
possibles et aux transitions qui le font voluer.
Lorsque [vnement] => changement d'tat
L'action peut tre conditionnelle : [condition] action.
Un tat = image de la conjoncture instantane des valeurs des attributs dun
objet
& Prsence ou non de ses liens dautres objets.
Une transition reprsente un changement d'tat; elle est dclenche par un
vnement.
- Transitions
peuvent tre automatiques
peuvent tre conditionnes
- Evnements
dclenchent les transitions
O. El Beqqali 81
Construction du diagrammes
tats transition Statecharts (2)
Un Statechart est un graphe orient dont les nuds sont des tats et les arcs
sont des transitions.
Etat initial
EVENEMENT_K (attributs)
ETAT_I ETAT_J
Etat final
Dans un tat, une activit est une opration squentielle qui se termine d'elle-mme au
bout d'un certain temps, ou opration continue qui dure indfiniment (peut tre
interrompue par l'arrive d'un vnement).
action dentre : excution instantane de l action lors de lentre dans ltat. faire : activit_1
entre / action_2
action de sortie : excution de l action au moment de quitter ltat. sortie / action_3
vnement / action_4
actions internes : excution dune action sur vnement sans changer dtat.
O. El Beqqali 83
Diagrammes dtats-transitions - Exemple
Incrmenter Crdit(p)
Systme Publiphone
DcrocherCombin
[P. Roques]
attente Pic e [ Crdit>=0,5 ]
Raccroch
racc rocherCombin
taxer Attente
Numro
Attente
Raccrocher Combin Validit
Dbuter Communication
couloirs d'activit
expdier :Commande
(Swimlanes) produit etat = envoye
recevoir
produit
Dbut
payer
facture
encaisser :Commande
O. El Beqqali 85
Diagrammes dactivits : exemple
O. El Beqqali 86
Diagramme de composants (1)
convert
library
<< link >>
executable
O. El Beqqali 88
Diagramme de dploiement (1)
1..n
1
:Station
:Modem 1024 kB / s UltraSPARC
ADSL
RAM >= 1GB
1
1
TCP / IP
1..n
:PC
client ssh 0..n
:PC
client telnet
client NFS
O. El Beqqali 90
Dmarche dapplication D'UML
tape 1 : laboration d'un diagramme de contexte du systme tudier:
Prcision du champ du systme tudier
tape 2 : identification et reprsentation des cas d'utilisation :
Identification des fonctions du systme
tape 3 : description et reprsentation des scnarios:
chaque cas d'utilisation se traduit par un certain nombre de scnarios.
Chaque scnario fait l'objet d'une description textuelle. Chaque scnario est ensuite
dcrit sous forme graphique l'aide du diagramme de squence et/ou diagramme
de collaboration.
tape 4 : identification des objets et classes
tape 5 : laboration du diagramme de classes
tape 6 : laboration du diagramme tat-transition :
pour chaque classe importante c'est dire prsentant un intrt pour le systme
modliser, un diagramme tat-transition est labor.
tape 7 : consolidation et vrification des modles:
Itration des tapes 3, 4, 5 et 6 => niveau suffisant pour la description du systme.
O. El Beqqali 91
UML & Bases de donnes (1)
2 approches
+ A l ie u D a n s 0 ..*
< < R e la t i o n a l T a b le > >
< < R e la t io n a lT a b le > > 0..* 0 ..* COURS < < R e la t io n a lT a b le > >
+ E n s e i g n P a r + E n s e ig n
E TU DIA N T DEB U T : DATE E N S E IG N A N T
+ In s c r i t + S u i vi P a r D IN : D A T E 0..* 0 ..1
O. El Beqqali 92
UML & Bases de donnes (2)
DataModeler de Rose P e rs o n n e
( fr o m R e l a ti o n n e l )
M a tr i c u l e : S M A LL IN T
Nom : V A R C H A R (2 5 5 )
schma de BD A d r e ss e
T le : V
:
A
V
R
A R C H A R (2 5 5 )
C H A R (2 5 5 )
1 .. *
1 ..*
P ro d u i t
( fr o m R e l a ti o n n e l )
Com m ande
N u m P ro d : S M A L L I N T
( fr o m R e l a ti o n n e l )
D si g n a t i o n : V A R C H A R ( 2 5 5 )
Id C d e : S M A L L IN T < < Id e n t if y i n g > > P ri x U : S M A L L I N T
< < Id e n ti fy i n g > >
D a te C d e : D A T E I d F o u rn : S M A L L I N T
Id C l i : S M A L L IN T M a t ri c u l e : S M A L L I N T
1
M a t ri c u l e : S M A L L I N T 1
1
0 ..* 0 ..*
L ig n eC o m m a n d e
( fr o m R e l a ti o n n e l )
N u m P ro d : S M A L L I N T
strotype visuel Id C d e : S M A L L IN T
O. El Beqqali 93
Gnration du code / UML
Diffrents types :
objet , bases de donnes
Automatique ?
information dans les modles insuffisante
paramtrage des outils : traduction des associations,
mthodes engendres automatiquement
degr de traduction dpend du langage cible
Implantation
Modle UML
O. El Beqqali 98
UML 2.0 : Nouveauts
tats-
transitions
O. El Beqqali 100
Mta-modle d'UML
O. El Beqqali 101
O. El Beqqali 102
Conclusions
Proprits dUML
Unification des concepts de modlisation
Puissance dexpression
Nombreux formalismes (issus de mthodes existantes)
Mcanismes dextension inclus (strotypes)
Description par un mta-modle (syntaxe et smantique des modles)
Compromis formalisation / niveau dabstraction
(impression quUML est une mthode)
O. El Beqqali 103
Bibliographie
Prsentation dUML non exhaustive , pour la description exacte de toute la
syntaxe et la smantique :
www.omg.org www.rational.com
A. Muller : Modlisation objet avec UML , Eyrolles, 2000
P. Roques, UML par la pratique , Eyrolles, 2004
J. Rumbaugh, I. Jacobson, and E. Booch, The Unified
Modeling Language Reference Manual . Reading, MA:
Addison-Wesley, 1999.
UML 2 en action : De lanalyse des besoins la conception
J2EE , Pascal ROQUES et Franck VALLEE, ED. Eyrolles
Web.
O. El Beqqali 104