SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
La modélisation d’un site marchand avec UML :
une démarche agile mise en œuvre avec Together




09 Octobre 2003   Modéliser un site marchand avec UML et Together   1
1 : Introduction




                                               Concevoir
© 2003 – Valtech Training




                                               09 Octobre 2003
Présentations

        Intervenant : Pascal Roques
              Consultant senior chez Valtech Training
              Responsable des formations autour d’UML


              Auteur de 3 ouvrages sur UML parus chez Eyrolles :
      UML en action - 2e édition                UML par la pratique             UML - Modéliser un site
      De l'analyse des besoins à la             Cours et exercices Java et C#   e-commerce
      conception en Java                        - 2ème édition                  Les Cahiers du Programmeur




09 Octobre 2003                       Modéliser un site marchand avec UML et Together                        3
Notre programme



    1. Introduction
    2. Spécification des exigences : les cas d’utilisation
    3. Analyse du domaine : les objets « métier »
    4. Conception objet et passage au code
    5. Conclusion

    Et des exemples de diagrammes
    réalisés avec Together®


09 Octobre 2003   Modéliser un site marchand avec UML et Together   4
UML

     UML

            Langage de modélisation graphique destiné à :
                  comprendre et décrire des besoins,
                  spécifier et documenter des systèmes,
                  esquisser des architectures logicielles,
                  concevoir des solutions concrètes,
                  communiquer des points de vue.
     Standardisé par l’OMG
            www.omg.org
            Mars 2003 : UML 1.5
            Bientôt UML 2.0 ?

09 Octobre 2003               Modéliser un site marchand avec UML et Together   5
Les diagrammes d’UML

     UML 1.5 propose 9 types de diagrammes :
            Diagramme de cas d’utilisation
                                                                            Fonctionnel
            Diagramme de classes
            Diagramme d’objets                                              DIAGRAMME DE CAS
                                                                               D'UTILISATION



            Diagramme de séquence
            Diagramme de collaboration                 Statique                                     Dynamique
            Diagramme d’activités                    DIAGRAMME DE CLASSES                           DIAGRAMME D'ÉTATS
                                                      DIAGRAMME D'OBJETS                          DIAGRAMME D'ACTIVITÉS

            Diagramme d’états                       DIAGRAMME DE COMPOSANTS
                                                    DIAGRAMME DE DÉPLOIEMENT
                                                                                                 DIAGRAMME DE SÉQUENCE
                                                                                               DIAGRAMME DE COLLABORATION



            Diagramme de composants
            Diagramme de déploiement
09 Octobre 2003        Modéliser un site marchand avec UML et Together                                                    6
Le processus proposé

        Un processus agile pour la
                                                                                                                 Domain
                                                                                         UC Diagram              Model                     Class Diagram


                                                                                                    Foo




        modélisation de site marchand,                                                             Foo2



                                                                                                                   Operation
                                                                                                                   Contracts




        fondé sur UP (Unified Process) :
                                                                                     High Level UC          Name:
                                                                                                            Responsibilites:             Collaboration Diagram
                                                                               Name:
                                                                               Actors:                                                           1:bar()
                                                                               Description:                 Preconditions:

                                                                                                            Postconditions:
                                                                                                                                         foo()




                  Conduit par les cas d’utilisation,
                                                                                                                                                 2:baz()
                                                                                    Expanded UC
                                                                              Name:                            System Sequence
                                                                              Actors:                               Diagram
                                                                              Description:
                                                                                                                               :System
                                                                              TCOE:
                                                                              Actor Action   Sys Response




                  Léger et restreint,
                                                                                                                   foo()
                                                                              1. Abcde        2. Zidjen
                                                                              3. Scndi
                                                                                                                  foo2()




                  Mais sans négliger les activités de
                  modélisation en analyse et en conception,
                  Basé sur un sous-ensemble nécessaire et
                  suffisant du langage UML.

        Pour trouver le meilleur rapport
        qualité / prix !
09 Octobre 2003             Modéliser un site marchand avec UML et Together                                                                                      7
L’étude de cas
     Une librairie en ligne
             Société fictive : jeBouquine.com
                  But : prendre place sur le marché de la librairie en ligne
                  Besoin : inventer rapidement des éléments différentiateurs
                  Le site Web devra donc être facilement évolutif

     Objectifs principaux :
     permettre aux internautes de …
             Chercher des ouvrages par thème, auteur, mot-clef, etc.,
             Se constituer un panier virtuel,
             Pouvoir commander et payer directement sur le Web.



09 Octobre 2003               Modéliser un site marchand avec UML et Together   8
L’étude de cas
     Exigences fonctionnelles : gestion du panier




09 Octobre 2003   Modéliser un site marchand avec UML et Together   9
L’étude de cas
  Exigences
  fonctionnelles :
  commande
         Accès facile au
         formulaire de
         commande




09 Octobre 2003      Modéliser un site marchand avec UML et Together   10
2 : Spécification des exigences -
                                  les cas d’utilisation




                                                          Concevoir
© 2003 – Valtech Training




                                                          09 Octobre 2003
La démarche
        Comment décrire les besoins ?




09 Octobre 2003   Modéliser un site marchand avec UML et Together   12
Acteurs et cas d’utilisation
        Exemples de diagramme de cas d’utilisation

                                             e-librairie (administration)


                                                                                  Nouveautes



                                               Maintenir le catalogue
                  Administrateur



                                                                                 Service logistique



                   Webmaster                     Administrer le site




09 Octobre 2003                Modéliser un site marchand avec UML et Together                  13
Acteurs et cas d’utilisation
                                              e-librairie (user)

                                              Creer un compte


                                         Rechercher des ouvrages
                  Internaute
                                          Gerer son panier virtuel

                                                                                 Systeme d'autorisation
                                                                                 de paiement
                                          Commander des livres



                  Client                      Gerer son compte
                                                                                    Service logistique

                                             Gerer ses commandes



                                        Suivre les commandes en cours




09 Octobre 2003                Modéliser un site marchand avec UML et Together                            14
Les cas d’utilisation
        Chaque cas d’utilisation va être décrit
        textuellement
              Par une description narrative dont le plan-type n’est pas
              standardisé
              Contient en général :
                  Préconditions et postconditions
                  Scénario nominal
                  Scénarios alternatifs
                  …

        On peut compléter cette description textuelle
        par des diagrammes dynamiques simples


