Anda di halaman 1dari 32

Mthodes fonctionnelles :

Structured Analysis - Structured Design


(SA - SD)
Bernard ESPINASSE
Professeur l'Universit d'Aix-Marseille

Plan
SA - Analyse Structure (Structured Analysis)
Notations des outils de SA : DFD, dictionnaires, ...
Mise en oeuvre des outils graphiques
SD - Conception Structure (Structured Design)
Dcoupage des programmes en modules
Diffrents types de couplage entre modules
Diffrents types de cohsions d'un module

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

Le s m thode s fonctionne lle s


ont leur origine dans le dveloppement des langages procduraux
plus orientes vers les traitements que vers les donnes
mettent en vidence la ou les fonctions assurer
proposent une approche hirarchique, descendante et modulaire en prcisant les liens
entre les diffrents modules
utilisent souvent des modles/outils de type DFD
avec l'volution des langages de programmation et des systmes, prennent en compte la
modlisation des donnes et les problmes poss par le temps rel (SA-RT)

mthodes fonctionnelle les plus connues :


SA-SD (Strutured Analysis -Structured Design - Yourdon, DeMarco, W.P.Stevens,
G.J.Myers, Constantine, Gane & Sarson,...)
SADT (Structured Analysis and Design Technique - Softech)
SA-RT (Strutured Analysis / Real Temps- Hatley & Pirbhai 1991) spcialis temps rel
...
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

Bibliogra phie compl me nta ire


SA-SD (Strutured Analysis - Structured Design) :

C.Gane, T.Sarson, "Structured Analysis : Tools and Techniques", New York,


Improved System Technologies, 1979, traduction franaise : "Analyse structure
des systmes : outils et techniques, IST, Gland, Suisse.
W.P.Stevens, G.J.Myers, U. Constantine, "Structured Design", IBM Systems
Journal, vol. 13, #12, pp. 115-139.
T. De Marco, "Structured Analysis and System Specification", Prentice Hall, 1978,
Prentice Hall, Englewood Cliffs, 1979.
...

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

S A - Ana lyse S tructur e ( S truture d Ana lysis)


SA-SD (Strutured Analysis / Structured Design - Yourdon, DeMarco, W.P.Stevens,
G.J.Myers, Constantine, Gane & Sarson,...)
mthode descendante, par raffinements successifs des traitements ou processus :

Outils utiliss :
chaque niveau de dcomposition usage des DFD :
le niveau le plus haut reprsente l'ensemble du problme: usage d'un diagramme de contexte
chaque diagramme de niveau infrieur dcompose en plusieurs processus les
processus dfinis au niveau juste suprieur, en respectant les flots de donnes
entrants et sortants
chaque processus non dcompos, est attache une "mini-spcification", sous
une forme plus ou moins formelle, ayant pour but de prciser comment, pour
chaque processus, les sorties sont produites partir des entres.
un dictionnaire prcise la dfinition des donnes, des processus et des fichiers
usage du langage naturel structur, des tables et arbres de dcision, d'aspects logique
de bas niveau

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

Le s nota tions D F D da ns S A
Yourdon, DeMarco, ...

Gane & Sarson

flux de donnes
processus

identification
description du
processus

description du
processus
localisation
(optionnelle)

dpt de donnes
identification

entit externe
(source / destination de
donnes)
flux matriel

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

D F D da ns S A ( G a ne & S a rson)

entit externe :
ensemble logique de choses/personnes reprsentant une origine ou une destination de
transaction (client, employ, service, ...) = gnrateur d'information primaire
flux de donnes :

information relative ....

processus :
identification du processus
description du processus
localisation physique o le processus est excut (ex:
service magasin)
dpt de donnes :
identification
du dpt

mmorisation des donnes


D3 comptes clients

lecture des donnes


dpt de donnes = fentre sur la base de donnes
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

Exemple de D F D d a n s S A ( G a n e & S a r s o n )
client

dtails paiement

paiement

affecter
paiement
facture

D1 compte client
dtails facture

attention ! : on se place un niveau logique (et non physique) => flux = information
ex: paiement = information sur paiement
mouvements de fonds

mouvement d'information

niveau physique (support)


argent, chque, carte crdit, ...

niveau logique (information)


mme information : montant pay

niveau physique = support


