You are on page 1of 70

Analyse du probl!

me " Sp#ci$cation des besoins


Gerson Suny# " gerson.sunye@univ"nantes.fr

Plan
Aper%u du processus. Techniques de mod#lisation. Concepts de base. Analyse du probl!me. Sp#ci$cation des besoins.

Aper%u du processus

Mod#liser, concevoir, impl#menter et tester, p#riodiquement Di&#rent chemins possibles ' l(int#rieur de la m#thode Le processus est non"lin#aire, it#ratif et parall!le

Techniques de mod#lisation

Techniques de mod#lisation

Dictionnaire Carte conceptuelle )Concept Map! Diagrammes UML )rappel* Instantan#s )Snapshots* Cas d(utilisation DSL

Dictionnaire )1/2*

Permet de $ger la terminologie du domaine d(application. Constitue le point d(entr#e et le r#f#rentiel initial du syst!me. Outil de dialogue informel, #volutif et simple ' r#aliser.

Dictionnaire )2/2*
Exemple de dictionnaire
Exemple pour un simulateur de vol :
Dictionnaire d'un simulateur de vol
Dfinition
Action de piloter un avion en enchanant des manoeuvres lmentaires Organe d'interaction entre le pilote et l'avion ou entre l'avion et le pilote Instrument qui permet d'agir sur la quantit de carburant injecte dans le moteur Package

Notion
Pilotage

Traduit en ... Nom informatique


Pilotage

Instrument

Classe abstraite Classe

Instrument

Manette des gaz

Manette_gaz

Action
Mettre les gaz fond

Dfinition
Action qui permet dinjecter le maximum de carburant pour atteindre la vitesse maximale

Traduit en ... Nom informatique


Opration Mettre_a_fond

1997-2001 J.-M. Jzquel

100

Carte conceptuelle )1/3* +Novak 84,

Une carte conceptuelle est une repr#sentation graphique d(une base de connaissances d#claratives qui poss!de une organisation hi#rarchique.

Carte conceptuelle )2/3*

Repr#sentation informelle )bien que structur#e* des termes en relation d(un domaine.

Carte conceptuelle )3/3*

Vidothque

Membres

Catalogue

Client

Loue, achte, rserve

Video

rserv

emprunt

prix

10

UML " Diagramme de classes


HTML Page

Sans d#tails Analyse


HTML Page

HTML Page title : String size : Integer render() save()


HTML Page public title : String /size : Integer package version : Integer protected contents : String private visibility : Boolean = true tags : String [1..*] public render() save() private optimize()

Conception Propri#t#s group#es selon leur visibilit#

+ title : String + /size : Integer ~ version : Integer # contents : String - visibility : Boolean = true - tags : String [1..*] + render() + save() - optimize()

11

UML " Diagramme d(instances


Similaire ' celle d(une classe Le nom de l(instance et celui de la classe sont
soulign#s et s#par#s par -:.

Les deux noms sont facultatifs


Arnaud : Etudiant adresse = "13 r du pont" age : Integer = 38 appartient : Dpartement nom = "Informatique"

12

Instantan#s )1/2*