09 Octobre 2003              Modéliser un site marchand avec UML et Together   15
Les cas d’utilisation
        Exemple de description de cas d’utilisation
           Titre : Commander des livres
           Acteurs : Client (principal), Service d’autorisation de paiement, service logistique (secondaires).

           Préconditions :
           Le panier du client n’est pas vide et il a pu accéder à au formulaire de commande (voir le cas d’utilisation Gérer son panier)
           Postconditions :
           Une commande a été enregistrée et transmise au service Logistique.

           Scénario nominal :
           1.Le Système affiche un récapitulatif de la commande.
           2.Le Client valide sa commande.
           3.Le Système ouvre une connexion sécurisée
           4.Le Client saisit un numéro de carte de crédit avec son type et sa date de validité.
           5.Le Système récapitule les infos sur la transaction.
           6.Le Client valide sa commande.
           7.Le Système envoie les informations cryptées au système d’autorisation de paiement.
           8.Le Système d’autorisation de paiement valide la transaction.
           9.Le Système confirme la prise de commande au client.
           10.Le Système envoie la commande validée au service Logistique.
           Extensions :
           2-6a.    L’Internaute annule sa commande.
                                      Le Système revient sur l’affichage du panier et le cas d’utilisation est terminé.
           3a.      Le système n’arrive pas à ouvrir une connexion sécurisée.
                                      Le cas d’utilisation se termine en erreur.
           8a.      Le Système d’autorisation de paiement ne valide pas la transaction.
                                      Le cas d’utilisation se termine en erreur.

           Exigences supplémentaires :
           Pour garantir la sécurisation et la confidentialité des échanges, il est impératif que l'envoi des données se fasse de manière cryptée (protocole SSL).
           Le passage de commande est disponible 24h/24, 7j/7.




09 Octobre 2003                             Modéliser un site marchand avec UML et Together                                                                          16
Le diagramme de séquence système

       Le diagramme de séquence « système »
            illustre la succession temporelle des événements causés
            par des messages venant des acteurs
            le système est considéré comme une boîte noire
            on montre ses interactions avec les acteurs, dans le
            cadre d’un scénario d’un cas d’utilisation
                  Acteur principal à gauche
                  Acteurs secondaires éventuels à droite du système


       En général très bien accepté par les experts
       métier


09 Octobre 2003              Modéliser un site marchand avec UML et Together   17
Le diagramme de séquence système
                                                                    e - lib r airie



  Exemple de         c lie n t                                                                      syst au t o p aie me n tse r vic e logist iq u e


  diagramme                 acces formulaire de commande


  de séquence                                    recapitulatif commande


  « système »               passage de commande

  pour un cas                           ouverture connexion securisee

  d’utilisation             saisie infos carte

                                                 recapitulatif transaction     verification carte


                            validation commande
                                                                             infos cryptees

                                                                                       transaction validee

                                             confirmation commande
                                                                             nouvelle commande




09 Octobre 2003   Modéliser un site marchand avec UML et Together                                                                       18
Le diagramme d’activités
                          Client                    e-librairie



   Exemple de
                                             affichage commande
   diagramme       Passage de commande

   d’activités                            Ouverture connexion securisee

   pour un cas       Saisie infos carte


   d’utilisation
                                             Verification carte


                                                                  [NOK]

                                                       [OK]
                                          Affichage recapitulatif
                                                                          Systeme d'autorisation de
                   Validation commande                                    paiement

                                               Cryptage des infos
                                                                                Validation transaction



                       Command e                                                          [NOK]
                                                                            [OK]
                                                Consolidation
                                                                                                          Service logistique




                                                                                                         Traitement commande




09 Octobre 2003    Modéliser un site marchand avec UML et Together                                                    19
3 : Analyse du domaine
                             - les objets « métier »




                                                  Concevoir
© 2003 – Valtech Training




                                                  09 Octobre 2003
Le modèle du domaine
     Un modèle du domaine représente des concepts
     existant dans un domaine du monde réel.
          choses tangibles, physiques (Livre, Client)
          concepts abstraits, logiques (Thème, Panier)
     Il poursuit deux objectifs importants :
          aider à la compréhension d’un domaine complexe
          dégager un ensemble de classes et associations
          candidates pour la conception objet


     Le modèle du domaine utilise la notation UML
     des diagrammes de classes (statique)

09 Octobre 2003       Modéliser un site marchand avec UML et Together   21
Le modèle du domaine
     Exemple de diagrammes de classes pour la
     maintenance du catalogue
             Catalo gue
                          1




                                        1..*
                                                                                                   Ed ite ur
                                        T heme
                                                      1..*
                                                                                                nom
                                       nom                                                      pays
                           0..*
                  sousTheme
                                               0..1                   1..*                         1
                                                                         Livr e

                                                                     titre
                                                                                  1..*   est edite par
                                                                     sousTitre
                               Aut eur                               ISBN
                              nom            1..*     a ecrit   1..* langue
                                                                     dateParution
                              prenom                                 prix


09 Octobre 2003                    Modéliser un site marchand avec UML et Together                             22
Le modèle du domaine
     Exemple de diagrammes de classes pour le
     passage de commande
                     P anier                                  Command e
                                 1      donne lieu a 0..1
                  total                                      date
                                                             modeReglement
                                                             delaiLivraison
                                                             fraisDePort
                                                             montant

                                                               0..* commandesEnCours

                                                  est passee par

                                                                1
                  Cart eBanc aire                               Client

                  type           0..1                       1 nom
                  numero                                      prenom
                  dateValidite                                email



09 Octobre 2003           Modéliser un site marchand avec UML et Together              23
Le modèle du domaine
                              passer commande                       validation[incomplete]
                                                    Initialisee




     On peut aussi                     validation[complete]
                                                                           annulation

     avoir besoin
     du diagramme                                       Validee   annulation


     d’états…                           prise en compte
                                                                         annulation


     Ex. : la classe    colis perdu ou incorrect En preparation

     Commande
                          Incident       incident mission         depart mission
                                                                                                    after(6 mois)

                                     incident termine
                                                                               livraison[OK]
                                                 En cours de livraison                         Livree

                              livraison[NOK]

09 Octobre 2003   Modéliser un site marchand avec UML et Together                                       24
4 : Conception objet –
                              passage au code




                                                Concevoir
© 2003 – Valtech Training




                                                09 Octobre 2003
La démarche
        De l’analyse à la conception




09 Octobre 2003   Modéliser un site marchand avec UML et Together   26
La démarche
        L’architecture logique

                   <<layer>>
                  P re se n t at ion



                                       <<layer>>
                                       A p p lic atio n




                                                           <<layer>>
                                                             Me t ie r
                                                          Catalo gu e
                                                          Clie n t
                                                          P an ie r



                                                                                <<layer>>
                                                                         S e r vic e s te c h n iq u e s



09 Octobre 2003            Modéliser un site marchand avec UML et Together                                 27
Les diagrammes
   Exemple : diagramme de séquence
                  Client                                                       EcranPanier       ControleurCommandes           ControleurPanier                          S yste me d 'aut or isatio S er vice logist iq ue
                                                                                                                                                                                                    n

                      passerCommande():void
                                                                                         passerCommande():void
                                                                                                             panier:=getPanier():Panier




                                                                                                              create(panier)
                                                                                                                                                  no uvelle Co mmand e
                                                                                                                                                     Commande

                                                                                create(nouvelleCommande)

                                         EcranCommande




                      effectuerPaiement():void
                                                  effectuerPaiement():void


                                                                                                    create

                                                           EcranPaiement




                      saisirInfosCarte():void
                                                                     verifCarte():void




                      validationCommande():void
                                                  validationCommande():void
                                                                                                              infos cryptees


                                                                                                              nouvelleCommande




