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.intevry.fr/COURS/IO21/COURS/CoursENSTBr.pdf Transparents de cours de Marie-Jos Blin
Maude Manouvrier - Univ. Paris Dauphine

Historique
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
Maude Manouvrier - Univ. Paris Dauphine

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]

Stades de dveloppement (2/4)


Spcifications initiales Analyse Conception Implmentation Test
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Maude Manouvrier - Univ. Paris Dauphine

Stades de dveloppement (2/4)


Cahier des charges

Spcifications initiales Analyse Conception Implmentation Test


Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Maude Manouvrier - Univ. Paris Dauphine

Stades de dveloppement (2/4)


Cahier des charges

Spcifications initiales Saccorder sur ce qui doit tre fait dans le systme Analyse Conception Implmentation Test
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Maude Manouvrier - Univ. Paris Dauphine

Stades de dveloppement (2/4)


Cahier des charges

Spcifications initiales Saccorder sur ce qui doit tre fait dans le systme Analyse
Comprendre les besoins et les dcrire

Conception Implmentation Test


Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Maude Manouvrier - Univ. Paris Dauphine

Stades de dveloppement (2/4)


Cahier des charges

Spcifications initiales Saccorder sur ce qui doit tre fait dans le systme Analyse
Comprendre les besoins et les dcrire Saccorder sur la manire dont le systme doit tre construit

Conception

Implmentation Test
Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Maude Manouvrier - Univ. Paris Dauphine

Stades de dveloppement (2/4)


Cahier des charges

Spcifications initiales Saccorder sur ce qui doit tre fait dans le systme Analyse
Comprendre les besoins et les dcrire Saccorder sur la manire dont le systme doit tre construit Coder le rsultat de la conception

Conception

Implmentation Test

Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf
Maude Manouvrier - Univ. Paris Dauphine

Stades de dveloppement (2/4)


Cahier des charges

Spcifications initiales Saccorder sur ce qui doit tre fait dans le systme Analyse
Comprendre les besoins et les dcrire Saccorder sur la manire dont le systme doit tre construit Coder le rsultat de la conception

Conception

Implmentation Test
Maude Manouvrier - Univ. Paris Dauphine

Tester si le systme est conforme au cahier des charges

Repris de http://www-inf.int-evry.fr/COURS/IO21/COURS/CoursENSTBr.pdf

Stades de dveloppement (3/4)


laboration et permanence optimisation des modles en

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 informatiques axs sur les ressources

Grande partie de leffort pour lanalyse et la conception


Maude Manouvrier - Univ. Paris Dauphine - repris de [BR05]

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]

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

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, incohrentes, parfois fausses incompltes voire

nonc : Point de dpart et moyen de mieux comprendre le problme mais document non immuable 9

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

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] :
Exigences Primtre du systme Dfinition de ce qui est exig Contexte de lapplication Hypothses Besoins de performances

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] :
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

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] :
Exigences Primtre du systme Dfinition de ce qui est exig Contexte de lapplication Hypothses Besoins de performances Implmentation Plates-formes Spcifications matrielles Bibliothques logicielles Standards dinterface
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

Conception Approche gnrale Algorithmes Structures de donnes Architecture Optimisation Planification des ressources

10

Spcifications initiales (3/3)


Prciser ce qui doit tre ralis et non comment limplmentation doit le raliser [BR05] :
Exigences Primtre du systme Dfinition de ce qui est exig Contexte de lapplication Hypothses Besoins de performances Implmentation Plates-formes Spcifications matrielles Bibliothques logicielles Standards dinterface
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

Conception Approche gnrale Algorithmes Structures de donnes Architecture Optimisation Planification des ressources

Ne pas prendre trop tt de dcisions de conception ou dimplmentation 10

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 incohrences de lnonc du problme et des

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. 2. 3. 4. 5. 6. 7. 8. 9. Identifier les classes et conserver les classes pertinentes Prparer un dictionnaire de donnes Identifier les associations et conserver les associations pertinentes Identifier les attributs des objets et les liens Organiser et simplifier les classes en utilisant lhritage Vrifier que tous les chemins daccs existent pour les requtes probables Itrer et affiner le modle Rexaminer le niveau dabstraction 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
Exigences sources Extraction des noms Classes candidates limination des classes inappropries Classes

Maude Manouvrier - Univ. Paris Dauphine

15

Analyse du domaine (4/21)


