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