Vue statique - Charlie-Soft
Download
Report
Transcript Vue statique - Charlie-Soft
Cours n°2
UML
1
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
UML
2
Diagrammes de classe
UML
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
UML
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
UML
5
Convention graphique d’une classe
Nom_de_classe
Attributs
Nom_de_classe
Méthodes
UML
6
Syntaxe
Attribut :
nom : type = val_initiale
Méthode :
nom (arg : type = val_defaut, …) : type_retour
Niveaux d’accès :
Public
+
Protected
#
Private -
UML
7
Exemples / niveaux d’abstraction
voiture
Classe non documentée
UML
8
Exemples / niveaux d’abstraction
voiture
voiture
Classe non documentée
UML
immatriculation
couleur
marque
puissance
poids
date
propriétaire
attributs
demarrer
arreter
conduire
vendre
méthodes
Classe documentée
9
Exemples / niveaux d’abstraction
voiture
voiture
Classe non documentée
voiture
immatriculation
couleur
marque
puissance
poids
date
propriétaire
+ immatriculation : string
+ couleur : string
+ marque : string
# puissance : int
# poids : int
- date : Date
- propriétaire : string
demarrer
arreter
conduire
vendre
+ demarrer()
- contact() : bool
+ conduire(a : string = « marseille », b : string) méthodes
prototype
+ vendre(prix : float)
Niveaux d’accès
Classe documentée
UML
attributs
types
Classe détaillée
10
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
UML
11
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
UML
12
Association classique
Personne
Entreprise
travaille
UML
13
Association en forme verbale
active
Précise le sens de lecture
Personne
Hôtel
< héberge
UML
14
Rôles
Personne
Entreprise
employé
Personne
employeur
Hôtel
client
personnel
UML
15
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..*"
UML
16
Cardinalités
Homme
Femme
0..1
Personne
mariéA
0..1
1
*
Maison
parent
enfant
0..*
2
UML
17
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
UML
18
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
*
UML
0..1
Candidat
vote
19
Association n-aire
association reliant plus de deux classes
Travaux
Copropriété
Entreprise
UML
20
Classe d’association
classe réalisant la navigation entre les instances
d'autres classes
Salle
Professeur
Salle
Etudiant
Professeur
<<association ternaire>>
Cours
Etudiant
jour
heure
duree
Cours
jour
heure
duree
UML
21
Association qualifiée
Une association qualifiée met en relation deux classes
sur la base d’un attribut spécifique appelé « clé »
Banque
numCompte
UML
*
1..n
Personne
22
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
UML
23
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
UML
24
Exemples
Peintre
Tableau
1
peint
1..n
{ordonnée}
Personne
Armée
militaire
{sous-ensemble}
général
Personne
enseignant
BTS
{ou-exclusif}
étudiant
25
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
UML
26
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
UML
27
Exemple
Pièce
Mur
UML
28
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é
UML
29
Exemple
Voiture
Carrosserie
Moteur
UML
Piston
30
Héritage : convention graphique
Super_classe
Sous_classe
UML
31
Spécialisation
Oeuvre
Titre
Auteur
Reference
Film
Livre
Duree
NbPages
Opera
Orchestre
BD
Roman
UML
32
Spécialisation
Oeuvre
Titre
Auteur
Reference
Film
Livre
Duree
NbPages
Opera
Orchestre
BD
Roman
UML
33
Généralisation
Vehicule
marque
modele
VitesseMax
Bateau
Voiture
tirantEau
voiles
Plaque
cylindree
UML
Avion
altitudeMax
portee
34
Notion de paquetage
UML
35
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
UML
36
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
UML
37
Convention graphique
P1
P2
P4
P3
P5
UML
P6
38
Exemple
Voitures
Voiture
Porte
Roue
UML
Motorisation
Piston
Carbu
Boite
Moteur
Phare
39
Diagrammes d’objets
UML
40
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
UML
41
: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
:Voiture
Spécification du chemin complet
Collection d’instance (tableau)
UML
42
Objets composites
:Velo
:Roue
2
:Derailleur
1
:Pedalier
1
:Pedale
1
UML
43
Diagrammes d’objets
:Personne
:Maison
:Ville
:Voiture
UML
44
Diagrammes d’objets
:Personne
:Ordinateur
:VideoProjecteur
professeur
eleve
:Personne
UML
45
Diagrammes d’objets
:Personne
:Ordinateur
professeur
:VideoProjecteur
Proprietaire=« ORT »
eleve
Objet à état précis
:Personne
UML
46
Diagrammes d’objets
:Bus
:Moteur
:Destination
UML
47