1
Plan
• Présentation d’UML
2
Présentation d’UML
• Références
• Historique
• Principes généraux
• Axes de modélisation d ’un système
• Listes des Diagrammes
• Exemples : Quelques diagrammes
• Vocabulaire
• Paquetage
• Dépendance entre paquetages
• Stéréotypes :Mécanismes d ’extension
• Le processus : Principes
• Processus : rôle des cas d ’utilisation 3
Références
4
Historique (1/2)
UML 2.0
Embley
Rumbaugh
Singleton classes and
OMT
high-level view
Jacobson Wirfs-Brock
OOSE
Responsibilities
6
Principes généraux (1/4)
L ’orientation Objet
Langage (Concepts, sémantique, méta-modèle, Notation)
Indépendante d ’un processus
Généricité de l ’approche
Indépendante d ’un langage de programmation
Indépendante d ’un type d ’architecture
Indépendante d ’une classe de système
Une capitalisation des bonnes pratiques de la C.O.O.
7
Principes généraux (2/4)
Un langage de modélisation des systèmes
systèmes logiciels (SI, télécomm..) ou autre
Objectifs du langage
pour documenter les besoins, les architectures, la conception, le
code...
pour visualiser
pour spécifier
pour construire
Un langage visuel
Génération de 13 diagrammes
8
Principes généraux (3/4)
Un langage unifiant les concepts et les notations du niveau métier et
informatique
Objets de l’espace du problème et objets de l ’espace de la solution
9
Principes généraux (4/4)
Un système peut être modélisé selon différents points de vue
Le point de vue des utilisateurs (spécification fonctionnelles)
Le point de vue de l ’analyste (structurel, logique)
Le point de vue constructeur (déploiement, matériel)
Avec les facteurs de qualité nécessaires pour chaque point de vue
10
Axes de modélisation d ’un système
Statique (ce que le système EST)
diagramme de classes
diagramme d’objets
diagramme de package
diagramme de composants
diagramme de déploiement
Dynamique
(comment le système EVOLUE)
Fonctionnel
(ce que le système FAIT)
diagramme de séquence diagramme de cas d’utilisation
diagramme de collaboration (d.Comm) diagramme de collaboration (d.Comm)
diagramme d’états-transitions diagramme d’activités
diagramme d’activités
11
Liste des Diagrammes
Diagrammes structurels ou diagrammes Diagrammes comportementaux ou
statiques (UML Structure) diagrammes dynamiques (UML Behavior)
12
Exemples : Quelques diagrammes
cas d'utilisation Système
: acteur ( intéragissant
Cas d’utilisation avec le Système
Constituants de base
Relations
Annotation Dépendances
note Associations
Généralisation
Diagrammes
Structure Groupement
Cas d ’utilisation Package D. Cas d ’utilisation
D. de classe
Classe Comportement. Modèle
Classe Active Sous-système D. d ’objet
Interface Interaction Framework D. de séquence
Composant Machine d ’état D. de collaboration
Collaboration D. d ’état/transition
Noeud D. d ’activité
D. de composant
D. de déploiement
14
Paquetage
Définition
Groupement d ’éléments de modélisation.
Commandes
Client
passer
Ligne de Commande
commande Ligne de commande
Article
Commande Article
Commander
15
Dépendance entre paquetages
Une association sémantique entre 2 (ou plus) éléments
de modèle (classes, paquetages, etc....)
16
Stéréotypes : Mécanismes d ’extension
Le stéréotype permet d’étendre l’ensemble de base des éléments
de modélisation. Ceci facilite la documentation des particularités
spécifiques à un projet ou un processus.
Plusieurs stéréotypes sont fournis par les AGL (Rational Rose par
exemple), néanmoins l’utilisateur a la possibilité d ’en ajouter
d ’autres spécifiques à ses besoins
Exemple : 3 stéréotypes prédéfinis pour l’analyse: interface, entité,
contrôleur
<<entité>>
Commande
Commande
« interface »
Interface distributeur
Interface distributeur
<<entité>> >
Superviseur
Superviseur
17
Le processus : Principes
Processus : ensemble d’étapes, destinées à livrer et dans les délais (et le budget) une
application qui correspond aux besoins du client et des utilisateurs.
Cas
Architecture
d’utilisation
Processus A Processus B
18
Processus : rôle des cas d ’utilisation
Modèle
des cas
d’utilisation
spécialisé par
Modèle élaboré par
d’Analyse
Modèle de distribué par
Conception
réalisé par
Modèle de
Déploiement vérifié par
Modèle
d ’implantation
Modèle de
Test
19
Plan
• Présentation d’UML
• Modèle Fonctionnel
• Modèles Statiques
• Modèles Dynamiques
20
Modèle Fonctionnel
• Exemple d’Application
• En conclusion
21
Modèle Fonctionnel / Les cas d’utilisation
• Définitions
• Les acteurs
22
Définitions
Formalisés par Ivar Jacobson : Object-Oriented Software
Engineering (Addison-Wesley, 1992)
Expression du comportement du système (actions et de réactions),
selon le point de vue de l’utilisateur
Un cas d’utilisation est une manière spécifique d’utiliser un système.
C’est l’image d’une fonctionnalité du système, déclenchée en
réponse à la stimulation d’un acteur externe
23
Intérêt des cas d’utilisation(1/2)
24
Intérêt des cas d’utilisation (2/2)
Utilisateur C
Utilisateur A Utilisateur B
Eléments du diagramme :
acteur : un rôle joué par une personne, un service, etc.
qui interagit avec le système étudié
cas d’utilisation : manière spécifique d ’utiliser un
système. Image d’une fonctionnalité attendue, déclenchée
en réponse à la stimulation d’un acteur
relations entre cas d’utilisations et acteurs
26
Les acteurs(1/3)
Un acteur est une personne ou un système qui interagit
avec un système, en échangeant de l’information (en entrée
et en sortie)
27
Les acteurs(2/3)
28
Les acteurs(3/3)
Exemple
Conçoit les schémas
et nomenclatures Récupère les
schémas
29
Détermination des cas d’utilisations
Quelles sont les tâches de l’acteur ?
30
Les relations dans un diagramme cas
d’utilisation
La relation de communication
La relation de généralisation
La relation d’inclusion
La relation d’extension
<<include>>
Virement Identification
Client distant <<extend>>
31
[PAM-00 p156]
La relation d’inclusion
La relation d’inclusion a un caractère obligatoire, la
source spécifiant à quel endroit le cas d’utilisation cible doit
être inclus.
<<include>>
Virement Identification
Client distant <<extend>>
32
[PAM-00 p156]
La relation d’extension
Dans une relation d’extension entre cas d’utilisation, le
cas d’utilisation source ajoute son comportement au cas
d’utilisation destination (cible). L’extension peut être
soumise à une condition.
<<include>>
Virement Identification
Client distant <<extend>>
33
[PAM-00 p156]
Modèle Fonctionnel / Exemple d’Application
• Existant
• Définition du problème
• Phase d'Initialisation
34
Existant
• L ’exemple d ’application est intitulé « Cas
Scolarité »
• Les étudiants remplissent des imprimés et les
envoient au service d'inscription.
• Des employés saisissent les sélections des
étudiants dans une base de données, et fournissent
les emplois du temps pour les étudiants.
• L'université décide d'utiliser un système
d'inscription en temps réel.
• Ce système doit être utilisé par :
– Les professeurs pour leur indiquer les cours qu'ils
doivent assurer, par les étudiants pour choisir leurs
cours 35
Définition du problème (1/2)
• Au début de chaque semestre les étudiants doivent
obtenir un catalogue des cours proposés : contenu du
cours, professeur, département, et pré-requis.
• Le nouveau système doit permettre aux étudiants de
sélectionner leurs cours pour le semestre.
• En plus, chaque étudiant doit indiquer un choix
alternatif pour chaque cours choisi, au cas où ce
cours serait supprimé.
• Aucun cours ne doit avoir plus de vingt étudiants. Un
cours auquel moins de dix étudiants sont inscrit doit
être supprimé. 36
Définition du problème (2/2)
• Une fois que le processus d'inscription par l'étudiant
est terminé, le système fournit les droits d'inscription
à percevoir pour le semestre.
• Les professeurs doivent pouvoir renseigner le
système sur les cours qu'ils assurent. Ils doivent aussi
savoir quels étudiants se sont enregistrés à leurs
cours.
• Lors de chaque début de semestre, il est défini une
période de temps où les étudiants peuvent modifier
leurs choix.
• Les étudiants doivent pouvoir accéder au système
pour modifier leurs choix. 37
Phase d'Initialisation
38
Diagramme des Cas d’Utilisation (1/2)
SYSTEME
Inscription
Système aux cours Interrogation étudiants
Facturation inscrits aux cours
Professeur
Préparation
Étudiant Sélection cours catalogue cours
Employé
Inscription
39
Diagramme des Cas d’Utilisation (2/2)
Un cas d'utilisation peut c ontenir des diagrammes de cas d'utilisation, formant ainsi une arboresc ence.
Les fonc tionnalités élémentaires classiques (ajouter un item, modifier un item, supprimer un item) correspondront aux scénarii contenus dans un c as d'utilisation
40
Modèle Fonctionnel / Le virage vers l’objet
• Principe de la collaboration
41
Principe de la collaboration
• Le passage à l’approche objet s’effectue en associant une ou
plusieurs collaboration à chaque cas d ’utilisation.
• Collaboration : description des objets d ’un domaine , les
connexions entre ces objets et les messages échangés par les objets.
42
Du Cas d’utilisation à la décomposition
structurée
C as 1
<<U tilise>> Une approche structurée réalise
un cas d ’utilisation au moyen
d’une décomposition
C as 2 Cas 3
fonctionnelle
43
Du Cas d’utilisation à la décomposition objet
C as 1
<<U tilise>>
44
Cas d’utilisation et scénarios
Les cas d’utilisation doivent être vus comme une
machine de production de différents scénarios.
Chaque fois qu’un acteur interagit avec le système, le
cas d’utilisation instantie un scénario.
Un scénario correspond au flot de messages
échangés par les objets durant l’interaction
particulière qui correspond au scénario.
45
[PAM-00 p155]
Cas d’utilisation et2 scénarios
Scénario 1 Scénario Scénario 3
Cas
d’utilisation
46
Description Textuelle d’un Use Case
1. Sommaire d’identification
Titre
Résumé
Acteurs
Date de création
Version
Responsables
47
Description Textuelle d’un Use
Case(Complément)
Besoins d’IHM
48
En conclusion
49
Plan
• Présentation d’UML
• Modèle Fonctionnel
• Modèles Statiques
• Modèles Dynamiques
50
Modèle Statique
• Diagramme d ’objets
• Diagramme de classes
• Diagramme de déploiement
• Exemple d’application
51
Diagramme d’Objets
Attributs = valeurs
Ahmed : personne Personne collaborateur
âge = 35 âge : entier *
patron
patron 1
collaborateur
emploie>
Ali : personne
âge = 25
Diagramme de classes
Diagramme d ’objets
Un objet est une instance de classe et un lien est une instance d’association.
52
Modèle Statique / Diagramme des Classes
• Définitions
• Relations entre classes
• Associations
• Nommage des associations
• Multiplicité des associations
• Arité des associations
• Placement des attributs et des associations
• Contraintes
• Agrégation
• Composition
• Cardinalité des compositions
• Exemple de diagramme de classes
• La hiérarchie des classes
• Paquetage de classe 53
Définitions / Exemple
Structure statique d’un système, en termes de classes et de relations entre
ces classes.
Voiture
Couleur
Nom de classe
Cylindrée
Attributs exemple :
Vitesse max
Opérations ()
Démarrer ()
Accélérer ()
Syntaxe: Freiner ()
1 1..* 1 1..*
classe 2 constructeur véhicule moteur
spécialisation
n
généralisation
i atio
oc
ass
classe 1
classe 3
voiture camion avion
agrégation
classe 4
56
Association
Rôle
• Il est possible de préciser le rôle d’une classe au sein d’une
association: un nom de rôle peut être spécifié de part et d’autre
de l’association.
57
Nommage des associations
constructeur véhicule
Construire> produit
fabricant <construit par
58
Multiplicité des associations
• Les rôles portent également une information de multiplicité qui
précise le nombre d’instances qui participent à la relation
1 Un et un seul (obligatoire)
0 .. 1 Zéro ou un (optionnel)
m .. n De m à n (entiers)
* ou 0 .. * quelconque
1 .. * Au moins 1
59
Arité des associations
Association d’arité 3
Salle
lieu
Etudiant Cours Enseignant
Début
Fin
60
Placement des attributs et des associations
0..* 1
Diplôme Note
Mention
0..1
Chambre
Numéro
61
Contraintes
personne Est_titulaire> compte
0 .. *
1
{Ordonnée}
0 .. *
personne classe
Parent d ’élève
{Sous ensemble}
0 .. *
Délégués
0 .. *
personne université
Enseignants
{Ou-exclusif}
0 .. *
Etudiants
62
Exemple de diagramme de classes
• Un client peut exister sans avoir de lien avec une commande. Par contre,
une commande n’a pas de sens sans lien vers son « parent » le client.
→ Notion d’agrégat
• Une ligne de commande n’est en aucun cas partageable entre plusieurs
commandes; la suppression d’une commande implique nécessairement la
suppression de toutes ses lignes.
→ Notion de composition
63
Agrégation (1/2)
64
Agrégation (2/2)
Livre Chapitre
1 .. *
1
{Ordonnée}
{Ordonnée}
Agrégation 1 .. *
65
Composition (1/2)
Homme 1 1 Tête
Composition
66
Composition (2/2)
plus important.
68
Cardinalité des compositions /
Composite
69
Les hiérarchies de classes
Les hiérarchies de classes ou classifications permettent de
gérer la complexité en ordonnant les objets au sein
d’arborescences de classes d’abstraction croissante.
La généralisation: il s’agit de prendre des classes existantes
(déjà mises en évidence) et de créer de nouvelles classes qui
regroupent leurs parties communes; il faut aller du plus
spécifique vers le plus général.
La spécialisation: il s’agit de sélectionner des classes
existantes (déjà identifiées) et d’en dériver de nouvelles classes
plus spécialisées, en spécifiant simplement les différences.
70
Les hiérarchies de classes / Généralisation
Abstractions
plus générales
noit asil ai cé p S
La généralisation ne porte aucun nom particulier; elle signifie toujours: est
un ou est une sorte de.
La généralisation ne concerne que les classes, elle n’est pas instantiable en
liens et, de fait, ne porte aucune indication de multiplicité.
74
Les hiérarchies de classes /
L’héritage
L’héritage est une technique offerte par les langages de
programmation pour construire une classe à partir d’une ou
de plusieurs autres classes, en partageant des attributs,
des opérations et parfois des contraintes au sein d’une
hiérarchie de classes.
Les classes enfants héritent des caractéristiques de leurs
classes parents.
Les attributs et les opérations déclarés dans la classe
parent, sont accessibles dans la classe enfant, comme s’ils
avaient été déclarés localement.
75
[PAM-00 p57]
Les hiérarchies de classes / Héritage
multiple (1)
La généralisation - sous sa forme dite multiple – existe
également entre arbres de classes disjoints.
76
Les hiérarchies de classes / Héritage
multiple (2)
Pour que l’héritage multiple puisse être mise en œuvre, il
faut qu’il puisse être supporté par les langages de
programmation « objets » .
Dans l’exemple, comment le compilateur peut-il garantir, lors
de l’implémentation de la classe Z, qu’il n’y ait pas de conflit
entre les propriétés A héritée de la classe X et A héritée de
la classe Y?
Par exemple, JAVA ne supporte pas l’héritage multiple.
77
Les hiérarchies de classes / Classe
abstraite (1)
Une classe abstraite ne donne pas directement des objets.
de classes.
78
Les hiérarchies de classes / Classe
abstraite (2) Exemple
Classes
abstraites
Classes
concrètes
même arborescence.
80
Les hiérarchies de classes / Le
polymorphismeExemple
(2)