Académique Documents
Professionnel Documents
Culture Documents
Modélisation Objet
Pr. Omar El Beqqali
omar.el-beqqali@insa-lyon.fr
http://www.fsdmfes.ac.ma/oelbeqqali
http://www710.univ-lyon1.fr/~obekkali
EMSI 2009 / 20010 O. El Beqqali 1
Spécification et conception du logiciel.
Plan
- Diagramme de collaboration
- Diagramme de classes.
- Diagramme d'objets
Le processus de développement du logiciel - Diagrammes d'états-transitions
•Les enjeux du Génie Logiciel.
- Diagramme d'activités
•Le processus de développement du logiciel. - Diagramme de composants.
(GL) - Diagramme de déploiement.
Le langage de modélisation unifié UML. •UML & Bases de données
•Présentation générale.
•Génération du code
•Méthodologie Objet en spécification et en conception
•Rétro-ingénierie (reverse engineering)
•Concepts fondamentaux.
•Diagrammes UML •Mise en œuvre d'UML : étude de cas
-Diagramme des cas d'utilisation ( 2004 : 4 nouveaux diagrammes)
-Diagramme de séquences.
O. El Beqqali 2
Spécification et conception du logiciel.
Méthodologie Objet : UML.
Objectifs
O. El Beqqali 3
La modélisation
O. El Beqqali 5
Conception
Conception par
par objets
objets
• Démarche itérative plus que descendante (cycle itératif)
• Grandes étapes
– Identifier les entités du domaine
– Structurer le domaine en analysant les propriétés de ces
entités et leurs relations
– Identifier les opérations que savent effectuer ces entités
– Décrire précisément ces opérations en les reliant à des
messages
– Décrire le lancement du programme
O. El Beqqali 6
Avantages
Avantages de
de la
la conception
conception objet
objet
Implémentation Spécifications
fonctionnelles
Conception Analyse
O. El Beqqali 8
Méthodes
Méthodes objets
objets (historique)
(historique)
OOD Object Oriented Design (G. Booch) 1991
HOOD Hierarchical Object Oriented Design (Delatte & al.) 1993
OOA Object oriented analysis (Schlaer ,Mellor) 1988, 92
OOA/OOD (Coad & Yourdon) 1991
OMT Object Modeling Technique 1991
OOSE Object oriented software engineering (Jacobson & al.) 1992
OOM Object oriented Merise (Bouzeghoub & Rochfeld) 1993
Fusion (Coleman & al.) 1994
Booch’93 OMT-2
ABSTRACTION
Système réel Modèle
O. El Beqqali 15
UML : les diagrammes (2)
Fonctionnel
Diagramme de cas
d’utilisation
Statique Dynamique
Diagramme de classes Diagramme d’états
Diagramme d’objets Diagramme d’activités
Diagramme de composants Diagramme de séquence
Diagramme de déploiement Diagramme de collaboration
O. El Beqqali 17
Mécanismes de base
O. El Beqqali 18
O. El Beqqali 19
Cas d’utilisation : Introduction
Use Case
Ensemble cohérent de fonctionnalités fournies
par le système ou un sous-système en réponse à
Cas d'utilisation une action de l’utilisateur. Ce ci se traduit par
l’échange de messages entre le système et les
acteurs.
O. El Beqqali 21
Elaboration de CU
questions à se poser :
– quelles sont les tâches de l’acteur ?
– quelles informations l’acteur doit-il créer, sauvegarder, modifier,
détruire, ou simplement lire ?
– l’acteur doit-il informer le système de changements externes ?
– On s’intéresse au domaine du ‘quoi faire’, pas du ‘comment’ (sinon
on rentre dans la phase de conception)
– on doit rester au niveau de l’interaction acteur/système
Frontière du système
O. El Beqqali 22
Cas d'utilisation : Démarche
O. El Beqqali 25
Acteur
Différentes
Différentes catégories
catégories d’acteurs
Acteur d’acteurs
Catégories
Acteurs principaux: personnes utilisant le système (à qui va
servir le système)
•Acteurs secondaires: qui administrent le système (paramètrent
le système en lui fournissant les informations nécessaires ou
effectuent des m.a.j).
Exemple : bibliothèque => l’administrateur est un A.S, le
membre est un A.P.
Types
Matériel externe: dispositifs matériels faisant partie du domaine
de l’application.
•Humains : utilisateurs du système.
•Logiciels, robots : qui exploitent les données du système.
O. El Beqqali 26
Acteurs et cas d’utilisation
système
acteur
cas d’utilisation
Guichetier
Note Opération sur
un guichetier est un employé
compte
de la banque jouant un rô le
d'interface ent re le sy stème Lecteur code
informatique et les clients
qu 'il reçoit
prêt
Gestionnaire de
prêts
Téléphone
Appeler
Téléphone
Client
Interrompre
Recevoir
Appel
Appel
Acteur Opérateur
C.U
O. El Beqqali 28
CU
caractéristiques (2)
• Identification d'une finalité de l'utilisateur
• Un stimulus de départ
• Une pré-condition du système au déclenchement
• Un enchaînement d'interactions
• Une post-condition du système à la fin du cas
d’utilisation
• Enchaînement d’actions à effectuer
• Une fin normale (conditions d’exécution éventuelles)
O. El Beqqali 29
Le cas d'utilisation
Acteur Acteur
Emetteur Use Case Receveur
Pré-condition
Scénario
Post-condition
O. El Beqqali 30
Cas d'utilisation : Exemple (1)
<<extend>>
Guichetier retrait
retrait Dhs
O. El Beqqali 33
Cas d'utilisation :
La notation (2)
La relation « include» indique que le UC pointé par la flèche est une
sous partie de l’autre UC .
‘factorisation’ des UC dont les fonctionnalités servent
fréquemment dans des différents UC
(comportement communs à plusieurs UC).
<<include>>
Retrait Saisie N° compte
<<include>>
Emprunt
O. El Beqqali 34
Cas d’utilisation et scénarios
scénario 2 scénario 3
scénario 1
scénario 4
Cas
• Scénario = chemin dans le CU d’utilisation
• Description du CU
– ensemble des scénarii
– document avec flot d’événements
• du point de vue de l’acteur
• détaille ce que le système doit fournir à l’utilisateur quand le CU est
exécuté
– flot normal des événements (80 %) -Nominal-
– flots d’événements alternatifs
– flots d’exceptions (quand le CU ne ne termine pas correctement)
O. El Beqqali 35
CU : scénarios
Exemple : GAB
Opération sur compte
Client
Description générale C.U : ce cas d’utilisation concerne les opérations
que le client peut réaliser sur son compte sur un distributeur bancaire.
Description des scénarios :
Le cas d’utilisation commence quand l’utilisateur se connecte. Le système
lui propose :
a/ de retirer du liquide
b/ de déposer un chèque
Si le client choisit a/, le système lui propose divers montants. L’utilisateur
choisit une somme. Le système vérifie que le compte est suffisamment
approvisionné, et délivre l’argent et un reçu. Sinon, le système informe
l’utilisateur de l’échec de l’opération, et lui rend sa carte.
1/ Acheter un produit
O. El Beqqali 39
Cas d'utilisation:
un besoin
Acheter
un
produit
Vendeur
Acheteur
Catalogue
O. El Beqqali 40
Cas d'utilisation : Le scénario
Exemple Vente
O. El Beqqali 41
Cas d'utilisation : Le scénario
Exemple ‘RER’
…..Autres Scénarii….
O. El Beqqali 42
O. El Beqqali 43
Les diagrammes de séquence (1)
O. El Beqqali 44
Diagrammes
Diagrammes de
de séquence
séquence (2)
(2)
O. El Beqqali 45
Diagrammes de séquence :
exemple : système d’appel téléphonique
Ligne
téléphonique
: Appelant : Appelé
Message synchrone Décroche
Numérotation
temps
Indications de sonnerie
*[pas décroché] Sonnerie
Décroche
O. El Beqqali 46
Diagrammes de séquence
exemple : système de gestion de comptes bancaires
: Banque Comptes:Compte
: Employé
opération(retrait,montant)
Compte?
compte(noCompte)
ok := retrait(compte,montant)
diminuer(montant)
[ok=True] impriméASigner
[ok=Faux] refus(retraitMax)
:A :B :A :B
P(a,b)
m m=P(a,b)
O. El Beqqali 47
Diagramme de séquence
le suivi des événements (trace event)
Exemple1 (Vente)
étonnement
se plaindre
proposition prix
nouveau produit
O. El Beqqali 48
O. El Beqqali 49
Diagrammes
Diagrammes de
de collaboration
collaboration
– Représente les interactions entre objets et relations
structurelles permettant celles-ci.
– Description:
• Du comportement collectif d’un ensemble d’objets
• Des connexions entre ces objets
• Des messages échangés par les objets
– Interaction réalisée par un groupe d’objets qui collaborent en
échangeant des messages
– Temps non représenté de manière implicite (numérotation
des messages)
O. El Beqqali 50
Les interactions
Porte ouvrir()
:Cabine
Cabine +ouvrir()
+fermer() :Porte
+état() Interaction entre 2 objets instances
des classes Cabine et Porte
Modélisation d’une cabine d’ascenseur qui ‘demande’ à une porte de s’ouvrir
O. El Beqqali 51
Diagrammes de collaboration
Représentation de l’ordre des envois de messages pour l’exemple
De l’ascenseur :
: Ascenseur
4: déplacer(haut) 1: monter()
: Cabine 3: fermer()
: Porte
2: allumer()
: Voyant
O. El Beqqali 52
Équivalence diagrammes de séquence / collaboration
timer
fermer
F5(Rose)
portes ascenseur
5: ouvrir 7: fermer
3: déplacer
contrôleur ascenseur
1:Appui bouton étage ascenseur
user
2: allumer
Diagramme bouton étage
de collaboration 6: timer 4: éteindre O. El Beqqali 53
Paquetages (package)
• regroupement logique d’éléments de diagramme qui
entretiennent entre eux des relations étroites
• clarté / partage du travail dans une équipe
• un paquetage possède des éléments de modélisation et peut
en importer.
• forme générale du système : hiérarchie de paquetage +
relations de dépendances entre paquetages (<< importe >>,
<< accède >>)
• sous-système : spécifie le comportement collectivement
offert par ses éléments (en terme d’opérations)
O. El Beqqali 54
Paguetages: un espace de nommage
Client
Facturation:: * 1
Facture Client Société
1 1
concerner acheter
1
*
Commande Produit
nomDuPackage : : NomDeLaClasse
O. El Beqqali 55
Paquetages : exemple
But : organiser un modèle objet
clients Gestion
Gestion
Compte
Entreprise
<< accède >> (from Client)
Banque
Reseaux
lien de dépendance
O. El Beqqali 56
O. El Beqqali 57
Diagrammes de classes
• Vue logique / statique / structurelle d’un système :
les classes et leur relations
• Dans UML
– Classes : structures et comportements
– relations : associations, agrégations, dépendances,
généralisation/spécialisation, noms de rôles
– contraintes
– indicateurs de multiplicité et de navigation
• Mais : toujours difficile de déterminer les classes
il faut des méthodes
• Modèle du domaine stable
• Objets dans les diagrammes de séquence et de collaboration,
O. El Beqqali 58
Diagramme
Diagramme d’objets
d’objets
• Objet : unité atomique formée de l’union d’un état et d’un comportement
• Etat d’un objet: valeurs instantanées de tous ses attributs(l’état d’un objet
à un moment donné est la conséquence des comportements passés).
UneClasse
privé : int Voiture de Toto Voiture de Toto
: Véhicule
public
protégé
(Rose) Couleur = rouge Couleur = rouge
Masse = 895 kg Masse = 895 kg
opprivee( ) Puissance = 7 CV Puissance = 7 CV
oppublique( )
opprotégée( ) Nom objet : classe
Visibilité et portée des attributs et des opérations :
Public : l’élément est visible pour tous les clients de la classe
Protégé (protected): l’élément est visible pour les sous-classes de la classe
Privé (private): l’élément est visible pour la classe seule O. El Beqqali 59
Diagramme
Diagramme de
de classes
classes &
& objets
objets
Exemple
Exemple
Voiture Moteur
1 1
Diagramme de classes 1
association
4
Roue
Diagramme d’objets
lien
:Roue :Roue :Roue :Roue
Société Personne
0..* τ travaille pour 0..*
employeur employé 0..1 patron
nom emploie υ nom
dirige θ
*
employés O. El Beqqali 62
Multiplicité
Multiplicité des
des associations
associations
1 Un et un seul
0..1 Zéro ou 1
N N(entier naturel)
1..* De 1 à plusieurs
O. El Beqqali 63
Classes-Associations
Job
salary : undefined
O. El Beqqali 64
Associations qualifiées (1)
A qualificatif * B
{sous-ensemble} Banque centrale
No banque
Exemple :
1..* Contient υ 1 Fichier
Répertoire
Nom fichier Banque
O. El Beqqali 66
L’agrégation
L’agrégation
* Attache
E-mail Fichier
*
O. El Beqqali 67
Composition d’objets
• Cas particulier d’agrégation contenance physique
« Si destruction objet composé destruction des composants »
Fenêtre
Exemple
1
Fenêtre
2 1 barre_défilement : ascenseur
1
barre_défilement titre contenu titre : en-tête
contenu : cadre
Ascenseur En-tête Cadre
1 1
Bouton Texte
O. El Beqqali 68
La
La composition
composition
• Agrégation forte
• Destruction du composite (x est une partie de y?)
=> Destruction automatique de tous ses composants
Composition
Exemple
Livre {ordered} Page
1 1..*
Agrégation
La contrainte { ordered } indique que
1
la collection des pages d’un livre est ordonnée
Couverture
O. El Beqqali 69
L’héritage
• Moyen de réaliser la classification ou
l’organisation en classes vocabulaire à réserver
à l’implantation
Véhicule
• Généralisation :
regroupement, « est- {incomplète} Véhicule aérien
Véhicule terrestre
un », « sorte-de »
• Spécialisation contrainte
(symétrique généralisation):
raffinement de classe
Transmission super-classe
- par extension de propriétés
(ajouter un attribut)
- par restriction de domaines Continue {disjoint} Discrète
sous-classes
de valeurs d’attributs
O. El Beqqali 71
Généralisation/spécialisation
Généralisation/spécialisation (2)
(2)
Livre Livre
Chat Chien
Roman
O. El Beqqali 72
Hiérarchies de classes
Facture
• Contraintes : date
pour
Livraison
{complète}, adresse 1 1..*
{incomplète}, montant
{disjoint}, imprimer()
expédier()
• Attributs / opérations
destination {complete}
communs sont
montrées au niveau le
plus haut. Facture_export Facture_Maroc
devise_paiement taux_TVA
montant_devise montant_ttc
convertir(devise) calcul_ttc()
La contrainte {complète} indique que la généralisation est
terminée et qu’il n’est plus possible de rajouter des sous- O. El Beqqali 73
classes.
Héritage multiple
V éhicule
Exemple :
{disjoint}
Un état = image de la conjoncture instantanée des valeurs des attributs d’un objet
& Présence ou non de ses liens à d’autres objets.
Une transition représente un changement d'état ; elle est déclenchée par un événement.
- Transitions
peuvent être automatiques
peuvent être conditionnées
- Evènements
déclenchent les transitions
O. El Beqqali 75
Construction du diagrammes
états – transition Statecharts (2)
Un Statechart est un graphe orienté dont les nœuds sont des états et les arcs
sont des transitions.
Etat initial
EVENEMENT_K (attributs)
ETAT_I ETAT_J
Etat final
• Dans un état, une activité est une opération séquentielle qui se termine d'elle-même au
bout d'un certain temps, ou opération continue qui dure indéfiniment (peut être
interrompue par l'arrivée d'un événement).
action d’entrée : exécution instantanée de l ’action lors de l’entrée dans l’état. faire : activité_1
entrée / action_2
action de sortie : exécution de l ’action au moment de quitter l’état. sortie / action_3
événement / action_4
actions internes : exécution d’une action sur événement sans changer d’état.
O. El Beqqali 77
Diagrammes d’états-transitions - Exemple
Incrémenter Crédit(p)
Système Publiphone
DcrocherCombiné
[P. Roques]
attente Pièc e [ Crédit>=0,5 ]
Raccroché
racc rocherCombiné
taxer Attente
Numéro
Attente
Raccrocher Combiné Validité
Débuter Communication
couloirs d'activité
expédier :Commande
(Swimlanes) produit etat = envoyée
recevoir
produit
Début
payer
facture
encaisser :Commande
O. El Beqqali 79
Diagramme
Diagramme de
de composants
composants (1)
(1)
convert
library
<< link >>
executable
O. El Beqqali 81
Diagramme
Diagramme de
de déploiement
déploiement (1)
(1)
1..n
1
:Station
:Modem 1024 kB / s UltraSPARC
ADSL
RAM >= 1GB
1
1
TCP / IP
1..n
:PC 0..n
client ssh
:PC
client telnet
client NFS
O. El Beqqali 83
Démarche d’application D'UML
2 approches
+ A l ie u D a n s 0..*
< < R e la t i o n a l T a b le > >
< < R e la t io n a lT a b le > > 0..* 0..* COURS < < R e la t io n a lT a b le > >
+ E n s e i g n é P a r + E n s e ig n é
E TU DIA N T D EB U T : D AT E E N S E IG N A N T
+ In s c r i t + S u i vi P a r D IN : D A T E 0 ..* 0..1
O. El Beqqali 85
UML & Bases de données (2)
DataModeler de Rose P e rs o n n e
( fr o m R e l a ti o n n e l )
M a tr i c u l e : S M A LL IN T
Nom : V A R C H A R (2 5 5 )
schéma de BD A d r e ss e
T é le : V
:
A
V
R
A R C H A R (2 5 5 )
C H A R (2 5 5 )
1 .. *
1 ..*
P ro d u i t
( fr o m R e l a tio n n e l)
Com m ande
N u m P ro d : S M A L L IN T
( fr o m R e l a ti o n n e l )
D é si g n a t i o n : V A R C H A R (2 5 5 )
Id C d e : S M A L L IN T < < Id e n t if y i n g > > P ri x U : S M A L L I N T
< < Id e n ti fy i n g > >
D a te C d e : D A T E I d F o u rn : S M A L L I N T
Id C l i : S M A L L IN T M a t ri c u l e : S M A L L I N T
1
M a t ri c u l e : S M A L L I N T 1
1
0 ..* 0 ..*
L ig n eC o m m a n d e
( fr o m R e l a ti o n n e l )
N u m P ro d : S M A L L I N T
stéréotype visuel Id C d e : S M A L L IN T
O. El Beqqali 86
générateurs UML -> code
• Différents types :
objet , bases de données
• Automatique ?
– information dans les modèles insuffisante
– paramétrage des outils : traduction des associations,
méthodes engendrées automatiquement
– degré de traduction dépend du langage cible
Implantation
Modèle UML
O. El Beqqali 91
O. El Beqqali 92
Conclusions
• Propriétés d’UML
– Unification des concepts de modélisation
– Puissance d’expression
• Nombreux formalismes (issus de méthodes existantes)
• Mécanismes d’extension inclus (stéréotypes)
– Description par un méta-modèle (syntaxe et sémantique des modèles)
– Compromis formalisation / niveau d’abstraction
(impression qu’UML est une méthode)
O. El Beqqali 93
Bibliographie
Présentation d’UML non exhaustive , pour la description exacte de toute la
syntaxe et la sémantique :
Références :
• www.omg.org, www.rational.com
• A. Muller : « Modélisation objet avec UML », Eyrolles, 2000
• P. Roques, « UML par la pratique », Eyrolles, 2004
• J. Rumbaugh, I. Jacobson, and E. Booch, « The Unified
Modeling Language Reference Manual ». Reading, MA:
Addison-Wesley, 1999.
• Web….
O. El Beqqali 94