1. Identifier les classes : cas du systme de gestion de demandes de formation
Systme dinformation Initialisation Accord Employ Processus de formation Demande de formation Responsable de formation Analyse Recherche Stage

Dsaccord

Intress

Catalogue de formations agres Planning Session

Transmission Validation Obligation Participant Contrle

Contenu de formation Responsable Empchement Inscription

Organisme de formation Remise Facture

Annulation

Apprciation de stage Service Comptable

Justificatif de prsences

Maude Manouvrier - Univ. Paris Dauphine - adapt de [Roq05]

16

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
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.
Maude Manouvrier - Univ. Paris Dauphine

18

Analyse du domaine (7/21)


3. Identifier les associations et conserver les associations pertinentes
Par limination des :
Associations non limplmentation Actions Associations ternaires par dcomposition associations binaires, associations qualifies ou classes-associations Associations drives : associations dfinies en termes dautres associations (car redondance) pertinentes ou relevant de

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 limplmentation Actions Associations ternaires par dcomposition associations binaires, associations qualifies ou classes-associations Associations drives : associations dfinies en termes dautres associations (car redondance) pertinentes ou relevant de

Employ *
1 *
-demandeur

est inscrit

Session
est satisfaite par

Inscription 0..1

Maude Manouvrier - Univ. Paris Dauphine - modle de classe repris de [Roq05]

Demande de formation 1

19

Analyse du domaine (7/21)


3. Identifier les associations et conserver les associations pertinentes
Par limination des :
Associations non limplmentation Actions Associations ternaires par dcomposition associations binaires, associations qualifies ou classes-associations Associations drives : associations dfinies en termes dautres associations (car redondance)
est inscrit Toutes les associations Employ * Session formant plusieurs * chemins entre des classes 1 -demandeur nindiquent pas une Inscription 0..1 est redondance satisfaite * par 1 Maude Manouvrier - Univ. Paris Dauphine - modle

pertinentes

ou

relevant

de

de classe repris de [Roq05]

Demande de formation

19

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 Formation
NumSession

0..*

Session

Prciser les multiplicits Ajouter les associations manquantes Transformer certaines associations en agrgations
Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

20

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 Demande de Formation
dateEmission : Date dateValidit : Date 1

donne lieu

Rponse
0..1 date : Date

Accord
Maude Manouvrier - Univ. Paris Dauphine - modle de classe repris de [Roq05]

Dsaccord
Motif : String

22

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
Employ
nom : String prnom : String service : String fonction : String email : Email 1 -demandeur 0..* 0..* -participant est inscrit 0..*

Session (from Catalogue) ElementCatalogue (from Catalogue)

Inscription
0..1 date : Date est satisfaite par
rne once c
1

Dsaccord
Motif : String

..* Demande de Formation 0

Rponse
donne lieu 0..1 date : Date

dateEmission : Date dateValidit : Date

Accord

Maude Manouvrier - Univ. Paris Dauphine modle de classe repris de [Roq05]

23

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

Comptabilit Entits mtier


Service comptable ; Facture

Demandes de formation
Demande de formation ; Employ ; Inscription ; Rponse ; Accord; Dsaccord

Catalogue de formations
Catalogue ; Organisme de formation ; Formation; Session

Maude Manouvrier - Univ. Paris Dauphine packages repris de [Roq05]

26

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)
Demande de formation

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)
Demande de formation

2. Trouver les tats


Recherche des tats partir des diffrences qualitatives dans le comportement, les attributs ou les associations des classes dynamiques Cration EnAttenteDeRponse Satisfaite
Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05]

EnAttenteInscription

Ralise 28

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
valider / envoyer email au responsable refuser / envoyer refus lemploy accepter / envoyer accord lemploy inscrire / envoyer confirmation inscription lemploy

Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05]

29

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)
Cration
valider / envoyer email au responsable refuser / envoyer refus lemploy

Refuse

EnAttenteDeRponse
accepter / envoyer email daccord lemploy avec contenu formation et planning des sessions

EnAttenteInscription Version 1 : Diagramme dtats initial


Maude Manouvrier - Univ. Paris Dauphine diagramme repris de [Roq05]

inscrire / envoyer confirmation inscription lemploy

Satisfaite
finSession

Ralise

30

Analyse du domaine (18/21)


4. Construire des diagrammes dtats (exemple)
Cration Version 2
valider / envoyer email au responsable refuser / envoyer refus lemploy