09 Octobre 2003                           Modéliser un site marchand avec UML et Together                                                                                                                28
Les diagrammes
        Exemple : diagramme de collaboration généré
                                                                                                                               <<actor>>
                                                       <<actor>>                                                         S yste me d 'aut or isatio n
                                                   S er vice logist iq ue


                                                                                          4.1.1: infos cryptees
                                                      4.1.2: nouvelleCommande



                                           2.1.1: create                                                      1.1.1: panier:=getPanier():Panier
                                                                                                                                                            <<control>>
                                           3.1: verifCarte():void                                                                                         :Cont r oleu rP anie r
                                                                                    <<control>>
 <<boundary>>                                                                   :Cont r oleu rComman d es
:Ec ran Paie ment


                                                  1.1: passerCommande():void                                                      1.1.2: create(panier)




                                                                                            2.1: effectuerPaiement():void
       3: saisirInfosCarte():void                                                           4.1: validationCommande():void
                                                                                            1.1.3: create(nouvelleCommande)
                                                     <<boundary>>
                                                     :Ec ran Pan ier                                                                                   <<entity>>
            1: passerCommande():void                                                                                                         no uvelle Co mmand e :Co mmand e




                                       2: effectuerPaiement():void
                                       4: validationCommande():void
  <<actor>>                                                                         <<boundary>>
   Client                                                                         :Ec ran Co mmand e


  09 Octobre 2003                                Modéliser un site marchand avec UML et Together                                                                    29
La démarche
    De l’analyse à la conception
          Le concepteur objet applique des “Design Patterns”
                  Singleton
                  State
                  Factory
                  Proxy
                  …




09 Octobre 2003               Modéliser un site marchand avec UML et Together   30
Les diagrammes
                   ...P re sent at ion.Ecr anCommand e                                       <<singleton>>
                                                                               ...Ap p lic atio n.Cont r oleu rComman d es            ...P re sent at ion.Ecr anP aiemen t

                   +effectuerPaiement():void                                   -instance:ControleurCommandes=null
                   +validationCommande():void                                                                                         +saisirInfosCarte():void
                                                                               #ControleurCommandes()                                 +validationCommande():void
                                                                               +passerCommande():void
                                                                               +effectuerPaiement():void
    Exemple :                                                                  +verifCarte():void
                                                                               +validationCommande():void
                                                                               +getInstance():ControleurCommandes
    diagramme de
    classes de                                                   0..*
                                                                  Command e                                           0..*
    conception                                               -date:Date
                                                                                                                      Client
                                                             -modeReglement:int                                -nom:int
                                                             -delaiLivraison:int 0..*                        1 -prenom:int
                                                             -fraisDePort:int    commandesEnCours              -email:int
                             <<singleton>>                   -montant:int
                  ...Ap p lic atio n.Cont r oleu rP anie r                                                      +saisirInfos():void
                                                             +valider():void
                  -instance:ControleurPanier=null                                                                      1

                  #ControleurPanier()
                  +getPanier():Panier
                  +getInstance():ControleurPanier                        <<parameter>>

                                                                                                                   0..1
                                                                                                                  Cart eBanc aire

                                                                   P anier                                        -type:int
                                                             1
                                                                                                                  -dateValidite:int
                                                                 -total:int                                       -numero:int

                                                                                                                  +verifier():void


09 Octobre 2003                             Modéliser un site marchand avec UML et Together                                                                   31
La démarche
        De la conception préliminaire à la conception
        détaillée
              Dialogues
                  Pages PHP
                  JSP + FormBean + Page HTML
                  ASP.NET + WebForms
              Contrôles
                  Pages PHP
                  Servlet + actions
                  CodeBehind …
              Entités
                  Classes ou bibliothèques de fonctions PHP
                  EJB ou JavaBeans
                  Classes C# ou Serviced Components

09 Octobre 2003              Modéliser un site marchand avec UML et Together   32
Passage au code Java




09 Octobre 2003   Modéliser un site marchand avec UML et Together   33
5 : Conclusion




                                             Concevoir
© 2003 – Valtech Training




                                             09 Octobre 2003
La démarche
        Comment passer des besoins au code ?




09 Octobre 2003   Modéliser un site marchand avec UML et Together   35
La démarche




