Vous êtes sur la page 1sur 132

Master MIDO

2me anne
Spcification et Conception en UML
Maude Manouvrier
Spcifications initiales
Analyse
Conception du systme
Conception des classes
Bibliographie
Modlisation et conception orientes objet avec UML2 de Michael
Blaha et James Rumbaugh, 2me dition, Pearson Education
France, 2005 Traduction de louvrage Applying Object-Oriented
Modeling and Design with UML, Prentice Hall 2005
The Unified Modeling Language Reference Manual, 2nd Edition de
James Rumbaugh, Ivar Jacobson et Grady Booch, Addison
Wesley Professional, 2004 Traduction franaise : UML 2.0,
Guide de Rfrence, CampusPress
Le guide de lutilisateur UML de Grady Booch, James Rumbaugh
et Ivar Jacobson, Eyrolles, 2000 Traduction de louvrage The
Unified Modeling Language User Guide; Addison-Wesley, 1998
UML 2 par la pratique Etudes de cas et exercices corrigs de
Pascal Roques, 4me dition, Eyrolles, 2005
Transparents de cours de Robert Ogor : http://www-inf.int-
evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Transparents de cours de Marie-Jos Blin
Maude Manouvrier - Univ. Paris Dauphine 2
Historique
Maude Manouvrier - Univ. Paris Dauphine 3
OMT
(Object Modeling
Technique - 1991)
de James Rumbaugh
OOSE
de Ivar Jacobson
Notation
de Grady Booch
UML - Unified Modeling Language
Standard de modlisation objet
adopt en 1997 par lObject Management Group (OMG)
Rvision des spcifications initiales en 2001 UML 1
Approbation de la version UML 2.0 en 2004
Stades de dveloppement (1/4)
Spcifications initiales du systme : dfinition et
formulation des exigences provisoires
Analyse : Comprhension en profondeur des exigences
partir de la construction de modles
Conception du systme : Mise au point de larchitecture du
systme en instaurant les politiques de conception des
classes
Conception des classes :
Augmentation et ajustement des modles du monde rel
issus de lanalyse en vue dune compatibilit avec une
implmentation informatique
Dtermination des algorithmes des oprations
Implmentation : Traduction de la conception en code
Test : Vrification du bon fonctionnement de lapplication
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 4
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Cahier des charges
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Cahier des charges
Saccorder sur ce qui doit tre fait dans le systme
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Cahier des charges
Saccorder sur ce qui doit tre fait dans le systme
Comprendre les besoins et les dcrire
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Cahier des charges
Saccorder sur ce qui doit tre fait dans le systme
Comprendre les besoins et les dcrire
Saccorder sur la manire dont le systme
doit tre construit
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Cahier des charges
Saccorder sur ce qui doit tre fait dans le systme
Comprendre les besoins et les dcrire
Saccorder sur la manire dont le systme
doit tre construit
Coder le rsultat de la conception
Stades de dveloppement (2/4)
Maude Manouvrier - Univ. Paris Dauphine 5
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Spcifications initiales
Analyse
Conception
Implmentation
Test
Cahier des charges
Saccorder sur ce qui doit tre fait dans le systme
Comprendre les besoins et les dcrire
Saccorder sur la manire dont le systme
doit tre construit
Coder le rsultat de la conception
Tester si le systme est conforme au
cahier des charges
Stades de dveloppement (3/4)
laboration et optimisation des modles en
permanence
Application des mmes concepts et de la mme
notation tout au long du processus mais avec des
changements de points de vue
Premiers stades axs sur les exigences mtier
Stades ultrieurs axs sur les ressources
informatiques
Grande partie de leffort pour lanalyse et la
conception
Maude Manouvrier - Univ. Paris Dauphine - repris de [BR05] 6
Stades de dveloppement (4/4)
Plusieurs styles de cycle de vie :
Dveloppement en cascade :
Squence linaire des diffrents stades
Pas de retour en arrire
Passage au stade suivant aprs la fin complte du stade prcdent
Pour des applications bien comprises avec des exigences bien stabilises et
des rsultats danalyse et de conception prvisibles
Pas de livraison dun systme utilisable avant la finalisation complte du
systme
Dveloppement itratif :
Dveloppement en cascade du noyau du systme
largissement du primtre du systme par ajout successif de proprits et
de comportement aux objets existants et de nouveaux types dobjets
Plusieurs itrations avant le livrable final chaque itration comprenant un
ensemble complet de stades
Pas de construction du systme dans son intgralit en une seule fois
Valable pour la plupart des applications
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 7
Spcifications initiales (1/3)
Objectif : se forger une ide globale du systme en
diffrant les dtails
Questions se poser [BR05] :
A qui lapplication est-elle destine ?
Quels problmes lapplication rsoudra-t-elle ?
Quelles seront les conditions dutilisation de lapplication ?
Quand lapplication est-elle attendue ?
Pourquoi lapplication est-elle attendue ?
Comment lapplication fonctionnera-t-elle ?
Maude Manouvrier - Univ. Paris Dauphine 8
Spcifications initiales (2/3)
Exigences : description de la faon dont un systme
se comporte du point de vue utilisateur
Systme = bote noire dont seul le comportement
externe importe
Rdaction dun nonc des exigences
Exigences : souvent ambigus, incompltes voire
incohrentes, parfois fausses
nonc : Point de dpart et moyen de mieux
comprendre le problme mais document non immuable
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 9
Spcifications initiales (3/3)
Prciser ce qui doit tre ralis et non comment
limplmentation doit le raliser [BR05] :
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 10
Spcifications initiales (3/3)
Prciser ce qui doit tre ralis et non comment
limplmentation doit le raliser [BR05] :
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 10
Exigences
Primtre du systme
Dfinition de ce qui est exig
Contexte de lapplication
Hypothses
Besoins de performances
Spcifications initiales (3/3)
Prciser ce qui doit tre ralis et non comment
limplmentation doit le raliser [BR05] :
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 10
Exigences
Primtre du systme
Dfinition de ce qui est exig
Contexte de lapplication
Hypothses
Besoins de performances
Conception
Approche gnrale
Algorithmes
Structures de donnes
Architecture
Optimisation
Planification des ressources
Spcifications initiales (3/3)
Prciser ce qui doit tre ralis et non comment
limplmentation doit le raliser [BR05] :
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 10
Exigences
Primtre du systme
Dfinition de ce qui est exig
Contexte de lapplication
Hypothses
Besoins de performances
Conception
Approche gnrale
Algorithmes
Structures de donnes
Architecture
Optimisation
Planification des ressources
Implmentation
Plates-formes
Spcifications matrielles
Bibliothques logicielles
Standards dinterface
Spcifications initiales (3/3)
Prciser ce qui doit tre ralis et non comment
limplmentation doit le raliser [BR05] :
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 10
Exigences
Primtre du systme
Dfinition de ce qui est exig
Contexte de lapplication
Hypothses
Besoins de performances
Conception
Approche gnrale
Algorithmes
Structures de donnes
Architecture
Optimisation
Planification des ressources
Implmentation
Plates-formes
Spcifications matrielles
Bibliothques logicielles
Standards dinterface
!
Ne pas prendre trop tt de
dcisions de conception ou
dimplmentation
Exemple trait en cours
Systme de gestion de demandes de formation
En vue de lamlioration de son systme dinformation, souhait dune entreprise
de modliser le processus de formation des ses employs afin dautomatiser
certaines tches
Initialisation du processus de formation la rception dune demande de formation par
le responsable formation de la part dun employ. Analyse de la demande par le
responsable et transmission de laccord ou du dsaccord lintress.
En cas daccord,
Recherche par le responsable de formation, dans le catalogue des formations
agres, dun stage correspondant la demande.
Transmission lemploy demandeur du contenu de la formation correspondant
la demande et du planning des sessions.
Aprs validation auprs de lemploy, inscription auprs de lorganisme de
formation de lemploy par le responsable la session de formation choisie.
En cas dempchement de lemploy, obligation de lemploy dinformer le responsable
au plut tt pour annuler linscription ou la demande.
A la fin de la formation, remise par le participant au responsable dune fiche
dapprciation de la formation et dun document justifiant sa prsence au cours de la
formation.
Contrle, par la responsable, de la facture envoye par lorganisme de formation avant
transmission au service comptable.
Maude Manouvrier - Univ. Paris Dauphine repris de [Roq05] 11
Analyse
tape du dveloppement o on examine le
problme rel pour comprendre ses besoins
sans planifier limplmentation [BR05]
Concentration sur la cration de modles
Analyse du domaine
Modles du domaine
Analyse de lapplication
Modles de lapplication
Maude Manouvrier - Univ. Paris Dauphine 12
Analyse du domaine (1/21)
Objectif : obtenir un modle prcis, concis,
comprhensible et correct du monde rel
Dbut dune comprhension plus claire des
exigences
Mise en vidence des ambiguts et des
incohrences de lnonc du problme
Abstraction des caractristiques essentielles de
lnonc du problme dans un modle
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 13
Analyse du domaine (2/21)
Modle de classes du domaine
Description des classes du monde rel et de leurs
relations
tapes suivre [BR05] :
1. Identifier les classes et conserver les classes pertinentes
2. Prparer un dictionnaire de donnes
3. Identifier les associations et conserver les associations
pertinentes
4. Identifier les attributs des objets et les liens
5. Organiser et simplifier les classes en utilisant lhritage
6. Vrifier que tous les chemins daccs existent pour les
requtes probables
7. Itrer et affiner le modle
8. Rexaminer le niveau dabstraction
9. Regrouper les classes en package
Maude Manouvrier - Univ. Paris Dauphine 14
Analyse du domaine (3/21)
1. Identifier les classes : trouver les classes
pertinentes pour les objets du domaine de
lapplication
Conseils de [BR05] :
Au dpart, ne pas tre trop slectif et noter tout
ce qui vient lesprit
Ne pas se soucier trop de lhritage ni des
classes de haut niveau
Maude Manouvrier - Univ. Paris Dauphine 15
Exigences
sources
Classes
candidates
Classes Extraction
des noms
limination
des classes
inappropries
Analyse du domaine (4/21)
1. Identifier les classes : cas du systme de gestion
de demandes de formation
Maude Manouvrier - Univ. Paris Dauphine - adapt de [Roq05] 16
Systme dinformation Processus de formation
Employ
Responsable de formation
Demande de formation
Accord
Dsaccord
Catalogue de formations agres
Stage
Organisme de formation
Planning Session
Inscription
Empchement Annulation
Apprciation de stage Justificatif de prsences Facture
Service Comptable
Contenu de formation Transmission
Intress
Recherche
Validation Responsable
Participant
Analyse Initialisation
Obligation Remise
Contrle
Analyse du domaine (5/21)
1. Conserver les classes pertinentes
Par limination des :
Classes redondantes : classes exprimant le mme concept /
Conservation du nom le plus vocateur
Classes sans intrt : classe sans lien avec le contexte ou ne faisant
pas partie du primtre du logiciel
Classes vagues : classes ayant des frontires mal dfinies ou une
porte trop large
Attributs : re-formulation des noms dcrivant originellement des
objets individuels sous la forme dattributs
Oprations : appliques des objets et non manipules en tant
quoprations
Rles : reflet de la nature intrinsque dune classe par son nom et non
du rle de la classe dans une association
lments dimplmentation : lments trangers au monde rel
Classes drives
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 17
Analyse du domaine (6/21)
2. Prparer un dictionnaire de donnes : pour
viter les trop nombreuses interprtations
Dcrire prcisment chaque classe par un paragraphe
Dcrire la porte de chaque classe dans le problme
courant, en incluant toutes les hypothses et les
restrictions quant son utilisation [BR05]
Dcrire galement les attributs, associations, oprations
et valeurs numres
Maude Manouvrier - Univ. Paris Dauphine 18
Analyse du domaine (6/21)
2. Prparer un dictionnaire de donnes : pour
viter les trop nombreuses interprtations
Dcrire prcisment chaque classe par un paragraphe
Dcrire la porte de chaque classe dans le problme
courant, en incluant toutes les hypothses et les
restrictions quant son utilisation [BR05]
Dcrire galement les attributs, associations, oprations
et valeurs numres
Maude Manouvrier - Univ. Paris Dauphine 18
Demande de formation : Email envoy par un employ au
responsable de formation, prcisant un thme, une formation ou une
session particulire de formation issues du catalogue. La demande est
enregistre par la systme aprs transmission au responsable de
formation.
Analyse du domaine (7/21)
3. Identifier les associations et conserver les
associations pertinentes
Par limination des :
Associations non pertinentes ou relevant de
limplmentation
Actions
Associations ternaires par dcomposition associations
binaires, associations qualifies ou classes-associations
Associations drives : associations dfinies en termes
dautres associations (car redondance)
Maude Manouvrier - Univ. Paris Dauphine - modle
de classe repris de [Roq05]
19
Analyse du domaine (7/21)
3. Identifier les associations et conserver les
associations pertinentes
Par limination des :
Associations non pertinentes ou relevant de
limplmentation
Actions
Associations ternaires par dcomposition associations
binaires, associations qualifies ou classes-associations
Associations drives : associations dfinies en termes
dautres associations (car redondance)
Maude Manouvrier - Univ. Paris Dauphine - modle
de classe repris de [Roq05]
19
Demande de formation
Session Employ
Inscription
est inscrit
est
satisfaite
par
*
1
*
*
1
0..1
-demandeur
Analyse du domaine (7/21)
3. Identifier les associations et conserver les
associations pertinentes
Par limination des :
Associations non pertinentes ou relevant de
limplmentation
Actions
Associations ternaires par dcomposition associations
binaires, associations qualifies ou classes-associations
Associations drives : associations dfinies en termes
dautres associations (car redondance)
Maude Manouvrier - Univ. Paris Dauphine - modle
de classe repris de [Roq05]
19
Demande de formation
Session Employ
Inscription
est inscrit
est
satisfaite
par
*
1
*
*
1
0..1
-demandeur
!
Toutes les associations
formant plusieurs
chemins entre des classes
nindiquent pas une
redondance
Analyse du domaine (8/21)
3. Identifier les associations et conserver les
associations pertinentes (suite)
Prcision de la smantique des associations :
viter les associations mal nommes : choix des
noms primordial pour la comprhension
Indiquer les noms dextrmits dassociations
Identifier les associations qualifies
Prciser les multiplicits
Ajouter les associations manquantes
Transformer certaines associations en agrgations
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 20
Session Formation
1
0..*
NumSession
Analyse du domaine (9/21)
4. Trouver les attributs et conserver les attributs
pertinents
Conseils de [BR05] :
Ne pas pousser la recherche des attributs lextrme.
Ne considrer que les attributs pertinents pour lapplication
Rechercher en premier les attributs les plus importants ;
repousser les dtails plus tard
Omettre les attributs drivs
Rechercher les attributs des associations
limination des attributs inutiles ou incorrects selon les
critres suivants [BR05] :
Diffrencier les objets de leurs valeurs
Utiliser des qualificateurs
Ne pas prciser les attributs identificateurs excepts ceux
du domaine de lapplication
liminer les valeurs internes et les dtails fins
Maude Manouvrier - Univ. Paris Dauphine 21
Analyse du domaine (9/21)
5. Organiser et simplifier les classes en utilisant
lhritage
Par gnralisation ascendante : en recherchant les classes ayant
des attributs, des associations ou des oprations similaires
Par spcialisation descendante : en vitant les raffinements
excessifs
Gnralisation vs. numration
Maude Manouvrier - Univ. Paris Dauphine - modle de classe
repris de [Roq05]
22
Analyse du domaine (9/21)
5. Organiser et simplifier les classes en utilisant
lhritage
Par gnralisation ascendante : en recherchant les classes ayant
des attributs, des associations ou des oprations similaires
Par spcialisation descendante : en vitant les raffinements
excessifs
Gnralisation vs. numration
Maude Manouvrier - Univ. Paris Dauphine - modle de classe
repris de [Roq05]
22
Demande de Formation
dateEmission : Date
dateValidit : Date
Accord
Motif : String
Dsaccord
Rponse
date : Date
donne lieu
1
0..1
Analyse du domaine (10/21)
6. Tester les chemins daccs
Penser aux questions souhaites
Vrifier quil ny a aucune question utile sans rponse
Maude Manouvrier - Univ. Paris Dauphine modle de classe repris de [Roq05] 23
Analyse du domaine (10/21)
6. Tester les chemins daccs
Penser aux questions souhaites
Vrifier quil ny a aucune question utile sans rponse
Maude Manouvrier - Univ. Paris Dauphine modle de classe repris de [Roq05] 23
Rponse
date : Date
1
-demandeur
1
Session
(from Catalogue)
est inscrit
0..*
0..*
0..*
1
0..1
Motif : String
Dsaccord
donne
lieu
Employ
nom : String
prnom : String
service : String
fonction : String
email : Email
Inscription
date : Date
e
s
t

