SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Il n’y a pas de “bon”
    Modèle Métier
      Grégory Weinbach
        @gweinbach
       http://mdblog.fr




                          1
En quelques mots…



                    2
Grégory Weinbach
                            http://mdblog.fr - @gweinbach


                     hanoi(X) :-
                       move(X,left,right,center).

                     move(1,X,Y,_) :-
                      write('Move top disk from '),
                      write(X),
                      write(' to '),
                      write(Y),
                      nl.

                     move(N,X,Y,Z) :-
#include "stdio.h"    M is N-1,
                      move(M,X,Z,Y),
                      move(1,X,Y,_),
                      move(M,Z,Y,X).




                                                            3
4
Il faut concevoir pour l’utilisateur




                                       5
Il faut concevoir avec l’utilisateur




                                       6
7
Modéliser le Métier de
    l’utilisateur




                         8
Présentation


 Services


  Entités


 Données

               9
10
Réponse :

Une Entité doit représenter
 un Concept du métier


                              11
Tuyau
                  Ev acuation

                                         1       Siphon
                    1




  Ev ier
                                         1..*
                                                   Tuyau PVC



                             1   Raccordement                  Tuyau de cuiv re
                                                     1..*

           Arrivée d'eau




Arriv ée d'eau          Arriv ée d'eau
    chaude                   froide          1
           1




                                                                                  12
13
14
Liv re

titre
auteur
éditeur




              15
16
17
18
19
20
21
22
Liv re

titre
auteur
éditeur
ISBN
copyright
nombre de pages
hauteur
largeur
épaisseur
/volume
illustration couverture
texte quatrième de couverture
stock
date de disponibilité
date de réimpression
dépôt légal
type de papier
type de reliure
texte brut
texte mis en forme
collection
tome numéro
allée numéro
position
photo de l'auteur
présentation de l'auteur
opérations spéciales
prix de vente public
note des lecteurs
note des critiques
autres choix des lecteurs       23
24
Pas un mais des « Livres »
Pas un mais des Modèles




                             25
Un Modèle Métier = Un Contexte




        = Un Domaine
                                 26
Choisissons un Contexte :

 La Vente aux Librairies



                            27
Coordonnées                                                                  Client
                                                                 0..*




                                                      Coordonnées de contact                            Entreprise                                 Personne                     parle
            Pays                                                                                                                                                                                    Langue
                                                  -     type                                     -   nom commercial                            -   civilité          0..*                0..*
    -   code ISO                                  -     téléphone [0..1]                         -   dénomination sociale                      -   nom                                          -   nom
    -   libellé                                   -     téléphone mobile [0..1]                  -   n° TVA [0..1]                             -   prénom
                                                  -     fax [0..1]
                                                  -     e-mail [0..1]
             1



                                                                                                                                                                     Forme j uridique
                           Adresse postale                                                                     Entreprise            Entreprise
                                                                                                                                                                   -        code
                                                                                                               étrangère              française               0..1 -        libellé
                                                                                                                                 -   numéro SIREN
                                     1
                                                                                                                                 -   n° TVA

                 1                                                                                                                                                       Activ ité NAF
                                                                                                                                                              0..1
                                         1                                                                                                                           -      code NAF
    Code postal
                                                                                                                                                                     -      libellé
-    code                            Commune
                                                                                          0..1
                                 -   nom
             1..*
                          1..*                                                       Adresse Entreprise                                 Adresse personne
                                                                                                                                                                                0..1
                                                                        -   identité du destinataire et/ou service [0..1]   -   n° - Etape - Couloir - Escalier [0..1]
                                                                        -   entrée - Bât. - Immeuble - Résid. [0..1]        -   entrée - Bât. - Immeuble - Résid. [0..1]
                                                                        -   numéro et libellé de la voie                    -   numéro et libellé de la voie
                                                                        -   mention spéciale - Commune géo. [0..1]          -   sce particulier de distrib. - lieu dit [0..1]
                     Commune                   Commune
                     française                 étrangère

              -      code INSEE

                                                                                                                                                                                                             28
Coordonnées                                                                  Client
                                                                 0..*




                                                      Coordonnées de contact                            Entreprise                                 Personne                     parle
            Pays                                                                                                                                                                                    Langue
                                                  -     type                                     -   nom commercial                            -   civilité          0..*                0..*
    -   code ISO                                  -     téléphone [0..1]                         -   dénomination sociale                      -   nom                                          -   nom
    -   libellé                                   -     téléphone mobile [0..1]                  -   n° TVA [0..1]                             -   prénom
                                                  -     fax [0..1]
                                                  -     e-mail [0..1]
             1



                                                                                                                                                                     Forme j uridique
                           Adresse postale                                                                     Entreprise            Entreprise
                                                                                                                                                                   -        code
                                                                                                               étrangère              française
                                                                                                                                                              0..1 -        libellé
                                                                                                                                 -   numéro SIREN
                                     1
                                                                                                                                 -   n° TVA

                 1                                                                                                                                                       Activ ité NAF
                                                                                                                                                              0..1
                                         1                                                                                                                           -      code NAF
    Code postal
                                                                                                                                                                     -      libellé