Refuse

EnAttenteDeReponse RechercheSession

accepter / envoyer email daccord lemploy

do / envoyer contenu formation et planning session lemploy choixDeSession (IdSession) / envoyer inscription lorganisme de formation

EnAttenteInscription
inscrire / envoyer confirmation inscription lemploy
Maude Manouvrier - Univ. Paris Dauphinediagramme repris de [Roq05]

Satisfaite

finSession

Ralise 31

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)
Cration Version Finale
valider / envoyer email au responsable annuler

EnAttenteDeReponse RechercheSession

refuser / envoyer refus lemploy

Refuse Annule

accepter / envoyer email daccord lemploy

annu l er

do / envoyer contenu formation et planning session lemploy choixDeSession (IdSession) / envoyer commande lorganisme de formation

annuler

EnAttenteInscription
annulerSession / envoyer annulation employ

Satisfaite
Maude Manouvrier - Univ. Paris Dauphine diagramme repris de [Roq05]

annuler / envoyer annulation lorganisme de formation inscrire / envoyer confirmation inscription lemploy finSession

Ralise

33

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. 2. 3. 4. 5. 6. 7. 8. Dterminer la frontire du systme Trouver les acteurs Trouver les cas dutilisation Trouver les vnements initiaux et finaux Rdiger les scnarios standards Ajouter des scnarios de variations et dexceptions Trouver les vnements externes 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
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.
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05]

36

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)

Employ

Responsable de Organisme de formation formation

Service comptable 37

Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05]

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
SGDF Demander une formation Employ Grer ses demandes Responsable de formation Traiter les demandes

Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05]

38

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
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
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05]

39

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
Exemple de scnario pour le cas dutilisation Demander une formation 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.
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05]

40

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
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
Maude Manouvrier - Univ. Paris Dauphine exemple adapt de [Roq05]

41

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)
Employ

system : SGDF

Responsable de formation {employ authentifi}

consulterCatalogue() thmes choisirThme() formations du thme choisirFormation() sessions disponibles choisirSession() infos sessions validerDemande() enregistrerDemande nouvelleDemande()
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05]

43

Analyse de lapplication (9/28)


7. Trouver les vnements externes (exemple)
Employ

system : SGDF

Responsable de formation {employ authentifi}

consulterCatalogue() thmes Boucle pour demandes multiples choisirThme() formations du thme choisirFormation() sessions disponibles choisirSession() infos sessions validerDemande() enregistrerDemande nouvelleDemande()
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05]

43

Analyse de lapplication (9/28)


7. Trouver les vnements externes (exemple)
Employ

system : SGDF

Responsable de formation {employ authentifi}

consulterCatalogue() thmes Boucle pour demandes multiples Opt. choisirThme() formations du thme choisirFormation() sessions disponibles choisirSession() infos sessions validerDemande() enregistrerDemande nouvelleDemande()
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05]

43

Analyse de lapplication (9/28)


7. Trouver les vnements externes (exemple)
Employ

system : SGDF

Responsable de formation {employ authentifi}

consulterCatalogue() thmes Boucle pour demandes multiples Opt. choisirThme() formations du thme choisirFormation() sessions disponibles Opt. choisirSession() infos sessions validerDemande() enregistrerDemande nouvelleDemande()
Maude Manouvrier - Univ. Paris Dauphine exemple repris de [Roq05]

43

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)
Rdiger demande Analyser demande [demande refuse] [demande accepte] Chercher Stage

Slectionner sessions Commander stage Suivre formation Inscrire stagiaire mettre facture Contrler facture Payer facture

Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05]

45

Analyse de lapplication (11/28)


8. Prparer des diagrammes dactivit pour les cas dutilisation complexe (exemple)
:Employ :ResponsableDeFormation :OrganismeFormation :ServiceCompta

Rdiger demande Analyser demande [demande refuse] [demande accepte] Chercher Stage

Slectionner sessions Commander stage Suivre formation Inscrire stagiaire mettre facture Contrler facture Payer facture

Maude Manouvrier - Univ. Paris Dauphine - exemple repris de [Roq05]

45

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
SGDF
Employ Grer ses demandes
include extend

Consulter le catalogue

Demander une formation


include

Sidentifier

Responsable de formation

Traiter les demandes

include

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05] et exemple repris de [Ro05]

46

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)
Rdiger demande Analyser demande [demande refuse] [demande accepte] Chercher Stage