Un diagramme d(instances repr#sentant l(#tat d(un syst!me ' un moment donn#e. Repr#sentation du probl!me )m#tier*, non obligatoirement un logiciel:

Les objets et liens peuvent repr#senter aussi bien des $ches en papier que des tuples d(une base de donn#es.

13

Instantan#s )1/2*
laurent:Etudiant nom = "Dupont" prenom = "Laurent" age = 32 lessive:Matire

repassage:Matire

jardinage:Matire aurelie:Etudiant nom = "Montaigne" prenom = "Aurlie" age = 37

cirage:Matire

14

Les cas d(utilisation )use"cases*


Un cas d(utilisation est une mani!re
particuli!re d(utiliser le syst!me

s#quence d(interactions entre le syst!me et


un ou plusieurs acteurs

Ils s(expriment par des diagrammes de


s#quences

15
15

Les cas d(utilisation


La compilation des cas d(utilisation d#crit de
mani!re informelle le service rendu par le syst!me fournissent une expression -fonctionnelle. du besoin peuvent piloter la progression d(un cycle en spirale Les cas d(utilisation sont nomm#s en utilisant la terminologie d#crite dans le dictionnaire
16
16

Cas d(utilisation

Un cas d(utilisation est un texte. /crire des bons cas d(utilisation est surtout une question de style.

17

Canevas de description +Cockburn,



Use Case: <number> <the name should be the goal as a short active verb phrase> Goal in Context: <a longer statement of the goal, if needed> Scope: <what system is being considered black"box under design> Level: <one of: Summary, Primary task, Subfunction> Primary Actor: <a role name for the primary actor, or description> Priority: <how critical to your system / organization> Frequency: <how often it is expected to happen>

18

Canevas de description )suite*



MAIN SUCCESS SCENARIO EXTENSIONS SUB!VARIATIONS Superordinate Use Case: <optional, name of use case that includes this one> Subordinate Use Cases: <optional, depending on tools, links to sub.use cases>

19

Exemple )1/4*
Use Case: 5 Buy Goods -------------------------------------------------CHARACTERISTIC INFORMATION Goal in Context: Buyer issues request directly to our company, expects goods shipped and to be billed. Scope: Company Level: Summary Preconditions: We know Buyer, their address, etc. Success End Condition: Buyer has goods, we have money for the goods. Failed End Condition: We have not sent the goods, Buyer has not spent the money. Primary Actor: Buyer, any agent (or computer) acting for the customer Trigger: purchase request comes in.

20

Exemple )2/4*
MAIN SUCCESS SCENARIO 1. Buyer calls in with a purchase request. 2. Company captures buyers name, address, requested goods, etc. 3. Company gives buyer information on goods, prices, delivery dates, etc. 4. Buyer signs for order. 5. Company creates order, ships order to buyer. 6. Company ships invoice to buyer. 7. Buyers pays invoice. EXTENSIONS 3a. Company is out of one of the ordered items: 3a1. Renegotiate order. 4a. Buyer pays directly with credit card: 4a1. Take payment by credit card (use case 44) 7a. Buyer returns goods: 7a. Handle returned goods (use case 105)
21

Exemple )3/4*
SUB-VARIATIONS 1. Buyer may use phone in, fax in, use web order form, electronic interchange 7. Buyer may pay by cash or money order check

22

Exemple )4/4*
RELATED INFORMATION Priority: top Performance Target: 5 minutes for order, 45 days until paid Frequency: 200/day Superordinate Use Case: Manage customer relationship (use case 2) Subordinate Use Cases: Create order (use case 15) Take payment by credit card (use case 44) Handle returned goods (use case 105) Channel to primary actor: may be phone, le or interactice Secondary Actors: credit card company, bank, shipping service Channels to Secondary Actors: Due Date: release 1.0 ---------------------------OPEN ISSUES What happens if we have part of the order? What happens if credit card is stolen? --------------------------SCHEDULE

23

DSL

Domain speci"c language. Sp#ci$cation d(un langage ' partir du vocabulaire du domaine.

24

Concepts de base
Objets et Actions

25

Concepts de base

Objet: information + fonctionnalit#. Action: quelque chose qui se passe.

Les actions sont )ou peuvent 0tre* ind#pendantes des objets. Elles seront li#es aux objets plus tard. Les actions modi$ent les objets.

26

Concepts de base

Les actions sont au m0me niveaux que les objets Une conception bien d#coup#e demande une r#1exion pr#cise sur les actions et ce qu(elles r#alisent

27

Fractales

Une image fractale a la m0me apparence ' tous les niveaux Objets: d#partements d(a&aires, machines, composants logiciels, concepts de langage de programmation. Actions repr#sentent les interactions entre objets: accords d(a&aires, appels t#l#phoniques, tours en v#lo, etc.

28

Actions )1/2*

Actions == collaborations Les collaboration sont utilis#es pour mod#liser:

ce qu(il se passe ' l(int#rieur d(un composant logiciel. interaction entre composants. mod#lisation du domaine: comment les objets du monde r#el interagissent?

29

Actions )2/2*

Les Actions ont des participants )objets* Combien d(objets sont n#cessaires? Autant qu(il faut pour d#crire les actions. Les associations fournissent un vocabulaire utilis# pour d#crire les e&ets d(une action

30

Deux sortes d(actions



Localis"e )ou op#ration*

orient#e )un #metteur, un destinataire*

Conjointe. sym#trique, ' n participants dite 2Cas d(utilisation3 )Use Case* pour l(analyse du probl!me

31

Les objets participent aux actions


enseigne /tudiant Type d(objet Enseignant Type d(action )cas d(utilisation*

Un diagramme seul n(est pas su4sant. Il doit 0tre accompagn# par une explication dans un dictionnaire s#par#

32

Concepts de base

Les responsabilit#s ne sont pas assign#es aux objets d!s le d#but. /tapes:

Ce qu(il se passe Quel objet est responsable du d#clenchement de ce qu(il se passe

33

Les Actions a&ectent les Objets



Les objets sont utilis#s pour d#crire l(e&et des action sur les participants Les actions sont caract#ris#es par ce qu(elles accomplissent De nouveaux termes sont introduits pour d#crire l(e&et )ou la post"condition*

action(tudiant, enseignant)::enseigne(matire) post! -- cette matire a t ajoute aux comptences de ltudiant


34

Les Actions a&ectent les Objets


*
comptence

*
Matire

tudiant

De nouveaux termes sont introduits pour d#crire l(e&et )ou la post"condition* Les #toiles indiquent qu(un #tudiant peut avoir plusieurs comp#tences La $gure est une indication )optionnelle* qu(un #tudiant est un r5le
35

Les Actions a&ectent les Objets

Utilisation d(instantan#s )snapshots* pour visualiser une action Laurent:tudiant Les lignes #paisses sont utilis#es pour repr#senter une cr#ation de lien
lessive:Matire

repassage:Matire

jardinage:Matire

cirage:Matire Aurlie:tudiant

action(Aurlie, unEnseignant)::enseigne(repassage)
36

Les Actions a&ectent les Objets



G#n#ralement, les modi$cations sont pr#sent#es en gras )ou en couleurs* Les associations repr#sentent des relations du monde r#el ou d(un logiciel )Laurent dans un SGBD* L (utilisation d(associations fournit:

le mod!le statique )vocabulaire pour les actions* le mod!le dynamique )un guide claire des objets requis*
37

Ra4nements
Objets et Actions dans di&#rentes #chelles

38

Ra4nement

Interaction entre objets, ind#pendamment de leur #chelle

39

Ra4nement

Le diapo pr#c#dent montre une interaction Chaque bo6te a une structure similaire

objets encapsul#s d(une mani!re ordonn#e un ensemble de t7ches les donn#es sur lesquelles s(appuient les t7ches

40

Actions dans di&#rentes #chelles


enseigne
Client

Sujet

Compagnie de S#minaires

Le syst!me de s#minaires fait partie d(une plus grande organisation Il est possible de rentrer dans l(action et voir ses d#tails
41

Actions dans di&#rentes #chelles


Programme le cours
programme

Client

Sujet
fait cours

Compagnie de s#minaires

R#alise le cours

42

Composition

Assemblage
enseigne

Les actions plus petites peuvent s(e&ectuer en parall!le ou en s#quence Ce d#tail est donn#e s#par#ment )diagrammes de s#quences*

includes

includes

programme fait cours

43

Actions, objets

Les ellipses sont des types d(actions qui d#$nissent toutes les interactions possibles Elles lient des acteurs )types d(objets*, qui d#crivent le r5le jou# par certaines instances

44

Diagramme de s#quences +Catalysis,


Instances d(objets

ibm: Client

seminoMax: CompagnieS#minaires programme )java* fait cours )java* Occurrences d(actions

Temps

45

Objets dans di&#rentes #chelles


Association

Compagnie de s#minaires * Cours Syst!me de s#minaires Ventes

Assemblage

Sujet

Operations

46

Objets dans di&#rentes #chelles



Pr#sentation des objets qui le composent )les constituants* Les personnages sont utilis#s pour mettre les r5les en valeur Un objet peut jouer di&#rents r5les

47

Objets dans di&#rentes #chelles


programme Client Syst!me de s#minaires fait cours Ventes

Operations

A ce niveau, il est possible de montrer que


l(organisation de cours traite avec les syst!mes de ventes et d(op#rations
48

Objets dans di&#rentes #chelles

La possibilit# de faire des zooms avant et arri!re et d(avoir un aper%u g#n#ral ainsi que les d#tails $ns est essentielle ' une conception qui est:

Coh#rente Tra%able Maintenable


49

Analyse du probl!me
Business Modeling

50

Analyse du probl!me/domaine

Mod#lisation du m#tier, et non de la solution propos#e Utilis#e pour comprendre le m#tier Peut servir pour di&#rents projets

51

Hypoth!se d(un monde id#al



Capacit# de calcul importante. M#moire in$nie, rapide, persistante et capable de garder l(historique de ses modi$cations. Communications rapides et $ables, sans aucun probl!me de s#curit#. Absence de d#faillance.

52

Analyse du probl!me

Les exemples pr#c#dents sont typiquement des partie du mod!le du probl!me Questions initiales:

Que faites vous? Avec qui vous traitez?

Chaque verbe correspond ' une action

53

Analyse du probl!me

Ajouter ' la liste de questions: 2qui participe ' l(action?3 et 2quel est l(impact de l(action sur leur #tat?3 Les r#ponses )' ces questions* conduisent aux types d(objets et aux post"conditions Les types d(objets et les post"conditions conduisent aux associations et aux attributs qui illustrent les e&ets

54

Analyse du probl!me

Nouveau type d(objet: ajouter ' la liste de questions:

2Quelles actions l(a&ectent?3 2Quelles actions sont a&ect#es par lui?3

55

Analyse du probl!me
* Sujet sujet * Cours quali$cations * cours 1 Panne d(instructeur * instructeur * Instructeur panne 1 * quand Date

Client *

Classe

Vacances

Mod!les statiques et invariants: Montrent les relations statiques et les


attributs

56

Analyse du probl!me

Un invariant, comme une post"condition, est #crit en suivant les liens ' partir d(un point de d#part Ils sont d#crits de mani!re informelle et #crits dans un langage de conditions bool#ennes

57

Analyse du probl!me

L (analyste a d#cid# que les vacances et les classes un cours sont des sortes de panne d(instructeur )non disponible*.

inv -- pour toute Classe, les qualications de linstructeur doivent inclure le cours: Classe::instructeur.qualications->includes(cours)

inv -- pour tout Instructeur et pour toute Date, le nombre de panne ! ! dinstructeurs ne peut pas dpasser 1 Instructeur:: d:Date :: panne[quand = d] <= 1

58

Analyse du probl!me

Encore des instantan#s:


lg : Instructeur java : Sujet sujet : Cours cours ibm: Client : Classe : FaitCours Association hrite : FaitCours quand 1998/9/6/: Date Nouveaux objets et liens ca : Instructeur

1998/7/8 Date

1998/6/4: Date

59

Analyse du probl!me
Les post"conditions des actions sont #crites en
termes d(associations statiques.
action (c:Client, s:CompagnieSminaires) :: programme (t: Cours, d: Date) post!-- une nouvelle Classe est cre avec une date, un client et un cours " " r: Classe.new [date = d, client = c, cours = t, ! ! " " " "

instructeur.panne @ pre[quand = d] = 0 and instructeur.qualications -> includes( t )]

-- Un instructeur, qui tait libre et quali pour le cours, est affect

60

Sp#ci$cation des besoins

61

Besoins )1/2*

Objectif principal: comprendre le probl!me Livrables typiques:

Mod!le du domaine )collaborations, types, dictionnaire* Besoins fonctionnels: diagramme du contexte, cas d(utilisations, sc#narios Besoins non"fonctionnels: performance, etc.

62

Besoins )2/2*

Autres livrables:

Contraintes connues de plate"forme : mat#riel, syst!mes d(exploitation, etc. Contraintes du projet et planning: budget, d#lais, personnel, etc.

63

Sp#ci$cation des besoins



Comme dans le mod!le du domaine, l(e&et d(une action peut"0tre illustr# part un snapshot. Cependant, les diagrammes ne repr#sentent plus des objets r#els, mais des objets du syst!me 8 ils sont repr#sent#s ' l(int#rieur des fronti!res du syst!me.

64

Sp#ci$cation des besoins

La sp#ci$cation des besoins du syst!me est souvent similaire au mod!le du domaine.

65

Instantan#s
: System de Sminaires
java : Subjet topic jo2: Cours cours ibm: Client jo : Instructeur pat : Instructeur

programmer (java101, 1998/4/4, IBM)


: Classe

: Classe

: Classe quand 1998/9/6/: Date

1998/7/8 Date

1998/6/4: Date

66

Sous"syst!mes
Seminar System
Subject

check Sched set vacances

Ventesprogrammer

*sujet *
Cours

check Sched

*qualifications
PanneInstructeur

stocker exam

course

* panne

instructor

*
Instructeur

Operations
arrange accom print materiasl

Classe

Vacances

quand Date

manage

Client

67

Un peu de lecture
+Catalysis,

68

Patrons de processus

D#veloppement ' partir de z#ro. Reengineering. D#veloppement avec des cycles courts. Travail en parall!le.

69

Patrons de processus

Am#lioration du processus existant Faire un mod!le du domaine Repr#senter le vocabulaire et les r!gles du domaine Faire participer les experts du domaine Cr#er un mod!le du domaine commun Choisir un niveau d(abstraction
70

You might also like