Documente Academic
Documente Profesional
Documente Cultură
http://www.lamsade.dauphine.fr/~manouvri/UML/CoursUML_MM.html
Bibliographie
Ouvrages/Documents utilisés pour préparer ce cours :
Modélisation et conception orientées objet avec UML2 de Michael
Blaha et James Rumbaugh, 2ème édition, Pearson Education France,
2005 – Traduction de l’ouvrage Applying Object-Oriented Modeling
and Design with UML, Prentice Hall 2005
The Unified Modeling Language Reference Manual, 2nd Edition de
James Rumbaugh, Ivar Jacobson et Grady Booch, Addison Wesley
Professional, 2004 – Traduction française : UML 2.0, Guide de
Référence, CampusPress
Le guide de l’utilisateur UML de Grady Booch, James Rumbaugh et
Ivar Jacobson, Eyrolles, 2000 – Traduction de l’ouvrage The Unified
Modeling Language User Guide; Addison-Wesley, 1998
Transparents de cours de Robert Ogor :
http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Objet
• Entité discrète et distinguable, concrète ou abstraite
Ex. Ce transparent; l’enseignant M. Manouvrier; la stratégie
pédagogique de cette mise à niveau
• Identité intrinsèque - Identifiant unique
Deux objets sont distincts, mêmes s’ils ont des valeurs
d’attributs identiques
Enseignant MaudeManouvrier:Enseignant
Classe Objet
Enseignant Enseignant
EnseignantID:ID nom:string
nom:string prénom:string
prénom:string
Enseignant
NUMEN:integer
nom:string
prénom:string
©Maude Manouvrier - Univ. Paris Dauphine 18
Modèle de classes (7/20)
Opération : fonction ou procédure pouvant être
appliquée aux objets ou par les objets d’une classe
Méthode : implémentation d’une opération pour une
classe donnée
Enseignant
nom:string
prénom:string
affecterEnseignement (e:Enseignement)
nombreHeuresEnseignement: integer
Fichier FichierPowerPoint
nom:string nombreTransparents:integer
localisation:string imprimer
imprimer
©Maude Manouvrier - Univ. Paris Dauphine 19
Modèle de classes (8/20)
Propriété : terme générique pour attribut et opération
Notation des classes
NomDeClasse
nomAttribut1 : typeDeDonnées1 = Valeur parDéfaut1
nomAttribut2 : typeDeDonnées2 = Valeur parDéfaut2
…
nomOpération1 (listeArguments1) : TypeDuRésultat1
nomOpération2 (listeArguments2) : TypeDuRésultat2
…
Sens de flux (direction) : indication si un argument
est en entrée non modifiable (in), une sortie (out) ou
une entrée modifiable (inout)
[SensDeFlux] nomArgument [: type = valeurParDéfaut ]
©Maude Manouvrier - Univ. Paris Dauphine 20
Modèle de classes (9/20)
Liens et associations
Lien : connexion physique ou conceptuelle entre objets
Ex. MaudeManouvrier Professe la MiseANiveauUML
Association : description d’un groupe de liens qui
partagent une structure et une sémantique commune
Ex. un Enseignant Professe un Enseignement
Diagramme de classes :
Enseignant Enseignement
nom:string
Professe intitulé:string
prénom:string * * nombreHeures:real
Diagramme d’objets :
MaudeManouvrier:Enseignant MiseANiveauUML:Enseignement
nom="Manouvrier" Intitulé="Mise à niveau UML"
prénom="Maude" nombreHeures=12
©Maude Manouvrier - Univ. Paris Dauphine 21
Modèle de classes (10/20) - Multiplicité
Nombre d’instances d’une classe pouvant être liées à une
instance d’une autre classe / contrainte sur le nombre d’objets liés
« un-à-un »
Enseignant
PosteTéléphonique
nom:string
EstAffectéA
1 numéro:string
prénom:string 1
« zéro-à-un »
Enseignant
Bureau
nom:string
APourBureau
0..1 numéro:integer
prénom:string 1
bâtiment:char
« plusieurs-à-plusieurs »
Enseignant Enseignement
nom:string
Professe intitulé:string
prénom:string * * nombreHeures:integer
©Maude Manouvrier - Univ. Paris Dauphine 22
Modèle de classes (11/20)
Liens et associations
Notation
NomDAssociation
NomDeClasse NomDeClasse
NomDeLien
unObjet:NomDeClasse unObjet:NomDeClasse
Transparent
FichierPowerPoint
titre:string {ordered}
* nom:string
… AppartientA 1
…
{sequence}
Enseignement Séance
1 1..*
*
{bag}
Polycopié
*
©Maude Manouvrier - Univ. Paris Dauphine 25
Modèle de classes (14/20) - Classe-association
Association qui est également une classe
Caractérisée par des attributs et des opérations
IntervientDans
nombreHeures:integer
imprimerDecompteHeures
DFR
Enseignant nom:string
nom:string * *
prénom:string FaitRéférenceA
* PréRequis
*
Enseignement
Professe obligatoire:boolean
intitulé:string
* nombreHeures:integer *
Indique
*
*
©Maude Manouvrier - Univ. Paris Dauphine
PanneauDAffichage 26
Modèle de classes (15/20) - Classe-association
Ne pas confondre classe-association et association
promue au rang de classe
Enseignant Enseignement
nom:string * * intitulé:string
prénom:string nombreHeures:integer
*
Etudiant Enseignant
numCarteEtudiant:integer grade:string
inscrire(formation:Formation)
TransparentFixe TransparentAvecAnimation
imprimer
« enumeration »
GradeEnseignant
professeur
maîtreDeConférence
ater
vacataire 34
©Maude Manouvrier - Univ. Paris Dauphine
Modèle de classes - Concepts avancés (2/12)
Multiplicité des attributs
[1] : une valeur obligatoire
[0..1] : une seule valeur optionnelle
[*] : zéro ou plusieurs valeurs
Par défaut : attribut mono-valué ([1])
Personne
nom:string[1]
prénom:string[1]
adresse:string[1..*]
numDeTéléphone:string[*]
dateDeNaissance:date[1]
MaudeManouvrier:Enseignant MàNBD:Enseignement
A703:Salle
Diagramme d’objets
MàNUML:Enseignement
©Maude Manouvrier - Univ. Paris Dauphine 38
Modèle de classes - Concepts avancés (6/12)
Agrégation Objet constitué
1 * Siége
Salle
*
1 Objet constituant
0..1
VidéoProjecteur
1
Objet constituant
Tableau
Objet constituant
Composition
1 1..* 1 * Spécialité
Domaine Mention
MembreUniversité
MembreUniversité
MembreUniversité
{overlapping, incomplete}
Évaluation
noteCC
notePartiel
noteExam
/noteFinale
{noteFinale=noteCC*0,3+notePartiel*0,3+noteExam*0,4}
PlanningCentral
CalendrierPédagogique
Bâtiment Salle
SeSitueDans
nom:char numéroDeSalle
1 1 capacité:integer
nbEtages:integer
Réservation
Package [BR05] :
Utile pour organiser les grands modèles
Ne définir une classe (i.e. représenter ses
propriétés) que dans un seul package
Référencer une classe d’un autre package en
n’utilisant que le nom de la classe
LivreEmprunté
achat
LivreDisponible
miseAuPilon
livreDemandé
emprunt miseEnRéserve
retourLivre
LivreEmprunté LivreEnRéserve
Emprunteur
AyantPrisQuitus
Début
inscriptionAutorisée demandeDeQuitus
Inscrit
[nbEmprunt=0]
[nbEmprunt=0]
finPénalisation
emprunt
retourLivre
[nbreEmprunt<nbreMaxEmprunt]
[dateActuelle ≤ dateRetour et
nbreEmprunt=1]
finPénalisation [nbEmprunt>1]
emprunt
retourLivre [nbreEmprunt<
Pénalisé Empruntant nbreMaxEmprunt
[dateActuelle > dateRetour] et nbEmprunt>1 ]
Exclus
exclusion [Penalité>MaxPénalité]
LivreEmprunté
entry / enregistrer date de retour
©Maude Manouvrier - Univ. Paris Dauphine 57
Modèle d’états (13/15) – Activités
Ordre d’exécution des activités pour un état :
1. Activités de la transition entrante
2. Activités d’entrée
3. Activités do
4. Activités de sortie
5. Activités de la transition sortante
Auto-transition
⇒ exécution des activités d’entrée et de sortie
©Maude Manouvrier - Univ. Paris Dauphine 58
Modèle d’états (14/15)
Transitions d’achèvement et envoi de signaux
Transition d’achèvement : Transition automatique, sans
événement associé, exécutée à la fin de l’exécution des
activités d’un état
LivreDisponible:RangerLivre
Nom de l’état
RangerLivre
Diagramme d’états
de plus bas niveau do / mettre à jour serveur Web
détaillant l’état
LivreDisponible
do / mettre livre en rayon
[dateActuelle>dateDernier
LivreAuDépot État imbriqué
Emprunt+180 jours]
[dateActuelle>dateDernierEmprunt+365 jours]
LivreDisponible
rangement
LivreDérangé LivreEnRayon
rangement
LivreRetourné LivreEnRayon
RangerLivre
Chercher un livre
Enregistrer un emprunt
Scission ou
fusion de fils
enregistrer Emprunt modifier NbreEmprunt d’exécution
(thread)
Insérer un livre
« include »
Enregistrer un emprunt
« include »
Identifier l’employé
Enregistrer un retour de livre « include »
« include »
Enregistrer un placement en réserve
« extend »
Chercher un livre Réserver un livre
« extend »
Enregistrer un emprunt Vérifier les réservations
:SystèmeDeGestionDeBibliothèque :BaseDeLivres
d’activation
rechercherLivre (listeParamètresDeRecherche)
Période
livre
insérerLivre () créerLivre()
:Livre
saisieDonnéesDuLivre ()
données
{traiter données}
insérerNuplet(arg)
envoyer commande 94
©Maude Manouvrier - Univ. Paris Dauphine
Modèle d’interaction
Concepts avancés (9/10)
Couloir d’activités : répartition des activités aux entités
organisationnelles
:Livre
enregistrer retour livre
[disponible]
NomDeClasse
nomAttribut1 [Mult.] : typeDeDonnées1 = Valeur parDéfaut1
nomAttribut2 [Mult.] : typeDeDonnées2 = Valeur parDéfaut2
…
nomOpération1 (listeArguments1) : TypeDuRésultat1
nomOpération2 (listeArguments2) : TypeDuRésultat2
…
NomDObjet:NomDeClasse
nomAttribut1=valeur1
nomAttribut2=valeur2
©Maude Manouvrier - Univ. Paris Dauphine 104
Résumé des notations (2/16)
Modèles de classes
NomDAssociation
NomDeClasse1 nomExtAssoc1 nomExtAssoc2 NomDeClasse2
NomDeLien
objet1:Classe1 objet2:Classe2
1 Exactement 1
Classe
* Plusieurs (zéro ou plus)
Classe
0..1 Optionnel (zéro ou un)
Classe
1 ..* Un ou plus
Classe
©Maude Manouvrier - Univ. Paris Dauphine 105
Résumé des notations (3/16)
Modèles de classes
NomDeClasse1 NomDeClasse2
NomDAssociation
attribut
…
opération
…
Classe-Association
Association qualifiée
{ordered}
*
Classe
{sequence}
Classe
*
{bag}
*
Classe
Héritage
SousClasse1 SousClasse2
SousClasseConcrète1 SousClasseConcrète2
opérationConcrète1 opérationConcrète1
opérationConcrète2 opérationConcrète3
©Maude Manouvrier - Univ. Paris Dauphine 108
Résumé des notations (6/16)
Modèles de classes
ClasseAssemblage
* *
Agrégation
1 *
ClassePartie1 ClassePartie2
ClasseAssemblage
1 1
Composition
1 *
ClassePartie1 ClassePartie2
SuperClasse
{overlapping, incomplete}
Élément dérivé :
/NomDeClasse
/NomDeClasse
/attribut
/NomDAssociation
Classe1 Classe2
©Maude Manouvrier - Univ. Paris Dauphine 111
Résumé des notations (9/16)
Modèles d’états
NomDeDiagramme
Nom du diagramme
Points d’entrée
et de sortie État1
événement1 événement2
ÉtatComposite
événement1 événement3
SousEtat1 SousEtat3
événement0
évènement2
SousEtat2 SousEtat4 événement4
Division de Synchronisation
contrôle de contrôle
©Maude Manouvrier - Univ. Paris Dauphine 113
Résumé des notations (11/16)
Modèles d’états
ÉtatComposite
événement2
Etat
entry/effet1
do/activité
Activités internes à un état évenement1/effet2
évènement2/effet3
…
exit/effet4
©Maude Manouvrier - Univ. Paris Dauphine 114
Résumé des notations (12/16)
Modèles d’interactions
NomDeSujet
CasDUtilisation1
Diagramme
de cas Acteur1
d’utilisation CasDUtilisation2
CasDUtilisation3
Acteur2
CUEnfant1 CUEnfant2
« include »
CUDeBase CUInclus
« extend»
CUDeBase CUExtension
ObjetA ObjetB
opération1(a,b) ObjetC
créerC()
Diagramme de Opération2(c,d)
séquence
résultat1
résultat2
[condition2]
activité4
activité6
©Maude Manouvrier - Univ. Paris Dauphine 118
Résumé des notations (16/16)
Modèles d’interactions
Acteur1 Acteur2 Acteur3
activité1
Diagramme
d’activités avec
activité2
couloirs d’activités
activité3