|
abstraction
|
niveau logique = information
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

Les interdits du D F D d a n s S A ( G a n e & S a r s o n )


a

D1

D1

D2

D2
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

L' cla te me nt d'un proce ssus


les entit externes ne sont pas reprsentes l'intrieur d'un clatement :
a

diagramme global niveau 1

clatement
diagramme clat niveau 2

logique des processus


dictionnaire de donnes (E-R)
diagramme des accs immdiats
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

D ta ils pour la conce ption structur e


dictionnaire de donnes : modle E-R -> base de donnes
diagramme des accs immdiats : -> base de donnes
logique des processus : tables et arbres de dcision, langages semi-structurs

P rise e n compte de s e rre urs e t e xce ptions


ne se fait que dans un diagramme de 2niveau (clatement)
l'analyse doit dcider si la fonction est assez importante pour tre intgre au
diagramme de niveau suprieur
mthode descendante, par raffinements successifs des traitements ou processus :

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

10

Exemple de DFD dans SA : diagramme de contexte

CLIENT

Ouvrir et grer
compte-client

Nouveau
client

VENDEUR

Vrifier
commande et
limite de crdit

Comman

Si limite
crdit
dpasse

GDP: Commande client


FORM.: Bon de
commande
Employ commandes

PRODUCTI
ON

Si limite
crdit non
Factu
re

Facturer
GDP: Facture
FORM.:
Formulaire de
facture
Comptable

GDP: Client
GDP: Compte client
FORM.: Fiche client
FORM.: Compte
client
Comptable

Coli
s

Produi

Prparer
livraison
GDP: Livraison
FORM.: Fiche de
Employ
stock
manutention

Entre
en stock
Sortie
de
stock

ENTREPT

Stocker nouveaux
produits
GDP: Entre en stock
GDP: Inventaire
FORM.: Fiche de stock
Employ manutention

Nom du modle
Ventes
Crateur
CSA R.
Cr le
31/03/94

Vers
MFO1
Modifi le
30/11/95

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

11

E xe mple de D F D da ns S A
SHINY: Activits de vente

SERVICE COMMANDES
VENDEUR

CLIENT(1/
4)

comman
de

Si limite
crdit
dpasse

Enregistrer
nouveau produit

MODULE: Fiche
Client

MODULE: Fiche
Produit
employ
PRODUCTIO
N

Compte-client(1/2)

limite de
crdit

Si
crdit
suffisa
commande
acceptable

Recevoir commande:
vrifier disponibilit du
produit
MODULE: Saisie
Commande
employ commandes

manutention

info fiche
client

Dcider limite de
crdit
MODULE: Compte
Client
comptable

entre
produit

Effectuer et
enregistrer
contrle
d'inventaire
employ
MODULE: Contrle
manutention
Inventaire

Enregistrer
rception produits
MODULE: Entre de
Production employ
manutention

nouvea
u solde
Inventaire
Produits(2/2)

commande

mise jour inventaire


Commandes(1
/2)
Inventaire
Produits(1/2)

CLIENT(2/
4)

Modifier commandes
MODULE: Saisie
Commande

modification
s commande

employ commandes

nouveau
solde

Imprimer rapport des


ventes
MODULE: Rapport des
Ventes
employ commandes

Priodiq
ue
-ment

ENTREPT

Enregister client

comptable

Recevoir
commande:
vrifier limite
crdit
employ
MODULE: Saisie
commandes
Commande

RESPONSABLE
DES VENTES(1/2)

Quotidie
nnement
au
besoin

SERVICE COMPTABILIT
nouvea
u client

Imprimer rapports
clientle
MODULE: Impression
Compte Client
commandes
MODULE:employ
Impression
Liste

paiem
ent
Mettre solde
jour
MODULE: Compte
Client comptable

Prparer et expdier colis

expdition
faite

MODULE: Expdition
MODULE: Impression
Bordereau Expdition
employ manutention

colis, bordereau
d'expdition

CLIENT(3/
4)

Compte-clien
t(2/2)

toutes les deux


semaines

Commandes(
2/2)

Traiter et imprimer
factures

Imprimer rapport des produits


MODULE: Impression Niveau
Inventaire
employ manutention

MODULE: Traitement
Factures
comptable
MODULE: Impression
factu
res