09 Octobre 2003   Modéliser un site marchand avec UML et Together   36
L’outillage
                                                                                                                                                                                              e - lib r airie




        Together !                                                                                                                            c lie n t


                                                                                                                                                      acces formulaire de commande

                                                                                                                                                                           recapitulatif commande
                                                                                                                                                                                                                                syst au t o p aie me n tse r vic e logist iq u e




                                                                                                                                                      passage de commande

                                                                                                                                                                  ouverture connexion securisee


                                                                                                                                                      saisie infos carte
                                                 e-librairie (user)
                                                                                                                                                                           recapitulatif transaction     verification carte

                                                 Creer un compte                                                                                      validation commande
                                                                                                                                                                                                       infos cryptees                                                                                                                                                                                                              <<actor>>
                                                                                                                                                                                                                                                                                                                                          <<actor>>                                                                          S yste me d 'aut or isatio n
                                                                                                                                                                                                                   transaction validee                                                                                                S er vice logist iq ue
                                        Rechercher des ouvrages
                                                                                                                                                                       confirmation commande
     Internaute                  <<extend>>                       <<extend>>                                                                                                                           nouvelle commande
                                                                                                                                                                                                                                                                                                                                                                                            4.1.1: infos cryptees
                                                                                                                                                                                                                                                                                                                                         4.1.2: nouvelleCommande
                                          Gerer son panier virtuel

                                                          <<extend>>                       Systeme d'autorisation                                                                                                                                                                                                             2.1.1: create                                                                     1.1.1: panier:=getPanier():Panier
                                                                                                                                                                                                                                                                                                                                                                                                                                                                <<control>>
                                                                                                                                                                                                                                                                                                                              3.1: verifCarte():void
                                                                                           de paiement                                                                                                                                                                                                                                                                                <<control>>                                                             :Cont r oleu rP anie r
                                          Commander des livres                                                                                                                                                                                                                      <<boundary>>                                                                                  :Cont r oleu rComman d es
                                                                                                                                                                                                                                                                                   :Ec ran Paie ment

                                                            <<extend>>                                                                                                                                                                                                                                                               1.1: passerCommande():void                                                                       1.1.2: create(panier)
     Client                                      Gerer son compte
                                                                                               Service logistique
                                                                                                                                                                                                                                                                                                                                                                                              2.1: effectuerPaiement():void
                                               Gerer ses commandes                                                          <<layer>>                                                                                                                                                     3: saisirInfosCarte():void                                                                          4.1: validationCommande():void
                                                                                                                                                                                                                                                                                                                                                                                              1.1.3: create(nouvelleCommande)
                                                                                                                                                                                                                                                                                                                                        <<boundary>>
                                                                                                                           P re se n t at ion                                                                                                                                                  1: passerCommande():void                 :Ec ran Pan ier                                                                                                   <<entity>>
                                                                                                                                                                                                                                                                                                                                                                                                                                                no uvelle Co mmand e :Co mmand e



                                       Suivre les commandes en cours

                                                                                                                                                                                                                                                                                                                          2: effectuerPaiement():void
                                                                                                                                                                       <<layer>>                                                                                                                                          4: validationCommande():void
                                                                                                                                                                       A p p lic atio n                                                                                              <<actor>>
                                                                                                                                                                                                                                                                                      Client
                                                                                                                                                                                                                                                                                                                                                                                      <<boundary>>
                                                                                                                                                                                                                                                                                                                                                                                    :Ec ran Co mmand e




       Catalo gue                                                                                                                                                                                        <<layer>>
                    1                                                                                                                                                                                      Me t ie r
                                                                                                                                                                                                                                                                                                   ...P re sent at ion.Ecr anCommand e                                                 <<singleton>>
                                                                                                                                                                                                        Catalo gu e                                                                                                                                                      ...Ap p lic atio n.Cont r oleu rComman d es                       ...P re sent at ion.Ecr anP aiemen t
                                                                                                                                                                                                        Clie n t
                                                                                                                                                                                                        P an ie r                                                                                  +effectuerPaiement():void                                             -instance:ControleurCommandes=null
                                  1..*                                                                                                                                                                                                                                                             +validationCommande():void                                                                                                              +saisirInfosCarte():void
                                                                                                Ed ite ur                                                                                                                                                                                                                                                                #ControleurCommandes()                                            +validationCommande():void
                                  T heme                                                                                                                                                                                                                                                                                                                                 +passerCommande():void
                                                   1..*
                                                                                             nom                                                                                                                                                                                                                                                                         +effectuerPaiement():void
                                 nom                                                         pays                                                                                                                                                                                                                                                                        +verifCarte():void
                       0..*
              sousTheme                                                                                                                                                                                                                                  <<layer>>                                                                                                       +validationCommande():void
                                                                                                                                                                                                                                                                                                                                                                         +getInstance():ControleurCommandes
                                          0..1                        1..*                      1
                                                                                                                                                                                                                                                  S e r vic e s te c h n iq u e s
                                                                         Livr e
                                                                                                                                                                  validation[incomplete]
                                                                                                                                                                                                                                                                                                                                                           0..*
                                                                                                                          passer commande
                                                                  titre                                                                          Initialisee                                                                                                                                                                                                Command e                                                   0..*
                                                                               1..*   est edite par
                                                                  sousTitre                                                                                                                                                                                                                                                                                                                                             Client
                         Aut eur                                  ISBN                                                                                                                                                                                                                                                                                 -date:Date
                                                                                                                                                                                                                                                                                                                                                       -modeReglement:int                                     -nom:int
                        nom             1..*      a ecrit    1..* langue                                                                                                   annulation                                                                                                                                                                  -delaiLivraison:int 0..*                             1 -prenom:int
                                                                  dateParution                                                     validation[complete]
                                                                                                                                                                                                                                                                                                                                                       -fraisDePort:int
                        prenom                                                                                                                                                                                                                                                                                                                                             commandesEnCours                   -email:int
                                                                  prix                                                                                                                                                                                                                                                                                 -montant:int
                                                                                                                                                                                                                                                                                                            <<singleton>>
                                                                                                                                                    Validee    annulation                                                                                                                        ...Ap p lic atio n.Cont r oleu rP anie r                                                                       +saisirInfos():void
                                                                                                                                                                                                                                                                                                                                                       +valider():void
                                                                                                                                                                                                                                                                                                 -instance:ControleurPanier=null                                                                                         1
                                                                                                                                    prise en compte
                                                                                                                                                                                                                                                                                                 #ControleurPanier()
                                                                                                                                                                       annulation
                                                                                                                                                                                                                                                                                                 +getPanier():Panier
                                                                                                                                                                                                                                                                                                 +getInstance():ControleurPanier                                   <<parameter>>
                                                                                                                    colis perdu ou incorrect En preparation
                                                                                                                                                                                                                                                                                                                                                                                                                     0..1
                                                                                                                                                                                                                                                                                                                                                                                                                    Cart eBanc aire
                                                                                                                      Incident       incident mission          depart mission                                                                                                                                                                                P anier                                                -type:int
                                                                                                                                                                                                                after(6 mois)                                                                                                                          1
                                                                                                                                                                                                                                                                                                                                                                                                                    -dateValidite:int
                                                                                                                                 incident termine                                                                                                                                                                                                          -total:int                                               -numero:int
                                                                                                                                                                              livraison[OK]
                                                                                                                                             En cours de livraison                                       Livree
                                                                                                                                                                                                                                                                                                                                                                                                                    +verifier():void
                                                                                                                          livraison[NOK]




09 Octobre 2003                                                                             Modéliser un site marchand avec UML et Together                                                                                                                                                                                                                                                                                                                      37
Fin

      Pour en savoir plus :
            Les Cahiers du Programmeur
            UML : Modéliser un site e-commerce
            P. Roques, Eyrolles, 2002


      Merci de votre attention !

      pascal.roques@gmail.com


09 Octobre 2003        Modéliser un site marchand avec UML et Together   38

Contenu connexe

Tendances

salwfrarapp137.pdf
salwfrarapp137.pdfsalwfrarapp137.pdf
salwfrarapp137.pdfSASarah3
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Ahmed Makni
 
EA et Entreprise Numérique - Rapport Projet 2013
EA et Entreprise Numérique -  Rapport Projet 2013EA et Entreprise Numérique -  Rapport Projet 2013
EA et Entreprise Numérique - Rapport Projet 2013Club Urba-EA
 
2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatique2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatiqueUsmiste Rosso
 
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...Mohamed Cherkaoui
 
Business Intelligence system
Business Intelligence system Business Intelligence system
Business Intelligence system Basma Saad
 
Rapport l’impact des erp sur la performance des multinationales - cas de l’...
Rapport   l’impact des erp sur la performance des multinationales - cas de l’...Rapport   l’impact des erp sur la performance des multinationales - cas de l’...
Rapport l’impact des erp sur la performance des multinationales - cas de l’...Hajar EL GUERI
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFEDonia Hammami
 
gestion de production
gestion de productiongestion de production
gestion de productionsounar
 
l'avant ERP
l'avant ERPl'avant ERP
l'avant ERPCIPE
 
Centres d'Excellence.pptx
Centres d'Excellence.pptxCentres d'Excellence.pptx
Centres d'Excellence.pptxSamsatSam1
 
