Cours n°2
UML1
Plan Introduction Modéliser avec UMLDiagrammes de cas d’utilisationDiagrammes de classesNotion de paquetageDiagrammes d’objetsDiagrammes de séquenceDiagrammes de collaborationDiagrammes d’états/transitionAutres diagrammes
UML2
Diagrammes de classe
UML3
Vue statiqueVues statiques du système :
diagrammes de cas d'utilisation (Fonctionnel) diagrammes de classesdiagrammes d'objets diagrammes de composants diagrammes de déploiement
Vues dynamiques du système :diagrammes de séquence diagrammes de collaboration diagrammes d'états-transitions diagrammes d'activités
UML4
Class diagramsExpriment la structure statique du système en
terme de classes et de relations entre ces classesUne classe est un type abstrait caractérisé par
des propriétés (attributs et méthodes) communes à un ensemble d'objets et permettant de créer des objets ayant ces propriétés
Ne pas représenter les attributs ou les méthodes d'une classe sur un diagramme, n'indique pas que cette classe n'en contient pas.Il s'agit juste d'un filtre visuel, destiné à donner un certain niveau d'abstraction à son modèle
De même, ne pas spécifier les niveaux d’accès des membres d'une classe ne veut pas dire qu'on ne représente que les membres publics
UML5
Convention graphique d’une classe
UML6
Nom_de_classe
Attributs
Méthodes
Nom_de_classe
Syntaxe Attribut :
nom : type = val_initialeMéthode :
nom (arg : type = val_defaut, …) : type_retour
Niveaux d’accès :Public + Protected #Private -
UML7
Exemples / niveaux d’abstraction
UML8
voiture
Classe non documentée
Exemples / niveaux d’abstraction
UML9
voitureimmatriculationcouleurmarquepuissancepoidsdatepropriétaire
voiture
demarrerarreterconduirevendre
Classe non documentée Classe documentée
attributs
méthodes
Exemples / niveaux d’abstraction
UML10
voitureimmatriculationcouleurmarquepuissancepoidsdatepropriétaire
voiture
demarrerarreterconduirevendre
voiture+ immatriculation : string+ couleur : string+ marque : string# puissance : int# poids : int- date : Date- propriétaire : string+ demarrer()- contact() : bool+ conduire(a : string = « marseille », b : string)+ vendre(prix : float)
Classe non documentéeClasse documentée Classe détaillée
attributstypes
méthodesprototype
Niveaux d’accès
Sémantique Un diagramme de classes est une collection d'éléments de
modélisation statiques (classes, paquetages...), qui montre la structure d'un modèle
Un diagramme de classes fait abstraction des aspects
dynamiques et temporels
Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits
On peut par exemple se focaliser sur : les classes qui participent à un cas d'utilisation (cf.
collaboration) les classes associées dans la réalisation d'un scénario précis les classes qui composent un paquetage la structure hiérarchique d'un ensemble de classes
UML11
Association Une association exprime une connexion
sémantique entre deux classes
L'association est instanciable dans un diagramme d'objets ou de collaboration, sous forme de liens entre objets issus de classes associées
UML12
Association classique
UML13
Personne Entreprise
travaille
Association en forme verbale activePrécise le sens de lecture
UML14
Personne Hôtel
< héberge
Rôles
UML15
Personne Entrepriseemployé employeur
Personne Hôtelclient
personnel
Cardinalités Nombre d’éléments participant à la relationx : exactement "x" (entier naturel > 0)
exemples : "1", "7"
x..y : de "x" à "y" (entiers naturels ou variables avec y > x)exemples : "0..1", "3..n", "1..31"
* : plusieurs (équivalent à "0..n" et "0..*") x..* : "x" ou plus
exemples : "0..*", "5..*"
UML16
Cardinalités
UML17
mariéA
Homme Femme
Maison
0..1 0..1
Personne * 1
0..*2
parent
enfant
Relation de dépendancerelation d'utilisation unidirectionnelle une modification de l'élément dont on
dépend, peut nécessiter une mise à jour de l'élément dépendant
UML18
Fenetre EvenementSouris
Association à navigabilité restreinte Par défaut, une association est navigable
dans les deux sensLa réduction de la portée de l'association
peut être exprimée dans un modèle pour indiquer que les instancesinstances d'une classe ne "connaissent" pas les instances d'une autre
UML19
Electeur Candidat
vote0..1*
Association n-aireassociation reliant plus de deux classes
UML20
Entreprise
Travaux Copropriété
Classe d’associationclasse réalisant la navigation entre les
instances d'autres classes
UML21
Professeur
Salle
jourheureduree
Cours
Etudiant Professeur
Salle
<<association ternaire>>
Cours Etudiant
jourheureduree
Association qualifiéeUne association qualifiée met en relation
deux classes sur la base d’un attribut spécifique appelé « clé »
UML22
Banque 1..n*numCompte Personne
Contraintes sur les associationsLes contraintes sont des expressions qui
précisent le rôle ou la portée d'un élément de modélisation (elles permettent d'étendre ou préciser sa sémantique)
Sur une association, elles peuvent restreindre le nombre d'instances visées ("expressions de navigation")
Les contraintes peuvent s'exprimer en langage naturel. Graphiquement, il s'agit d'un texte encadré d'accolades
UML23
Principales contraintesContrainte {ordonnée} : une relation
d’ordre décrit les objets
Contrainte {sous-ensemble} : une collection est incluse dans une autre collection
Contrainte {ou-exclusif} : pour un objet donné, une seule association est valide
UML24
Exemples
25
peint
Peintre Tableau
Armée
1 1..n
Personne
{sous-ensemble}
{ordonnée}
général
militaire
BTSPersonne
étudiant
enseignant{ou-exclusif}
Agrégation L'agrégation est une association non
symétrique, qui exprime un couplage fort et une relation de subordination
Représente une relation de type "ensemble / élément"
A un même moment, une instance d'élément agrégé peut être liée à plusieurs instances d'autres classes : l'élément agrégé peut être partagé
Une instance « ensemble » peut exister sans élément (et inversement) : Cycles de vies indépendants
UML26
AgrégationUne agrégation peut notamment (mais pas
nécessairement) exprimer : qu'une classe (un "élément") fait partie d'une
autre ("l‘ensemble"), qu'un changement d'état d'une classe, entraîne
un changement d'état d'une autre, qu'une action sur une classe, entraîne une
action sur une autre
UML27
Exemple
UML28
Pièce Mur
CompositionCas particulier d’agrégation : contenance
physiqueReprésente une relation de type "composé /
composant"Les cycles de vies des composants et du
composé sont liés : si le composé est détruit (ou copié), ses composants le sont aussi
A un même moment, une instance de composant ne peut être liée qu'à un seul composé
UML29
Exemple
UML30
Voiture
Carrosserie Moteur Piston
Héritage : convention graphique
UML31
Super_classe
Sous_classe
Spécialisation
UML32
OeuvreTitreAuteurReference
LivreNbPages
FilmDuree
OperaOrchestre
Roman BD
Spécialisation
UML33
OeuvreTitreAuteurReference
LivreNbPages
FilmDuree
OperaOrchestre
Roman BD
Généralisation
UML34
VehiculemarquemodeleVitesseMax
VoiturePlaquecylindree
BateautirantEauvoiles
AvionaltitudeMaxportee
Notion de paquetage
UML35
PackagesLes paquetages sont des éléments d'organisation
des modèlesIls regroupent des éléments de modélisation, selon
des critères purement logiques Ils permettent d'encapsuler des éléments de
modélisationIls permettent de structurer un système en
catégories (vue logique) et sous-systèmes (vue des composants)
Ils servent de "briques" de base dans la construction d'une architecture
Ils représentent le bon niveau de granularité pour la réutilisation
Les paquetages sont aussi des espaces de nomsUML
36
Relation entre paquetageDépendance :
Au moins un élément du paquetage source utilise les services d’au moins un des éléments du paquetage destination
Héritage :Au moins un élément du paquetage source
spécialise (est dérivée d’) au moins un des éléments du paquetage destination
UML37
Convention graphique
UML38
P1 P2
P3
P4
P5 P6
Exemple
UML39
Voitures
MotorisationVoiture
Piston Carbu
Boite MoteurPorte
Roue Phare
Diagrammes d’objets
UML40
Object diagramReprésentent un ensemble d’objets et leurs
liensSont des vues statiques des instances des
éléments qui apparaissent dans les diagrammes de classes
Présentent la vue de conception d’un système, exactement comme les diagrammes de classes, mais à partir de cas réel ou de prototypes
Est une instance d’un diagramme de classesLes diagrammes de classes peuvent aussi
contenir des objets
UML41
UML42
:Voiture Instance anonyme de la classe voiture
golf:Voiture Instance nommée de la classe voiture
golf Instance nommée d’une classe anonyme
golf:Voiture
Couleur = ""bleu M "" Puissance = 7ch
Spécification des attributs
golf:Vehicule::Voiture::Berline Spécification du chemin complet
:VoitureCollection d’instance (tableau)
Objets composites
UML43
:Velo
:Roue 2
:Pedalier 1
:Derailleur 1
:Pedale 1
Diagrammes d’objets
UML44
:Personne
:Voiture
:Maison :Ville
Diagrammes d’objets
UML45
:Personne
:Personne
:Ordinateur :VideoProjecteur
eleve
professeur
Diagrammes d’objets
UML46
:Personne
:Personne
:Ordinateur :VideoProjecteur
eleve
professeur Proprietaire=« ORT »
Objet à état précis
Diagrammes d’objets
UML47
:Bus
:Destination
:Moteur
Top Related