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