Exp-GL42-SA-SD

Embed Size (px)

Citation preview

  • 7/21/2019 Exp-GL42-SA-SD

    1/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 - - 1

  • 7/21/2019 Exp-GL42-SA-SD

    2/32

    L e s m t h o d e s f o n ct i o nn e l l e s

    ont leur origine dans le dveloppement des langages procduraux

    plus orientes vers les traitementsque vers les donnes

    mettent en vidence la ou les fonctions assurer

    proposent une approche hirarchique, descendanteet modulaireen prcisant les liensentre 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 donneset 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 - - 2

  • 7/21/2019 Exp-GL42-SA-SD

    3/32

    B i b l i o g r a p h i e c o m p l m e n t a i r e

    SA-SD (Strutured Analysis - Structured Design) :

    C.Gane, T.Sarson, "Structured Analysis : Tools and Techniques", New York,Improved System Technologies, 1979, traduction franaise : "Analyse structuredes systmes : outils et techniques, IST, Gland, Suisse.

    W.P.Stevens, G.J.Myers, U. Constantine, "Structured Design", IBM SystemsJournal, 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 - - 3

  • 7/21/2019 Exp-GL42-SA-SD

    4/32

    S A - A n a l ys e S t r u ct u r e ( S t r u t ur e d A n a l ys i s)

    SA-SD (Strutured Analysis / Structured Design - Yourdon, DeMarco, W.P.Stevens,G.J.Myers, Constantine, Gane & Sarson,...)

    mthode descendante,par raffinements successifs des traitementsou processus:

    Outils utiliss :

    chaque niveau de dcomposition usage des DFD :

    le niveau le plus haut reprsente l'ensemble du problme: usage d'undiagramme de contexte

    chaque diagramme de niveau infrieur dcompose en plusieurs processus lesprocessus dfinis au niveau juste suprieur, en respectant les flots de donnesentrants et sortants

    chaque processus non dcompos, est attache une "mini-spcification", sousune forme plus ou moins formelle, ayant pour but de prciser comment, pourchaque processus, les sorties sont produites partir des entres.

    un dictionnaireprcise la dfinition des donnes, des processus et des fichiers usage dulangage naturel structur, des tables et arbres de dcision, d'aspects logique

    de bas niveau

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

  • 7/21/2019 Exp-GL42-SA-SD

    5/32

    L e s n ot a t i o ns D F D d a n s S A

    Yourdon, DeMarco, ... Gane & Sarson

    flux de donnes

    processus

    description duprocessus

    identification

    description duprocessus

    localisation(optionnelle)

    dpt de donnes

    identification

    entit externe

    (source / destination dedonnes)

    flux matriel

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

  • 7/21/2019 Exp-GL42-SA-SD

    6/32

    D F D d a n s S A ( G a n e & S a r s on )

    entit externe:ensemble logique de choses/personnes reprsentant une origine ou une destination detransaction (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 :

    identificationdu dptD3 comptes clients

    mmorisation des donnes

    lecture des donnes

    dpt de donnes = fentre sur la base de donnes

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

  • 7/21/2019 Exp-GL42-SA-SD

    7/32

    Exemple de DF D da ns S A ( G a ne & S a rs on)

    client affecterpaiement facture D1

    paiement

    dtails facture

    dtails paiement

    compte client

    attention ! : on se place un niveau logique (et non physique) => flux = information

    ex: paiement = information sur paiementmouvements de fonds mouvement d'information

    niveau physique (support) niveau logique (information)

    argent, chque, carte crdit, ... mme information : montant pay

    niveau physique= support|

    abst ract ion

    |niveau logique= information

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

  • 7/21/2019 Exp-GL42-SA-SD

    8/32

    Les interdits du DF D da n s S A ( G a ne & S a r s on )

    a a

    a a

    a b a b

    D1

    D2

    D1

    D2

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

  • 7/21/2019 Exp-GL42-SA-SD

    9/32

    L ' c l a t e m e n t d ' u n p r oc e s s u s

    les entit externesne sont pas reprsentes l'intrieur d'un clatement :

    a

    clatement

    logique des processusdictionnaire de donnes (E-R)

    diagramme des accs immdiats

    diagramme global niveau 1

    diagramme clat niveau 2

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

  • 7/21/2019 Exp-GL42-SA-SD

    10/32

    D t a i l s po u r la c o nc e p t i o n s t r u ct u r 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 r i se e n c o m pt e d e s e r r e u r s e t e x c e p t io ns

    ne se fait que dans un diagramme de 2niveau (clatement)

    l'analyse doit dcider si la fonction est assez importante pour tre intgre audiagramme de niveau suprieur

    mthode descendante,par raffinements successifs des traitementsou processus:

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

  • 7/21/2019 Exp-GL42-SA-SD

    11/32

    Exemple de DFD dans SA : diagramme de contexte

    Ouvrir et grercompte- client

    GDP: Client

    GDP: Compte clientFORM.: Fiche client

    FORM.: Compte

    clientComptable

    Prparerlivraison

    GDP: LivraisonFORM.: Fiche de

    stockEmploy

    manutention

    Vrifier

    commande etlimite de crdit

    GDP: Commande clientFORM.: Bon de

    commandeEmploy commandes

    CLIENT

    PRODUCTION

    Stocker nouveauxproduits

    GDP: Entre en stockGDP: Inventaire

    FORM.: Fiche de stock

    Employ manutention

    ENTREPT

    FacturerGDP: Facture

    FORM.:

    Formulaire de

    factureComptable

    VENDEUR

    Si l imi t e

    cr ditdpasse

    Coli

    sProdui

    Entreen stock

    Sortie

    destock

    Si l imi t e

    crdi t n o n

    Comman

    Factu

    re

    Nouveauclient

    Nom du modle

    Crateur Vers

    Cr le Modifi le

    Ventes

    CSA R. MFO1

    31/03/94 30/11/95

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

  • 7/21/2019 Exp-GL42-SA-SD

    12/32

    E x e m p le d e D F D d a n s S A

    SHINY: Activits de vente

    SERVICE COMMANDES SERVICE COMPTABILIT ENTREPT

    Quotidien-

    nementau

    besoin

    Priodique

    -ment

    CLIENT(1/4)

    Recevoircommande:

    vrifier limitecrdit

    MODULE: SaisieCommande

    employcommandes

    Enregister client

    MODULE: FicheClient

    comptable

    Dcider limite decrdit

    MODULE: CompteClient comptable

    Inventaire

    Produits(1/2)

    RESPONSABLE

    DES VENTES(1/2)

    Recevoir commande:vrifier disponibilit du

    produit

    MODULE: Saisie

    Commandeemploy commandes

    CLIENT(2/

    4)

    Mettre solde jour

    MODULE: Compte

    Client comptable

    PRODUCTION

    Enregistrerrception produits

    MODULE: Entre deProduction employ

    manutention

    Prparer et expdier colis

    MODULE: ExpditionMODULE: Impression

    Bordereau Expdition

    employ manutention

    Inventaire

    Produits(2/2)

    CLIENT(3/4)

    Traiter et imprimerfactures

    MODULE: Traitement

    FacturesMODULE: Impression

    comptable

    CLIENT(4/

    4)

    Compte-client(1/2)

    Commandes(1/2)

    Commandes(

    2/2)

    Compte- client(2/2)

    Modifier commandes

    MODULE: SaisieCommande

    employ commandes

    Imprimer rapport des

    ventes

    MODULE: Rapport des

    Ventesemploy commandes

    RESPONSABLE DESVENTES(2/2)

    Imprimer rapport des produits

    MODULE: Impression Niveau

    Inventaire

    employ manutention

    GESTIONNAIRE

    DES PRODUITS

    Enregistrernouveau produit

    MODULE: FicheProduit employ

    manutention

    Imprimer rapports

    clientle

    MODULE: Impression

    Compte Client

    MODULE: Impression Li steemploy commandes

    Effectuer etenregistrer

    contrled'inventaire

    MODULE: Contr leInventaire

    employ

    manutention

    VENDEUR

    commande

    Si l imite

    cr di tdpasse

    Si

    cr di tsuffisa

    commandeacceptable

    paiement

    commande

    expdie

    entreproduit

    colis, bordereaud'expdition

    factures

    info ficheclient

    limite decrdit

    commande

    mise jour inventaire

    modifications commande

    toutes les deux

    semaines

    nouveau client

    nouveau solde

    nouveausolde

    expdition

    faite

    Nom du modle

    Crateur Ve

    Cr le Modifi le

    SHINY SOAP Cie

    CSA R. MF

    24/ 06/ 94 30/ 11/ 95

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

  • 7/21/2019 Exp-GL42-SA-SD

    13/32

    d m a r c h e p r c on is 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 version9 vrifier avec usager

    10 explosion (clatement) et traitement des erreurs et cas d'exception

    11 artistique...

    C o n s e i l s

    diagramme manipulable :

    15 30 processus

    10 dpts

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

  • 7/21/2019 Exp-GL42-SA-SD

    14/32

    S D - C o n c e pt i on S t r u c t ur e ( S t r u ct u r e d D e s i g n)

    reprend les principes de dcomposition fonctionnellede AS,

    prcise les liens(simples, itratifs, alternatifs) et les passages de paramtres, entre lesdiffrents 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 tempset de synchronisation, des extensions ont t apportes :

    diagrammes de flots de contrle(CFD:Control Flow Diagram)

    spcifications de contrle(Control Specification) permettant de reprsenter lesinformations qui activent ou dsactivent les processus reprsents dans les DFD

    Ward & Mellor prconisent l'utilisation de diagrammes tats-transitions pour mettre enrelief les vnements dclenchant les processus.

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

  • 7/21/2019 Exp-GL42-SA-SD

    15/32

    S D - C o n c e pt i on S t r u c t ur e ( S t r u ct u r e d D e s i g n)

    ANALYSE STRUCTUREE: .......logique, DFD

    -> qu'est ce quele systme doit faire

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

    -> commentle systme doit-il tre fait

    "processus itratif qui consiste :

    prendre simultanment un modle logique d'un systmeavec un ensembled'objectifsbien spcifis

    produire les spcifications d'un systme physiquequi satisferait cesobjectifs"

    ensemble de considrationset de techniquespour :

    la ralisation de logiciels, le dverminage, la maintenance plus facile et moinscoteuse

    par rduction de complexit: dcoupage en modules

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

  • 7/21/2019 Exp-GL42-SA-SD

    16/32

    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

  • 7/21/2019 Exp-GL42-SA-SD

    17/32

    P e r f o rm a n c e d u s y s t m e

    Avec quelle rapidit le systme physique pourra raliser le travail :

    cadencede traitement

    temps de traitement

    temps de rponse

    rle dterminant de la capacit de la mmoire centrale

    Facteurs lis la performance :

    1 nb de fichiers intermdiairesdans un systme

    2 nb de foispour lesquelles un fichierest explor

    3 nb de recherches dans un fichiersur disque

    -> optimisation du dplacement des ttes : rorganisation physique

    4 temps d'excutionproprement dit (algorithme)

    -> instruction machine = recherche sur disque * (103 104)

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

  • 7/21/2019 Exp-GL42-SA-SD

    18/32

    M a t r i se d u sy s t m e

    Niveau de scurit du systme par rapports aux erreurs humaines, aux dysfonctionnements deslogiciels 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 concepteurMthodes Fonctionnelles : SA/SD - Gnie Logiciel - Bernard ESPINASSE - - 18

  • 7/21/2019 Exp-GL42-SA-SD

    19/32

    A p t i t u de a u c h a n g e m e n t d u s y st m e

    Facilit avec laquelle la conception permet de modifierle systme (erreurs, adaptation auxbesoins, ...)

    Activit et Proportion du cot li la miseau point proportion du cot pendant lapriode d'utilisationMise au point du systme :

    analyse et conception : 35% programmation : 15% essai+correction : 50%

    || 20%|

    Systme en fonctionnementMaintenance du systme :

    correction en cours d'utilisation :

    modification / nouveaux mat. et logiciels. amlioration

    |

    | 80%|

    cot

    temps, annes

    matriels +logicielsspcialiss

    -25%+10%

    taux horaire d'un analysteprogrammeur

    => Conception Structure

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

  • 7/21/2019 Exp-GL42-SA-SD

    20/32

    N o t i o n d e m o d u l e

    module= ensemble d'instructions contigus de programme ayant un nom par lequel lesautres parties du systme peuvent l'invoquer (et ayant de prfrence son propre

    ensemble de variables locales)

    exemple :

    PL1/Pascal : module = procdureC : module = fonctionfortran : module = sous-programmeAda : module = package

    recherche de modules simpleset indpendants:

    la rsolution d'un problmeest d'autant plus :

    simple et rapidequ'il est divisibleen parties pouvant tre considres

    sparment

    difficilesi tous ses aspectsdoivent tre simultanmentpris en compte

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

  • 7/21/2019 Exp-GL42-SA-SD

    21/32

    D e b on s m od ul e 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

    B C

    D E F G

    module de base

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

    modules indpendants : viter l'effet de cascade :

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

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

  • 7/21/2019 Exp-GL42-SA-SD

    22/32

    I s o la t i o n d e s f o n ct i o ns

    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 decalcul de remise :

    si la remise est calcule dans un seul module : pas d'effet de cascade, changementfacile et rapide

    si diffrents lments de calcul de remise sont disperss dans plusieurs modules ousi les remise sont calcules indpendamment dans plusieurs modules diffrents :changement difficiles

    fonction contenues dans des boites noires :

    fonction f

    donnes fourniesrsultats

    1 une boite noire produit des rsultatsparfaitement prvisiblesvues partir du programmequi fait appel elle

    2 pas besoin de connatre le programme interned'un module "boite noire" pour connatre safonction

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

  • 7/21/2019 Exp-GL42-SA-SD

    23/32

    D c o up a g e d e s p r og r a m m e s e n m od u le s

    Comment dcouper les programmes en modules ?

    valuation des diffrentes alternatives de dcomposition

    notation graphique utile : graphe structurels :

    A

    B

    1

    X Y

    in out

    1

    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 connexionsentre modules :Plus la connexion est simple, rduite :

    Plus facileest la comprhension d'un modulesans se rfrer auxautres

    Plus rduitessont les propagationsdues des modifications

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

  • 7/21/2019 Exp-GL42-SA-SD

    24/32

    D c o up a g e d e s p r og r a m m e s e n m od u le s

    usage des graphes structurels:

    A

    B C

    D E

    A invoque B puis CB 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

  • 7/21/2019 Exp-GL42-SA-SD

    25/32

    N o t i o n de c o u p l a g e

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

    le degr de couplagedpend 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 del'interface

    type de connexion type de couplage(communication)

    faible simple,

    vidente

    au module

    par nom

    par donnes

    par contrle

    fort complique

    obscure

    des lments

    internes

    hybride

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

  • 7/21/2019 Exp-GL42-SA-SD

    26/32

    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 lesdiffrents modules par un "include"

    Fortran : donnes dfinies dans l'instruction "common" de chacun des modules

    ...

    couple chaque module le partageant sans tenir comptede l'existence ou de l'absence derelation(s) fonctionnelle(s)

    tout lment de cet environnement :

    constitue un cheminle long duquel peut se propagerdes erreurs / modifs

    empcheune bonne comprhension globaledu systme (nb de modulespouvant tre en relation)

    les rfrences aux donnespeuvent devenir incontrle(voire inconnues ->prudentes sauvegardes et restaurations avant couplage...)

    d'o : soit tablir un contexte de donnespour chaque appel un module,

    soit passer entre modules des paramtresvia des interfaces dfinis.

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

  • 7/21/2019 Exp-GL42-SA-SD

    27/32

    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 sepropager des erreurs et modifications

    Exemple :

    un programme en fortran :

    3 modules

    25 variables partagesd'o : 25 x (3 (2)) = 150 paths (chemins) possibles !!!!

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

  • 7/21/2019 Exp-GL42-SA-SD

    28/32

    C o u p l a g e e n t r e m o du l e s

    3 types principaux :

    couplage par les donnes

    couplage par la commande couplage externe ou pathologique

    C o u p l a g e p a r l e s d o nn e s :

    c'est le plus souhaitable

    sortir lasolution

    mettre la

    solution auformat

    sortie mise au format

    solution

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

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

  • 7/21/2019 Exp-GL42-SA-SD

    29/32

    C o u p l a g e p a r l a c o m m a n d e :

    lorsqu'un module entre en contact avec l'extrieur (lecture, criture, ...)

    introduction de variables de contrle ou "flag"

    prendre la bonnesolution

    diteur

    flag d'dition

    entre

    brute

    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 luisignaler 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 M2s'excutera selon les flags => mlange de fonctions dans M2

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

  • 7/21/2019 Exp-GL42-SA-SD

    30/32

    C o u p l a g e e x t e r n e o u p a t h o lo g iq u e

    couplage trs contraignant:M1 M2

    le module M1 se rfre:

    qq chose l'intrieur de M2ou en extrayant des donnesdfinies dans M2 ou passe le contrledes 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 (moduled'entre), d'o couplage non apparent : le compteur de transaction ne voit pas son contenupasser de M1 M2 en remontant ou descendant la hirarchie :

    M2 M1

    connexion pathologiqueif tcompt > 10000 then ...

    entre sortie

    compteur de

    transaction : tcompt

    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

  • 7/21/2019 Exp-GL42-SA-SD

    31/32

    C o h s i o n d ' u n m o d u l e

    caractrise les modules bien faits

    module forte

    cohsion: 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 parplusieurs 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

  • 7/21/2019 Exp-GL42-SA-SD

    32/32

    T y p e s d e c o h s i o n s ( s u it e )

    cohsion procdurielle : passable

    lorsque les modules sont dduits d'un organigramme

    dans chaque module on accomplit plusieurs fonctions, mais ordres de commandeinternes

    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