Méthodes fonctionnelles : Structured Analysis - Structured Design (SA - SD)

Documents pareils
3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Cours de Génie Logiciel

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Les diagrammes de modélisation

Université de Bangui. Modélisons en UML

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

IFT2255 : Génie logiciel

UML et les Bases de Données

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

2. Activités et Modèles de développement en Génie Logiciel

Analyse,, Conception des Systèmes Informatiques

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Conception, architecture et urbanisation des systèmes d information

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Bases de données. Chapitre 1. Introduction

Chapitre I : le langage UML et le processus unifié

MEDLINE BANQUE DE DONNÉES EN MÉDECINE INTERFACE PUBMED INITIATION

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Chapitre 1 : Introduction aux bases de données

SAP BusinessObjects Web Intelligence (WebI) BI 4

ITIL V2. La gestion des changements

Business Process Modeling (BPM)

UNIVERSITE D'ORLEANS ISSOUDUN CHATEAUROUX

Méthodes de développement. Analyse des exigences (spécification)

Business Intelligence : Informatique Décisionnelle

PROJET DE PORTAIL INTRANET YNNA

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

OwnCloud. Définition 1 / 10. Date d'édition 03/09/2013 Public concerné Étudiants, Personnels Version du logiciel

Baccalauréat professionnel GESTION ADMINISTRATION

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Gouvernance des mesures de sécurité avec DCM-Manager. Présentation du 22 mai 2014

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Conditions générales de la boutique en ligne Vemma Europe (

Business Intelligence avec SQL Server 2012

Chapitre 10. Architectures des systèmes de gestion de bases de données

Introduction : présentation de la Business Intelligence

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Bases de Données. Plan

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

LE CONTRÔLE INTERNE GUIDE DE PROCÉDURES

Leçon 11. les tâches de gestion du magasin

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language

Cours Base de données relationnelles. M. Boughanem, IUP STRI

CH.3 SYSTÈMES D'EXPLOITATION

Le génie logiciel. maintenance de logiciels.

Introduction aux Bases de Données

Structure fonctionnelle d un SGBD

Activité : Élaboration, mise en forme et renseignement de documents

Processus d Informatisation

Gestion de la Maintenance Assistée par Ordinateur

Guide de démarrage rapide

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

MEGA Application Portfolio Management. Guide d utilisation

SAGE: Introduction. 1 Connections WEB. 2 Généralités. 1.1 Sur le web insset. 2.1 Conception modulaire. Sage. 100-Introduction

EXAMEN PROFESSIONNEL DE VERIFICATION D APTITUDE AUX FONCTIONS D ANALYSTE-DEVELOPPEUR SESSION 2009

JetClouding Installation

DOCUMENTATION POINT FACTURE

Présentation du module Base de données spatio-temporelles

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Gérer ses impressions en ligne

ERP5. Gestion des Services Techniques des Collectivités Locales

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Soutien technique en informatique

Gestion collaborative de documents

Qu'est-ce que le BPM?

Systèmes d information et bases de données (niveau 1)

Évaluation et implémentation des langages

Nom de l application

Créer le schéma relationnel d une base de données ACCESS

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Convention Beobank Online et Beobank Mobile

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Bernard HAMM, Évelyne LAVOISIER

Contrôle interne et organisation comptable de l'entreprise

PORTAIL INTERNET DE LA GESTION PUBLIQUE Guide d'utilisation du Portail Internet de la Gestion Publique

GESTION LOGISTIQUE GESTION COMMERCIALE GESTION DE PRODUCTION

Contenu Acomba 9.57 ATELIER 1 VUE D ENSEMBLE DU PROGRAMME ATELIER 3 RAPPORTS ATELIER 2 MODULE COMPTABILITÉ TRANSACTIONS ATELIER 4 MODULE CLIENTS.

1. Le service Commercial

Développement spécifique d'un système d information

Le Service de Télétransmission par Internet des banques du Réseau OCÉOR GUIDE UTILISATEURS. Version V1.0

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla

Enquête 2014 de rémunération globale sur les emplois en TIC

Annexe I. au contrat de service Questel. Tarifs 2015 en Euros

PLAN MULTIMEDIA DANS LES ECOLES UN ESPACE DE STOCKAGE NUMERIQUE (NAS) DANS VOTRE ECOLE. Sommaire

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Transcription:

Méthodes fonctionnelles : Structured Analysis - Structured Design (SA - SD) Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan SA - Analyse Structurée (Structured Analysis) Notations des outils de SA : DFD, dictionnaires,... Mise en oeuvre des outils graphiques SD - Conception Structurée (Structured Design) Découpage des programmes en modules Différents types de couplage entre modules Différents types de cohésions d'un module Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 1

L e s m é t h o d e s f o n c t i o n n e l l e s ont leur origine dans le développement des langages procéduraux plus orientées vers les traitements que vers les données mettent en évidence la ou les fonctions à assurer proposent une approche hiérarchique, descendante et modulaire en précisant les liens entre les différents modules utilisent souvent des modèles/outils de type DFD avec l'évolution des langages de programmation et des systèmes, prennent en compte la modélisation des données et les problèmes posés par le temps réel (SA-RT) méthodes 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) spécialisé temps réel... Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 2

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 française : "Analyse structurée des systèmes : 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.... Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 3

S A - A n a l y s e S t r u c t u r é e ( S t r u t u r e d A n a l y s i s ) SA-SD (Strutured Analysis / Structured Design - Yourdon, DeMarco, W.P.Stevens, G.J.Myers, Constantine, Gane & Sarson,...) méthode descendante, par raffinements successifs des traitements ou processus : Outils utilisés : à chaque niveau de décomposition usage des DFD : le niveau le plus haut représente l'ensemble du problème: usage d'un diagramme de contexte chaque diagramme de niveau inférieur décompose en plusieurs processus les processus définis au niveau juste supérieur, en respectant les flots de données entrants et sortants à chaque processus non décomposé, est attachée une "mini-spécification", sous une forme plus ou moins formelle, ayant pour but de préciser comment, pour chaque processus, les sorties sont produites à partir des entrées. un dictionnaire précise la définition des données, des processus et des fichiers usage du langage naturel structuré, des tables et arbres de décision, d'aspects logique de bas niveau Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 4

L e s n o t a t i o n s D F D d a n s S A flux de données processus dépôt de données Yourdon, DeMarco,... description du processus Gane & Sarson identification description du processus localisation (optionnelle) entité externe (source / destination de données) flux matériel identification Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 5

D F D d a n s S A ( G a n e & S a r s o n ) entité externe : ensemble logique de choses/personnes représentant une origine ou une destination de transaction (client, employé, service,...) = générateur d'information primaire flux de données : processus : information relative à... identification du processus description du processus localisation physique où le processus est exécuté (ex: service magasin) dépôt de données : identification du dépôt D3 mémorisation des données comptes clients lecture des données dépôt de données = fenêtre sur la base de données Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 6

Exemple de D F D d a n s S A ( G a n e & S a r s o n ) client paiement affecter paiement à facture détails paiement D1 compte client détails facture attention! : on se place à un niveau logique (et non physique) => flux = information ex: paiement = information sur paiement mouvements de fonds niveau physique (support) argent, chèque, carte crédit,... mouvement d'information niveau logique (information) même information : montant payé niveau physique = support abstraction niveau logique = information Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 7

Les interdits du DF D d a n s S A ( G a n e & S a r s o n ) a a a a a b a b D1 D1 D2 D2 Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 8

L ' é c l a t e m e n t d ' u n p r o c e s s u s les entité externes ne sont pas représentées à l'intérieur d'un éclatement : a diagramme global niveau 1 éclatement diagramme éclaté niveau 2 logique des processus dictionnaire de données (E-R) diagramme des accés immédiats Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 9

D é t a i l s p o u r l a c o n c e p t i o n s t r u c t u r é e dictionnaire de données : modèle E-R -> base de données diagramme des accès immédiats : -> base de données logique des processus : tables et arbres de décision, langages semi-structurés P r i s e e n c o m p t e d e s e r r e u r s e t e x c e p t i o n s ne se fait que dans un diagramme de 2 niveau (éclatement) l'analyse doit décider si la fonction est assez importante pour être intégrée au diagramme de niveau supérieur méthode descendante, par raffinements successifs des traitements ou processus : Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 10

Exemple de DFD dans SA : diagramme de contexte VENDEUR CLIENT Comman Nouveau client Vérifier commande et limite de crédit GDP: Commande client FORM.: Bon de commande Employé commandes Si limite crédit dépassée Ouvrir et gérer compte-client GDP: Client GDP: Compte client FORM.: Fiche client FORM.: Compte client Comptable Si limite crédit non PRODUCTI ON Factu re Coli s Produi Facturer GDP: Facture FORM.: Formulaire de facture Comptable Préparer livraison GDP: Livraison FORM.: Fiche de Employé stock manutention Sortie de stock ENTREPÔT Entrée en stock Stocker nouveaux produits GDP: Entrée en stock GDP: Inventaire FORM.: Fiche de stock Employé manutention Nom du modèle Ventes Créateur Vers CSA R. MFO1 Créé le Modifié le 31/03/94 30/11/95 Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 11

E x e m p l e d e D F D d a n s S A SHINY: Activités de vente SERVICE COMMANDES SERVICE COMPTABILITÉ ENTREPÔT Quotidie n- nement au besoin CLIENT(1/ 4) Si limite crédit dépassée RESPONSABLE DES VENTES(1/2) comman de Recevoir commande: vérifier limite crédit MODULE: Saisie employé Commande commandes Si crédit suffisa commande acceptable Recevoir commande: vérifier disponibilité du produit MODULE: Saisie Commande employé commandes VENDEUR nouvea u solde nouvea u client Compte-client(1/2) commande à Enregister client MODULE: Fiche Client info fiche client limite de crédit Décider limite de crédit comptable MODULE: Compte Client comptable Enregistrer nouveau produit MODULE: Fiche Produit employé manutention Effectuer et enregistrer contrôle d'inventaire MODULE: Contrôle employé manutention Inventaire Inventaire Produits(2/2) mise à jour inventaire PRODUCTIO N entrée produit Enregistrer réception produits MODULE: Entrée de Production employé manutention Inventaire Produits(1/2) CLIENT(2/ 4) Commandes(1 /2) paiem ent comman de à expédie expédition faite Préparer et expédier colis MODULE: Expédition MODULE: Impression Bordereau Expédition employé manutention Modifier commandes MODULE: Saisie Commande employé commandes modification s commande Mettre solde à jour MODULE: Compte Client comptable colis, bordereau d'expédition CLIENT(3/ 4) nouveau solde Compte-clien t(2/2) Imprimer rapport des ventes MODULE: Rapport des Ventes employé commandes toutes les deux semaines Commandes( 2/2) Imprimer rapport des produits MODULE: Impression Niveau Inventaire Périodiq ue -ment Imprimer rapports clientèle MODULE: Impression Compte Client MODULE: employé Impression commandes Liste Traiter et imprimer factures MODULE: Traitement Factures comptable MODULE: Impression factu res employé manutention GESTIONNAIRE DES PRODUITS RESPONSABLE DES VENTES(2/2) CLIENT(4/ 4) Nom du modèle SHINY SOAP Cie Créateur Ve CSA R. MF Créé le Modifié le 24/06/94 30/11/95 Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 12

d é m a r c h e p r é c o n i s é e e n S A 1 identifier les entité externes -> les frontières du système à étudier 2 identifier les entrées / sorties "régulières" de ses entités externes 3 compléments d'informations (rapports) 4 diagramme de contexte : entité externes et entrées sorties 5 premier DFD (ne traite pas les erreurs et exceptions) 6 3 épreuves 7 vérifier 1, 2, 3 8 autre version 9 vérifier avec usager 10 explosion (éclatement) et traitement des erreurs et cas d'exception 11 artistique... diagramme manipulable : 15 à 30 processus 10 dépôts C o n s e i l s Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 13

S D - C o n c e p t i o n S t r u c t u r é e ( S t r u c t u r e d D e s i g n ) reprend les principes de décomposition fonctionnelle de AS, précise les liens (simples, itératifs, alternatifs) et les passages de paramètres, entre les différents modules la notation utilisée est celle des diagrammes de structure un modèle d'information, type modèle Entité-Association, complète souvent cette méthode. L'analyse et la conception "temps réel" : SA-RT (Hatley et Pirbhai 1991) les outils de base de l'analyse structurée pas suffisants pour spécifier les contraintes de temps et de synchronisation, des extensions ont été apportées : diagrammes de flots de contrôle (CFD:Control Flow Diagram) spécifications de contrôle (Control Specification) permettant de représenter les informations qui activent ou désactivent les processus représentés dans les DFD Ward & Mellor préconisent l'utilisation de diagrammes états-transitions pour mettre en relief les événements déclenchant les processus. Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 14

S D - C o n c e p t i o n S t r u c t u r é e ( S t r u c t u r e d D e s i g n ) ANALYSE STRUCTUREE :...logique, DFD -> qu'est ce que le système doit faire CONCEPTION STRUCTUREE : Stevens, Constantine, Myers, Yourdon (1975) -> comment le système doit-il être fait "processus itératif qui consiste à : prendre simultanément un modèle logique d'un système avec un ensemble d'objectifs bien spécifiés produire les spécifications d'un système physique qui satisferait ces objectifs" ensemble de considérations et de techniques pour : la réalisation de logiciels, le déverminage, la maintenance plus facile et moins coûteuse par réduction de complexité : découpage en modules Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 15

Conception Structurée : considérations générales diviser le système en modules disjoints, de telle manière que chacun puisse être : considéré implanté fixé modifié avec le minimum de considérations des effets sur les autres modules du système pouvoir observer et évaluer différentes alternatives de conception considérer les effets dus à des modifications raisonnables objectifs principaux de la CS : 1 performance du système 2 maîtrise du système 3 aptitude au changement du système Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 16

P e r f o r m a n c e d u s y s t è m e Avec quelle rapidité le système physique pourra réaliser le travail : cadence de traitement temps de traitement temps de réponse rôle déterminant de la capacité de la mémoire centrale Facteurs liés à la performance : 1 nb de fichiers intermédiaires dans un système 2 nb de fois pour lesquelles un fichier est exploré 3 nb de recherches dans un fichier sur disque -> optimisation du déplacement des têtes : réorganisation physique 4 temps d'exécution proprement dit (algorithme) -> instruction machine = recherche sur disque * (103 à 104) Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 17

M a î t r i s e d u s y s t è m e Niveau de sécurité du système par rapports aux erreurs humaines, aux dysfonctionnements des logiciels et du matériel, au sabotage,... 1 utilisation de digits de contrôle : ex: affectation d'un N de compte à un client nom: DUPONT N compte: 1234567 : f(dupont) = 7 2 journaux (logs) : ex: chaque transaction laisse une trace sur un journal par exemple géré par le SGBD 3 limitation à l'accès aux fichiers : qui ne peut avoir accès à ces données (consultation, mise à jour) qui est autorisé à modifier ces données?... -> mot de passe, profil d'utilisateur, sauvegardes sous clé,... Contrôle et Sécurité coûtent cher => compromis à trouver par le concepteur Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 18

A p t i t u d e a u c h a n g e m e n t d u s y s t è m e Facilité avec laquelle la conception permet de modifier le système (erreurs, adaptation aux besoins,...) Activité et Proportion du coût lié à la mise proportion du coût pendant la au point période d'utilisation Mise au point du système : analyse et conception : 35% programmation : 15% essai+correction : 50% 20% Système en fonctionnement Maintenance du système : correction en cours d'utilisation : modification / nouveaux mat. et logiciels. amélioration 80% coût matériels +logiciels spécialisés -25% +10% taux horaire d'un analyste programmeur temps, années => Conception Structurée Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 19

N o t i o n d e m o d u l e module = ensemble d'instructions contiguës de programme ayant un nom par lequel les autres parties du système peuvent l'invoquer (et ayant de préférence son propre ensemble de variables locales) exemple : PL1/Pascal : C : fortran : Ada : module = procédure module = fonction module = sous-programme module = package recherche de modules simples et indépendants : la résolution d'un problème est d'autant plus : simple et rapide qu'il est divisible en parties pouvant être considérées séparément difficile si tous ses aspects doivent être simultanément pris en compte Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 20

D e b o n s m o d u l e s... Pour permettre une meilleure aptitude à la modification, les systèmes logiciels le plus facile à gérer sont constitués de : petits modules : à chaque module est associée une fonction : processus A B C D E F G module de base modules simples à gérer : c'est à dire, sur listing, possible de se faire une image pertinente de la fonction qui est assurée par le module ( 150 lignes / module) modules indépendants : éviter l'effet de cascade : A B C modif. A => modif. B => modif. C... Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 21

I s o l a t i o n d e s f o n c t i o n s une fonction est d'autant plus isolée quelle concerne le moins de modules possible : exemple : les utilisateurs d'un système informatique veulent changer la politique de calcul de remise : si la remise est calculée dans un seul module : pas d'effet de cascade, changement facile et rapide si différents éléments de calcul de remise sont dispersés dans plusieurs modules ou si les remise sont calculées indépendamment dans plusieurs modules différents : changement difficiles fonction contenues dans des boites noires : données fournies résultats fonction f 1 une boite noire produit des résultats parfaitement prévisibles vues à partir du programme qui fait appel à elle 2 pas besoin de connaître le programme interne d'un module "boite noire" pour connaître sa fonction Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 22

D é c o u p a g e d e s p r o g r a m m e s e n m o d u l e s Comment découper les programmes en modules? évaluation des différentes alternatives de décomposition notation graphique utile : graphe structurels : A 1 in out B 1 X Y A = module appelant le module B B est subordonné à A B reçoit un paramètre d'entrée X (nommé dans A) et renvoie le paramètre Y (nommé dans A) Considération des connexions entre modules : Plus la connexion est simple, réduite : Plus facile est la compréhension d'un module sans se référer aux autres Plus réduites sont les propagations dues à des modifications Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 23

D é c o u p a g e d e s p r o g r a m m e s e n m o d u l e s usage des graphes structurels : A B C A invoque B puis C B invoque D puis E D E On doit considérer : les connexions entre les modules : à l'intérieur d'un module : -> notion de couplage -> notion de cohérence Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 24

N o t i o n d e c o u p l a g e couplage = mesure de la contrainte de la relation établie par une connexion d'un module à un autre le degré de couplage dépend de : la complexité de la connexion si elle réfère : au module lui-même à quelque chose qui lui est interne à ce qui doit être envoyé et reçu couplage faible fort complexité de l'interface simple, évidente compliquée obscure type de connexion au module par nom à des éléments internes type de couplage (communication) par données par contrôle hybride Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 25

Couplage par partage d'un environnement commun 2 ou plusieurs modules sont connectés avec la même zone de mémoire de données, device,... ex : Pascal/PL1: ens. de données déclarées avec l'attribut "external", copié dans les différents modules par un "include" Fortran : données définies 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 élément de cet environnement : d'où : constitue un chemin le long duquel peut se propager des erreurs / modifs empêche une bonne compréhension globale du système (nb de modules pouvant être en relation) les références aux données peuvent devenir incontrôlée (voire inconnues -> prudentes sauvegardes et restaurations avant couplage...) soit établir un contexte de données pour chaque appel à un module, soit passer entre modules des paramètres via des interfaces définis. Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 26

Couplage par partage d'un environnement commun soit : M objets d'où : M (M - 1) paires ordonnées d'objets N éléments partagés 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 partagées d'où : 25 x (3 (2)) = 150 paths (chemins) possibles!!!! Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 27

3 types principaux : C o u p l a g e e n t r e m o d u l e s couplage par les données couplage par la commande couplage externe ou pathologique c'est le plus souhaitable C o u p l a g e p a r l e s d o n n é e s : sortir la solution sortie mise au format solution mettre la solution au format remarque : plus il y a de données assurant le couplage, plus l'aptitude à la modification est réduite. Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 28

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'extérieur (lecture, écriture,...) introduction de variables de contrôle ou "flag" prendre la bonne solution flag d'édition entrée 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 extérieur) doit référer à son "chef" pour lui signaler par exemple qu'il a rencontré la fin d'un fichier, ou trouvé une transaction incorrecte => variable de contrôle (flag ) Remarque : M1 M2 M1 transmet un flag de contrôle en faisant appel à M2 => M2 n'est plus une boite noire, car M2 s'exécutera selon les flags => mélange de fonctions dans M2 Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 29