Slectionner sessions Commander stage Suivre formation mettre facture Contrler facture Inscrire stagiaire

Payer facture

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

48

Analyse de lapplication (14/28)


10. Vrifier avec le modle de classes du domaine (exemple)
:DemandeDeFormation [EnAttenteDeRponse]

Rdiger demande
:DemandeDeFormation [Cration] :DemandeDeFormation [Refuse]

Analyser demande [demande refuse] [demande accepte] Chercher Stage

Diagramme dactivit du processus de formation avec flux dobjets


:Commande

Slectionner sessions Commander stage Suivre formation mettre facture Inscrire stagiaire
:DemandeDeFormation [Satisfaite]

:DemandeDeFormation [EnAttenteInscription]

:Evaluation :DemandeDeFormation [Ralise]

Contrler facture
:Facture :Paiement

Payer facture

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

48

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] boundary cranGeneralEmploy boundary cranDemandeFormation

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] 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]

Maude Manouvrier - Univ. Paris Dauphine

51

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]
control ContrleurDemandeFormation
Maude Manouvrier - Univ. Paris Dauphine

52

Analyse de lapplication (19/28)


3. Dterminer les contrleurs (suite)
clic

vnement de bas niveau vnement de niveau applicatif

clicOn()

IHM

crerFormation()

Contrleur
DemandeDeFormation Employ

Objets mtier 53

Maude Manouvrier - Univ. Paris Dauphine adapt de [Roq05]

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)
boundary : cranGeneralEmploy Employ Crer Demande () boundary : cranDemandeDeFormation control : ContrleurDemandeFormation

activer() initialiser() initialiserDemande(emp) : Demande DeFormation crer(emp)

Maude Manouvrier - Univ. Paris Dauphine repris de [Roq05]

55

Analyse de lapplication (22/28)


Modle dtats de lapplication [BR05] :
1. Dterminer les classes dapplication ayant des tats 2. Identifier les vnements 3. 4. 5. 6. Construire des diagrammes dtats Comparer aux autres diagrammes dtats Comparer au modle de classes 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 Trouver les vnements tudier les scnarios pour en extraire les vnements

2.

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 Trouver les vnements tudier les scnarios pour en extraire les vnements Contraste entre llaboration du modle dtats du domaine et celui de lapplication [BR05] :
Pour le modle du domaine : recherche des tats puis des vnements

2.

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
Maude Manouvrier - Univ. Paris Dauphine adapt de [BR05]

57

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)
Inexploit
annulerDemande initialiserDemande(emp)

EnInitialisationDeDemande
annulerDemande / annuler les variables utilises crerDemande(emp)

EnCrationDeDemande
valider(dateDuJour)

EnregistrementDeDemande
do / envoyer mail au responsable et afficher message lemploy
dconnexionEmploy
Maude Manouvrier - Univ. Paris Dauphine

Diagramme dtats initial pour le contrleur de demandes de formation ( complter)

59

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 61 Maude Manouvrier - Univ. Paris Dauphine

Analyse de lapplication (28/28)


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
Maude Manouvrier - Univ. Paris Dauphine

62

Analyse de lapplication (28/28)


DemandeDeFormation Oprations de mise jour dattributs ou de liens ne devant pas apparatre lors de lanalyse
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
Maude Manouvrier - Univ. Paris Dauphine

62

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 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

Analyse de lapplication :

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
Objets logiciels internes au systme

Employ

:Systme

Employ crerDemande()

:???

:???

crerDemande()

Systme vu comme une bote noire

Maude Manouvrier - Univ. Paris Dauphine schma repris de [Roq05]

64

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
65

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

Conception du systme (2/11)


tapes a suivre [BR05] : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Estimer les performances du systme Mettre au point un plan de rutilisation Organiser le systme en sous-systmes Identifier les questions de concurrence inhrentes au problme Allouer les sous-systmes aux quipements matriels Grer le stockage des donnes Grer les ressources globales Choisir une stratgie de contrle du logiciel Traiter les cas limites Arbitrer les priorits Slectionner un style architectural 66

Maude Manouvrier - Univ. Paris Dauphine

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)
layer Prsentation
IHM Resp. Formation IHM Employ

Exemple darchitecture en couches pour le systme de gestion de demandes de formation

layer Logique applicative layer Logique mtier


Comptabilit Catalogue Demandes