RESPONSABLE DES
VENTES(2/2)

comman
de
expdie

GESTIONNAIRE
DES PRODUITS

CLIENT(4/
4)

Nom du modle
SHINY SOAP Cie
Crateur
CSA R.
Cr le
24/06/94

Ve
MF
Modifi le
30/11/95

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

12

d ma rche pr conis e e n S A
1 identifier les entit externes -> les frontires du systme tudier
2 identifier les entres / sorties "rgulires" de ses entits externes
3 complments d'informations (rapports)
4 diagramme de contexte : entit externes et entres sorties
5 premier DFD (ne traite pas les erreurs et exceptions)
6 3 preuves
7 vrifier 1, 2, 3
8 autre version
9 vrifier avec usager
10 explosion (clatement) et traitement des erreurs et cas d'exception
11 artistique...

C onse ils
diagramme manipulable :
15 30 processus
10 dpts
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

13

S D - C once ption S tructur e ( S tructure d D e sign)


reprend les principes de dcomposition fonctionnelle de AS,
prcise les liens (simples, itratifs, alternatifs) et les passages de paramtres, entre les
diffrents modules
la notation utilise est celle des diagrammes de structure
un modle d'information, type modle Entit-Association, complte souvent cette mthode.

L'analyse et la conception "temps rel" : SA-RT (Hatley et Pirbhai 1991)


les outils de base de l'analyse structure pas suffisants pour spcifier les contraintes de temps
et de synchronisation, des extensions ont t apportes :
diagrammes de flots de contrle (CFD:Control Flow Diagram)
spcifications de contrle (Control Specification) permettant de reprsenter les
informations qui activent ou dsactivent les processus reprsents dans les DFD
Ward & Mellor prconisent l'utilisation de diagrammes tats-transitions pour mettre en
relief les vnements dclenchant les processus.
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

14

S D - C once ption S tructur e ( S tructure d D e sign)


ANALYSE STRUCTUREE : .......logique, DFD
->

qu'est ce que le systme doit faire

CONCEPTION STRUCTUREE : Stevens, Constantine, Myers, Yourdon (1975)


->

comment le systme doit-il tre fait

"processus itratif qui consiste :


prendre simultanment un modle logique d'un systme avec un ensemble
d'objectifs bien spcifis
produire les spcifications d'un systme physique qui satisferait ces
objectifs"
ensemble de considrations et de techniques pour :
la ralisation de logiciels, le dverminage, la maintenance plus facile et moins
coteuse
par rduction de complexit : dcoupage
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

en modules
15

Conception Structure : considrations gnrales


diviser le systme en modules disjoints, de telle manire que chacun puisse tre :
considr
implant
fix
modifi
avec le minimum de considrations des effets sur les autres modules du systme
pouvoir observer et valuer diffrentes alternatives de conception
considrer les effets dus des modifications raisonnables

objectifs principaux de la CS :
1 performance du systme
2 matrise du systme
3 aptitude au changement du systme
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

16

P e rforma nce du syst me


Avec quelle rapidit le systme physique pourra raliser le travail :
cadence de traitement
temps de traitement
temps de rponse
rle dterminant de la capacit de la mmoire centrale

Facteurs lis la performance :


1 nb de fichiers intermdiaires dans un systme
2 nb de fois pour lesquelles un fichier est explor
3 nb de recherches dans un fichier sur disque
-> optimisation du dplacement des ttes : rorganisation physique
4 temps d'excution proprement dit (algorithme)
-> instruction machine = recherche sur disque * (103 104)

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

17

M a trise du syst me
Niveau de scurit du systme par rapports aux erreurs humaines, aux dysfonctionnements des
logiciels et du matriel, au sabotage, ...
1 utilisation de digits de contrle :
ex: affectation d'un N de compte un client
nom: DUPONT

Ncompte: 1234567 : f(dupont) = 7

2 journaux (logs) :
ex: chaque transaction laisse une trace sur un journal par exemple gr par le SGBD
3 limitation l'accs aux fichiers :
qui ne peut avoir accs ces donnes (consultation, mise jour)
qui est autoris modifier ces donnes ? ...
-> mot de passe, profil d'utilisateur, sauvegardes sous cl, ...

Contrle et Scurit cotent cher


=> compromis trouver par le concepteur
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

18

