Académique Documents
Professionnel Documents
Culture Documents
Présenté par
Dr. Kamel Boukhalfa
Dr. Latifa Mahdaoui
1 2
◦ Une méthodologie Supporter les concepts de développement de haut-niveau tels que les
frameworks, les patterns et les composants
◦ Un langage de programmation Intégrer les résultats de la pratique
9 10
Diagramme
Diagrammes de classes
Diagrammes d'objets Diagrammes de composantes
Composants Classes Séquence Activités Objets
Diagrammes d'états Diagramme des cas
Diagrammes d'activités
Déploiement Cas d’utilisation Etats-Transitions Collaboration Diagrammes de déploiement
Diagrammes de séquence
Diagrammes de collaboration
11 12
Processus d'ingénierie sous-jacent Relations entre diagrammes et étapes du processus
13 14
Relations entre diagrammes et étapes du processus Relations entre diagrammes et étapes du processus
Analyse Conception :
Diagramme de classes : structure des données du système
Diagramme de séquence: représentation des
définie comme un ensemble de relations entre classes
interactions temporelles entre objets dans la
Diagramme d’objets : illustration des objets et de leurs
réalisation d'une opération
relations
Diagramme de collaboration : représentation des interactions Diagramme de déploiement : description du
entre objets déploiement des composants sur les dispositifs
Diagramme d’états-transitions : représentation du matériels
comportement des objets d'une classe en termes d’états et de
Diagrammes de composants : architecture des
transitions d'états
Diagramme d’activités : structure d'une opération en actions composants physiques d'une application
15 16
Définition
Un diagramme de cas présente un
ensemble d'acteurs et de cas d'utilisation
avec leurs relations.
DIAGRAMMES DES CAS
D’UTILISATION
1
8
17 18
<<acteur>>
Bibliothéquaire
Client
19 20
Nommer un acteur Généralisation entre acteurs
Chaque acteur doit avoir un nom qui le distingue des Les acteurs peuvent avoir des associations
autres acteurs.
de généralisation
En pratique les noms de acteurs sont des noms pris dans
le vocabulaire du domaine. Exemple :
Il est d'usage de capitaliser la première lettre de chaque Client
mot.
<<acteur>>
ClientBanque PréposéBanque Particulier Entreprise
21 22
Acheter Automobile
23 24
Nommer un cas Généralisation
Chaque cas doit avoir un nom qui le distingue L'association de généralisation entre cas
des autres cas - Unicité du nom complet (noms d'utilisation a la même sémantique que
des packages englobant + le nom du cas).
pour les classes
En pratique les noms de cas sont des verbes pris
dans le vocabulaire du domaine. Valider usager
Emprunter Livre
Vérifier Scanner
Accorder Crédit mot de passe rétine
25 26
« communique » « étend »
La relation communique permet de La relation étend permet de modéliser un
modéliser les échanges de messages entre comportement exceptionnel d'un cas
acteurs et cas d'utilisation d'utilisation
<<étend>>
Traiter une
<<communique>> Traiter une
commande
Cas commande
urgente
Acteur
27 28
« inclut »
La relation inclut permet de modéliser
l'inclusion de cas d'utilisation pour éviter
les répétitions
DIAGRAMMES DE CLASSES
<<inclut>>
ET DIAGRAMMES D'OBJETS
Valider Traiter une
Utilisateur commande
29 30
en termes de classes et de relations entre ces classes; Un d’objets ayant des propriétés similaires, un comportement
diagramme d'objets illustre les objets et leurs relations commun, des relations communes avec d’autres objets et
des sémantiques communes
Instance de
Classe Objet
* * Nom de classe Nom de classe
attributs
Personne
Objet Géométrique
Personne Film Personne nom : string
couleur : string
nom : string adresse : string
titre : string Id_pers : integer position : integer
prénom : string date_naiss : date
réalisateur : string nom : string
date_naiss : date date_production : date prénom : string déplacer (deltat:Vecteur)
age ()
date_sortie : date date_naiss : date sélectionner (p:Point):Booléen
change_adresse ()
La syntaxe de description d'une opération est la suivante:
Les noms d'attributs d' une classe sont uniques
Chaque objet, instance d'une classe a sa propre identité indépendante des Nom_opération (Nom_Argument : Type_Argument =
valeurs de ses attributs. L'identification d'un objet est donc facultative 33
Valeur_Par_Défaut, …): Type_Retourné
34
Classe A Classe B
Rectangle Rectangle
Longueur Longueur
En conception Société Personne
Largeur Largeur
/Surface
Surface( )
35 36
Classe association Association n-aire
Une association peut être représentée ( réifiée) par une
Salle
classe appelée classe associative ou classe-association.
Utile par exemple, lorsuqe l'association a des attributs ou
Étudiant Enseignant
bien qu'on souhaite lui attacher des opérations. La
notation utilise une ligne pointillée pour attacher une Cours
classe à une association Début
Fin
A B
D
L' association ternaire entre salle, étudiant et enseignant est
C réifiée comme une classe cours ayant deux attributs, Début
attributs et Fin
opérations() 37 38
39 40
*
Nommage des rôles Association réflexive
Le nommage des rôles prend tout son intérêt lorsque il y
a plusieurs associations entre les deux mêmes classes.
Parents Personne
Pilote
Avion Personne 2
Passagers
* Enfants
M .. N De M à N (entiers naturels)
Chaque personne travaille pour une seule société,
* De zéro à plusieurs chaque société emploie zéro ou plusieurs personnes
0 .. * De zéro à plusieurs
1 .. * De un à plusieurs 43 44
Contraintes sur les associations Contraintes sur les associations
Les contraintes sont représentées sur les La contrainte {Sous-ensemble} indique qu’une
diagrammes par des expressions placées collection est incluse dans une autre collection
Parents d’élèves
entre accolades Classe Personne
{Sous-ensemble} *
définit une relation d’ordre sur les objets La contrainte {Ou-exclusif} précise que, pour un objet donné,
une seule association parmi un groupe d’associations est valide
de la collection
Enseignants
Université Personne
Personne Compte {Ou-exclusif}
1 0..*
Étudiants
{Ordonnée} 45 46
A Clé B
Ligne Case
Échiquier Colonne
Université N°Etudiant Etudiant 47 1 48
Agrégation Agrégation
Une agrégation représente une association non symétrique dans
L’agrégation peut être multiple, comme
laquelle une des extrémités joue un rôle prédominant par rapport à
l’autre l’association
Les propriétés suivantes suggèrent une agrégation: Personne 1..* Immeuble
Propriétaire 0..*
◦ une classe B 'fait partie' d’une classe A
49 50
Composition Composition
La composition est une forme particulière d'agrégation La composition peut être modélisée au moyen d'
La composition implique une contrainte sur la valeur de La notation par composition doit être retenue lorsqu’un
la multiplicité du côté de l’agrégat: elle ne peut prendre attribut participe à d’autres relations dans le modèle
0..1
Agrégat Composant
Cylindre Carburateur
* ...
51 52
Généralisation Généralisation multiple
Dans le cas des classes, la relation de
Véhicule
généralisation signifie est un ou est une Tapis
sorte de
X
Terrestre Aérien
Animal
A B C
Tapis volant
53 54
Motorisation Milieu
55 56
Contraintes de généralisation
Contraintes de généralisation
La contrainte {Chevauchement} ou {Inclusif} indique La contrainte {Complète} indique que la généralisation
qu'un objet peut appartenir à plusieurs collections est terminée et qu'il n'est pas possible de rajouter des
spécialisées . sous-classes. Inversement, la contrainte {Incomplète}
Véhicule
désigne une généralisation extensible
{Incomplète}
57 58
Facilite la compréhension des structures de données ainsi que les liens entre objets
complexes
:Voiture
Trois possibilités de représentation : Couleur = rouge
1..* 1..*
Salle Etudiant
Collaborateur Patron
* Jean-Luc: Personne Pierre: Personne
Personne
Patron 1
Patron : Professeur
Denis: Personne
: Salle : Etudiant
61 62
1
Zone de dessin : Ascenseur
63 64
Illustration de structures complexes Packages
Un package permet de grouper des
Parent
Personne Prénom
1
éléments
Mère/Père
Enfant 0..1 Un package sert d’espace de désignation
Un package peut inclure d’autres package
Jonathan
Lara
Mère Père
Roxane Un package peut importer d’autres
Mère Père Mère Père
package
Anne Pierre-Alain L’héritage entre package est possible
65 66
Collaboration 0..1
DIAGRAMMES DE *
Interaction
Modèle : Booléen
COLLABORATION D'OBJETS Opération 0..1
*
Représente
69 70
1:Monter
: Cabine
Message Ouvrir 3:Fermer
2:Mettre en marche : Porte
: ClasseA : ClasseB : Cabine : Porte
: Cabine
71 72
Contraintes associées aux envois de Itération dans un diagramme de
messages collaboration
Les objets et les liens créés ou détruits au cours d'une La notation permet d'introduire un envoi répétitif de
interaction peuvent respectivement porter les messages (événtuellement en parallèle) sur une
contraintes {nouveau} ou {détruit} collection d'objets d'une classe
B
{nouveau}) *[tous] : Debout
:Instituteur : Élève
A
C
{transitoire}
D
{détruit} 73 74
1:Appeler 2:Écrire
: Imprimante
: Cabine
75 76
Envois conditionnels de messages Envoi de message avec résultat
Le résultat d’un message peut être
L'envoi d'un message peut être assorti d'une condition
visualisé sous la forme d'une liste de
A
[condition] : Message
B
valeurs retournées par le message.
Message
A B
[poids>=300] : Sonner valeurs retournées
: Cabine : Alarme
Afficher âge
* || [âge>=18] : Voter : Université : Etudiant
âge
: Mairie : Personne
77 78
Exemple
: Gestionnaire
1.1.1: Afficher 2.1: réponse:= VérifierPrix(prix)
de pièces
SommeVersée 2.2: réponse:= Disponibilité
: Gobelet
2.2.1: gobelet 79 80
Représentation des interactions entre
Diagramme de séquence objets
Le concept de message unifie toutes les formes de communication
Modélisation des interactions entre objets
entre objets (appel de procédure, événement discret, signal entre
suite à un événement externe flots d'exécution ou interruption matérielle)
Les envois asynchrones pour lesquels l'émetteur n' est pas bloqué et
peut continuer son exécution
Nom : Classe Nom : Classe Nom : Classe
Message A B
Message
Message synchrone
Message
Message asynchrone
81 82
Message réflexif
La destruction est indiquée par la fin de la
ligne de vie et par la lettre X
: Bibliothécaire
Objet composite Composant a Composant b
Détruire
X
83 84
Périodes d’activité des objets Envoi conditionnel de message
Message synchrone
A B A B C
Un objet
Message asynchrone
: Abonné : Livre : Livre
A B Un objet
Récursion
[disponible] Emprunter
A B
: Ligne
Appelant : Client téléphonique Appelé : Client
Décroche Message [condition]
Tonalité
x [non condition]
{y-x < 10s} Numérotation
y
Indication de sonnerie Sonnerie
z
{w-z < 20s} : Abonné : Livre
Décroche
w
Retourner [en bon état]
87 88
Diagramme d'états-transitions
Décrit le comportement des objets d'une classe au moyen d'un
automate d'états associé à la classe
Le comportement est modélisé dans un graphe dont les nœuds
sont les états possibles des objets de la classe et les arcs sont
les transitions d'état à état. Chaque transition résulte de
Disponible Emprunté
État intermédiaire
État initial État final
Classe : Exemplaire
Réservé Acheté
93 Classe : Article 94
Un événement est par nature une information La spécification complète d'un événement comprend:
◦ le nom de l'événement
instantanée qui doit être traitée sans plus attendre.
◦ la liste des paramètres
L'événement est le déclencheur de la transition d' état à ◦ l'objet expéditeur
état Un objet, placé dans un état donné, attend ◦ l'objet destinataire
◦ sa description
l'occurrence d'un événement pour passer dans un autre Plus de 60 ans
En activité
état
Événement Emprunt Perte d'emploi A la retraite
Etat A Etat B Disponible Emprunté Embauche
97 98
La réponse
Etat A [ not X ]
C
Do: Une opération
103 104
Diagramme E/T du distributeur automatique des
Points d’exécution des opérations boissons
6 façons d'associer une
opération à une transition: Pièces insérées (montant) / régler montant
Encaissement d’argent
/ Op1 En attente
◦ l'action associée à la transition
do : augmenter le montant
d'entrée (Op1) Un état
entry: Op2 [article vide] Article sélectionné [montant <
◦ l'action d'entrée de l'état (Op2)
do: Op3 prix article]
◦ l'activité dans l'état (Op3) exit: Op4 Test d’article
on UnEvénement: Op5
◦ l'action de sortie de l'état (Op4) do : tester article et calculer
la monnaie à rendre
◦ l'action associée aux événements / Op6
[montant = prix article]
internes (Op5) [montant > prix article]
105 106
C L'état B est divisé en deux sous-états B1 et B2. La transition d'entrée dans l'état B doit être
AB est un super état dont A et B sont des sous-états
reportée directement sur un des sous états.
Cette généralisation permet de factoriser la transition E2
107 108
Généralisation d’états Généralisation d’états
Il est préférable de limiter les liens entre Exemple: boîte automatique de transmission
E2 E1 E4[ in Z ]
Z
B
111 112
Diagramme d'activités Gardes
Les transitions entre activités peuvent être gardées par des
Variante des diagrammes d'états-
conditions booléennes, mutuellement exclusives. Les gardes sont
transitions, ce diagramme met l'accent sur des labels des transitions dont elles valident le déclenchement
E1
Une condition peut être matérialisée par un losange d'où
Activité sortent plusieurs transitions
do: Activité
Mesurer la
Activité finie température
Apprendre
Évaluer
115 116
Objets dans un diagramme d'activités Etats et événements
Il est possible de faire apparaître des objets dans un diagramme
Les diagrammes d'activités peuvent faire
d'activités, soit au sein des couloirs d'activités, soit ien dehors de ces
couloirs référence à des états et à des événements
Client Vendeur Expédition
Ouvrir la
Se renseigner Établir un devis fenêtre
Commande ^Thermostat.DonnerUneConsigne
Commander [passée]
Aérer
Facturer Bon de
Consigne atteinte
livraison
Fermer la
Commande fenêtre
Payer Livrer
[payée]
117 118
Diagramme de composants
Un diagramme de composantes présente
la vue statique de l'implémentation d'un
système
DIAGRAMME DE
COMPOSANTS
119 120
Composante Nommer une composante
Une composante est une partie physique Chaque composante doit avoir un nom qui le
valeur étiquetée
system::dialog.dll
{version = 4.1}
123 124
Composantes et classes - Représentation
graphique
Composantes et interfaces
Une interface est une collection de
composante
spécifications d'opérations qui définissent
relation de réalisation agentfraude.dll
le service rendu par une classe ou une
composante.
125 126
127 128
Types de composantes Stéréotypes standards
UML distingue trois types de composantes : UML définit cinq stéréotypes pour les composantes :
exécutable
Composante de déploiement
spécifie une composante exécutable sur un nœud
Ce sont les composantes nécessaires et suffisantes pour
librairie
construire un système exécutable.
spécifie un objet de type librairie statique ou dynamique
Composante de réalisation
table
Ce sont les composantes résultats du travail de
spécifie une table d'une base de données
développement (code source, fichier, ...)
fichier
Composante d'exécution spécifie un fichier qui contient du code source ou des données
Ce sont les composantes qui sont créées lors de l'exécution document
d'un système spécifie une composante qui représente un document
129 130
«parent» «parent»
driver.dll
{version = 4.3.5}
signal.c Idrive
interrupt.c
{version = 4.1}
ISelfTest
131 132
Pour modéliser une base de données Pour modéliser un système dynamique
Pour représenter le schéma physique Pour représenter le comportement
d'une base de données. physique d'un système dynamique.
université.db
«copier»
133 134
Diagramme de dépoilement
Un diagramme de déploiement présente la
configuration physique des ordinateurs et
périphériques ainsi que les composantes
DIAGRAMME DE qui s'exécutent.
DÉPOILEMENT
135 136
Nœud Nommer un nœud
Un nœud est un élément physique qui Chaque nœud doit avoir un nom qui le
existe au moment de l'exécution et qui distingue des autres nœud - Unicité du
représente une ressource ayant des nom complet (noms des packages
possibilités d'exécution . englobant + le nom du nœud).
En pratique les noms de nœuds sont des
noms pris dans le vocabulaire de
l'implémentation
137 138
139 140
Nœuds et composantes - Représentation
graphique
Connexion
Les associations entre nœuds représentent
nœud
ventes
les connections physiques tels une
relation de dépendance connexion Ethernet, un câble série, ou
encore un bus commun.
stock.exe région.exe
composante
141 142
console
moteur moteur
connexion mouvement direction
M M
~ ~
143 144
Pour modéliser les systèmes client-
Pour modéliser les systèmes distribués
serveur
Pour modéliser l'implémentation de Pour modéliser la topologie de systèmes
système client-serveur. distribués.
serveurs
:console
clients
2..* 4..* :serveur
«processeur» «processeur» régional
cache serveur
:Internet
kiosque Déploie Déploie
http.exe db.exe :console
console log.exe
:serveur
régional
:serveur :serveur
régional national
145 146
147 148
Modéliser la sémantique Le méta-modèle UML
151 152
Outil UML standard Objecteering
Il est communément établie qu’un outil Objecteering (version 5.2.2) est un outil
UML standard est un outil qui UML standard créé par la société
◦ Respecte intégralement la notation UML SOFTEAM
Même si tous les diagrammes ne sont pas supportés ◦ Il permet l’élaboration de tous les diagrammes
◦ Dispose d’un format de représentation interne UML
compatible avec le méta-modèle UML standard ◦ Il dispose de son propre méta-modèle
Le difficulté de ce point s’illustre avec XMI compatible avec le méta-modèle UML
153 154
Explorateur
de modèles
Explorateur de
Zone d’élaboration
diagrammes
des modèles
155 156
Autres outils standards
Rational Rose
◦ Outil de plus important du marché
◦ http://www.rational.com
◦ Racheté par IBM
Together
◦ Outil fortement couplé avec Java
◦ http://www.togethersoft.com
◦ Racheté par Borland
ArgoUML
◦ Outil Open Source
◦ http://argouml.tigris.org
Visio
◦ Outil non complet de microsoft
◦ http://www.microsoft.com/office/visio
157