Cours 20de-20simulation
Cours 20de-20simulationCours 20de-20simulation
Cours 20de-20simulationJihad Makhlouf
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Module Statistique et BI de l’Application ITSPCare’Hosp
Module Statistique et BI de l’Application ITSPCare’HospModule Statistique et BI de l’Application ITSPCare’Hosp
Module Statistique et BI de l’Application ITSPCare’HospAhmed Hamdi
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Addi Ait-Mlouk
 
Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...
Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...
Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...PROMOTECH CEI
 
Système d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxSystème d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxanisanima1
 
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh finiRapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh finiHamza Mefteh
 

Tendances (20)

salwfrarapp137.pdf
salwfrarapp137.pdfsalwfrarapp137.pdf
salwfrarapp137.pdf
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
EA et Entreprise Numérique - Rapport Projet 2013
EA et Entreprise Numérique -  Rapport Projet 2013EA et Entreprise Numérique -  Rapport Projet 2013
EA et Entreprise Numérique - Rapport Projet 2013
 
2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatique2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatique
 
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
 
Business Intelligence system
Business Intelligence system Business Intelligence system
Business Intelligence system
 
Rapport l’impact des erp sur la performance des multinationales - cas de l’...
Rapport   l’impact des erp sur la performance des multinationales - cas de l’...Rapport   l’impact des erp sur la performance des multinationales - cas de l’...
Rapport l’impact des erp sur la performance des multinationales - cas de l’...
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
gestion de production
gestion de productiongestion de production
gestion de production
 
l'avant ERP
l'avant ERPl'avant ERP
l'avant ERP
 
Sap presentation
Sap presentationSap presentation
Sap presentation
 
Centres d'Excellence.pptx
Centres d'Excellence.pptxCentres d'Excellence.pptx
Centres d'Excellence.pptx
 
Cours 20de-20simulation
Cours 20de-20simulationCours 20de-20simulation
Cours 20de-20simulation
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Module Statistique et BI de l’Application ITSPCare’Hosp
Module Statistique et BI de l’Application ITSPCare’HospModule Statistique et BI de l’Application ITSPCare’Hosp
Module Statistique et BI de l’Application ITSPCare’Hosp
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013
 
Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...
Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...
Presentation Soutenance Thèse Professionnelle EI CESI Nancy Management Par Pr...
 
Système d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxSystème d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptx
 
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh finiRapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
 

En vedette

Consommation d'antibiotique dans les élevages en 2012
Consommation d'antibiotique dans les élevages en 2012Consommation d'antibiotique dans les élevages en 2012
Consommation d'antibiotique dans les élevages en 2012M_Ordinateur
 
Matinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, MiraklMatinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, MiraklHiPay Group
 
D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...
D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...
D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...OpenEdition
 
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Michel Kuipers
 
Qu’est ce que c’est sous marin
Qu’est ce que c’est sous marinQu’est ce que c’est sous marin
Qu’est ce que c’est sous marinstewartna
 
Développement du GNL carburant marin_Rapport Maler
Développement du GNL carburant marin_Rapport MalerDéveloppement du GNL carburant marin_Rapport Maler
Développement du GNL carburant marin_Rapport MalerInterconsulaire 909
 
Drones Joaquin Camarra
Drones Joaquin CamarraDrones Joaquin Camarra
Drones Joaquin Camarrajoaquincamarra
 
Cp volcan trinidad & tobago
Cp volcan trinidad & tobagoCp volcan trinidad & tobago
Cp volcan trinidad & tobagoJoseph Nodin
 
Practico
PracticoPractico
Practicototeto
 
Station de cable sous marin sat3 cotonou
Station de cable sous marin sat3 cotonouStation de cable sous marin sat3 cotonou
Station de cable sous marin sat3 cotonouphilippey hounkponou
 
Troisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière interclusterTroisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière interclusterBIHARTEAN
 
Drone A.R
Drone A.RDrone A.R
Drone A.Reidani
 
Blue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovant
Blue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovantBlue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovant
Blue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovantGuillaume CROMER
 
Drone it - retour d'expériences
Drone it - retour d'expériencesDrone it - retour d'expériences
Drone it - retour d'expériencesRaphael Labbé
 
Les drones
Les dronesLes drones
Les dronesdenis
 
Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL...
 Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL... Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL...
Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL...Esperluette & Associés
 
Drone diapositivas
Drone diapositivasDrone diapositivas
Drone diapositivasnuris_hr
 
Strategie federation drone valley 2017
Strategie federation drone valley 2017Strategie federation drone valley 2017
Strategie federation drone valley 2017Bernard Van Lysebetten
 

En vedette (20)

Consommation d'antibiotique dans les élevages en 2012
Consommation d'antibiotique dans les élevages en 2012Consommation d'antibiotique dans les élevages en 2012
Consommation d'antibiotique dans les élevages en 2012
 
Reseaux de capteurs sans fils - WSN
Reseaux de capteurs sans fils - WSNReseaux de capteurs sans fils - WSN
Reseaux de capteurs sans fils - WSN
 
Matinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, MiraklMatinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, Mirakl
 
D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...
D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...
D'autres modèles d'accès ouvert sont possibles | Marin Dacos, Paris, 23 jan...
 
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
 
Qu’est ce que c’est sous marin
Qu’est ce que c’est sous marinQu’est ce que c’est sous marin
Qu’est ce que c’est sous marin
 
Développement du GNL carburant marin_Rapport Maler
Développement du GNL carburant marin_Rapport MalerDéveloppement du GNL carburant marin_Rapport Maler
Développement du GNL carburant marin_Rapport Maler
 
Drones Joaquin Camarra
Drones Joaquin CamarraDrones Joaquin Camarra
Drones Joaquin Camarra
 
Cp volcan trinidad & tobago
Cp volcan trinidad & tobagoCp volcan trinidad & tobago
Cp volcan trinidad & tobago
 
Practico
PracticoPractico
Practico
 
Station de cable sous marin sat3 cotonou
Station de cable sous marin sat3 cotonouStation de cable sous marin sat3 cotonou
Station de cable sous marin sat3 cotonou
 
Troisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière interclusterTroisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
Troisième Oeil du Marin : Projet de collaboration transfrontalière intercluster
 
Drone A.R
Drone A.RDrone A.R
Drone A.R
 
Blue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovant
Blue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovantBlue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovant
Blue Pearl Hotel - Hôtel sous marin - Projet touristique durable innovant
 
Todo sobre los drones
Todo sobre los dronesTodo sobre los drones
Todo sobre los drones
 
Drone it - retour d'expériences
Drone it - retour d'expériencesDrone it - retour d'expériences
Drone it - retour d'expériences
 
Les drones
Les dronesLes drones
Les drones
 
Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL...
 Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL... Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL...
Formation « Piloter son drone & Réaliser des prises de vue aérienne » PIXIEL...
 
Drone diapositivas
Drone diapositivasDrone diapositivas
Drone diapositivas
 
Strategie federation drone valley 2017
Strategie federation drone valley 2017Strategie federation drone valley 2017
Strategie federation drone valley 2017
 

Similaire à Seminaire Borland UML (2003)

Similaire à Seminaire Borland UML (2003) (20)