Aptitude a u cha nge me nt du syst me


Facilit avec laquelle la conception permet de modifier le systme (erreurs, adaptation aux
besoins, ...)
Activit et Proportion du cot li la mise proportion du cot pendant la
au point
priode d'utilisation
Mise au point du systme :
analyse et conception :
programmation :
essai+correction :

35%
15%
50%

|
|
|

Systme en fonctionnement
Maintenance du systme :
correction en cours d'utilisation :
modification / nouveaux mat. et logiciels.
amlioration

cot

20%

80%

matriels +logiciels
spcialiss
-25%

+10%
taux horaire d'un analyste
programmeur

temps, annes

=> Conception Structure


Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

19

N otion de module

module = ensemble d'instructions contigus de programme ayant un nom par lequel les
autres parties du systme peuvent l'invoquer (et ayant de prfrence son propre
ensemble de variables locales)
exemple :
PL1/Pascal :
C:
fortran :
Ada :

recherche de modules

module = procdure
module = fonction
module = sous-programme
module = package

simples et indpendants :

la rsolution d'un problme est d'autant plus :


simple et rapide qu'il est divisible en parties pouvant tre considres
sparment
difficile si tous ses aspects doivent tre simultanment pris en compte

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

20

D e bons module s. . .
Pour permettre une meilleure aptitude la modification, les systmes logiciels le plus facile
grer sont constitus de :
petits modules : chaque module est associe une fonction :
processus

A
C

module de base
E

modules simples grer : c'est dire, sur listing, possible de se faire une image pertinente
de la fonction qui est assure par le module ( 150 lignes / module)
modules indpendants : viter l'effet de cascade :

modif. A => modif. B => modif. C ...

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

21

I sola tion de s fonctions


une fonction est d'autant plus isole quelle concerne le moins de modules possible :
exemple : les utilisateurs d'un systme informatique veulent changer la politique de
calcul de remise :
si la remise est calcule dans un seul module : pas d'effet de cascade, changement
facile et rapide
si diffrents lments de calcul de remise sont disperss dans plusieurs modules ou
si les remise sont calcules indpendamment dans plusieurs modules diffrents :
changement difficiles

fonction contenues dans des boites noires :


donnes fournies

rsultats
fonction f

1 une boite noire produit des rsultats parfaitement prvisibles vues partir du programme
qui fait appel elle
2 pas besoin de connatre le programme interne d'un module "boite noire" pour connatre sa
fonction
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

22

D coupa ge de s progra mme s e n module s


Comment dcouper les programmes en modules ?
valuation des diffrentes alternatives de dcomposition
notation graphique utile : graphe structurels :
A
1
B

in
X

out
Y

A = module appelant le module B


B est subordonn A
B reoit un paramtre d'entre X (nomm dans A) et renvoie le paramtre Y (nomm
dans A)
Considration des

connexions entre modules :

Plus la connexion est simple, rduite :


Plus facile est la comprhension
autres
Plus

d'un module sans se rfrer aux

rduites sont les propagations dues des modifications

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

23

D coupa ge de s progra mme s e n module s


usage des graphes structurels :
A
C

B
D

A invoque B puis C
B invoque D puis E

On doit considrer :
les connexions entre les modules :

-> notion de

couplage

l'intrieur d'un module :

-> notion de

cohrence

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

24

N otion de coupla ge

couplage = mesure de la contrainte de la relation tablie par une connexion d'un


module un autre
le

degr de couplage dpend de :


la complexit de la connexion
si elle rfre :
au module lui-mme
quelque chose qui lui est interne
ce qui doit tre envoy et reu
couplage

complexit de
l'interface
faible simple,
vidente
fort complique
obscure

type de connexion
au module
par nom
des lments
internes

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

type de couplage
(communication)
par donnes
par contrle
hybride

25

Couplage par partage d'un environnement commun


2 ou plusieurs modules sont connects avec la mme zone de mmoire de donnes, device, ...
ex :
Pascal/PL1: ens. de donnes dclares avec l'attribut "external", copi dans les
diffrents modules par un "include"
Fortran : donnes dfinies dans l'instruction "common" de chacun des modules
...
couple chaque module le partageant sans tenir compte de l'existence ou de l'absence de
relation(s) fonctionnelle(s)
tout lment de cet environnement :
constitue un chemin le long duquel peut se propager des erreurs / modifs
empche une bonne comprhension globale du systme (nb de modules
pouvant tre en relation)
les rfrences aux donnes peuvent devenir incontrle (voire inconnues ->
prudentes sauvegardes et restaurations avant couplage...)
d'o :
soit tablir un contexte de donnes pour chaque appel un module,
soit passer entre modules des paramtres via des interfaces dfinis.

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