s
a
t
i
s
f
a
i
t
e

p
a
r
0..1
Demande de Formation
dateEmission : Date
dateValidit : Date
ElementCatalogue
(from Catalogue)
Accord
c
o
n
c
e
r
n
e
0
.
.
*
1
-participant
Analyse du domaine (11/21)
7. Itrer sur le modle de classes [BR05]
Pas dexactitude du modle la premire passe
Ncessit de raliser des itrations continuelles
Possibilit davoir diffrentes parties du modle
diffrents stades dachvement
Possibilit de revenir un stade antrieur pour
corriger une anomalie dtecte
Raffinements probables aprs lachvement des
modles dtats et dinteractions
Maude Manouvrier - Univ. Paris Dauphine 24
Analyse du domaine (12/21)
7. Itrer sur le modle de classes [BR05] (suite)
Recherche des classes manquantes
Scission de classe ayant
- Des attributs et des oprations disparates
- Plusieurs rles
Ajout de classe
- Cration de super-classe en cas dassociations de mme but et de mme
nom
- Transformation dune association en classe en cas dassociation ayant un
rle faonnant substantiellement la smantique dune classe
Recherche dassociations manquantes en cas de chemins daccs manquants
pour rpondre aux requtes
Recherche des lments superflus
Classes avec peu dattributs, doprations ou dassociations
Associations redondantes
Ajustement des attributs et des associations
Dplacement dune association en cas de noms dextrmits dassociation
avec un sens trop large ou trop troit
Transformation dune association en association qualifie en cas de ncessit
daccs un objet par lintermdiaire de la valeur dun attribut
Maude Manouvrier - Univ. Paris Dauphine 25
Analyse du domaine (13/21)
8. lever le niveau dabstraction
Aprs une prise en compte de lnonc au pied de la lettre ,
ncessit dlever le niveau dabstraction pour :
Augmenter la souplesse du modle
Rduire le nombre de classes
Amlioration du modle par lutilisation de patterns danalyse
9. Grouper les classes en packages
Regroupement des lments (classes, associations, gnralisation
et autres packages de niveau infrieur) ayant un thme commun ou
fortement coupls afin de plus facilement tracer et visualiser le
modle
Maude Manouvrier - Univ. Paris Dauphine packages repris de [Roq05] 26
Analyse du domaine (13/21)
8. lever le niveau dabstraction
Aprs une prise en compte de lnonc au pied de la lettre ,
ncessit dlever le niveau dabstraction pour :
Augmenter la souplesse du modle
Rduire le nombre de classes
Amlioration du modle par lutilisation de patterns danalyse
9. Grouper les classes en packages
Regroupement des lments (classes, associations, gnralisation
et autres packages de niveau infrieur) ayant un thme commun ou
fortement coupls afin de plus facilement tracer et visualiser le
modle
Maude Manouvrier - Univ. Paris Dauphine packages repris de [Roq05] 26
Comptabilit
Service comptable ;
Facture
Demandes de formation
Demande de formation ;
Employ ; Inscription ; Rponse ;
Accord; Dsaccord
Catalogue de formations
Catalogue ; Organisme de
formation ; Formation; Session
Entits
mtier
Analyse du domaine (14/21)
Modle dtats du domaine
Description du cycle de vie des objets de
certaines classes
tapes suivre [BR05] :
1. Identifier les classes du domaine ayant des tats
2. Trouver les tats
3. Trouver les vnements
4. Construire les diagrammes dtats
5. valuer les diagrammes dtats
Maude Manouvrier - Univ. Paris Dauphine 27
Analyse du domaine (15/21)
1. Identifier les classes ayant des tats
Recherche des classes ayant un cycle de vie distinct
(classes caractrises par une progression ou reprsentant
un comportement cyclique)
2. Trouver les tats
Recherche des tats partir des diffrences qualitatives
dans le comportement, les attributs ou les associations des
classes dynamiques
Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05] 28
Analyse du domaine (15/21)
1. Identifier les classes ayant des tats
Recherche des classes ayant un cycle de vie distinct
(classes caractrises par une progression ou reprsentant
un comportement cyclique)
2. Trouver les tats
Recherche des tats partir des diffrences qualitatives
dans le comportement, les attributs ou les associations des
classes dynamiques
Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05] 28
Demande de formation
Analyse du domaine (15/21)
1. Identifier les classes ayant des tats
Recherche des classes ayant un cycle de vie distinct
(classes caractrises par une progression ou reprsentant
un comportement cyclique)
2. Trouver les tats
Recherche des tats partir des diffrences qualitatives
dans le comportement, les attributs ou les associations des
classes dynamiques
Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05] 28
Demande de formation
Cration EnAttenteInscription EnAttenteDeRponse
Satisfaite Ralise
Analyse du domaine (16/21)
3. Trouver les vnements
Recherche des vnements dclenchant les transitions
entre les tats
Capturer les informations vhicules par un vnement
sous la forme dune liste de paramtres

Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05] 29
Analyse du domaine (16/21)
3. Trouver les vnements
Recherche des vnements dclenchant les transitions
entre les tats
Capturer les informations vhicules par un vnement
sous la forme dune liste de paramtres

Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05] 29
valider / envoyer email au responsable
refuser / envoyer refus lemploy
accepter / envoyer accord lemploy
inscrire / envoyer confirmation inscription lemploy
Analyse du domaine (17/21)
4. Construire des diagrammes dtats (exemple)