-    code                            Commune
                                                                                          0..1
                                 -   nom
             1..*
                          1..*                                                       Adresse Entreprise                                 Adresse personne
                                                                                                                                                                                0..1
                                                                        -   identité du destinataire et/ou service [0..1]   -   n° - Etape - Couloir - Escalier [0..1]
                                                                        -   entrée - Bât. - Immeuble - Résid. [0..1]        -   entrée - Bât. - Immeuble - Résid. [0..1]
                                                                        -   numéro et libellé de la voie                    -   numéro et libellé de la voie
                                                                        -   mention spéciale - Commune géo. [0..1]          -   sce particulier de distrib. - lieu dit [0..1]
                     Commune                   Commune
                     française                 étrangère

              -      code INSEE




                                                                                                                                                                                                             29
JoinCommuneToCode                                                                          Commune étrangère
                                                                                                                                                                                                                                                                                                                                                                                                                                                   postal                              appartient à
                                                                                                                                                                                                                                                                                Client                                                                                                                                                                                                                                      «column»
                                                                                                                                                                                                                                                                                                                                                                                                                                            «column»                                «column»                                *pfK commune étrangèreID :Integer
                                                                                                                                                                                                                                                                          «column»                                                                                                                                                          FK code postalID :Integer               FK communeID :Integer
                                                                                                                                                                                                                                                                          *PK clientID :Integer                                                                                                                                             FK communeID :Integer
                                                                                                                                                                                                                                                                                                      +PK_Client                                                                                                                                                                                                    «PK»
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 «FK»                               +    PK_Commune étrangère(Integer)
                                                                                                                                                                                                                                                                          «PK»                  1                                                                                                                                           «FK»                                 +    Commune(Integer)              «FK»
                                                                                                                                                                                                                                                                          +  PK_Client(Integer)                                                                                                                                             +   Code postal(Integer)   +Commune                                     +    FK_Commune étrangère_Commune(Integer)
                                                                                                                                                                                                                                                                                                                                                                                                                                            +   Commune(Integer)                  +Commune     0..*
                                                                                                                                                                                                                                                               +PK_Client
                                                                                                                                                                                                                                                                        +PK_Client         1                                                                                                                                                                           1..*
                                                                                                                                                                                                                                                              (clientID = clientID)                                                                                                                                                         +Code postal    1..*                        +FK_Commune étrangère_Commune
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (communeID = communeID)                   0..1
                                                                                                                                                                                                                                                                      «FK»                                                                                                                                                                  (code postalID = code postalID) = communeID)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (communeID                         (commune étrangèreID = communeID)
                                                                                                                                                                                                                                              +FK_Coordonnées_Client 0..*                                                                                                                                                                                                   «FK»            «FK»
                                                                                                                                                                                                                                                                                                                                                                                                                                                         «FK»                                                     «FK»
                                                                                                                                                                                                                                                                                                                                                                                                                                          +PK_Code postal            +PK_Commune
                                                                                                                                                                                                                                                                                                                                                                                                                                                                               +PK_Commune   +PK_Commune       1
                                                                                                                                                                                                                                                     Coordonnées
                                                                                                                                                                                                                                                                                                                                                                            Pays
                                                                                                                                                                                                                                                                                                                                                                                                                                                      Code postal                            Commune
                                                                                                                                                                                                                                           «column»
                                                                                                                                                                                                                                           *PK coordonnéesID :Integer                                                                                                «column»
                                                                                                                                                                                                                                                                                                                                                                         code ISO                                                               «column»                        «column»
                                                                                                                                                                                                                                            FK clientID :Integer                                                                                                                                                                                    code                            nom
                                                                                                                                                                                                                                                                                                                                                                         libellé
                                                                                                                                                                                                                                                                                                                                                                                                                                                *PK code postalID :Integer      *PK communeID :Integer
                                                                                                                                                                                                                                                                                                                                                                     *PK paysID :Integer                                                                            +PK_Commune
                                                                                                                                                                                                                                           «PK»
                                                                                                                                                                                                                                           +  PK_Coordonnées(Integer)           +PK_Coordonnées                                                                                                                              +PK_Code postal «PK»
                                                                                                                                                                                                                                                                                                                                                                     «PK»                                                                                                            1 «PK»
                                                                                                                                                                                                                                           «FK»                               1                                                                                      +  PK_Pays(Integer)                                                     +  PK_Code postal(Integer)                +  PK_Commune(Integer)
                                                                                                                                                                                                                                                                                                                                                                                                                                           1
                                                                                                                                                                                                                                           +   FK_Coordonnées_Client(Integer)
                                                                                                                                                                                                                                                                                                                                                                    +PK_Pays      1                                                                                                             +PK_Commune françaiseID = communeID)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (commune      1
                                                                                                                                                                                                                                     +PK_Coordonnées      1                                                                                                            (paysID = paysID)
                                                                                                                                                                                                                                 (coordonnées de contactID = coordonnéesID)                                                                                                                                     (code postalID = code postalID) = communeID)
                                                                                                                                                                                                                                                                                                                                                                                                                                    (communeID                                                                    «FK»
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +FK_Commune française_Commune 0..1
                                                                                                                                                                                                                                                                                                  (adresse postaleID = coordonnéesID)                                        «FK»
                                                                                                                                                                                                                                                   «FK»                                                                                               +FK_Adresse postale_Pays                                               «FK»              «FK»
                                                                                                                                                                                                             +FK_Coordonnées de contact_Coordonnées 0..1                                                          «FK»                                                                                                                                                                                                                Commune française
                                                                                                                                                                                                                                                                                                                                                                      Adresse postale
                                                                                                                                                                                                                                   Coordonnées de contact                                                                                                                                                   +FK_Adresse postale_Code postal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            «column»
                                               Coordonnées                                                                  Client                                                                                     «column»                                                                                    +FK_Adresse postale_Coordonnées «column»                                                 +FK_Adresse postale_Commune                                                                                          code INSEE
                                                                 0..*                                                                                                                                                                                                                                                                               *pfK adresse postaleID :Integer                                                                                                                                         *pfK commune françaiseID :Integer
                                                                                                                                                                                                                            type
                                                                                                                                                                                                                            téléphone [0..1]                                                                                                   0..1 FK code postalID :Integer                               1
                                                                                                                                                                                                                                                                                                                                                    *FK communeID :Integer
                                                                                                                                                                                                                            téléphone mobile [0..1]                                                                                                  FK paysID :Integer                                                                                                                                                     «PK»
                                                                                                                                                                                                                            fax [0..1]                                                                                                                                                                                                                                                                                      +  PK_Commune française(Integer)
                                                                                                                                                                                                                            e-mail [0..1]                                                                                                                                                                                                                                                                                   «FK»
                                                                                                                                                                                                                       *pfK coordonnées de contactID :Integer                                                                                            «PK»
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            +   FK_Commune française_Commune(Integer)
                                                                                                                                                                                                                                                                                                                                                         +  PK_Adresse postale(Integer)
                                                                                                                                                                                                                       «PK»                                                                                                                              «FK»                                                                                                                                                          +PK_Commune française
                                                      Coordonnées de contact                            Entreprise                                 Personne                                                            +  PK_Coordonnées de contact(Integer)                                                                                             +   FK_Adresse   postale_Coordonnées(Integer)
            Pays                                                                                                                                                                parle
                                                                                                                                                                                                    Langue                                                                                                                                               +   FK_Adresse   postale_Code postal(Integer)
                                                                                                                                                                                                                       «FK»                                   (personne physiqueID = clientID)
                                                  -     type                                     -   nom commercial                            -   civilité          0..*                0..*                          +   FK_Coordonnées de contact_Coordonnées(Integer) «FK»
                                                                                                                                                                                                                                                                                                                                                         +   FK_Adresse   postale_Commune(Integer)                                                                                                                          (commune françaiseID = commune françaiseID)
    -   code ISO                                  -     téléphone [0..1]                         -   dénomination sociale                      -   nom                                          -   nom                                                                                                                                                  +   FK_Adresse   postale_Pays(Integer)
    -   libellé                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                «FK»
                                                  -     téléphone mobile [0..1]                  -   n° TVA [0..1]                             -   prénom
                                                                                                                                                                                                                                                                                                                                                                                                                           (personne moraleID = clientID)
                                                  -     fax [0..1]                                                                                                                                                                                                                                                 (adresse+PK_Adresse postale = adresse(adresse personne moraleID = adresse postaleID)
                                                                                                                                                                                                                                                                                                                            personne physiqueID   1     +PK_Adresse postale
                                                                                                                                                                                                                                                                                                                                                         postaleID)             1
                                                  -     e-mail [0..1]                                                                                                                                                                                                                                                                                                                                                                 «FK»
                                                                                                                                                                                                                                                                                                                                         «FK»
                                                                                                                                                                                                                                                                                        +FK_Adresse personne physique_Adresse postale 0..1                                  «FK»
                                                                                                                                                                                                                                                                                                                                   +FK_Adresse personne morale_Adresse postale 0..1                                                                                                                                           +Commune française 1..*
             1
                                                                                                                                                                                                                                                                                                      Adresse personne physique                                                    Adresse personne morale                                                                                                                                appartient à

                                                                                                                                                                                                                                                                                       «column»                                                                     «column»                                                                                                                                                      «column»
                                                                                                                                                                     Forme j uridique                                                                                                       n° - Etape - Couloir - Escalier [0..1]                                       identité du destinataire et/ou service [0..1]                                                                                                            FK commune françaiseID :Integer
                           Adresse postale                                                                     Entreprise            Entreprise                                                                                                                                             entrée - Bât. - Immeuble - Résid. [0..1]                                     entrée - Bât. - Immeuble - Résid. [0..1]
                                                                                                                                                                   -        code                                                                                                            numéro et libellé de la voie                                                 numéro et libellé de la voie
                                                                                                               étrangère              française                                                                                                                                                                                                                                                                                                                                                                                   «FK»
                                                                                                                                                              0..1 -        libellé                                                                                                         sce particulier de distrib. - lieu dit [0..1]                                mention spéciale - Commune géo. [0..1]                                                                                                                   +   Commune française(Integer)
                                                                                                                                 -   numéro SIREN                                                                                                                                      *pfK adresse personne physiqueID :Integer                                    *pfK adresse personne moraleID :Integer
                                     1
                                                                                                                                 -   n° TVA
                                                                                                                                                                                                                                                                                       «PK»                                                                         «PK»
                 1                                                                                                                                                       Activ ité NAF                                                                                                 +  PK_Adresse personne physique(Integer)                                     +  PK_Adresse personne morale(Integer)
                                                                                                                                                              0..1
                                                                                                                                                                                                                                                                                       «FK»                                                                         «FK»
                                         1                                                                                                                           -      code NAF                                                                                                   +   FK_Adresse personne physique_Adresse postale(Integer)                    +   FK_Adresse personne morale_Adresse postale(Integer)
    Code postal
                                                                                                                                                                     -      libellé
-    code                            Commune                                                                                                                                                                                                                     +PK_Adresse personne physique       0..1                                                           +PK_Adresse personne morale      0..1
                                                                                          0..1                                                                                                                                              +FK_Personne physique_Client personne physiqueID = adresse personne physiqueID)
                                                                                                                                                                                                                                                                (adresse                                                                                                (adresse personne moraleID = adresse personne moraleID)
                                 -   nom                                                                                                                                                                                                                                                   «FK»                                                                                                  «FK»
             1..*                                                                                                                                                                                                                        +FK_Personne physique_Adresse personne physique
                                                                                                                                                                                                                                                                            0..1                                                                        +FK_Personne morale_Adresse personne morale morale_Client 0..1
                                                                                                                                                                                                                                                                                                                                                                                       +FK_Personne
                          1..*                                                       Adresse Entreprise                                 Adresse personne
                                                                                                                                                                                0..1                                                                               Personne physique                                                                                                                 Personne morale
                                                                        -   identité du destinataire et/ou service [0..1]   -   n° - Etape - Couloir - Escalier [0..1]
                                                                        -   entrée - Bât. - Immeuble - Résid. [0..1]        -   entrée - Bât. - Immeuble - Résid. [0..1]                                                                       «column»                                                                                                                         «column»
                                                                        -   numéro et libellé de la voie                    -   numéro et libellé de la voie                                                                                                                                                                                                                                                                                                  Activ ité NAF                              Forme j uridique
                                                                                                                                                                                                                                                    civilité                                                                          Langue                                         nom commercial
                                                                        -   mention spéciale - Commune géo. [0..1]          -   sce particulier de distrib. - lieu dit [0..1]                                                                       nom                                                                                                                              dénomination sociale
                                                                                                                                                                                                                                                    prénom                                                                                                                           n° TVA [0..1]                                                      «column»                                «column»
                                                                                                                                                                                                                                                                                                                              «column»
                     Commune                   Commune                                                                                                                                                                                         *pfK personne physiqueID :Integer                                                                                                *pfK personne moraleID :Integer                                             code NAF                                code
                                                                                                                                                                                                                                                                                                                                  nom                                                                                                                       libellé                                 libellé
                     française                 étrangère                                                                                                                                                                                        FK adresse personne physiqueID :Integer                                       *PK langueID :Integer                              FK adresse personne moraleID :Integer
                                                                                                                                                                                                                                                                                                                                                                                                                                                        *PK activité NAFID :Integer             *PK forme juridiqueID :Integer
              -      code INSEE
                                                                                                                                                                                                                                               «PK»                                                               «PK»                                                          «PK»
                                                                                                                                                                                                                                               +  PK_Personne physique(Integer)                                                                                                 +  PK_Personne morale(Integer)                                          «PK»                                    «PK»
                                                                                                                                                                                                                                                                                                                 +    PK_Langue(Integer)                                                                                                                +  PK_Activité NAF(Integer)             +  PK_Forme juridique(Integer)
                                                                                                                                                                                                                                               «FK»                                                        +PK_Langue                                                           «FK»
                                                                                                                                                                                                                                               +   FK_Personne physique_Adresse personne physique(Integer)                                                                      +   FK_Personne morale_Adresse personne morale(Integer)              +PK_Activité NAF         0..1 +PK_Forme juridique      0..1
                                                                                                                                                                                                                                               +   FK_Personne physique_Client(Integer)                                                                                         +   FK_Personne morale_Client(Integer)
                                                                                                                                                                                                                                                                                                                                                                                                                                               (activité NAFID = activité NAFID)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (forme juridiqueID = forme juridiqueID)
                                                                                                                                                                                                                                                                +PK_Personne physique                      (langueID = langueID)                                                   +PK_Personne morale1 +PK_Personne morale françaiseID = personne moraleID)«FK»
                                                                                                                                                                                                                                                                                                                                                                                                            (personne morale     1                                                    «FK»
                                                                                                                                                                                                                                                                        (personne physiqueID = personne physiqueID) «FK»                                                  (personne morale étrangèreID = morale française_Personne«FK» française_Activité NAF
                                                                                                                                                                                                                                                                                                                                                                                          +FK_Personne personne moraleID)
                                                                                                                                                                                                                                                                                                                                                                                                                     +FK_Personne+FK_Personne morale française_Forme juridique
                                                                                                                                                                                                                                                                                                                                                                                                                                   morale 0..1
                                                                                                                                                                                                                                                                                                                                                                                                                                   morale
                                                                                                                                                                                                                                                                                           «FK»                                                                                                 «FK»
                                                                                                                                                                                                                                                                                                                                                                                                                                                    Personne morale française
                                                                                                                                                                                                                                                                              +Personne physique 0..* +Langue 0..*                                +FK_Personne morale étrangère_Personne morale 0..1
                                                                                                                                                                                                                                                                                                                                                                                                                                       «column»
                                                                                                                                                                                                                                                                                                          parle                                                                 Personne morale étrangère                                  numéro SIREN
                                                                                                                                                                                                                                                                                                                                                                                                                                           n° TVA
                                                                                                                                                                                                                                                                                            «column»                                                             «column»                                                             *pfK personne morale françaiseID :Integer
                                                                                                                                                                                                                                                                                            FK langueID :Integer                                                 *pfK personne morale étrangèreID :Integer                             FK activité NAFID :Integer
                                                                                                                                                                                                                                                                                            FK personne physiqueID :Integer                                                                                                            FK forme juridiqueID :Integer
                                                                                                                                                                                                                                                                                                                                                                      «PK»
                                                                                                                                                                                                                                                                                            «FK»                                                                      +  PK_Personne morale étrangère(Integer)                                   «PK»
                                                                                                                                                                                                                                                                                            +   Langue(Integer)                                                       «FK»                                                                       +  PK_Personne morale française(Integer)
                                                                                                                                                                                                                                                                                            +   Personne physique(Integer)                                            +   FK_Personne morale étrangère_Personne morale(Integer)                  «FK»
                                                                                                                                                                                                                                                                                                                                                                                                                                                 +   FK_Personne morale française_Activité NAF(Integer)
                                                                                                                                                                                                                                                                                                                                                                                                                                                 +   FK_Personne morale française_Forme juridique(Integer)
                                                                                                                                                                                                                                                                                                                                                                                                                                                 +   FK_Personne morale française_Personne morale(Integer)




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          30
Pourquoi ?




             31
« ceci n’est pas un livre »
                              32
33
Contact Librairie

                   -       nom
                   -       tél
                   -       e-mail




                           Commande

                       +    fac turer()



                                          0..1
                   1

    Destinataire                                   Facture

-   nom                                   -   c lient
-   adresse 1                             -   adresse 1
-   adresse 2                             -   adresse 2
-   c ode postal                          -   c ode postal
-   ville                                 -   ville
-   pays                                  -   n° TVA
                                          -   montant HT

                                          +   c alc uler MontantTTC()




                                                                        34
Présentation


 Services


  Entités


 Données

               35
Présentation


 Services


  Entités


 Données

               36
Réponse :

Une Entité n’existe que si au moins
     un Service la manipule

Un Service n’existe que si au moins
une IHM (ou un Client) en a besoin
                                      37
« Ubiquitous Language » ?




                            38
39
In Dictionnaire Philosophique - Didier-Pierre Chicaneau de Neuville (1762)
(merci à Christophe Thiry http://urba-si.blogspot.com)
                                                                             40
Merci



        41

Weitere ähnliche Inhalte

Empfohlen

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Empfohlen (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Devoxx 2012 - Grégory Weinbach - Il n y a pas de bon modèle métier - v5 - fr - 1280x720

  • 1. Il n’y a pas de “bon” Modèle Métier Grégory Weinbach @gweinbach http://mdblog.fr 1
  • 3. Grégory Weinbach http://mdblog.fr - @gweinbach hanoi(X) :- move(X,left,right,center). move(1,X,Y,_) :- write('Move top disk from '), write(X), write(' to '), write(Y), nl. move(N,X,Y,Z) :- #include "stdio.h" M is N-1, move(M,X,Z,Y), move(1,X,Y,_), move(M,Z,Y,X). 3
  • 4. 4
  • 5. Il faut concevoir pour l’utilisateur 5
  • 6. Il faut concevoir avec l’utilisateur 6
  • 7. 7
  • 8. Modéliser le Métier de l’utilisateur 8
  • 9. Présentation Services Entités Données 9
  • 10. 10
  • 11. Réponse : Une Entité doit représenter un Concept du métier 11
  • 12. Tuyau Ev acuation 1 Siphon 1 Ev ier 1..* Tuyau PVC 1 Raccordement Tuyau de cuiv re 1..* Arrivée d'eau Arriv ée d'eau Arriv ée d'eau chaude froide 1 1 12
  • 13. 13
  • 14. 14
  • 16. 16
  • 17. 17
  • 18. 18
  • 19. 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. Liv re titre auteur éditeur ISBN copyright nombre de pages hauteur largeur épaisseur /volume illustration couverture texte quatrième de couverture stock date de disponibilité date de réimpression dépôt légal type de papier type de reliure texte brut texte mis en forme collection tome numéro allée numéro position photo de l'auteur présentation de l'auteur opérations spéciales prix de vente public note des lecteurs note des critiques autres choix des lecteurs 23
  • 24. 24
  • 25. Pas un mais des « Livres » Pas un mais des Modèles 25
  • 26. Un Modèle Métier = Un Contexte = Un Domaine 26
  • 27. Choisissons un Contexte : La Vente aux Librairies 27
  • 28. Coordonnées Client 0..* Coordonnées de contact Entreprise Personne parle Pays Langue - type - nom commercial - civilité 0..* 0..* - code ISO - téléphone [0..1] - dénomination sociale - nom - nom - libellé - téléphone mobile [0..1] - n° TVA [0..1] - prénom - fax [0..1] - e-mail [0..1] 1 Forme j uridique Adresse postale Entreprise Entreprise - code étrangère française 0..1 - libellé - numéro SIREN 1 - n° TVA 1 Activ ité NAF 0..1 1 - code NAF Code postal - libellé - code Commune 0..1 - nom 1..* 1..* Adresse Entreprise Adresse personne 0..1 - identité du destinataire et/ou service [0..1] - n° - Etape - Couloir - Escalier [0..1] - entrée - Bât. - Immeuble - Résid. [0..1] - entrée - Bât. - Immeuble - Résid. [0..1] - numéro et libellé de la voie - numéro et libellé de la voie - mention spéciale - Commune géo. [0..1] - sce particulier de distrib. - lieu dit [0..1] Commune Commune française étrangère - code INSEE 28
  • 29. Coordonnées Client 0..* Coordonnées de contact Entreprise Personne parle Pays Langue - type - nom commercial - civilité 0..* 0..* - code ISO - téléphone [0..1] - dénomination sociale - nom - nom - libellé - téléphone mobile [0..1] - n° TVA [0..1] - prénom - fax [0..1] - e-mail [0..1] 1 Forme j uridique Adresse postale Entreprise Entreprise - code étrangère française 0..1 - libellé - numéro SIREN 1 - n° TVA 1 Activ ité NAF 0..1 1 - code NAF Code postal - libellé - code Commune 0..1 - nom 1..* 1..* Adresse Entreprise Adresse personne 0..1 - identité du destinataire et/ou service [0..1] - n° - Etape - Couloir - Escalier [0..1] - entrée - Bât. - Immeuble - Résid. [0..1] - entrée - Bât. - Immeuble - Résid. [0..1] - numéro et libellé de la voie - numéro et libellé de la voie - mention spéciale - Commune géo. [0..1] - sce particulier de distrib. - lieu dit [0..1] Commune Commune française étrangère - code INSEE 29
  • 30. JoinCommuneToCode Commune étrangère postal appartient à Client «column» «column» «column» *pfK commune étrangèreID :Integer «column» FK code postalID :Integer FK communeID :Integer *PK clientID :Integer FK communeID :Integer +PK_Client «PK» «FK» + PK_Commune étrangère(Integer) «PK» 1 «FK» + Commune(Integer) «FK» + PK_Client(Integer) + Code postal(Integer) +Commune + FK_Commune étrangère_Commune(Integer) + Commune(Integer) +Commune 0..* +PK_Client +PK_Client 1 1..* (clientID = clientID) +Code postal 1..* +FK_Commune étrangère_Commune (communeID = communeID) 0..1 «FK» (code postalID = code postalID) = communeID) (communeID (commune étrangèreID = communeID) +FK_Coordonnées_Client 0..* «FK» «FK» «FK» «FK» +PK_Code postal +PK_Commune +PK_Commune +PK_Commune 1 Coordonnées Pays Code postal Commune «column» *PK coordonnéesID :Integer «column» code ISO «column» «column» FK clientID :Integer code nom libellé *PK code postalID :Integer *PK communeID :Integer *PK paysID :Integer +PK_Commune «PK» + PK_Coordonnées(Integer) +PK_Coordonnées +PK_Code postal «PK» «PK» 1 «PK» «FK» 1 + PK_Pays(Integer) + PK_Code postal(Integer) + PK_Commune(Integer) 1 + FK_Coordonnées_Client(Integer) +PK_Pays 1 +PK_Commune françaiseID = communeID) (commune 1 +PK_Coordonnées 1 (paysID = paysID) (coordonnées de contactID = coordonnéesID) (code postalID = code postalID) = communeID) (communeID «FK» +FK_Commune française_Commune 0..1 (adresse postaleID = coordonnéesID) «FK» «FK» +FK_Adresse postale_Pays «FK» «FK» +FK_Coordonnées de contact_Coordonnées 0..1 «FK» Commune française Adresse postale Coordonnées de contact +FK_Adresse postale_Code postal «column» Coordonnées Client «column» +FK_Adresse postale_Coordonnées «column» +FK_Adresse postale_Commune code INSEE 0..* *pfK adresse postaleID :Integer *pfK commune françaiseID :Integer type téléphone [0..1] 0..1 FK code postalID :Integer 1 *FK communeID :Integer téléphone mobile [0..1] FK paysID :Integer «PK» fax [0..1] + PK_Commune française(Integer) e-mail [0..1] «FK» *pfK coordonnées de contactID :Integer «PK» + FK_Commune française_Commune(Integer) + PK_Adresse postale(Integer) «PK» «FK» +PK_Commune française Coordonnées de contact Entreprise Personne + PK_Coordonnées de contact(Integer) + FK_Adresse postale_Coordonnées(Integer) Pays parle Langue + FK_Adresse postale_Code postal(Integer) «FK» (personne physiqueID = clientID) - type - nom commercial - civilité 0..* 0..* + FK_Coordonnées de contact_Coordonnées(Integer) «FK» + FK_Adresse postale_Commune(Integer) (commune françaiseID = commune françaiseID) - code ISO - téléphone [0..1] - dénomination sociale - nom - nom + FK_Adresse postale_Pays(Integer) - libellé «FK» - téléphone mobile [0..1] - n° TVA [0..1] - prénom (personne moraleID = clientID) - fax [0..1] (adresse+PK_Adresse postale = adresse(adresse personne moraleID = adresse postaleID) personne physiqueID 1 +PK_Adresse postale postaleID) 1 - e-mail [0..1] «FK» «FK» +FK_Adresse personne physique_Adresse postale 0..1 «FK» +FK_Adresse personne morale_Adresse postale 0..1 +Commune française 1..* 1 Adresse personne physique Adresse personne morale appartient à «column» «column» «column» Forme j uridique n° - Etape - Couloir - Escalier [0..1] identité du destinataire et/ou service [0..1] FK commune françaiseID :Integer Adresse postale Entreprise Entreprise entrée - Bât. - Immeuble - Résid. [0..1] entrée - Bât. - Immeuble - Résid. [0..1] - code numéro et libellé de la voie numéro et libellé de la voie étrangère française «FK» 0..1 - libellé sce particulier de distrib. - lieu dit [0..1] mention spéciale - Commune géo. [0..1] + Commune française(Integer) - numéro SIREN *pfK adresse personne physiqueID :Integer *pfK adresse personne moraleID :Integer 1 - n° TVA «PK» «PK» 1 Activ ité NAF + PK_Adresse personne physique(Integer) + PK_Adresse personne morale(Integer) 0..1 «FK» «FK» 1 - code NAF + FK_Adresse personne physique_Adresse postale(Integer) + FK_Adresse personne morale_Adresse postale(Integer) Code postal - libellé - code Commune +PK_Adresse personne physique 0..1 +PK_Adresse personne morale 0..1 0..1 +FK_Personne physique_Client personne physiqueID = adresse personne physiqueID) (adresse (adresse personne moraleID = adresse personne moraleID) - nom «FK» «FK» 1..* +FK_Personne physique_Adresse personne physique 0..1 +FK_Personne morale_Adresse personne morale morale_Client 0..1 +FK_Personne 1..* Adresse Entreprise Adresse personne 0..1 Personne physique Personne morale - identité du destinataire et/ou service [0..1] - n° - Etape - Couloir - Escalier [0..1] - entrée - Bât. - Immeuble - Résid. [0..1] - entrée - Bât. - Immeuble - Résid. [0..1] «column» «column» - numéro et libellé de la voie - numéro et libellé de la voie Activ ité NAF Forme j uridique civilité Langue nom commercial - mention spéciale - Commune géo. [0..1] - sce particulier de distrib. - lieu dit [0..1] nom dénomination sociale prénom n° TVA [0..1] «column» «column» «column» Commune Commune *pfK personne physiqueID :Integer *pfK personne moraleID :Integer code NAF code nom libellé libellé française étrangère FK adresse personne physiqueID :Integer *PK langueID :Integer FK adresse personne moraleID :Integer *PK activité NAFID :Integer *PK forme juridiqueID :Integer - code INSEE «PK» «PK» «PK» + PK_Personne physique(Integer) + PK_Personne morale(Integer) «PK» «PK» + PK_Langue(Integer) + PK_Activité NAF(Integer) + PK_Forme juridique(Integer) «FK» +PK_Langue «FK» + FK_Personne physique_Adresse personne physique(Integer) + FK_Personne morale_Adresse personne morale(Integer) +PK_Activité NAF 0..1 +PK_Forme juridique 0..1 + FK_Personne physique_Client(Integer) + FK_Personne morale_Client(Integer) (activité NAFID = activité NAFID) (forme juridiqueID = forme juridiqueID) +PK_Personne physique (langueID = langueID) +PK_Personne morale1 +PK_Personne morale françaiseID = personne moraleID)«FK» (personne morale 1 «FK» (personne physiqueID = personne physiqueID) «FK» (personne morale étrangèreID = morale française_Personne«FK» française_Activité NAF +FK_Personne personne moraleID) +FK_Personne+FK_Personne morale française_Forme juridique morale 0..1 morale «FK» «FK» Personne morale française +Personne physique 0..* +Langue 0..* +FK_Personne morale étrangère_Personne morale 0..1 «column» parle Personne morale étrangère numéro SIREN n° TVA «column» «column» *pfK personne morale françaiseID :Integer FK langueID :Integer *pfK personne morale étrangèreID :Integer FK activité NAFID :Integer FK personne physiqueID :Integer FK forme juridiqueID :Integer «PK» «FK» + PK_Personne morale étrangère(Integer) «PK» + Langue(Integer) «FK» + PK_Personne morale française(Integer) + Personne physique(Integer) + FK_Personne morale étrangère_Personne morale(Integer) «FK» + FK_Personne morale française_Activité NAF(Integer) + FK_Personne morale française_Forme juridique(Integer) + FK_Personne morale française_Personne morale(Integer) 30
  • 32. « ceci n’est pas un livre » 32
  • 33. 33
  • 34. Contact Librairie - nom - tél - e-mail Commande + fac turer() 0..1 1 Destinataire Facture - nom - c lient - adresse 1 - adresse 1 - adresse 2 - adresse 2 - c ode postal - c ode postal - ville - ville - pays - n° TVA - montant HT + c alc uler MontantTTC() 34
  • 35. Présentation Services Entités Données 35
  • 36. Présentation Services Entités Données 36
  • 37. Réponse : Une Entité n’existe que si au moins un Service la manipule Un Service n’existe que si au moins une IHM (ou un Client) en a besoin 37
  • 39. 39
  • 40. In Dictionnaire Philosophique - Didier-Pierre Chicaneau de Neuville (1762) (merci à Christophe Thiry http://urba-si.blogspot.com) 40
  • 41. Merci 41