C o u p l a g e e x t e r n e o u p a t h o l o g i q u e M1 M2 couplage très contraignant : le module M1 se réfère : à qq chose à l'intérieur de M2 ou en extrayant des données définies dans M2 ou passe le contrôle des opérations à qq chose à l'intérieur de M2 modifie la manière dont fonctionne M2 Exemple : un module de sortie M1 lit un compteur de transactions qui appartient à M2 (module d'entrée), d'où couplage non apparent : le compteur de transaction ne voit pas son contenu passer de M1 à M2 en remontant ou descendant la hiérarchie : entrée sortie M2 M1 compteur de transaction : tcompt if tcompt > 10000 then... connexion pathologique si modifications de M2 => problèmes sur M1!!! couplage utilisé que lorsque une situation se produit si rarement que cela ne vaut pas la peine de remonter ou descendre la hiérarchie : mais à éviter! Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 30

caractérise les modules bien faits C o h é s i o n d ' u n m o d u l e module à forte cohésion : ses composants contribuent à une fonction unique (ne nécessite en conséquence peu de couplage avec d'autres modules) Types de cohésions cohésion occasionnelle : la plus mauvaise : le découpage en modules conduit à ce qu'une fonction se retrouve assurée par plusieurs modules cohésion logique : la moins mauvaise combiner ensemble quelques fonctions légèrement différentes création d'un module plus compact que si programmé séparément chaque fonction nécessite l'usage de flags de contrôle difficile à modifier (chemins logiques complexes) ex: module qui édite tous les types de transactions cohésion temporelle : médiocre contient différentes fonctions dont le seul point commun est d'être utilisées au même moment isoler chaque fonction ex: modules d'initialisation, de nettoyage,... Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 31

cohésion procédurielle : passable T y p e s d e c o h é s i o n s ( s u i t e ) lorsque les modules sont déduits d'un organigramme dans chaque module on accomplit plusieurs fonctions, mais ordres de commande internes M1 M2 cohésion communicationnelle : bonne = cohésion procédurielle + les fonctions travaillent sur les mêmes données ex : M1 = calculer et imprimer les résultats cohésion fonctionnelle : la meilleure le module assure une seule fonction ex: M1 = calcul solution; M2 = imprime solution Méthodes Fonctionnelles : SA/SD - Génie Logiciel - Bernard ESPINASSE - - 32