Maude Manouvrier - Univ. Paris Dauphine -
diagramme repris de [Roq05]
30
Analyse du domaine (17/21)
4. Construire des diagrammes dtats (exemple)

Maude Manouvrier - Univ. Paris Dauphine -
diagramme repris de [Roq05]
30
Cration
EnAttenteInscription
EnAttenteDeRponse
Satisfaite
valider / envoyer
email au responsable
refuser / envoyer
refus lemploy
accepter / envoyer email daccord lemploy
avec contenu formation et planning des sessions
inscrire / envoyer confirmation
inscription lemploy
Refuse
Ralise
finSession
Version 1 :
Diagramme
dtats initial
Analyse du domaine (18/21)
4. Construire des diagrammes dtats (exemple)

Maude Manouvrier - Univ. Paris Dauphine-
diagramme repris de [Roq05]
31
RechercheSession
do / envoyer contenu formation et planning session lemploy
Cration
EnAttenteInscription
EnAttenteDeReponse
Satisfaite
valider / envoyer
email au responsable
refuser / envoyer
refus lemploy
accepter / envoyer email daccord lemploy
choixDeSession (IdSession) / envoyer
inscription lorganisme de formation
inscrire / envoyer confirmation
inscription lemploy
Refuse
finSession
Ralise
Version 2
Analyse du domaine (19/21)
5. valuer les diagrammes dtats [BR05]
Examiner chaque modle dtats et vrifier la
connexion de tous les tats
Prter une attention particulire aux chemins daccs
(y-a-t-il un chemin conduisant de ltat initial un tat
final ?)
Vrifier que la prsence des variations attendues
En cas de classe cyclique, vrifier la prsence de la
boucle principale
Ajouter les tats manquants (identifis par les chemins
manquants)
Maude Manouvrier - Univ. Paris Dauphine 32
Analyse du domaine (20/21)
5. valuer les diagrammes dtats (exemple)