26

Couplage par partage d'un environnement commun


soit :
M objets
d'o : M (M - 1) paires ordonnes d'objets
N lments partags par les M modules
d'o :
N x M (M - 1) relations ( un niveau) possibles le long desquelles peuvent se
propager des erreurs et modifications
Exemple :
un programme en fortran :
3 modules
25 variables partages
d'o : 25 x (3 (2)) = 150 paths (chemins) possibles !!!!

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

27

C oupla ge e ntre module s


3 types principaux :
couplage par les donnes
couplage par la commande
couplage externe ou pathologique

C oupla ge pa r le s donn e s :
c'est le plus souhaitable

sortir la
solution
sortie mise au format
solution

mettre la
solution au
format

remarque : plus il y a de donnes assurant le couplage, plus l'aptitude la modification est


rduite.
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

28

C oupla ge pa r la comma nde :


lorsqu'un module entre en contact avec l'extrieur (lecture, criture, ...)
introduction de variables de contrle ou "flag"
prendre la bonne
solution
flag d'dition
entre
brute

diteur

plus il y aura de branchements et de flags, plus le travail de maintenance sera difficile


Exemple : un module de base de lecture (contact extrieur) doit rfrer son "chef" pour lui
signaler par exemple qu'il a rencontr la fin d'un fichier, ou trouv une transaction incorrecte
=> variable de contrle (flag
)
Remarque :
M1

M2

M1 transmet un flag de contrle en faisant appel M2 => M2 n'est plus une boite noire, car M2
s'excutera selon les flags => mlange de fonctions dans M2
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

29

C oupla ge e xte rne ou pa thologique


M2
M1
couplage trs contraignant :
le module M1 se rfre :
qq chose l'intrieur de M2 ou
en extrayant des donnes dfinies dans M2 ou
passe le contrle des oprations qq chose l'intrieur de M2
modifie la manire dont fonctionne M2
Exemple : un module de sortie M1 lit un compteur de transactions qui appartient M2 (module
d'entre), d'o couplage non apparent : le compteur de transaction ne voit pas son contenu
passer de M1 M2 en remontant ou descendant la hirarchie :
sortie

entre

M2
compteur de
transaction : tcompt

M1
if tcompt > 10000 then ...

connexion pathologique

si modifications de M2 => problmes sur M1 !!!


couplage utilis que lorsque une situation se produit si rarement que cela ne vaut pas la peine
de remonter ou descendre la hirarchie : mais viter !
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

30

C oh sion d'un module


caractrise les modules bien faits

cohsion

module forte
: ses composants contribuent une fonction unique (ne
ncessite en consquence peu de couplage avec d'autres modules)

Types de cohsions
cohsion occasionnelle : la plus mauvaise :
le dcoupage en modules conduit ce qu'une fonction se retrouve assure par
plusieurs modules
cohsion logique : la moins mauvaise
combiner ensemble quelques fonctions lgrement diffrentes
cration d'un module plus compact que si programm sparment chaque fonction
ncessite l'usage de flags de contrle
difficile modifier (chemins logiques complexes)
ex: module qui dite tous les types de transactions
cohsion temporelle : mdiocre
contient diffrentes fonctions dont le seul point commun est d'tre utilises au mme
moment
isoler chaque fonction
ex: modules d'initialisation, de nettoyage, ...
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - 31

T ype s de coh sions ( suite )


cohsion procdurielle : passable
lorsque les modules sont dduits d'un organigramme
dans chaque module on accomplit plusieurs fonctions, mais ordres de commande
internes

M1

M2

cohsion communicationnelle : bonne


= cohsion procdurielle + les fonctions travaillent sur les mmes donnes
ex : M1 = calculer et imprimer les rsultats
cohsion fonctionnelle : la meilleure
le module assure une seule fonction
ex: M1 = calcul solution; M2 = imprime solution

Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -

32