Manuel uml-poweramc
Manuel uml-poweramcManuel uml-poweramc
Manuel uml-poweramc
 
013 mediha cgi - sensibilisation uml
013   mediha cgi - sensibilisation uml013   mediha cgi - sensibilisation uml
013 mediha cgi - sensibilisation uml
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
Uml
UmlUml
Uml
 
Uml2
Uml2Uml2
Uml2
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à Sysml
 
UML3
UML3UML3
UML3
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
 
Uml
UmlUml
Uml
 
Transhumance pres
Transhumance presTranshumance pres
Transhumance pres
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
 
Modeliser une application_web
Modeliser une application_webModeliser une application_web
Modeliser une application_web
 
diagramme de cas d'utilisation
diagramme de cas d'utilisationdiagramme de cas d'utilisation
diagramme de cas d'utilisation
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
Definitiondesbesoinsuml
DefinitiondesbesoinsumlDefinitiondesbesoinsuml
Definitiondesbesoinsuml
 
Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Kamal Lmsp V2
Kamal Lmsp V2Kamal Lmsp V2
Kamal Lmsp V2
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
 

Plus de Pascal Roques

SysCon 2013 SysML & Requirements
SysCon 2013 SysML & RequirementsSysCon 2013 SysML & Requirements
SysCon 2013 SysML & RequirementsPascal Roques
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)Pascal Roques
 
Modélisation métier (2004)
Modélisation métier (2004)Modélisation métier (2004)
Modélisation métier (2004)Pascal Roques
 
Migrer vers le cloud grace au Model-Driven
Migrer vers le cloud grace au Model-DrivenMigrer vers le cloud grace au Model-Driven
Migrer vers le cloud grace au Model-DrivenPascal Roques
 
Xp Day2009 Modelisation Agile
Xp Day2009 Modelisation AgileXp Day2009 Modelisation Agile
Xp Day2009 Modelisation AgilePascal Roques
 

Plus de Pascal Roques (8)

SysCon 2013 SysML & Requirements
SysCon 2013 SysML & RequirementsSysCon 2013 SysML & Requirements
SysCon 2013 SysML & Requirements
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)
 
Modélisation métier (2004)
Modélisation métier (2004)Modélisation métier (2004)
Modélisation métier (2004)
 
Migrer vers le cloud grace au Model-Driven
Migrer vers le cloud grace au Model-DrivenMigrer vers le cloud grace au Model-Driven
Migrer vers le cloud grace au Model-Driven
 
From SADT to SysML
From SADT to SysMLFrom SADT to SysML
From SADT to SysML
 
Xp Day2009 Modelisation Agile
Xp Day2009 Modelisation AgileXp Day2009 Modelisation Agile
Xp Day2009 Modelisation Agile
 