Maude Manouvrier - Univ. Paris Dauphine diagramme repris de [Roq05] 33
RechercheSession
do / envoyer contenu formation et planning session lemploy
Cration
EnAttenteInscription
EnAttenteDeReponse
Satisfaite
valider / envoyer
email au responsable
refuser / envoyer
refus lemploy
accepter / envoyer email daccord lemploy
choixDeSession (IdSession) / envoyer
commande lorganisme de formation
inscrire / envoyer confirmation
inscription lemploy
Refuse
finSession
Ralise
Version
Finale
A
n
n
u
l

e
annuler
a
n
n
u
l
e
r
annuler
annuler / envoyer annulation
lorganisme de formation
annulerSession / envoyer
annulation employ
Analyse du domaine (21/21)
Modle dinteractions : rarement intressant pour lanalyse
du domaine
Itration de lanalyse [BR05]
Ncessit de raliser plusieurs itrations pour obtenir un modle
complet
Affinage de lanalyse au fur et mesure de lamlioration de la
comprhension
Vrification du rsultat avec le rdacteur de lnonc du problme
et les experts du domaine
Analyse vs. conception
Utilisation du modle danalyse comme base pour larchitecture, la
conception et limplmentation du systme
Difficult pratique pour viter une contamination du modle
danalyse par limplmentation
Maude Manouvrier - Univ. Paris Dauphine 34
Analyse de lapplication (1/28)
Objectif : ajouter les artefacts majeurs au modle du
domaine
Concentration de lattention sur les dtails de lapplication
et prise en compte des interactions
tapes suivre pour le modle dinteractions [BR05] :
1. Dterminer la frontire du systme
2. Trouver les acteurs
3. Trouver les cas dutilisation
4. Trouver les vnements initiaux et finaux
5. Rdiger les scnarios standards
6. Ajouter des scnarios de variations et dexceptions
7. Trouver les vnements externes
8. Prparer des diagrammes dactivits pour les cas
dutilisation complexes
9. Organiser les acteurs et les cas dutilisation
10. Vrifier avec le modle de classes du domaine
Maude Manouvrier - Univ. Paris Dauphine 35
Analyse de lapplication (2/28)
1. Dterminer la frontire du systme
Ncessit de bien connatre le primtre prcis de
lapplication pour bien spcifier ses fonctionnalits
Durant lanalyse : dtermination de la finalit du
systme et de son aspect pour les utilisateurs
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 36
Analyse de lapplication (2/28)
1. Dterminer la frontire du systme
Ncessit de bien connatre le primtre prcis de
lapplication pour bien spcifier ses fonctionnalits
Durant lanalyse : dtermination de la finalit du
systme et de son aspect pour les utilisateurs
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 36
Le systme dvelopper doit grer les demandes de formation des
employs dune entreprise. Les formations agres sont disponibles
dans un ou plusieurs catalogues. La gestion et la mise jour des
catalogues ne fait pas partie des fonctionnalits du systme. De mme,
le suivi de la prsence et du bon droulement des sessions ne font pas
partie du systme. En revanche, le systme doit permettre
dautomatiser les actions suivantes : Rdiger une demande de
formation; valuer une demande de formation; Chercher un stage;
Inscrire un employ un stage; Commander et payer un stage.
Analyse de lapplication (3/28)
2. Trouver les acteurs
Identification des objets externes agissant avec le
systme
Recherche darchtypes de comportement (et non pas
dindividus)
Correspondance possible entre un acteur et plusieurs
objets extrieurs ou un objet extrieur et plusieurs
acteur (un acteur par facette)
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 37
Analyse de lapplication (3/28)
2. Trouver les acteurs
Identification des objets externes agissant avec le
systme
Recherche darchtypes de comportement (et non pas
dindividus)
Correspondance possible entre un acteur et plusieurs
objets extrieurs ou un objet extrieur et plusieurs
acteur (un acteur par facette)
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 37
Employ Responsable de
formation
Organisme de
formation
Service
comptable
Analyse de lapplication (4/28)
3. Trouver les cas dutilisation
Dresser, pour chaque acteur, la liste de ses faons
fondamentalement diffrentes dutiliser le systme
Reprsenter un cas dutilisation pour chaque type de service
fourni par le systme
Conserver un niveau de dtails similaire pour tous les cas
dutilisation
Tracer un diagramme de cas dutilisation prliminaire
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 38
Analyse de lapplication (4/28)
3. Trouver les cas dutilisation
Dresser, pour chaque acteur, la liste de ses faons
fondamentalement diffrentes dutiliser le systme
Reprsenter un cas dutilisation pour chaque type de service
fourni par le systme
Conserver un niveau de dtails similaire pour tous les cas
dutilisation
Tracer un diagramme de cas dutilisation prliminaire
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 38
Employ
Responsable de
formation
Demander une formation
Grer ses demandes
Traiter les demandes
SGDF
Analyse de lapplication (5/28)
4. Trouver les vnements initiaux et finaux
Partition des fonctionnalits du systme en units discrtes
(les cas dutilisation) indiquant les acteurs impliqus mais
pas de reprsentation claire du comportement
Comprhension du comportement partir de la
comprhension des squences dexcution de chaque cas
dutilisation
Recherche des vnements initiaux et finaux de chaque cas
dutilisation
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 39
Analyse de lapplication (5/28)
4. Trouver les vnements initiaux et finaux
Partition des fonctionnalits du systme en units discrtes
(les cas dutilisation) indiquant les acteurs impliqus mais
pas de reprsentation claire du comportement
Comprhension du comportement partir de la
comprhension des squences dexcution de chaque cas
dutilisation
Recherche des vnements initiaux et finaux de chaque cas
dutilisation
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 39
Demander une formation :
vnement initial : Saisie dune demande par un employ
vnement final : Enregistrement de la demande
Grer ses demandes :
vnement initial : Ouverture dune demande existante par lemploy
vnement final : (1) Annulation de la demande ou (2) Enregistrement
des modifications
Analyse de lapplication (6/28)
5. Prparer des scnarios standards
Prparation dun ou plusieurs dialogues types pour avoir
une ide du comportement attendu du systme
Illustration par des scnarios des interactions importantes,
des formats daffichage externe et des changes
dinformations
Ne pas rdiger le cas gnral directement, mais penser en
terme dexemples dinteractions
Commencer par rdiger les scnarios des cas normaux
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 40
Analyse de lapplication (6/28)
5. Prparer des scnarios standards
Prparation dun ou plusieurs dialogues types pour avoir
une ide du comportement attendu du systme
Illustration par des scnarios des interactions importantes,
des formats daffichage externe et des changes
dinformations
Ne pas rdiger le cas gnral directement, mais penser en
terme dexemples dinteractions
Commencer par rdiger les scnarios des cas normaux
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 40
Albert Gamotte (employ) se connecte au systme. Il va dans le menu
Crer une demande . La date du jour est automatiquement affecte la
demande. Albert Gamotte choisit parmi les thmes disponibles le thme
Formation UML 2 . Il enregistre sa demande et se dconnecte.
Exemple de scnario pour le cas dutilisation Demander une formation
Analyse de lapplication (7/28)
6. Ajouter des scnarios de variations et dexceptions
Considrer les cas particuliers tels que les entres omises,
les valeurs minimales et maximales, les valeurs dupliques
Prendre en compte les cas derreur (ex. valeurs invalides,
absence de rponse)
Envisager les interactions pouvant se superposer aux
interactions de base
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05] 41
Mot de passe de lemploy erron
Serveur indisponible la connexion
Connexion la base de donnes coupe
Panne du serveur au moment de lenregistrement de la demande
Analyse de lapplication (8/28)
7. Trouver les vnements externes
Examiner les scnarios pour identifier les vnements
externes :
Entres
Dcisions
Interruption
Interactions provenant ou diriges vers des
utilisateurs ou des quipements externes
Regrouper les vnements ayant le mme effet sous un
mme nom (mme en cas de valeurs de paramtres
diffrentes)
Prparer un diagramme de squences pour chaque
scnario
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 42
Analyse de lapplication (9/28)
7. Trouver les vnements externes (exemple)
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05] 43
Employ
Responsable de
formation
system
: SGDF
{employ authentifi}
consulterCatalogue()
thmes
choisirThme()
formations du thme
sessions disponibles
choisirFormation()
infos sessions
choisirSession()
validerDemande()
enregistrerDemande
nouvelleDemande()
Analyse de lapplication (9/28)
7. Trouver les vnements externes (exemple)
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05] 43
Employ
Responsable de
formation
system
: SGDF
{employ authentifi}
consulterCatalogue()
thmes
choisirThme()
formations du thme
sessions disponibles
choisirFormation()
infos sessions
choisirSession()
validerDemande()
enregistrerDemande
nouvelleDemande()
Boucle pour
demandes multiples
Analyse de lapplication (9/28)
7. Trouver les vnements externes (exemple)
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05] 43
Employ
Responsable de
formation
system
: SGDF
{employ authentifi}
consulterCatalogue()
thmes
choisirThme()
formations du thme
sessions disponibles
choisirFormation()
infos sessions
choisirSession()
validerDemande()
enregistrerDemande
nouvelleDemande()
Boucle pour
demandes multiples
Opt.
Analyse de lapplication (9/28)
7. Trouver les vnements externes (exemple)
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05] 43
Employ
Responsable de
formation
system
: SGDF
{employ authentifi}
consulterCatalogue()
thmes
choisirThme()
formations du thme
sessions disponibles
choisirFormation()
infos sessions
choisirSession()
validerDemande()
enregistrerDemande
nouvelleDemande()
Boucle pour
demandes multiples
Opt.
Opt.
Analyse de lapplication (10/28)
8. Prparer des diagrammes dactivit pour les
cas dutilisation complexe [BR05]
Utiliser des diagrammes dactivit pour documenter la
logique mtier pendant lanalyse
Ne pas utiliser les diagrammes dactivit comme une
excuse pour commencer limplmentation
Maude Manouvrier - Univ. Paris Dauphine 44
Analyse de lapplication (11/28)
8. Prparer des diagrammes dactivit pour les cas
dutilisation complexe (exemple)
45
Rdiger demande
Analyser demande
Chercher Stage
Slectionner sessions
Commander stage
Inscrire stagiaire
Suivre formation
mettre facture
Contrler facture
Payer facture
[demande
refuse]
[demande
accepte]
Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05]
Analyse de lapplication (11/28)
8. Prparer des diagrammes dactivit pour les cas
dutilisation complexe (exemple)
45
Rdiger demande
Analyser demande
Chercher Stage
Slectionner sessions
Commander stage
Inscrire stagiaire
Suivre formation
mettre facture
Contrler facture
Payer facture
[demande
refuse]
[demande
accepte]
Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05]
:Employ
:ResponsableDeFormation :OrganismeFormation
:ServiceCompta
Analyse de lapplication (12/28)
9. Organiser les acteurs et les cas dutilisation
Pour les systmes de grande taille ou les systmes
complexes, organiser les cas dutilisation laide des
relations include et extend
Possibilit dorganiser les acteurs par des
gnralisations
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] et exemple repris de [Ro05] 46
Employ
Responsable de
formation
Demander une formation
Grer ses demandes
Traiter les demandes
Sidentifier
Consulter le catalogue
include
include
include
extend
SGDF
Analyse de lapplication (13/28)
10. Vrifier avec le modle de classes du domaine
Vrifier la cohrence entre le modle du domaine et
celui de lapplication
Examiner les scnarios pour sassurer que le modle du
domaine possde toutes les donnes ncessaires
Vrifier que le modle du domaine couvre tous les
paramtres dvnements
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 47
Analyse de lapplication (14/28)
10. Vrifier avec le modle de classes du domaine
(exemple)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 48
Rdiger demande
Analyser demande
Chercher Stage
Slectionner sessions
Commander stage
Inscrire stagiaire
mettre facture
Contrler facture
Payer facture
[demande
refuse]
[demande
accepte]
Suivre formation
Analyse de lapplication (14/28)
10. Vrifier avec le modle de classes du domaine
(exemple)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 48
Rdiger demande
Analyser demande
Chercher Stage
Slectionner sessions
Commander stage
Inscrire stagiaire
mettre facture
Contrler facture
Payer facture
[demande
refuse]
[demande
accepte]
Suivre formation
:DemandeDeFormation
[EnAttenteDeRponse]
:DemandeDeFormation
[EnAttenteInscription]
:DemandeDeFormation
[Satisfaite]
:Commande
:Facture
:DemandeDeFormation
[Ralise]
:Evaluation
:Paiement
Diagramme dactivit du
processus de formation
avec flux dobjets
:DemandeDeFormation
[Refuse]
:DemandeDeFormation
[Cration]
Analyse de lapplication (15/28)
Construire un modle de classes dapplication [BR05] :
1. Spcifier les interfaces utilisateur
2. Dfinir les classes frontires
3. Dterminer les contrleurs
4. Vrifier avec le modle dinteractions
Maude Manouvrier - Univ. Paris Dauphine 49
Analyse de lapplication (16/28)
1. Spcifier les interfaces utilisateurs (IHM)
IHM = objet ou groupe dobjets fournissant aux
utilisateurs dun systme un moyen cohrent daccs
aux objets du domaine, aux commandes et aux options
de lapplication [BR05]
Pendant lanalyse, mettre laccent sur le flux
dinformations et le contrle et non sur le format de
prsentation
Pendant lanalyse, considrer linterface de manire
grossire et ne pas se proccuper des diffrentes
manires dentrer les donnes
Esquisser nanmoins un croquis de linterface pour
aider visualiser le fonctionnement de lapplication et
sassurer de ne rien avoir oubli dimportant
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 50
Analyse de lapplication (17/28)
2. Dfinir les classes frontires
Classe frontire (boundary) : classe modlisant les interactions
entre le systme et ses acteurs [Roq05]
Gestion, via une classe frontire, du format dune ou plusieurs
sources externes et conversion des informations pour les
transmettre au systme et inversement [BR05]
Utilit de dfinir des classes frontires pour isoler la partie interne
du systme du monde extrieur [BR05]
Maude Manouvrier - Univ. Paris Dauphine 51
Analyse de lapplication (17/28)
2. Dfinir les classes frontires
Classe frontire (boundary) : classe modlisant les interactions
entre le systme et ses acteurs [Roq05]
Gestion, via une classe frontire, du format dune ou plusieurs
sources externes et conversion des informations pour les
transmettre au systme et inversement [BR05]
Utilit de dfinir des classes frontires pour isoler la partie interne
du systme du monde extrieur [BR05]
Maude Manouvrier - Univ. Paris Dauphine 51
boundary
cranGeneralEmploy
boundary
cranDemandeFormation
Analyse de lapplication (17/28)
2. Dfinir les classes frontires
Classe frontire (boundary) : classe modlisant les interactions
entre le systme et ses acteurs [Roq05]
Gestion, via une classe frontire, du format dune ou plusieurs
sources externes et conversion des informations pour les
transmettre au systme et inversement [BR05]
Utilit de dfinir des classes frontires pour isoler la partie interne
du systme du monde extrieur [BR05]
Maude Manouvrier - Univ. Paris Dauphine 51
boundary
cranGeneralEmploy
boundary
cranDemandeFormation
Apparition uniquement des souches des classes frontires dans le
modle dapplication, llaboration de ces classes ntant pas
encore claire ce stade du processus de dveloppement [BR05]
!
Analyse de lapplication (18/28)
3. Dterminer les contrleurs
Contrleur : objet actif grant le contrle au sein
dune application [BR05]
Rception de signaux par le contrleur provenant du
monde extrieur ou des objets internes au systme
Raction ces signaux
Invocation des oprations sur les objets du systme
Envoi de signaux au monde extrieur
Un ou plusieurs contrleurs par application pour
squencer le contrle [BR05]
Liaison en gnral entre un contrleur et un cas
dutilisation particulier [Roq05]
Maude Manouvrier - Univ. Paris Dauphine 52
control
ContrleurDemandeFormation
Analyse de lapplication (19/28)
3. Dterminer les contrleurs (suite)
Maude Manouvrier - Univ. Paris Dauphine adapt de [Roq05] 53
Contrleur
DemandeDeFormation
Employ

