Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Chapitre 3 : Langage de
modélisation objet unifié UML
Cours n°10 du 05/12/2013
Présenté par: Mme ARKAM. M
Plan
Introduction
Modéliser avec UML
Diagrammes de cas d’utilisation
Diagrammes de classes
Notion de paquetage
Diagrammes d’objets
Diagrammes de séquence
Diagrammes de collaboration
Diagrammes d’états/transition
Autres diagrammes
2
Diagrammes de classe
3
Vue statique
Vues statiques du système : diagrammes de cas d'utilisation (Fonctionnel)
diagrammes de classes
diagrammes 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
4
Class diagrams
Expriment la structure statique du système en terme de classes et de relations entre ces classes
Une 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
5
Convention graphique d’une classe
Nom_de_classe
Attributs
Méthodes
Nom_de_classe
6
Syntaxe
Attribut :
nom : type = val_initiale
Méthode : nom (arg : type = val_defaut, …) : type_retour
Niveaux d’accès :
Public +
Protected #
Private -
7
Exemples / niveaux d’abstraction
voiture
Classe non documentée
8
Exemples / niveaux d’abstraction
voiture
immatriculationcouleurmarquepuissancepoidsdatepropriétaire
voiture
demarrerarreterconduirevendre
Classe non documentée Classe documentée
attributs
méthodes
9
Exemples / niveaux d’abstraction
voiture
immatriculationcouleurmarquepuissancepoidsdateproprié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ée Classe documentée Classe détaillée
attributstypes
méthodesprototype
Niveaux d’accès
10
Chapitre 3 : Langage de
modélisation objet unifié UML
Cours n°11 du 12/12/2013
Présenté par: Mme ARKAM. M
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
12
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
13
Association classique
Personne Entreprise
travaille
14
Association en forme verbale active
Précise le sens de lecture
Personne Hôtel
< héberge
15
Rôles
Personne Entrepriseemployé employeur
Personne Hôtel
client
personnel
16
Cardinalités
Nombre d’éléments participant à la relation
x : 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..*"
17
Cardinalités
mariéA
Homme Femme
Maison
0..1 0..1
Personne
* 1
0..*2
parent
enfant
18
Relation de dépendance
relation 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
Fenetre EvenementSouris
19
Association à navigabilité restreinte
Par défaut, une association est navigable dans les deux
sens
La réduction de la portée de l'association peut être
exprimée dans un modèle pour indiquer que les instances
d'une classe ne "connaissent" pas les instances d'une autre
Electeur Candidat
vote
0..1*
20
Association n-aire
association reliant plus de deux classes
Entreprise
Travaux Copropriété
21
Classe d’association
classe réalisant la navigation entre les instances d'autres
classes
Professeur
Salle
jourheureduree
Cours
Etudiant Professeur
Salle
Cours Etudiant
jourheureduree
22
Association qualifiée
Une association qualifiée met en relation deux classes sur
la base d’un attribut spécifique appelé « clé »
Banque 1..n*
numCompte Personne
23
Chapitre 3 : Langage de
modélisation objet unifié UML
Cours n°12 du 19/12/2013
Présenté par: Mme ARKAM. M
Contraintes sur les associations
Les 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
25
Principales contraintes
Contrainte {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
26
Exemples
peint
Peintre Tableau
Armée
1 1..n
Personne
{sous-ensemble}
{ordonnée}
général
militaire
BTSPersonne
étudiant
enseignant
{ou-exclusif}
27
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
28
Agrégation
Une 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
29
Exemple
Pièce Mur
30
Composition
Cas particulier d’agrégation : contenance physique
Repré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é
31
Exemple
Voiture
Carrosserie Moteur Piston
32
Héritage : convention graphique
Super_classe
Sous_classe
33
Spécialisation
OeuvreTitreAuteurReference
LivreNbPages
FilmDuree
OperaOrchestre
Roman BD
34
Spécialisation
OeuvreTitreAuteurReference
LivreNbPages
FilmDuree
OperaOrchestre
Roman BD
35
Généralisation
VehiculemarquemodeleVitesseMax
VoiturePlaquecylindree
BateautirantEauvoiles
AvionaltitudeMaxportee
36
Notion de paquetage
37
Packages
Les paquetages sont des éléments d'organisation des modèles
Ils regroupent des éléments de modélisation, selon des critères purement logiques
Ils permettent d'encapsuler des éléments de modélisation
Ils 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 noms
38
Relation entre paquetage
Dé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
39
Convention graphique
P1 P2
P3
P4
P5 P6
40
Exemple
Voitures
MotorisationVoiture
Piston Carbu
Boite MoteurPorte
Roue Phare
41
Diagrammes d’Objets
42
Object diagram
Représentent un ensemble d’objets et leurs liens
Sont 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 classes
Les diagrammes de classes peuvent aussi contenir des objets
43
: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 = 7chSpécification des attributs
golf:Vehicule::Voiture::Berline Spécification du chemin complet
:VoitureCollection d’instance (tableau)
44
Objets composites
:Velo
:Roue 2
:Pedalier 1
:Derailleur 1
:Pedale 1
45
Diagrammes d’objets
:Personne
:Voiture
:Maison :Ville
46
Diagrammes d’objets
:Personne
:Personne
:Ordinateur :VideoProjecteur
eleve
professeur
47
Diagrammes d’objets
:Personne
:Personne
:Ordinateur :VideoProjecteur
eleve
professeur Proprietaire=« ORT »
Objet à état précis
48
Diagrammes d’objets
:Bus
:Destination
:Moteur
49