Seminaire Borland UML (2003)

  • 1. La modélisation d’un site marchand avec UML : une démarche agile mise en œuvre avec Together 09 Octobre 2003 Modéliser un site marchand avec UML et Together 1
  • 2. 1 : Introduction Concevoir © 2003 – Valtech Training 09 Octobre 2003
  • 3. Présentations Intervenant : Pascal Roques Consultant senior chez Valtech Training Responsable des formations autour d’UML Auteur de 3 ouvrages sur UML parus chez Eyrolles : UML en action - 2e édition UML par la pratique UML - Modéliser un site De l'analyse des besoins à la Cours et exercices Java et C# e-commerce conception en Java - 2ème édition Les Cahiers du Programmeur 09 Octobre 2003 Modéliser un site marchand avec UML et Together 3
  • 4. Notre programme 1. Introduction 2. Spécification des exigences : les cas d’utilisation 3. Analyse du domaine : les objets « métier » 4. Conception objet et passage au code 5. Conclusion Et des exemples de diagrammes réalisés avec Together® 09 Octobre 2003 Modéliser un site marchand avec UML et Together 4
  • 5. UML UML Langage de modélisation graphique destiné à : comprendre et décrire des besoins, spécifier et documenter des systèmes, esquisser des architectures logicielles, concevoir des solutions concrètes, communiquer des points de vue. Standardisé par l’OMG www.omg.org Mars 2003 : UML 1.5 Bientôt UML 2.0 ? 09 Octobre 2003 Modéliser un site marchand avec UML et Together 5
  • 6. Les diagrammes d’UML UML 1.5 propose 9 types de diagrammes : Diagramme de cas d’utilisation Fonctionnel Diagramme de classes Diagramme d’objets DIAGRAMME DE CAS D'UTILISATION Diagramme de séquence Diagramme de collaboration Statique Dynamique Diagramme d’activités DIAGRAMME DE CLASSES DIAGRAMME D'ÉTATS DIAGRAMME D'OBJETS DIAGRAMME D'ACTIVITÉS Diagramme d’états DIAGRAMME DE COMPOSANTS DIAGRAMME DE DÉPLOIEMENT DIAGRAMME DE SÉQUENCE DIAGRAMME DE COLLABORATION Diagramme de composants Diagramme de déploiement 09 Octobre 2003 Modéliser un site marchand avec UML et Together 6
  • 7. Le processus proposé Un processus agile pour la Domain UC Diagram Model Class Diagram Foo modélisation de site marchand, Foo2 Operation Contracts fondé sur UP (Unified Process) : High Level UC Name: Responsibilites: Collaboration Diagram Name: Actors: 1:bar() Description: Preconditions: Postconditions: foo() Conduit par les cas d’utilisation, 2:baz() Expanded UC Name: System Sequence Actors: Diagram Description: :System TCOE: Actor Action Sys Response Léger et restreint, foo() 1. Abcde 2. Zidjen 3. Scndi foo2() Mais sans négliger les activités de modélisation en analyse et en conception, Basé sur un sous-ensemble nécessaire et suffisant du langage UML. Pour trouver le meilleur rapport qualité / prix ! 09 Octobre 2003 Modéliser un site marchand avec UML et Together 7
  • 8. L’étude de cas Une librairie en ligne Société fictive : jeBouquine.com But : prendre place sur le marché de la librairie en ligne Besoin : inventer rapidement des éléments différentiateurs Le site Web devra donc être facilement évolutif Objectifs principaux : permettre aux internautes de … Chercher des ouvrages par thème, auteur, mot-clef, etc., Se constituer un panier virtuel, Pouvoir commander et payer directement sur le Web. 09 Octobre 2003 Modéliser un site marchand avec UML et Together 8
  • 9. L’étude de cas Exigences fonctionnelles : gestion du panier 09 Octobre 2003 Modéliser un site marchand avec UML et Together 9
  • 10. L’étude de cas Exigences fonctionnelles : commande Accès facile au formulaire de commande 09 Octobre 2003 Modéliser un site marchand avec UML et Together 10
  • 11. 2 : Spécification des exigences - les cas d’utilisation Concevoir © 2003 – Valtech Training 09 Octobre 2003
  • 12. La démarche Comment décrire les besoins ? 09 Octobre 2003 Modéliser un site marchand avec UML et Together 12
  • 13. Acteurs et cas d’utilisation Exemples de diagramme de cas d’utilisation e-librairie (administration) Nouveautes Maintenir le catalogue Administrateur Service logistique Webmaster Administrer le site 09 Octobre 2003 Modéliser un site marchand avec UML et Together 13
  • 14. Acteurs et cas d’utilisation e-librairie (user) Creer un compte Rechercher des ouvrages Internaute Gerer son panier virtuel Systeme d'autorisation de paiement Commander des livres Client Gerer son compte Service logistique Gerer ses commandes Suivre les commandes en cours 09 Octobre 2003 Modéliser un site marchand avec UML et Together 14
  • 15. Les cas d’utilisation Chaque cas d’utilisation va être décrit textuellement Par une description narrative dont le plan-type n’est pas standardisé Contient en général : Préconditions et postconditions Scénario nominal Scénarios alternatifs … On peut compléter cette description textuelle par des diagrammes dynamiques simples 09 Octobre 2003 Modéliser un site marchand avec UML et Together 15
  • 16. Les cas d’utilisation Exemple de description de cas d’utilisation Titre : Commander des livres Acteurs : Client (principal), Service d’autorisation de paiement, service logistique (secondaires). Préconditions : Le panier du client n’est pas vide et il a pu accéder à au formulaire de commande (voir le cas d’utilisation Gérer son panier) Postconditions : Une commande a été enregistrée et transmise au service Logistique. Scénario nominal : 1.Le Système affiche un récapitulatif de la commande. 2.Le Client valide sa commande. 3.Le Système ouvre une connexion sécurisée 4.Le Client saisit un numéro de carte de crédit avec son type et sa date de validité. 5.Le Système récapitule les infos sur la transaction. 6.Le Client valide sa commande. 7.Le Système envoie les informations cryptées au système d’autorisation de paiement. 8.Le Système d’autorisation de paiement valide la transaction. 9.Le Système confirme la prise de commande au client. 10.Le Système envoie la commande validée au service Logistique. Extensions : 2-6a. L’Internaute annule sa commande. Le Système revient sur l’affichage du panier et le cas d’utilisation est terminé. 3a. Le système n’arrive pas à ouvrir une connexion sécurisée. Le cas d’utilisation se termine en erreur. 8a. Le Système d’autorisation de paiement ne valide pas la transaction. Le cas d’utilisation se termine en erreur. Exigences supplémentaires : Pour garantir la sécurisation et la confidentialité des échanges, il est impératif que l'envoi des données se fasse de manière cryptée (protocole SSL). Le passage de commande est disponible 24h/24, 7j/7. 09 Octobre 2003 Modéliser un site marchand avec UML et Together 16
  • 17. Le diagramme de séquence système Le diagramme de séquence « système » illustre la succession temporelle des événements causés par des messages venant des acteurs le système est considéré comme une boîte noire on montre ses interactions avec les acteurs, dans le cadre d’un scénario d’un cas d’utilisation Acteur principal à gauche Acteurs secondaires éventuels à droite du système En général très bien accepté par les experts métier 09 Octobre 2003 Modéliser un site marchand avec UML et Together 17
  • 18. Le diagramme de séquence système e - lib r airie Exemple de c lie n t syst au t o p aie me n tse r vic e logist iq u e diagramme acces formulaire de commande de séquence recapitulatif commande « système » passage de commande pour un cas ouverture connexion securisee d’utilisation saisie infos carte recapitulatif transaction verification carte validation commande infos cryptees transaction validee confirmation commande nouvelle commande 09 Octobre 2003 Modéliser un site marchand avec UML et Together 18
  • 19. Le diagramme d’activités Client e-librairie Exemple de affichage commande diagramme Passage de commande d’activités Ouverture connexion securisee pour un cas Saisie infos carte d’utilisation Verification carte [NOK] [OK] Affichage recapitulatif Systeme d'autorisation de Validation commande paiement Cryptage des infos Validation transaction Command e [NOK] [OK] Consolidation Service logistique Traitement commande 09 Octobre 2003 Modéliser un site marchand avec UML et Together 19
  • 20. 3 : Analyse du domaine - les objets « métier » Concevoir © 2003 – Valtech Training 09 Octobre 2003
  • 21. Le modèle du domaine Un modèle du domaine représente des concepts existant dans un domaine du monde réel. choses tangibles, physiques (Livre, Client) concepts abstraits, logiques (Thème, Panier) Il poursuit deux objectifs importants : aider à la compréhension d’un domaine complexe dégager un ensemble de classes et associations candidates pour la conception objet Le modèle du domaine utilise la notation UML des diagrammes de classes (statique) 09 Octobre 2003 Modéliser un site marchand avec UML et Together 21
  • 22. Le modèle du domaine Exemple de diagrammes de classes pour la maintenance du catalogue Catalo gue 1 1..* Ed ite ur T heme 1..* nom nom pays 0..* sousTheme 0..1 1..* 1 Livr e titre 1..* est edite par sousTitre Aut eur ISBN nom 1..* a ecrit 1..* langue dateParution prenom prix 09 Octobre 2003 Modéliser un site marchand avec UML et Together 22
  • 23. Le modèle du domaine Exemple de diagrammes de classes pour le passage de commande P anier Command e 1 donne lieu a 0..1 total date modeReglement delaiLivraison fraisDePort montant 0..* commandesEnCours est passee par 1 Cart eBanc aire Client type 0..1 1 nom numero prenom dateValidite email 09 Octobre 2003 Modéliser un site marchand avec UML et Together 23
  • 24. Le modèle du domaine passer commande validation[incomplete] Initialisee On peut aussi validation[complete] annulation avoir besoin du diagramme Validee annulation d’états… prise en compte annulation Ex. : la classe colis perdu ou incorrect En preparation Commande Incident incident mission depart mission after(6 mois) incident termine livraison[OK] En cours de livraison Livree livraison[NOK] 09 Octobre 2003 Modéliser un site marchand avec UML et Together 24
  • 25. 4 : Conception objet – passage au code Concevoir © 2003 – Valtech Training 09 Octobre 2003
  • 26. La démarche De l’analyse à la conception 09 Octobre 2003 Modéliser un site marchand avec UML et Together 26
  • 27. La démarche L’architecture logique <<layer>> P re se n t at ion <<layer>> A p p lic atio n <<layer>> Me t ie r Catalo gu e Clie n t P an ie r <<layer>> S e r vic e s te c h n iq u e s 09 Octobre 2003 Modéliser un site marchand avec UML et Together 27
  • 28. Les diagrammes Exemple : diagramme de séquence Client EcranPanier ControleurCommandes ControleurPanier S yste me d 'aut or isatio S er vice logist iq ue n passerCommande():void passerCommande():void panier:=getPanier():Panier create(panier) no uvelle Co mmand e Commande create(nouvelleCommande) EcranCommande effectuerPaiement():void effectuerPaiement():void create EcranPaiement saisirInfosCarte():void verifCarte():void validationCommande():void validationCommande():void infos cryptees nouvelleCommande 09 Octobre 2003 Modéliser un site marchand avec UML et Together 28
  • 29. Les diagrammes Exemple : diagramme de collaboration généré <<actor>> <<actor>> S yste me d 'aut or isatio n S er vice logist iq ue 4.1.1: infos cryptees 4.1.2: nouvelleCommande 2.1.1: create 1.1.1: panier:=getPanier():Panier <<control>> 3.1: verifCarte():void :Cont r oleu rP anie r <<control>> <<boundary>> :Cont r oleu rComman d es :Ec ran Paie ment 1.1: passerCommande():void 1.1.2: create(panier) 2.1: effectuerPaiement():void 3: saisirInfosCarte():void 4.1: validationCommande():void 1.1.3: create(nouvelleCommande) <<boundary>> :Ec ran Pan ier <<entity>> 1: passerCommande():void no uvelle Co mmand e :Co mmand e 2: effectuerPaiement():void 4: validationCommande():void <<actor>> <<boundary>> Client :Ec ran Co mmand e 09 Octobre 2003 Modéliser un site marchand avec UML et Together 29
  • 30. La démarche De l’analyse à la conception Le concepteur objet applique des “Design Patterns” Singleton State Factory Proxy … 09 Octobre 2003 Modéliser un site marchand avec UML et Together 30
  • 31. Les diagrammes ...P re sent at ion.Ecr anCommand e <<singleton>> ...Ap p lic atio n.Cont r oleu rComman d es ...P re sent at ion.Ecr anP aiemen t +effectuerPaiement():void -instance:ControleurCommandes=null +validationCommande():void +saisirInfosCarte():void #ControleurCommandes() +validationCommande():void +passerCommande():void +effectuerPaiement():void Exemple : +verifCarte():void +validationCommande():void +getInstance():ControleurCommandes diagramme de classes de 0..* Command e 0..* conception -date:Date Client -modeReglement:int -nom:int -delaiLivraison:int 0..* 1 -prenom:int -fraisDePort:int commandesEnCours -email:int <<singleton>> -montant:int ...Ap p lic atio n.Cont r oleu rP anie r +saisirInfos():void +valider():void -instance:ControleurPanier=null 1 #ControleurPanier() +getPanier():Panier +getInstance():ControleurPanier <<parameter>> 0..1 Cart eBanc aire P anier -type:int 1 -dateValidite:int -total:int -numero:int +verifier():void 09 Octobre 2003 Modéliser un site marchand avec UML et Together 31
  • 32. La démarche De la conception préliminaire à la conception détaillée Dialogues Pages PHP JSP + FormBean + Page HTML ASP.NET + WebForms Contrôles Pages PHP Servlet + actions CodeBehind … Entités Classes ou bibliothèques de fonctions PHP EJB ou JavaBeans Classes C# ou Serviced Components 09 Octobre 2003 Modéliser un site marchand avec UML et Together 32
  • 33. Passage au code Java 09 Octobre 2003 Modéliser un site marchand avec UML et Together 33
  • 34. 5 : Conclusion Concevoir © 2003 – Valtech Training 09 Octobre 2003
  • 35. La démarche Comment passer des besoins au code ? 09 Octobre 2003 Modéliser un site marchand avec UML et Together 35
  • 36. La démarche 09 Octobre 2003 Modéliser un site marchand avec UML et Together 36
  • 37. L’outillage e - lib r airie Together ! c lie n t acces formulaire de commande recapitulatif commande syst au t o p aie me n tse r vic e logist iq u e passage de commande ouverture connexion securisee saisie infos carte e-librairie (user) recapitulatif transaction verification carte Creer un compte validation commande infos cryptees <<actor>> <<actor>> S yste me d 'aut or isatio n transaction validee S er vice logist iq ue Rechercher des ouvrages confirmation commande Internaute <<extend>> <<extend>> nouvelle commande 4.1.1: infos cryptees 4.1.2: nouvelleCommande Gerer son panier virtuel <<extend>> Systeme d'autorisation 2.1.1: create 1.1.1: panier:=getPanier():Panier <<control>> 3.1: verifCarte():void de paiement <<control>> :Cont r oleu rP anie r Commander des livres <<boundary>> :Cont r oleu rComman d es :Ec ran Paie ment <<extend>> 1.1: passerCommande():void 1.1.2: create(panier) Client Gerer son compte Service logistique 2.1: effectuerPaiement():void Gerer ses commandes <<layer>> 3: saisirInfosCarte():void 4.1: validationCommande():void 1.1.3: create(nouvelleCommande) <<boundary>> P re se n t at ion 1: passerCommande():void :Ec ran Pan ier <<entity>> no uvelle Co mmand e :Co mmand e Suivre les commandes en cours 2: effectuerPaiement():void <<layer>> 4: validationCommande():void A p p lic atio n <<actor>> Client <<boundary>> :Ec ran Co mmand e Catalo gue <<layer>> 1 Me t ie r ...P re sent at ion.Ecr anCommand e <<singleton>> Catalo gu e ...Ap p lic atio n.Cont r oleu rComman d es ...P re sent at ion.Ecr anP aiemen t Clie n t P an ie r +effectuerPaiement():void -instance:ControleurCommandes=null 1..* +validationCommande():void +saisirInfosCarte():void Ed ite ur #ControleurCommandes() +validationCommande():void T heme +passerCommande():void 1..* nom +effectuerPaiement():void nom pays +verifCarte():void 0..* sousTheme <<layer>> +validationCommande():void +getInstance():ControleurCommandes 0..1 1..* 1 S e r vic e s te c h n iq u e s Livr e validation[incomplete] 0..* passer commande titre Initialisee Command e 0..* 1..* est edite par sousTitre Client Aut eur ISBN -date:Date -modeReglement:int -nom:int nom 1..* a ecrit 1..* langue annulation -delaiLivraison:int 0..* 1 -prenom:int dateParution validation[complete] -fraisDePort:int prenom commandesEnCours -email:int prix -montant:int <<singleton>> Validee annulation ...Ap p lic atio n.Cont r oleu rP anie r +saisirInfos():void +valider():void -instance:ControleurPanier=null 1 prise en compte #ControleurPanier() annulation +getPanier():Panier +getInstance():ControleurPanier <<parameter>> colis perdu ou incorrect En preparation 0..1 Cart eBanc aire Incident incident mission depart mission P anier -type:int after(6 mois) 1 -dateValidite:int incident termine -total:int -numero:int livraison[OK] En cours de livraison Livree +verifier():void livraison[NOK] 09 Octobre 2003 Modéliser un site marchand avec UML et Together 37
  • 38. Fin Pour en savoir plus : Les Cahiers du Programmeur UML : Modéliser un site e-commerce P. Roques, Eyrolles, 2002 Merci de votre attention ! pascal.roques@gmail.com 09 Octobre 2003 Modéliser un site marchand avec UML et Together 38