Objets mtier
IHM
clic
clicOn()
crerFormation()
vnement de bas niveau
vnement de
niveau applicatif
Analyse de lapplication (20/28)
4. Vrifier avec le modle dinteractions
Construire le modle de classes de lapplication
en revoyant les cas dutilisation et en
rflchissant leur manire de fonctionner
A la fin de lanalyse, possibilit de de simuler
un cas dutilisation avec les classes de deux
modles (domaine et application)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 54
Analyse de lapplication (21/28)
4. Vrifier avec le modle dinteractions (exemple)
Maude Manouvrier - Univ. Paris Dauphine repris de [Roq05] 55
Employ
boundary
: cranGeneralEmploy
initialiser()
activer()
boundary
: cranDemandeDeFormation
control
: ContrleurDemandeFormation
: Demande
DeFormation
Crer
Demande ()
initialiserDemande(emp)
crer(emp)
Analyse de lapplication (22/28)
Modle dtats de lapplication [BR05] :
1. Dterminer les classes dapplication ayant des tats
2. Identifier les vnements
3. Construire des diagrammes dtats
4. Comparer aux autres diagrammes dtats
5. Comparer au modle de classes
6. Comparer au modle dinteractions
Maude Manouvrier - Univ. Paris Dauphine 56
Analyse de lapplication (23/28)
1. Dterminer les classes dapplication ayant des tats
Bons candidats pour les diagrammes dtats : les classes de
linterface et les classes contrleurs
2. Trouver les vnements
tudier les scnarios pour en extraire les vnements
Maude Manouvrier - Univ. Paris Dauphine adapt de [BR05] 57
Analyse de lapplication (23/28)
1. Dterminer les classes dapplication ayant des tats
Bons candidats pour les diagrammes dtats : les classes de
linterface et les classes contrleurs
2. Trouver les vnements
tudier les scnarios pour en extraire les vnements
Maude Manouvrier - Univ. Paris Dauphine adapt de [BR05] 57
Contraste entre llaboration du modle dtats du
domaine et celui de lapplication [BR05] :
Pour le modle du domaine : recherche des tats puis des vnements
Concentration du modle du domaine sur les donnes
Regroupements de donnes significatifs qui forment des tats sujets des
vnements
Pour le modle de lapplication : sens inverse
Concentration du modle dapplication sur les comportements
laboration de cas dutilisation relevant des vnements
!
Analyse de lapplication (24/28)
3. Construire des diagrammes dtats [BR05]
Construire un diagramme dtats pour chaque classe
dapplication ayant un comportement temporel
Envisager un diagramme de squence pour chaque
classe ayant un comportement temporel
Diagramme dtats initial = squences dvnements
et dtats
Correspondance entre chaque scnario ou
diagramme de squences et un chemin dans le
diagramme dtats
Diagramme dtats complet Prise en compte de
tous les scnarios et traitement de tous les
vnements pouvant affecter un tat
Maude Manouvrier - Univ. Paris Dauphine 58
Analyse de lapplication (25/28)
3. Construire des diagrammes dtats (exemple)
Maude Manouvrier - Univ. Paris Dauphine 59
Inexploit
EnInitialisationDeDemande
initialiserDemande(emp) annulerDemande
crerDemande(emp)
valider(dateDuJour)
Diagramme
dtats initial
pour le
contrleur de
demandes de
formation
( complter)
annulerDemande
/ annuler les
variables
utilises
EnregistrementDeDemande
do / envoyer mail au responsable
et afficher message lemploy
dconnexionEmploy
EnCrationDeDemande
Analyse de lapplication (26/28)
4. Vrifier avec les autres diagrammes dtats
Vrifier la compltude et la cohrence de chaque diagramme dtats et
vrifier la cohrence entre les vnements de diffrents diagrammes
5. Vrifier avec le modle de classes
Vrifier la cohrence avec le modle de classes du domaine et celui de
lapplication
6. Vrifier avec le modle dinteractions
Comparer le modle dtats avec les scnarios du modle
dinteractions
Simuler chaque chaque squence manuellement et vrifier le reflet
correct du comportement sur le diagramme dtats
En cas de dcouverte derreur, modifier le diagramme dtats ou les
scnarios
Identifier les chemins lgitimes dans le modle dtats (scnarios
supplmentaires) et vrifier quils ont un sens
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 60
Analyse de lapplication (27/28)
Ajouter des oprations [BR05] :
1. Oprations issues du modle de classes
Inutile de reprsenter les lectures ou critures des attributs
ou de liens dassociations = oprations implicites
2. Oprations issues des cas dutilisation
Correspondance entre les oprations et les activits
3. Oprations aide-mmoire
Issues du comportement des classes dans le monde rel
Indpendantes dune application particulire mais avec
un intrt intrinsque
largissement de la dfinition dune classe au-del des
besoins stricts du problme immdiat
Maude Manouvrier - Univ. Paris Dauphine 61
Analyse de lapplication (28/28)
Maude Manouvrier - Univ. Paris Dauphine 62
DemandeDeFormation
dateEmission: Date
dateValidit: Date
lier(element:ElementCatalogue)
valider(dateValidit:Date)
refuser()
accepter()
annuler()
emettre(dateEmission:Date)
emettreRefus()
emettreAccord()
emettreCommande()