Maude Manouvrier - Univ. Paris Dauphine repris de [Roq05]

71

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) b) c) d) Estimer les exigences en ressources matrielles Arbitrer entre matriel et logiciel Allouer des tches aux processeurs Choisir lorganisation et la forme de connexion des diffrentes units physiques (topologie des connexions, units redondantes, communications)

6. Grer le stockage des donnes 5. Grer les ressources globales

Structure de donnes en mmoire, fichiers ou bases de donnes 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 continuellement sur des donnes dentres variant opre

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, maintenabilit et dextensibilit de

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

77

Conception des classes (3/13)


tapes suivre [BR05] :
1. 2. 3. 4. 5. 6. 7. 8. 9. Combler le foss entre exigences de haut niveau et services de bas niveau Raliser les cas dutilisation par des oprations Formuler un algorithme pour chaque opration Dcomposer rcursivement jusqu obtenir des oprations de conception desservant des oprations de bas niveau Remanier le modle pour obtenir une conception plus nette Optimiser les chemins daccs aux donnes Rifier les comportements devant tre manipuls Ajuster la structure des classes pour augmenter lhritage 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

Fonctionnalits dsires

Ressources disponibles 79

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

Conception des classes (4/13)


1. Combler le foss entre exigences de haut niveau et services de bas niveau

Fonctionnalits dsires

Foss

Ressources disponibles 79

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

Conception des classes (4/13)


1. Combler le foss entre exigences de haut niveau et services de bas niveau

Fonctionnalits dsires

Foss lments intermdiaires

Ressources disponibles 79

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

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 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

pour

obtenir

une

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)
est inscrit

Employ
nom : String prnom : String service : String fonction : String email : Email 1 -demandeur 0..*

0..* -participant

0..*

Session (from Catalogue) ElementCatalogue (from Catalogue)

Inscription
0..1 date : Date est satisfaite par
rne once c
1

Dsaccord
Motif : String

..* Demande de Formation 0

Rponse
donne lieu 0..1 date : Date

dateEmission : Date dateValidit : Date

Accord

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

85

Conception des classes (10/13)


6. Optimiser la conception (exemple)
/nAPasObtenu est inscrit

Employ
nom : String prnom : String 1 service : String fonction : String 1 email : Email 1 -demandeur 0..*

0..* -participant

0..*

Session (from Catalogue) ElementCatalogue (from Catalogue) Dsaccord


Motif : String 0..*

Inscription
0..1 date : Date est satisfaite par
rne once c
1

..* Demande de Formation 0

Rponse
donne lieu 0..1 date : Date / aObtenu 0..*

dateEmission : Date dateValidit : Date

Accord

Maude Manouvrier - Univ. Paris Dauphine repris de [BR05]

85

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 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 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

Maintenir la cohrence des entits

Raffiner les packages


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)


Spcifications initiales du systme
Utilisateurs Dveloppeurs Managers Experts mtier mettre des demandes nonc du problme

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

89

Rsum du processus (1/3)


Spcifications initiales du systme Analyse :
Analyse du domaine Analyse de lapplication
Utilisateurs Dveloppeurs Managers Experts mtier mettre des demandes nonc du problme Entretiens utilisateurs Exprience Systmes apparents Construire des modles

Modle de classes Modle dtats Modle dinteractions

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

89

Rsum du processus (1/3)


Spcifications initiales du systme Analyse :
Analyse du domaine Analyse de lapplication
Utilisateurs Dveloppeurs Managers Experts mtier mettre des demandes nonc du problme Entretiens utilisateurs Exprience Systmes apparents Construire des modles

Modle de classes Modle dtats Modle dinteractions

Conception :
Conception du systme Conception des classes

Architecture Cas dutilisation Algorithmes Optimisation

Dtailler les modles

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

89

Rsum du processus (1/3)


Spcifications initiales du systme Analyse :
Analyse du domaine Analyse de lapplication
Utilisateurs Dveloppeurs Managers Experts mtier mettre des demandes nonc du problme Entretiens utilisateurs Exprience Systmes apparents Construire des modles

Modle de classes Modle dtats Modle dinteractions

Conception :
Conception du systme Conception des classes

Architecture Cas dutilisation Algorithmes Optimisation

Dtailler les modles

Il sagit dun processus itratif 89

Maude Manouvrier - Univ. Paris Dauphine figure reprise de [BR05]

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