Académique Documents
Professionnel Documents
Culture Documents
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
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
Le s nota tions D F D da ns S A
Yourdon, DeMarco, ...
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
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 :
processus :
identification du processus
description du processus
localisation physique o le processus est excut (ex:
service magasin)
dpt de donnes :
identification
du dpt
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
D1
D1
D2
D2
Mthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - -
clatement
diagramme clat niveau 2
10
CLIENT
Ouvrir et grer
compte-client
Nouveau
client
VENDEUR
Vrifier
commande et
limite de crdit
Comman
Si limite
crdit
dpasse
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
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
CLIENT(2/
4)
Modifier commandes
MODULE: Saisie
Commande
modification
s commande
employ commandes
nouveau
solde
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
expdition
faite
MODULE: Expdition
MODULE: Impression
Bordereau Expdition
employ manutention
colis, bordereau
d'expdition
CLIENT(3/
4)
Compte-clien
t(2/2)
Commandes(
2/2)
Traiter et imprimer
factures
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
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
14
en modules
15
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
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
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, ...
18
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
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 :
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 :
21
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
in
X
out
Y
23
B
D
A invoque B puis C
B invoque D puis E
On doit considrer :
les connexions entre les modules :
-> notion de
couplage
-> notion de
cohrence
24
N otion de coupla ge
complexit de
l'interface
faible simple,
vidente
fort complique
obscure
type de connexion
au module
par nom
des lments
internes
type de couplage
(communication)
par donnes
par contrle
hybride
25
26
27
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
28
diteur
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
entre
M2
compteur de
transaction : tcompt
M1
if tcompt > 10000 then ...
connexion pathologique
30
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
M1
M2
32