4. Simplifier les oprations [BR05]


Rechercher les oprations similaires et le variations de forme dune
mme opration
largir la dfinition dune opration pour englober ses variations et les
cas particuliers
Utiliser lhritage pour rduire le nombre doprations
Analyse de lapplication (28/28)
Maude Manouvrier - Univ. Paris Dauphine 62
DemandeDeFormation
dateEmission: Date
dateValidit: Date
lier(element:ElementCatalogue)
valider(dateValidit:Date)
refuser()
accepter()
annuler()
emettre(dateEmission:Date)
emettreRefus()
emettreAccord()
emettreCommande()

4. Simplifier les oprations [BR05]


Rechercher les oprations similaires et le variations de forme dune
mme opration
largir la dfinition dune opration pour englober ses variations et les
cas particuliers
Utiliser lhritage pour rduire le nombre doprations
Oprations de
mise jour
dattributs ou
de liens ne
devant pas
apparatre lors
de lanalyse
Analyse : rsum (1/2)
Objectif de lanalyse : comprendre un problme afin
de pouvoir dfinir une conception correcte du
systme
Capture des proprits essentielles du problme sans
introduire dartefacts dimplmentation
2 phases :
Analyse du domaine :
Capture de la connaissance gnrale dune application
Traduction en modle de classes, parfois dtats, rarement
dinteractions
Analyse de lapplication :
Concentration sur les artefacts principaux, importants et visibles par
les utilisateurs et approuvs par les utilisateurs
Domination du modle dinteractions, mais importance galement
des modles de classes et dtats
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 63
Analyse : rsum (2/2)
Importance de labstraction tout au long de lanalyse [BR05] :
Rflchir de manire large en construisant les modles
Ne pas lier lapplication des pratiques mtier arbitraires et pouvant
changer dans le temps
Essayer de trouver une souplesse anticipant les futures volutions et
permettant de sy adapter
Maude Manouvrier - Univ. Paris Dauphine schma repris de [Roq05] 64
Employ
:Systme
crerDemande()
Employ
:???
crerDemande()
:???
Systme vu
comme une
bote noire
Objets logiciels
internes au systme
Conception du systme (1/11)
Analyse : le quoi, indpendamment du
comment
Conception (design) : le comment, avec
des prises de dcisions, dans un premier
temps de haut niveau, puis des niveaux de
plus en plus dtaills
Conception du systme :
Premire tape de la conception
Mise au point dune stratgie de haut niveau :
larchitecture du systme
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 65
Conception du systme (2/11)
tapes a suivre [BR05] :
1. Estimer les performances du systme
2. Mettre au point un plan de rutilisation
3. Organiser le systme en sous-systmes
4. Identifier les questions de concurrence inhrentes au
problme
5. Allouer les sous-systmes aux quipements matriels
6. Grer le stockage des donnes
7. Grer les ressources globales
8. Choisir une stratgie de contrle du logiciel
9. Traiter les cas limites
10. Arbitrer les priorits
11. Slectionner un style architectural
Maude Manouvrier - Univ. Paris Dauphine 66
Conception du systme (3/11)
1. Estimer les performances du systme
Objectif : dterminer la faisabilit du systme
mettre des hypothses simplificatrices
Se contenter dapproximations, destimations et de
suppositions si ncessaires
2. Mettre au point un plan de rutilisation
Deux aspects de rutilisation :
Utilisation dlments existants
Cration de nouveaux lments
Ncessit davoir de lexprience pour concevoir des
lments rutilisables
Exemples dlments rutilisables : bibliothque,
framework et pattern
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 67
Conception du systme (4/11)
Bibliothque [BR05] : collection de
classes utiles dans de nombreux contexte
Framework [BR05] : squelette de
programme devant tre toff pour
construire une application complte
Pattern [Roq05] : Solution de
modlisation rcurrente et documente,
applicable dans un contexte donn
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 68
Conception du systme (5/11)
3. Dcomposer un systme en sous-systmes
Sous-systme :
Dfinition cohrente de traiter une partie du problme
Ensemble de classes, dassociations, doprations,
dvnements, de contraintes, relis et ayant des interfaces bien
dfinies (et restreinte) avec dautres sous-systmes
Dfini en termes des services quil fournit
Service : ensemble de fonctionnalits apparentes
servant le mme but
Interface :
Spcification de la forme des interactions et des flux
dinformations traversant la frontire du sous-systme
Sans lien avec limplmentation interne du sous-systme
Conception dun sous-systme indpendante et sans
affectation sur les autres sous-systmes
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 69
Conception du systme (6/11)
3. Dcomposer un systme en sous-systmes
(suite)
Dcomposition en couches :
Construction dune couche en terme de celles qui se
trouvent en-dessous et fournissant une base d
implmentation pour celles se situant au-dessus
Dcomposition en partitions :
Division dun systme en sous-systmes indpendants
et faiblement coupls, chacun fournissant un type de
service
Combinaison de couches et de partitions :
Ncessit pour la plupart des grands systmes
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 70
Conception du systme (7/11)
3. Dcomposer un systme en sous-systmes (exemple)
Maude Manouvrier - Univ. Paris Dauphine repris de [Roq05] 71
layer
Prsentation
IHM
Resp. Formation
IHM
Employ
layer
Logique applicative
layer
Logique mtier
Comptabilit
Demandes
Catalogue
Exemple darchitecture
en couches pour le
systme de gestion de
demandes de formation
Conception du systme (8/11)
4. Identifier la concurrence
Concurrence = deux ou plusieurs activits ou
vnements dont lexcution peut se chevaucher dans le
temps
Identifier la concurrence intrinsque laide du modle
dtats
Dcomposition en sous-systmes de prfrence
indpendants
Thread de contle : chemin dexcution unique dans
un ensemble de diagrammes dtats o un seul objet est
actif la fois
Dfinir les tches concurrentes en groupant des objets
non concurrents dans un mme thread de contle (ou
tche)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 72
Conception du systme (9/11)
5. Allouer des sous-systmes
a) Estimer les exigences en ressources matrielles
b) Arbitrer entre matriel et logiciel
c) Allouer des tches aux processeurs
d) Choisir lorganisation et la forme de connexion des
diffrentes units physiques (topologie des connexions,
units redondantes, communications)
6. Grer le stockage des donnes
Structure de donnes en mmoire, fichiers ou bases de
donnes
5. Grer les ressources globales
Units physiques (ex. processeurs), espaces (ex. espace
disques), noms logiques (ex. noms de fichiers ou de
classes), accs aux donnes partages (ex. bases de
donnes)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 73
Conception du systme (10/11)
8. Choisir une stratgie de contrle du logiciel
Contrle externe : flux dvnements visibles
lextrieur entre les objets du systme
Contrle interne : flux dvnements au sein dun
processus
9. Grer les cas limites
Initialisation
Terminaison
checs
10. Arbitrer les priorits
Arbitrage entre temps et espace, matriel et logiciel,
simplicit et gnralit, efficacit et maintenabilit
Compromis dpendant des buts de lapplication
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 74
Conception du systme (11/11)
11. Slectionner un style architectural
Transformation par lots (batch) : Transformation de donnes
excute en une seule fois sur un ensemble complet de donnes
dentres
Transformation continue : Transformation opre
continuellement sur des donnes dentres variant
Interface interactive : Systme domin par des interactions
externes
Simulation dynamique : Systme simulant lvolution des
objets du monde rel
Systme temps rel : Systme domin par des contraintes de
temps strictes
Gestionnaire de transactions : Systme avec pour rle le
stockage et la mise jour de donnes, et impliquant souvent des
accs concurrents provenant de diffrents emplacement
physiques
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 75
Conception des classes (1/13)
Analyse : dtermination de ce qui devra
tre ralis par limplmentation
Conception du systme : dtermination du
plan dattaque
Conception des classes :
Finalisation de la dfinition des classes et des
associations
Choix des algorithmes des oprations
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 76
Conception des classes (2/13)
Conceptions des classes
Ajout de dtails et prise de dcisions fines
Choix des diffrentes faons dimplmenter les
classes danalyse
Ncessit davoir plusieurs itrations des
niveaux successifs dabstraction
Critres de facilit dimplmentation, de
maintenabilit et dextensibilit
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 77
Conception des classes (3/13)
tapes suivre [BR05] :
1. Combler le foss entre exigences de haut niveau et services de bas
niveau
2. Raliser les cas dutilisation par des oprations
3. Formuler un algorithme pour chaque opration
4. Dcomposer rcursivement jusqu obtenir des oprations de
conception desservant des oprations de bas niveau
5. Remanier le modle pour obtenir une conception plus nette
6. Optimiser les chemins daccs aux donnes
7. Rifier les comportements devant tre manipuls
8. Ajuster la structure des classes pour augmenter lhritage
9. Organiser les classes et associations
Maude Manouvrier - Univ. Paris Dauphine 78
Conception des classes (4/13)
1. Combler le foss entre exigences de haut niveau et
services de bas niveau
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 79
Fonctionnalits dsires
Ressources disponibles
Conception des classes (4/13)
1. Combler le foss entre exigences de haut niveau et
services de bas niveau
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 79
Fonctionnalits dsires
Ressources disponibles
?
Foss
Conception des classes (4/13)
1. Combler le foss entre exigences de haut niveau et
services de bas niveau
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 79
Fonctionnalits dsires
Ressources disponibles
?
Foss
lments intermdiaires
Conception des classes (5/13)
2. Raliser les cas dutilisation
Cas dutilisation = dfinition dun comportement mais
pas de sa ralisation
Conception choix entre les diffrentes options et
prparation de limplmentation
tapes :
a) Dresser la liste des responsabilits dun cas dutilisation
b) Regrouper les responsabilits en groupes cohrents une
seule opration de bas niveau pour raliser les responsabilits
dun mme groupe
c) Affecter les nouvelles oprations de bas niveau aux classes
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 80
Conception des classes (6/13)
3. Concevoir les algorithmes
a) Choisir des algorithmes qui minimisent le cot
dimplmentation des oprations
20% des oprations comprennent 80% du temps
concentrer la recherche dalgorithmes ces oprations
Prise en compte de la complexit des calculs, de la facilit
dimplmentation et de de comprhension, et de la souplesse
b) Slectionner les structures de donnes appropries aux
algorithmes
Utilisation de classes conteneurs (bags, ensembles, tableaux,
listes, files, piles, dictionnaires, arbres etc.)
c) Dterminer de nouvelles classes et oprations internes
en cas de ncessit
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 81
Conception des classes (7/13)
4. Oprer par dcomposition rcursive
Organiser les oprations en couches : invocation des oprations de
bas niveau par les oprations de haut niveau
Oprer de manire descendante : oprations de haut niveau puis
celle de bas niveau
Deux manires doprer :
Par fonctionnalits
Attention ne pas trop dpendre des fonctionnalits de haut niveau
Systme hypersensible aux changements
Par mcanismes
Construction du systme en sappuyant sur des mcanismes de base
(mmorisation des informations, squenage du flux de contrle,
coordination des objets, transformation des donnes )
Systme ne faisant rellement rien dutile
Slectionner une combinaison approprie entre conception
par fonctionnalits et conception par mcanismes
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 82
Conception des classes (8/13)
5. Remanier le modle pour obtenir une
conception plus nette
Refactoring :
processus consistant modifier la structure interne dun
programme pour amliorer sa conception sans en changer les
fonctionnalits externes
Partie essentielle de tout processus de gnie logiciel
Maintien de la viabilit de la conception pour la suite du
dveloppement
Conception initiale incohrences, redondances, et
points faibles en terme defficacit
Ncessit de revoir la conception et de retravailler les
classes et les oprations au final satisfaction de tous
leurs usages et cohrence du point de vue conceptuel
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 83
Conception des classes (9/13)
6. Optimiser la conception
Trouver le juste quilibre entre efficacit et clart
Ne pas prendre en compte lefficacit prmaturment
Bien comprendre la logique de fonctionnement du
systme avant de penser loptimiser
tapes suivre [BR05] :
Fournir des chemins daccs efficaces
Par ajout dassociations redondantes
Rorganiser les calculs pour amliorer lefficacit
Sauvegarder des calculs intermdiaires pour viter
de refaire des calculs
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 84
Conception des classes (10/13)
6. Optimiser la conception (exemple)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 85
Rponse
date : Date
1
-demandeur
1
Session
(from Catalogue)
est inscrit
0..*
0..*
0..*
1
0..1
Motif : String
Dsaccord
donne
lieu
Employ
nom : String
prnom : String
service : String
fonction : String
email : Email
Inscription
date : Date
e
s
t

