seminaire borland uml (2003)

38
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

Upload: pascal-roques

Post on 21-Jun-2015

1.654 views

Category:

Technology


0 download

DESCRIPTION

La modélisation d’un site marchand avec UML : une démarche agile mise en oeuvre avec Together

TRANSCRIPT

Page 1: Seminaire Borland UML (2003)

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

Page 2: Seminaire Borland UML (2003)

© 2

00

3 –

Va

lte

ch

Tra

inin

g Concevoir

09 Octobre 2003

1 : Introduction

Page 3: Seminaire Borland UML (2003)

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

Page 4: Seminaire Borland UML (2003)

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®

Page 5: Seminaire Borland UML (2003)

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 ?

Page 6: Seminaire Borland UML (2003)

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

Page 7: Seminaire Borland UML (2003)

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

Page 8: Seminaire Borland UML (2003)

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.

Page 9: Seminaire Borland UML (2003)

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

L’étude de cas

Exigences fonctionnelles : gestion du panier

Page 10: Seminaire Borland UML (2003)

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

Page 11: Seminaire Borland UML (2003)

© 2

00

3 –

Va

lte

ch

Tra

inin

g Concevoir

09 Octobre 2003

2 : Spécification des exigences -

les cas d’utilisation

Page 12: Seminaire Borland UML (2003)

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

La démarche

Comment décrire les besoins ?

Page 13: Seminaire Borland UML (2003)

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

Page 14: Seminaire Borland UML (2003)

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

Page 15: Seminaire Borland UML (2003)

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

Page 16: Seminaire Borland UML (2003)

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.

Page 17: Seminaire Borland UML (2003)

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

Page 18: Seminaire Borland UML (2003)

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

Page 19: Seminaire Borland UML (2003)

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]

Page 20: Seminaire Borland UML (2003)

© 2

00

3 –

Va

lte

ch

Tra

inin

g Concevoir

09 Octobre 2003

3 : Analyse du domaine

- les objets « métier »

Page 21: Seminaire Borland UML (2003)

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)

Page 22: Seminaire Borland UML (2003)

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

Page 23: Seminaire Borland UML (2003)

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

Page 24: Seminaire Borland UML (2003)

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

Page 25: Seminaire Borland UML (2003)

© 2

00

3 –

Va

lte

ch

Tra

inin

g Concevoir

09 Octobre 2003

4 : Conception objet –

passage au code

Page 26: Seminaire Borland UML (2003)

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

La démarche

De l’analyse à la conception

Page 27: Seminaire Borland UML (2003)

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

Page 28: Seminaire Borland UML (2003)

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

Page 29: Seminaire Borland UML (2003)

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

Page 30: Seminaire Borland UML (2003)

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

Page 31: Seminaire Borland UML (2003)

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

Page 32: Seminaire Borland UML (2003)

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

Page 33: Seminaire Borland UML (2003)

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

Passage au code Java

Page 34: Seminaire Borland UML (2003)

© 2

00

3 –

Va

lte

ch

Tra

inin

g Concevoir

09 Octobre 2003

5 : Conclusion

Page 35: Seminaire Borland UML (2003)

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

La démarche

Comment passer des besoins au code ?

Page 36: Seminaire Borland UML (2003)

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

La démarche

Page 37: Seminaire Borland UML (2003)

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

Page 38: Seminaire Borland UML (2003)

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 !

[email protected]