+ All Categories
Home > Documents > SpecificationEtConceptionUML - Copie

SpecificationEtConceptionUML - Copie

Date post: 06-Apr-2018
Category:
Upload: swissi-ouma
View: 219 times
Download: 0 times
Share this document with a friend

of 132

Transcript
  • 8/2/2019 SpecificationEtConceptionUML - Copie

    1/132

    Master MIDO

    2me anne

    Spcification et Conception en UML

    Maude Manouvrier

    Spcifications initiales

    Analyse Conception du systme

    Conception des classes

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    2/132

    Bibliographie Modlisation et conception orientes objet avec UML2 de Michael

    Blaha et James Rumbaugh, 2me dition, Pearson EducationFrance, 2005 Traduction de louvrage Applying Object-OrientedModeling and Design with UML, Prentice Hall 2005

    The Unified Modeling Language Reference Manual, 2nd Edition deJames Rumbaugh, Ivar Jacobson et Grady Booch, AddisonWesley Professional, 2004 Traduction franaise : UML 2.0,Guide de Rfrence, CampusPress

    Le guide de lutilisateur UML de Grady Booch, James Rumbaughet Ivar Jacobson, Eyrolles, 2000 Traduction de louvrage TheUnified Modeling Language User Guide; Addison-Wesley, 1998

    UML 2 par la pratique Etudes de cas et exercices corrigs dePascal 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 BlinMaude Manouvrier - Univ. Paris Dauphine 2

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    3/132

    Historique

    Maude Manouvrier - Univ. Paris Dauphine 3

    OMT(Object ModelingTechnique - 1991)

    de James Rumbaugh

    OOSEde Ivar Jacobson

    Notationde Grady Booch

    UML - Unified Modeling LanguageStandard 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    4/132

    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 desclasses

    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 lapplicationMaude Manouvrier - Univ. Paris Dauphine repris de [BR05] 4

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    5/132

    Stades de dveloppement (2/4)

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

    Spcifications initiales

    Analyse

    Conception

    Implmentation

    Test

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    6/132

    Stades de dveloppement (2/4)

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

    Spcifications initiales

    Analyse

    Conception

    Implmentation

    Test

    Cahier des charges

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    7/132

    Stades de dveloppement (2/4)

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    8/132

    Stades de dveloppement (2/4)

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    9/132

    Stades de dveloppement (2/4)

    Maude Manouvrier - Univ. Paris Dauphine 5Repris 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 systmedoit tre construit

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    10/132

    Stades de dveloppement (2/4)

    Maude Manouvrier - Univ. Paris Dauphine 5Repris 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 systmedoit tre construit

    Coder le rsultat de la conception

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    11/132

    Stades de dveloppement (2/4)

    Maude Manouvrier - Univ. Paris Dauphine 5Repris 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 systmedoit tre construit

    Coder le rsultat de la conception

    Tester si le systme est conforme aucahier des charges

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    12/132

    Stades de dveloppement (3/4)

    laboration et optimisation des modles enpermanence

    Application des mmes concepts et de la mmenotation tout au long du processus mais avec deschangements 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    13/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    14/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    15/132

    Spcifications initiales (2/3)

    Exigences : description de la faon dont un systmese comporte du point de vue utilisateur

    Systme = bote noire dont seul le comportementexterne importe

    Rdaction dun nonc des exigences Exigences : souvent ambigus, incompltes voire

    incohrentes, parfois fausses

    nonc : Point de dpart et moyen de mieuxcomprendre le problme mais document non immuable

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    16/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    17/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    18/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    19/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    20/132

    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 dedcisions de conception ou

    dimplmentation

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    21/132

    Exemple trait en coursSystme 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 dautomatisercertaines 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 leresponsable et transmission de laccord ou du dsaccord lintress. En cas daccord,

    Recherche par le responsable de formation, dans le catalogue des formationsagres, 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 deformation de lemploy par le responsable la session de formation choisie.

    En cas dempchement de lemploy, obligation de lemploy dinformer le responsableau plut tt pour annuler linscription ou la demande.

    A la fin de la formation, remise par le participant au responsable dune fichedapprciation de la formation et dun document justifiant sa prsence au cours de laformation.

    Contrle, par la responsable, de la facture envoye par lorganisme de formation avanttransmission au service comptable.Maude Manouvrier - Univ. Paris Dauphine repris de [Roq05] 11

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    22/132

    Analyse

    tape du dveloppement o on examine leproblme 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    23/132

    Analyse du domaine (1/21)

    Objectif : obtenir un modle prcis, concis,comprhensible et correct du monde rel

    Dbut dune comprhension plus claire desexigences

    Mise en vidence des ambiguts et desincohrences de lnonc du problme

    Abstraction des caractristiques essentielles delnonc du problme dans un modle

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    24/132

    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 associationspertinentes

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

    7. Itrer et affiner le modle

    8. Rexaminer le niveau dabstraction

    9. Regrouper les classes enpackageMaude Manouvrier - Univ. Paris Dauphine 14

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    25/132

    Analyse du domaine (3/21)

    1. Identifier les classes : trouver les classes pertinentes pour les objets du domaine delapplication

    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

    Exigencessources

    Classescandidates

    ClassesExtractiondes noms

    liminationdes classes

    inappropries

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    26/132

    Analyse du domaine (4/21)

    1. Identifier les classes : cas du systme de gestionde 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 formationTransmission

    Intress

    Recherche

    Validation Responsable

    Participant

    AnalyseInitialisation

    Obligation Remise

    Contrle

    A l d d i (5/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    27/132

    Analyse du domaine (5/21)

    1. Conserver les classes pertinentes Parlimination 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 drivesMaude Manouvrier - Univ. Paris Dauphine repris de [BR05] 17

    A l d d i (6/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    28/132

    Analyse du domaine (6/21)

    2. Prparer un dictionnaire de donnes : pourviter les trop nombreuses interprtations

    Dcrire prcisment chaque classe par un paragraphe

    Dcrire la porte de chaque classe dans le problmecourant, en incluant toutes les hypothses et lesrestrictions quant son utilisation [BR05]

    Dcrire galement les attributs, associations, oprationset valeurs numres

    Maude Manouvrier - Univ. Paris Dauphine 18

    A l d d i (6/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    29/132

    Analyse du domaine (6/21)

    2. Prparer un dictionnaire de donnes : pourviter les trop nombreuses interprtations

    Dcrire prcisment chaque classe par un paragraphe

    Dcrire la porte de chaque classe dans le problmecourant, en incluant toutes les hypothses et lesrestrictions quant son utilisation [BR05]

    Dcrire galement les attributs, associations, oprationset valeurs numres

    Maude Manouvrier - Univ. Paris Dauphine 18

    Demande de formation : Email envoy par un employ auresponsable de formation, prcisant un thme, une formation ou unesession particulire de formation issues du catalogue. La demande estenregistre par la systme aprs transmission au responsable de

    formation.

    A l d d i (7/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    30/132

    Analyse du domaine (7/21)

    3. Identifier les associations et conserver lesassociations pertinentes

    Parlimination des :

    Associations non pertinentes ou relevant delimplmentation

    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 - modlede classe repris de [Roq05] 19

    A l d d i (7/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    31/132

    Analyse du domaine (7/21)

    3. Identifier les associations et conserver lesassociations pertinentes

    Parlimination des :

    Associations non pertinentes ou relevant delimplmentation

    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 - modlede classe repris de [Roq05] 19Demande de formation

    SessionEmploy

    Inscription

    est inscrit

    est

    satisfaitepar*

    1* *

    1

    0..1-demandeur

    A l d d i (7/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    32/132

    Analyse du domaine (7/21)

    3. Identifier les associations et conserver lesassociations pertinentes

    Parlimination des :

    Associations non pertinentes ou relevant delimplmentation

    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 - modlede classe repris de [Roq05] 19Demande de formation

    SessionEmploy

    Inscription

    est inscrit

    estsatisfaitepar*

    1* *

    1

    0..1-demandeur!

    Toutes les associationsformant plusieurschemins entre des classesnindiquent pas uneredondance

    A l d d i (8/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    33/132

    Analyse du domaine (8/21)

    3. Identifier les associations et conserver lesassociations pertinentes (suite)

    Prcision de la smantique des associations :

    viter les associations mal nommes : choix desnoms 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

    SessionFormation1 0..*

    NumSession

    Analyse du domaine (9/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    34/132

    Analyse du domaine (9/21)

    4. Trouver les attributs et conserver les attributspertinents 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 lescritres 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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    35/132

    Analyse du domaine (9/21)

    5. Organiser et simplifier les classes en utilisantlhritage Pargnralisation 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 classerepris de [Roq05] 22

    Analyse du domaine (9/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    36/132

    Analyse du domaine (9/21)

    5. Organiser et simplifier les classes en utilisantlhritage Pargnralisation 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 classerepris de [Roq05] 22

    Demande de Formation

    dateEmission : Date

    dateValidit : Date

    Accord

    Motif : String

    Dsaccord

    Rponse

    date : Datedonne lieu

    1 0..1

    Analyse du domaine (10/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    37/132

    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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    38/132

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

    -demandeur1

    Session(from Catalogue)

    est inscrit

    0..*

    0..* 0..*

    1

    0..1

    Motif : String

    Dsaccord

    donnelieu

    Employ

    nom : Stringprnom : String

    service : Stringfonction : Stringemail : Email

    Inscription

    date : Date

    estsatisfaite

    par

    0..1

    Demande de Formation

    dateEmission : DatedateValidit : Date

    ElementCatalogue(from Catalogue)

    Accord

    conce

    rne

    0..*

    1

    -participant

    A l d d i (11/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    39/132

    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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    40/132

    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 manquantspour 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 dassociationavec un sens trop large ou trop troit

    Transformation dune association en association qualifie en cas de ncessitdaccs un objet par lintermdiaire de la valeur dun attribut

    Maude Manouvrier - Univ. Paris Dauphine 25

    Analyse du domaine (13/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    41/132

    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 enpackages

    Regroupement des lments (classes, associations, gnralisationet autres packages de niveau infrieur) ayant un thme commun oufortement coupls afin de plus facilement tracer et visualiser lemodle

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

    Analyse du domaine (13/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    42/132

    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 enpackages

    Regroupement des lments (classes, associations, gnralisationet autres packages de niveau infrieur) ayant un thme commun oufortement coupls afin de plus facilement tracer et visualiser lemodle

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

    ComptabilitService comptable ;

    Facture

    Demandes de formationDemande de formation ;

    Employ ; Inscription ; Rponse ;

    Accord; Dsaccord

    Catalogue de formationsCatalogue ; Organisme de

    formation ; Formation; SessionEntits

    mtier

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    43/132

    Analyse du domaine (15/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    44/132

    Analyse du domaine (15/21)

    1. Identifier les classes ayant des tatsRecherche des classes ayant un cycle de vie distinct(classes caractrises par une progression ou reprsentantun comportement cyclique)

    2. Trouver les tats

    Recherche des tats partir des diffrences qualitativesdans le comportement, les attributs ou les associations desclasses dynamiques

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

    Analyse du domaine (15/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    45/132

    Analyse du domaine (15/21)

    1. Identifier les classes ayant des tatsRecherche des classes ayant un cycle de vie distinct(classes caractrises par une progression ou reprsentantun comportement cyclique)

    2. Trouver les tats

    Recherche des tats partir des diffrences qualitativesdans le comportement, les attributs ou les associations desclasses dynamiques

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

    Demande de formation

    Analyse du domaine (15/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    46/132

    Analyse du domaine (15/21)

    1. Identifier les classes ayant des tatsRecherche des classes ayant un cycle de vie distinct(classes caractrises par une progression ou reprsentantun comportement cyclique)

    2. Trouver les tats

    Recherche des tats partir des diffrences qualitativesdans le comportement, les attributs ou les associations desclasses dynamiques

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

    Demande de formation

    Cration EnAttenteInscriptionEnAttenteDeRponse

    Satisfaite Ralise

    Analyse du domaine (16/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    47/132

    Analyse du domaine (16/21)

    3. Trouver les vnements Recherche des vnements dclenchant les transitions

    entre les tats

    Capturer les informations vhicules par un vnementsous la forme dune liste de paramtres

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

    Analyse du domaine (16/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    48/132

    y ( / )

    3. Trouver les vnements Recherche des vnements dclenchant les transitions

    entre les tats

    Capturer les informations vhicules par un vnementsous la forme dune liste de paramtres

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

    valider / envoyer email au responsablerefuser / envoyer refus lemploy

    accepter / envoyer accord lemploy

    inscrire / envoyer confirmation inscription lemploy

    Analyse du domaine (17/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    49/132

    y ( )

    4. Construire des diagrammes dtats (exemple)

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

    Analyse du domaine (17/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    50/132

    y ( )

    4. Construire des diagrammes dtats (exemple)

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

    Cration

    EnAttenteInscription

    EnAttenteDeRponse

    Satisfaite

    valider / envoyer

    email au responsablerefuser / envoyerrefus lemploy

    accepter / envoyer email daccord lemployavec contenu formation et planning des sessions

    inscrire / envoyer confirmationinscription lemploy

    Refuse

    Ralise

    finSession

    Version 1 :Diagrammedtats initial

    Analyse du domaine (18/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    51/132

    y ( )

    4. Construire des diagrammes dtats (exemple)

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

    RechercheSessiondo / envoyer contenu formation et planning session lemploy

    Cration

    EnAttenteInscription

    EnAttenteDeReponse

    Satisfaite

    valider / envoyeremail au responsable

    refuser / envoyerrefus lemploy

    accepter / envoyer email daccord lemploy

    choixDeSession (IdSession) / envoyer

    inscription lorganisme de formation

    inscrire / envoyer confirmationinscription lemploy

    Refuse

    finSession

    Ralise

    Version 2

    Analyse du domaine (19/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    52/132

    y ( )

    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 tatfinal ?)

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

    Maude Manouvrier - Univ. Paris Dauphine 32

    Analyse du domaine (20/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    53/132

    y ( )

    5. valuer les diagrammes dtats (exemple)

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

    RechercheSessiondo / envoyer contenu formation et planning session lemploy

    Cration

    EnAttenteInscription

    EnAttenteDeReponse

    Satisfaite

    valider / envoyer

    email au responsablerefuser / envoyerrefus lemploy

    accepter / envoyer email daccord lemploy

    choixDeSession (IdSession) / envoyercommande lorganisme de formation

    inscrire / envoyer confirmationinscription lemploy

    Refuse

    finSession

    Ralise

    VersionFinale

    A

    nnule

    annuler

    annuler

    annuler

    annuler / envoyer annulation lorganisme de formation

    annulerSession / envoyerannulation employ

    Analyse du domaine (21/21)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    54/132

    y

    Modle dinteractions : rarement intressant pour lanalysedu domaine

    Itration de lanalyse [BR05] Ncessit de raliser plusieurs itrationspour obtenir un modle

    complet

    Affinage de lanalyse au fur et mesure de lamlioration de lacomprhension

    Vrification du rsultat avec le rdacteur de lnonc du problmeet les experts du domaine

    Analyse vs. conception

    Utilisation du modle danalyse comme base pour larchitecture, laconception et limplmentation du systme

    Difficult pratique pour viter une contamination du modledanalyse par limplmentation

    Maude Manouvrier - Univ. Paris Dauphine 34

    Analyse de lapplication (1/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    55/132

    Objectif : ajouter les artefacts majeurs au modle dudomaine

    Concentration de lattention sur les dtails de lapplicationet prise en compte des interactions

    tapes suivre pour le modle dinteractions [BR05] :1. Dterminer la frontire du systme2. Trouver les acteurs

    3. Trouver les cas dutilisation4. Trouver les vnements initiaux et finaux5. Rdiger les scnarios standards6. Ajouter des scnarios de variations et dexceptions

    7. Trouver les vnements externes8. Prparer des diagrammes dactivits pour les cas

    dutilisation complexes9. Organiser les acteurs et les cas dutilisation

    10. Vrifier avec le modle de classes du domaineMaude Manouvrier - Univ. Paris Dauphine 35

    Analyse de lapplication (2/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    56/132

    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 dusystme et de son aspect pour les utilisateurs

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

    Analyse de lapplication (2/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    57/132

    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 dusystme 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 desemploys dune entreprise. Les formations agres sont disponiblesdans un ou plusieurs catalogues. La gestion et la mise jour descatalogues 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 permettredautomatiser 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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    58/132

    2. Trouver les acteurs Identification des objets externes agissant avec le

    systme

    Recherche darchtypes de comportement (et non pasdindividus)

    Correspondance possible entre un acteur et plusieursobjets extrieurs ou un objet extrieur et plusieursacteur (un acteur par facette)

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

    Analyse de lapplication (3/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    59/132

    2. Trouver les acteurs Identification des objets externes agissant avec le

    systme

    Recherche darchtypes de comportement (et non pasdindividus)

    Correspondance possible entre un acteur et plusieursobjets extrieurs ou un objet extrieur et plusieursacteur (un acteur par facette)

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

    Employ Responsable deformation

    Organisme deformation

    Servicecomptable

    Analyse de lapplication (4/28)3 T l d ili i

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    60/132

    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 servicefourni par le systme

    Conserver un niveau de dtails similaire pour tous les casdutilisation

    Tracerun diagramme de cas dutilisation prliminaire

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

    Analyse de lapplication (4/28)3 T l d tili ti

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    61/132

    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 servicefourni par le systme

    Conserver un niveau de dtails similaire pour tous les casdutilisation

    Tracerun 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 T l t i iti t fi

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    62/132

    4. Trouver les vnements initiaux et finaux Partition des fonctionnalits du systme en units discrtes

    (les cas dutilisation) indiquant les acteurs impliqus maispas de reprsentation claire du comportement

    Comprhension du comportement partir de lacomprhension des squences dexcution de chaque casdutilisation

    Recherche des vnements initiaux et finaux de chaque casdutilisation

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

    Analyse de lapplication (5/28)4 T l t i iti t fi

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    63/132

    4. Trouver les vnements initiaux et finaux Partition des fonctionnalits du systme en units discrtes

    (les cas dutilisation) indiquant les acteurs impliqus maispas de reprsentation claire du comportement

    Comprhension du comportement partir de lacomprhension des squences dexcution de chaque casdutilisation

    Recherche des vnements initiaux et finaux de chaque casdutilisation

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

    Demander une formation :

    vnement initial : Saisie dune demande par un employvnement final : Enregistrement de la demandeGrer ses demandes :

    vnement initial : Ouverture dune demande existante par lemployvnement final : (1) Annulation de la demande ou (2) Enregistrement

    des modifications

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    64/132

    Analyse de lapplication (6/28)5 Prparer des scnarios standards

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    65/132

    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 changesdinformations

    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 lademande. 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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    66/132

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    67/132

    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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    68/132

    7. Trouver les vnements externes (exemple)

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

    Employ Responsable deformation

    system : SGDF

    {employ authentifi}

    consulterCatalogue()

    thmes

    choisirThme()

    formations du thme

    sessions disponibleschoisirFormation()

    infos sessions

    choisirSession()

    validerDemande() enregistrerDemande

    nouvelleDemande()

    Analyse de lapplication (9/28)7 Trouver les vnements externes (exemple)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    69/132

    7. Trouver les vnements externes (exemple)

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

    Employ Responsable deformation

    system : SGDF

    {employ authentifi}

    consulterCatalogue()

    thmes

    choisirThme()

    formations du thme

    sessions disponibleschoisirFormation()

    infos sessions

    choisirSession()

    validerDemande() enregistrerDemande

    nouvelleDemande()

    Boucle pourdemandes multiples

    Analyse de lapplication (9/28)7 Trouver les vnements externes (exemple)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    70/132

    7. Trouver les vnements externes (exemple)

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

    Employ Responsable deformation

    system : SGDF

    {employ authentifi}

    consulterCatalogue()

    thmes

    choisirThme()

    formations du thme

    sessions disponibleschoisirFormation()

    infos sessions

    choisirSession()

    validerDemande() enregistrerDemande

    nouvelleDemande()

    Boucle pourdemandes multiples

    Opt.

    Analyse de lapplication (9/28)7 Trouver les vnements externes (exemple)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    71/132

    7. Trouver les vnements externes (exemple)

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

    Employ Responsable deformation

    system : SGDF

    {employ authentifi}

    consulterCatalogue()

    thmes

    choisirThme()

    formations du thme

    sessions disponibleschoisirFormation()

    infos sessions

    choisirSession()

    validerDemande() enregistrerDemande

    nouvelleDemande()

    Boucle pourdemandes multiples

    Opt.

    Opt.

    Analyse de lapplication (10/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    72/132

    8. Prparer des diagrammes dactivit pour lescas dutilisation complexe [BR05]

    Utiliser des diagrammes dactivit pour documenter lalogique mtier pendant lanalyse

    Ne pas utiliser les diagrammes dactivit comme uneexcuse 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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    73/132

    dutilisation complexe (exemple)

    45

    Rdiger demande

    Analyser demande

    Chercher Stage

    Slectionner sessions

    Commander stage

    Inscrire stagiaireSuivre formation

    mettre facture

    Contrler facturePayer facture

    [demanderefuse] [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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    74/132

    d utilisation complexe (exemple)

    45

    Rdiger demande

    Analyser demande

    Chercher Stage

    Slectionner sessions

    Commander stage

    Inscrire stagiaireSuivre formation

    mettre facture

    Contrler facturePayer facture

    [demanderefuse] [demande

    accepte]

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

    :Employ :ResponsableDeFormation :OrganismeFormation :ServiceCompta

    Analyse de lapplication (12/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    75/132

    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 deformation

    Demander une formation

    Grer ses demandes

    Traiter les demandes

    Sidentifier

    Consulter le catalogue

    include

    include

    include

    extend SGDF

    Analyse de lapplication (13/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    76/132

    10. Vrifier avec le modle de classes du domaine

    Vrifier la cohrence entre le modle du domaine etcelui 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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    77/132

    (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 facturePayer facture

    [demanderefuse] [demande

    accepte]

    Suivre formation

    Analyse de lapplication (14/28)10. Vrifier avec le modle de classes du domaine

    (exemple)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    78/132

    (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 facturePayer facture

    [demanderefuse] [demande

    accepte]

    Suivre formation

    :DemandeDeFormation[EnAttenteDeRponse]

    :DemandeDeFormation[EnAttenteInscription]

    :DemandeDeFormation[Satisfaite]

    :Commande

    :Facture

    :DemandeDeFormation

    [Ralise]

    :Evaluation

    :Paiement

    Diagramme dactivit duprocessus de formationavec flux dobjets

    :DemandeDeFormation[Refuse]

    :DemandeDeFormation

    [Cration]

    Analyse de lapplication (15/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    79/132

    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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    80/132

    1. Spcifier les interfaces utilisateurs (IHM)

    IHM = objet ou groupe dobjets fournissant auxutilisateurs dun systme un moyen cohrent daccsaux objets du domaine, aux commandes et aux optionsde lapplication [BR05]

    Pendant lanalyse, mettre laccent sur le fluxdinformations et le contrle et non sur le format de

    prsentation

    Pendant lanalyse, considrer linterface de maniregrossire 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 dimportantMaude Manouvrier - Univ. Paris Dauphine repris de [BR05] 50

    Analyse de lapplication (17/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    81/132

    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 lestransmettre au systme et inversement [BR05]

    Utilit de dfinir des classes frontires pour isoler la partie internedu systme du monde extrieur [BR05]

    Maude Manouvrier - Univ. Paris Dauphine 51

    Analyse de lapplication (17/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    82/132

    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 lestransmettre au systme et inversement [BR05]

    Utilit de dfinir des classes frontires pour isoler la partie internedu systme du monde extrieur [BR05]

    Maude Manouvrier - Univ. Paris Dauphine 51

    boundary cranGeneralEmploy

    boundary cranDemandeFormation

    Analyse de lapplication (17/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    83/132

    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 lestransmettre au systme et inversement [BR05]

    Utilit de dfinir des classes frontires pour isoler la partie internedu systme du monde extrieur [BR05]

    Maude Manouvrier - Univ. Paris Dauphine 51

    boundary cranGeneralEmploy

    boundary cranDemandeFormation

    Apparition uniquement des souches des classes frontires dans lemodle dapplication, llaboration de ces classes ntant pasencore claire ce stade du processus de dveloppement [BR05]

    !

    Analyse de lapplication (18/28)3. Dterminer les contrleurs

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    84/132

    Contrleur : objet actif grant le contrle au seindune 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 casdutilisation particulier [Roq05]

    Maude Manouvrier - Univ. Paris Dauphine 52

    control ContrleurDemandeFormation

    Analyse de lapplication (19/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    85/132

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

    Analyse de lapplication (20/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    86/132

    4. Vrifier avec le modle dinteractions

    Construire le modle de classes de lapplicationen revoyant les cas dutilisation et enrflchissant leur manire de fonctionner

    A la fin de lanalyse, possibilit de de simulerun cas dutilisation avec les classes de deuxmodles (domaine et application)

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

    Analyse de lapplication (21/28)4. Vrifier avec le modle dinteractions (exemple)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    87/132

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

    Employ

    boundary : cranGeneralEmploy

    initialiser()

    activer()

    boundary : cranDemandeDeFormation

    control : ContrleurDemandeFormation

    : DemandeDeFormation

    Crer

    Demande ()

    initialiserDemande(emp)

    crer(emp)

    Analyse de lapplication (22/28)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    88/132

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    89/132

    Bons candidats pour les diagrammes dtats : les classes delinterface et les classes contrleurs

    2. Trouver les vnementstudier 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    90/132

    Bons candidats pour les diagrammes dtats : les classes delinterface et les classes contrleurs

    2. Trouver les vnementstudier 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 donnesRegroupements de donnes significatifs qui forment des tats sujets des

    vnements Pour le modle de lapplication : sens inverse

    Concentration du modle dapplication sur les comportementslaboration de cas dutilisation relevant des vnements

    !

    Analyse de lapplication (24/28)3. Construire des diagrammes dtats [BR05]

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    91/132

    Construire un diagramme dtats pour chaque classedapplication ayant un comportement temporel

    Envisager un diagramme de squence pour chaqueclasse ayant un comportement temporel

    Diagramme dtats initial = squences dvnementset dtats

    Correspondance entre chaque scnario oudiagramme de squences et un chemin dans lediagramme dtats

    Diagramme dtats complet Prise en compte detous les scnarios et traitement de tous lesvnements pouvant affecter un tat

    Maude Manouvrier - Univ. Paris Dauphine 58

    Analyse de lapplication (25/28)

    3 C i d di d ( l )

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    92/132

    3. Construire des diagrammes dtats (exemple)

    Maude Manouvrier - Univ. Paris Dauphine 59

    Inexploit

    EnInitialisationDeDemande

    initialiserDemande(emp)annulerDemande

    crerDemande(emp)

    valider(dateDuJour)

    Diagrammedtats initialpour lecontrleur dedemandes deformation

    ( complter)

    annulerDemande/ annuler les

    variablesutilises

    EnregistrementDeDemandedo / envoyer mail au responsableet afficher message lemploy

    dconnexionEmploy

    EnCrationDeDemande

    Analyse de lapplication (26/28)4. Vrifier avec les autres diagrammes dtats

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    93/132

    Vrifier la compltude et la cohrence de chaque diagramme dtats etvrifier la cohrence entre les vnements de diffrents diagrammes

    5. Vrifier avec le modle de classesVrifier la cohrence avec le modle de classes du domaine et celui delapplication

    6. Vrifier avec le modle dinteractions Comparer le modle dtats avec les scnarios du modle

    dinteractions

    Simuler chaque chaque squence manuellement et vrifier le refletcorrect du comportement sur le diagramme dtats

    En cas de dcouverte derreur, modifier le diagramme dtats ou lesscnarios

    Identifier les chemins lgitimes dans le modle dtats (scnariossupplmentaires) et vrifier quils ont un sens

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

    Analyse de lapplication (27/28)

    Aj t d ti [BR05]

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    94/132

    Ajouter des oprations [BR05] :1. Oprations issues du modle de classes

    Inutile de reprsenter les lectures ou critures des attributsou de liens dassociations = oprations implicites

    2. Oprations issues des cas dutilisation

    Correspondance entre les oprations et les activits3. 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 immdiatMaude Manouvrier - Univ. Paris Dauphine 61

    Analyse de lapplication (28/28)DemandeDeFormation

    dateEmission: Date

    dateValidit: Date

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    95/132

    Maude Manouvrier - Univ. Paris Dauphine 62

    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 dunemme 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)DemandeDeFormation

    dateEmission: Date

    dateValidit: Date

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    96/132

    Maude Manouvrier - Univ. Paris Dauphine 62

    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 dunemme opration largir la dfinition dune opration pour englober ses variations et les

    cas particuliers Utiliser lhritage pour rduire le nombre doprations

    Oprations demise jourdattributs ou

    de liens nedevant pasapparatre lorsde lanalyse

    Analyse : rsum (1/2) Objectif de lanalyse : comprendre un problme afin

    de pouvoir dfinir une conception correcte du

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    97/132

    de pouvoir dfinir une conception correcte dusystme

    Capture des proprits essentielles du problme sansintroduire dartefacts dimplmentation

    2 phases : Analyse du domaine :

    Capture de la connaissance gnrale dune application

    Traduction en modle de classes, parfois dtats, rarementdinteractions

    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 dtatsMaude Manouvrier - Univ. Paris Dauphine repris de [BR05] 63

    Analyse : rsum (2/2)

    Importance de labstraction tout au long de lanalyse [BR05] :

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    98/132

    Importance de l abstraction tout au long de l analyse [BR05] : Rflchir de manire large en construisant les modles

    Ne pas lier lapplication des pratiques mtier arbitraires et pouvantchanger dans le temps

    Essayer de trouver une souplesse anticipant les futures volutions etpermettant de sy adapter

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

    Employ:Systme

    crerDemande()

    Employ:???

    crerDemande()

    :???

    Systme vucomme unebote noire

    Objets logicielsinternes au systme

    Conception du systme (1/11)

    Analyse : le quoi indpendamment du

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    99/132

    Analyse : le quoi, indpendamment ducomment

    Conception (design) : le comment, avecdes prises de dcisions, dans un premiertemps 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    100/132

    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 auproblme

    5. Allouer les sous-systmes aux quipements matriels

    6. Grer le stockage des donnes7. Grer les ressources globales

    8. Choisir une stratgie de contrle du logiciel

    9. Traiter les cas limites10. Arbitrer les priorits

    11. Slectionner un style architectural

    Maude Manouvrier - Univ. Paris Dauphine 66

    Conception du systme (3/11)

    1 Estimer les performances du systmeObj tif dt i l f i bilit d t

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    101/132

    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,

    frameworketpattern

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

    Conception du systme (4/11)

    Bibliothque [BR05] : collection de

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    102/132

    Bibliothque [BR05] : collection declasses 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 :

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    103/132

    Sous systme : Dfinition cohrente de traiter une partie du problme

    Ensemble de classes, dassociations, doprations,

    dvnements, de contraintes, relis et ayant des interfaces biendfinies (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 sansaffectation 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)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    104/132

    (suite)

    Dcomposition en couches :

    Construction dune couche en terme de celles qui setrouvent en-dessous et fournissant une base dimplmentation pour celles se situant au-dessus

    Dcomposition en partitions :Division dun systme en sous-systmes indpendantset faiblement coupls, chacun fournissant un type deservice

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    105/132

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

    yPrsentation

    IHM

    Resp. FormationIHM

    Employ

    layer Logique applicative

    layer Logique mtier

    Comptabilit Demandes

    Catalogue

    Exemple darchitectureen couches pour lesystme de gestion dedemandes de formation

    Conception du systme (8/11)4. Identifier la concurrence

    Concurrence = deux ou plusieurs activits ou

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    106/132

    pvnements dont lexcution peut se chevaucher dans letemps

    Identifier la concurrence intrinsque laide du modledtats Dcomposition en sous-systmes de prfrence

    indpendants Threadde contle : chemin dexcution unique dans

    un ensemble de diagrammes dtats o un seul objet estactif la fois

    Dfinir les tches concurrentes en groupant des objetsnon concurrents dans un mme threadde contle (outche)

    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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    107/132

    ) gb) Arbitrer entre matriel et logicielc) Allouer des tches aux processeurs

    d) Choisir lorganisation et la forme de connexion desdiffrentes units physiques (topologie des connexions,units redondantes, communications)

    6. Grer le stockage des donnesStructure de donnes en mmoire, fichiers ou bases dedonnes

    5. Grer les ressources globalesUnits physiques (ex. processeurs), espaces (ex. espacedisques), noms logiques (ex. noms de fichiers ou declasses), 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    108/132

    lextrieur entre les objets du systme

    Contrle interne : flux dvnements au sein dun

    processus9. 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 t l f i bl l t d d

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    109/132

    excute en une seule fois sur un ensemble complet de donnesdentres

    Transformation continue : Transformation oprecontinuellement sur des donnes dentres variant

    Interface interactive : Systme domin par des interactionsexternes

    Simulation dynamique : Systme simulant lvolution desobjets du monde rel

    Systme temps rel : Systme domin par des contraintes detemps strictes

    Gestionnaire de transactions : Systme avec pour rle lestockage et la mise jour de donnes, et impliquant souvent desaccs concurrents provenant de diffrents emplacementphysiques

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

    Conception des classes (1/13)

    Analyse : dtermination de ce qui devra

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    110/132

    yse qtre ralis par limplmentation

    Conception du systme : dtermination du plan dattaque

    Conception des classes :

    Finalisation de la dfinition des classes et desassociations

    Choix des algorithmes des oprations

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

    Conception des classes (2/13)

    Conceptions des classes

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    111/132

    p

    Ajout de dtails et prise de dcisions fines

    Choix des diffrentes faons dimplmenter lesclasses danalyse

    Ncessit davoir plusieurs itrations desniveaux 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] :

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    112/132

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

    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 niveau5. Remanier le modle pour obtenir une conception plus nette

    6. Optimiser les chemins daccs aux donnes

    7. Rifier les comportements devant tre manipuls8. 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 etservices de bas niveau

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    113/132

    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 etservices de bas niveau

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    114/132

    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 etservices de bas niveau

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    115/132

    services de bas niveau

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

    Fonctionnalits dsires

    Ressources disponibles

    ?Fosslments intermdiaires

    Conception des classes (5/13)

    2. Raliser les cas dutilisation

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    116/132

    Cas dutilisation = dfinition dun comportement maispas de sa ralisation

    Conception choix entre les diffrentes options etprparation de limplmentation

    tapes :

    a) Dresser la liste des responsabilits dun cas dutilisation

    b) Regrouper les responsabilits en groupes cohrents uneseule opration de bas niveau pour raliser les responsabilitsdun 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    117/132

    a) Choisir des algorithmes qui minimisent le cotdimplmentation 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 facilitdimplmentation et de de comprhension, et de la souplesse

    b) Slectionner les structures de donnes appropries auxalgorithmes

    Utilisation de classes conteneurs (bags, ensembles, tableaux,

    listes, files, piles, dictionnaires, arbres etc.)

    c) Dterminer de nouvelles classes et oprations internesen 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 debas niveau par les oprations de haut niveau

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    118/132

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    119/132

    Refactoring: processus consistant modifier la structure interne dun

    programme pour amliorer sa conception sans en changer lesfonctionnalits 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 lesclasses et les oprations au final satisfaction de tousleurs 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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    120/132

    Ne pas prendre en compte lefficacit prmaturment

    Bien comprendre la logique de fonctionnement dusystme avant de penser loptimiser

    tapes suivre [BR05] :

    Fournir des chemins daccs efficacesPar ajout dassociations redondantes

    Rorganiser les calculs pour amliorer lefficacit

    Sauvegarder des calculs intermdiaires pour viterde refaire des calculs

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

    Conception des classes (10/13)6. Optimiser la conception (exemple)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    121/132

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

    Rponse

    date : Date1

    -demandeur1

    Session(from Catalogue)

    est inscrit

    0..*

    0..* 0..*

    1

    0..1

    Motif : String

    Dsaccord

    donnelieu

    Employ

    nom : Stringprnom : Stringservice : Stringfonction : Stringemail : Email

    Inscription

    date : Date

    estsatisfaite

    par

    0..1

    Demande de Formation

    dateEmission : DatedateValidit : Date

    ElementCatalogue(from Catalogue)

    Accord

    conce

    rne

    0..*

    1

    -participant

    Conception des classes (10/13)6. Optimiser la conception (exemple)

    /nAPasObtenu

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    122/132

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

    Rponse

    date : Date1

    -demandeur1

    Session(from Catalogue)

    est inscrit

    0..*

    0..* 0..*

    1

    0..1

    Motif : String

    Dsaccord

    donnelieu

    Employ

    nom : Stringprnom : Stringservice : Stringfonction : Stringemail : Email

    Inscription

    date : Date

    estsatisfaite

    par

    0..1

    Demande de Formation

    dateEmission : DatedateValidit : Date

    ElementCatalogue(from Catalogue)

    Accord

    conce

    rne

    0..*

    1

    -participant

    / aObtenu

    1

    0..*

    1

    0..

    *

    Conception des classes (11/13)

    7. Rifier les comportements Rifi ti i d bj t l

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    123/132

    Rification = promouvoir au rang dobjet quelquechose ntant pas un objet

    Rification dun comportement encodage ducomportement dans un objet et dcodage lors de sonexcution

    Existence de patterns comportementaux rifiant lescomportements

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

    Conception des classes (12/13)8. Ajuster lhritage

    tapes suivre [BR05] :

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    124/132

    Rorganiser les classes et les oprations pouraccrotre lhritage

    Extraire les comportements communs plusieursgroupes de classes Cration de super-classes abstraites

    Employer la dlgation pour partager lescomportements en cas dimpossibilit dutiliserlhritage du point de vue smantique Dlgation = Mcanisme dimplmentation o un objet,

    disposant dune opration, y rpond en la transmettant unautre 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

    i t

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    125/132

    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, etaccs aux donnes

    Mthode dimplmentation = encodage de lalgorithme sans prise dedcision, ni dmission dhypothses, ni de traitement par dfaut

    Raffiner les packages Dfinir des packages pour les diter et les compiler plus facilement etpour 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

    communMaude Manouvrier - Univ. Paris Dauphine repris de [BR05] 88

    Rsum du processus (1/3)

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    126/132

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

    Rsum du processus (1/3)Spcifications

    initiales dusystme

    mettre des demandes

    UtilisateursDveloppeursManagersExperts mtier

    d

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    127/132

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

    nonc duproblme

    Rsum du processus (1/3)Spcifications

    initiales dusystme

    mettre des demandes

    UtilisateursDveloppeursManagersExperts mtier

    d

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    128/132

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

    nonc duproblme

    Construire des modlesAnalyse :

    Analyse du domaineAnalyse de lapplication

    Entretiens utilisateursExprienceSystmes apparents

    Modle de classesModle dtatsModle dinteractions

    Rsum du processus (1/3)Spcifications

    initiales dusystme

    mettre des demandes

    UtilisateursDveloppeursManagersExperts mtier

    nonc du

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    129/132

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

    nonc duproblme

    Construire des modlesAnalyse :

    Analyse du domaineAnalyse de lapplication

    Entretiens utilisateursExprienceSystmes apparents

    Modle de classesModle dtatsModle dinteractions

    Dtailler les modles

    Conception :

    Conception du systmeConception des classes

    ArchitectureCas dutilisation

    AlgorithmesOptimisation

    Rsum du processus (1/3)Spcifications

    initiales dusystme

    mettre des demandes

    UtilisateursDveloppeursManagersExperts mtier

    nonc du

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    130/132

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

    nonc duproblme

    Construire des modlesAnalyse :

    Analyse du domaineAnalyse de lapplication

    Entretiens utilisateursExprienceSystmes apparents

    Modle de classesModle dtatsModle dinteractions

    Dtailler les modles

    Conception :

    Conception du systmeConception des classes

    ArchitectureCas dutilisation

    AlgorithmesOptimisation

    ! 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

    l f di

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    131/132

    analyse approfondie

    Analyse : construction de modles pour bien comprendreles exigences en termes de ce qui doit tre ralis et non decomment 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 lesutilisateurs

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

  • 8/2/2019 SpecificationEtConceptionUML - Copie

    132/132


Recommended