s
a
t
i
s
f
a
i
t
e

p
a
r
0..1
Demande de Formation
dateEmission : Date
dateValidit : Date
ElementCatalogue
(from Catalogue)
Accord
c
o
n
c
e
r
n
e
0
.
.
*
1
-participant
Conception des classes (10/13)
6. Optimiser la conception (exemple)
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 85
Rponse
date : Date
1
-demandeur
1
Session
(from Catalogue)
est inscrit
0..*
0..*
0..*
1
0..1
Motif : String
Dsaccord
donne
lieu
Employ
nom : String
prnom : String
service : String
fonction : String
email : Email
Inscription
date : Date
e
s
t

s
a
t
i
s
f
a
i
t
e

p
a
r
0..1
Demande de Formation
dateEmission : Date
dateValidit : Date
ElementCatalogue
(from Catalogue)
Accord
c
o
n
c
e
r
n
e
0
.
.
*
1
-participant
/ aObtenu
1
0..*
/nAPasObtenu
1
0
.
.
*
Conception des classes (11/13)
7. Rifier les comportements
Rification = promouvoir au rang dobjet quelque
chose ntant pas un objet
Rification dun comportement encodage du
comportement dans un objet et dcodage lors de son
excution
Existence de patterns comportementaux rifiant les
comportements
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 86
Conception des classes (12/13)
8. Ajuster lhritage
tapes suivre [BR05] :
Rorganiser les classes et les oprations pour
accrotre lhritage
Extraire les comportements communs plusieurs
groupes de classes
Cration de super-classes abstraites
Employer la dlgation pour partager les
comportements en cas dimpossibilit dutiliser
lhritage du point de vue smantique
Dlgation = Mcanisme dimplmentation o un objet,
disposant dune opration, y rpond en la transmettant un
autre objet pour quil lexcute
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 87
Conception des classes (13/13)
9. Organiser la conception des classes
tapes suivre [BR05] :
Masquer linformation interne de la vue externe
Sparer soigneusement les spcifications externes de limplmentation
interne
Limiter la porte de la navigation dans le modle de classes
Ne pas accder aux attributs trangers
Dfinir des interfaces haut niveau dabstraction
Cacher les objets externes
viter les appels en cascade de mthodes
Maintenir la cohrence des entits
Sparer la stratgie de limplmentation
Mthode de stratgie = instruction dE/S, structures conditionnelles, et
accs aux donnes
Mthode dimplmentation = encodage de lalgorithme sans prise de
dcision, ni dmission dhypothses, ni de traitement par dfaut
Raffiner les packages
Dfinir des packages pour les diter et les compiler plus facilement et
pour la commodit de lquipe de dveloppement
Dfinir des packages avec des interfaces minimales et bien dfinies
Dfinir des packages cohrents et les organiser autour dun thme
commun
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 88
Rsum du processus (1/3)
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 89
Rsum du processus (1/3)
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 89
Spcifications
initiales du
systme
mettre des demandes
Utilisateurs
Dveloppeurs
Managers
Experts mtier
nonc du
problme
Rsum du processus (1/3)
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 89
Spcifications
initiales du
systme
mettre des demandes
Utilisateurs
Dveloppeurs
Managers
Experts mtier
nonc du
problme
Construire des modles
Analyse :
Analyse du domaine
Analyse de lapplication
Entretiens utilisateurs
Exprience
Systmes apparents
Modle de classes
Modle dtats
Modle dinteractions
Rsum du processus (1/3)
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 89
Spcifications
initiales du
systme
mettre des demandes
Utilisateurs
Dveloppeurs
Managers
Experts mtier
nonc du
problme
Construire des modles
Analyse :
Analyse du domaine
Analyse de lapplication
Entretiens utilisateurs
Exprience
Systmes apparents
Modle de classes
Modle dtats
Modle dinteractions
Dtailler les modles
Conception :
Conception du systme
Conception des classes
Architecture
Cas dutilisation
Algorithmes
Optimisation
Rsum du processus (1/3)
Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05] 89
Spcifications
initiales du
systme
mettre des demandes
Utilisateurs
Dveloppeurs
Managers
Experts mtier
nonc du
problme
Construire des modles
Analyse :
Analyse du domaine
Analyse de lapplication
Entretiens utilisateurs
Exprience
Systmes apparents
Modle de classes
Modle dtats
Modle dinteractions
Dtailler les modles
Conception :
Conception du systme
Conception des classes
Architecture
Cas dutilisation
Algorithmes
Optimisation
!
Il sagit dun processus itratif
Rsum du processus (2/3)
Spcifications initiales : gense de lapplication
Entre : ide brute dune nouvelle application
Sortie : nonc du problme = point de dpart dune
analyse approfondie
Analyse : construction de modles pour bien comprendre
les exigences en termes de ce qui doit tre ralis et non de
comment cela doit tre ralis
Entre : nonc du problme
Sortie : modles de classes, dtats et dinteractions
2 stades :
Analyse du domaine : pour capturer les
connaissances gnrales dune application
Analyse de lapplication : pour capturer les aspects
informatiques de lapplication visibles pour les
utilisateurs
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 90
Rsum du processus (3/3)
Conception : dtermination de comment lapplication doit
tre ralise
Entre : modles danalyse
Sortie : modles de classes, dtats et dinteractions
dtaills
2 stades :
Conception du systme : mise au point de
larchitecture du systme
Conception des classes : Augmentation et
ajustement des modles issus de lanalyse pour
quils soient prts tre implments
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] 91

Vous aimerez peut-être aussi