PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason 47
3. SPÉCIFICATIONS DU LOGICIEL Passage: de l'expression des besoins à la conception Spécifications fonctionnelles Analyse fonctionnelle et méthodes étape avant : Conception détaillée des logiciels Relations entre les logiciels C.Crochepeyre Génie Logiciel Diapason 48
Document de spécifications des logiciels définitions abstraites des logiciels destiné aux développeurs Outils de spécifications des logiciels: domaine de la recherche orientation vers des techniques formelles définition du langage de spécification approches différentes de spécifications C.Crochepeyre Génie Logiciel Diapason 49
Définition des langages de spécification approche opérationnelle définition d'une machine abstraite et de ses opérations approche dénotationnelle définitions de fonctions par logique mathématique espace de valeurs abstrait propriétés des valeurs décrites par des techniques mathématiques approche axiomatique constructions de fonctions basées sur des axiomes C.Crochepeyre Génie Logiciel Diapason 50
Les approches différentes de spécification spécifications d'interface spécifications opérationnnelles spécifications de type abstrait C.Crochepeyre Génie Logiciel Diapason 51
Spécifications d'interface logiciel = boîte noire fonction de la boîte = contraintes E/S E logiciel S C.Crochepeyre Génie Logiciel Diapason 52
Exemple ECHANGE_ETAT (S: in out, P) output forall J, PREMIER(S) <=J<=DERNIER(S): S(J) = ARRETE then S(J) = PRET or S(J) = PRET then S(J) = ACTIF or S(J) = ACTIF then S(J) = ARRETE spécification relativement longue pas d'information sur la réalisation utilisation pour des cas simples C.Crochepeyre Génie Logiciel Diapason 53
Spécifications opérationnelles description abstraite des transformations E/S description des opérations du programme E logiciel S C.Crochepeyre Génie Logiciel Diapason 54
Exemple traitement // des capteurs type ETAT is (ARRETE,PRET,ACTIF) type P is array(1,...,n) of ETAT type CAPT is array(1,...,n) of (HAUT,BAS) CHANGE_ETAT (S: in out P; CAPTEURS: CAPT) forall J, PREMIER(CAPTEURS) <=J<=DERNIER(CAPTEURS) do if CAPTEURS(J) = HAUT then S(J):= if S(J) = ACTIF then ARRETE else succ(s(j)) end CHANGE_ETAT C.Crochepeyre Génie Logiciel Diapason 55
Spécifications de type abstrait type abstrait = valeurs et opérations associées description du comportement des opérations sur chaque type abstrait approches: modèle abstrait modèle algébrique: noms des opérations, arguments des opérations axiomes de comportement des opérations C.Crochepeyre Génie Logiciel Diapason 56
Exemple de description de type abstrait array of E interface CREER(A,B: INTEGER) -> array of E PREMIER(X:array of E) -> INTEGER DERNIER(X:array of E) -> INTEGER VAL(X: array of E; I:INTEGER) -> E METTRE(X:array of E; I:INTEGER; V:E) -> array of E axioms CREER(A,B) = if B<A then ERREUR METTRE(X,I,V) = if... C.Crochepeyre Génie Logiciel Diapason 57
De la spécification à l analyse fonctionnelle Une bonne spécification doit avoir: une taille minimale pour un niveau de spécification donné Cela permet ensuite de faire une analyse fonctionnelle: - identification des sous systèmes fonctionnels - décomposition en éléments et opérations associées - détail des algorithmes utilisés pour chaque élément C.Crochepeyre Génie Logiciel Diapason 58
Méthode d Analyse Structurée SA E. YOURDON (1979) spécification statique du logiciel analyse descendante: affinages successifs des traitements description des flots de données des traitements ensemble de diagrammes ordonnés et hiérarchisés fonctions élémentaires = primitives fonctionnelles outils graphiques et textuels C.Crochepeyre Génie Logiciel Diapason 59
Outil graphique DFD Data Flow Diagrams diagramme de flots de données = interconnexion de fonctions traversées par une circulation de données 4 éléments graphiques le traitement ou process = cercle le flot de données = trait l'unité de stockage = 2 traits l'entité externe ou terminateur = rectangle C.Crochepeyre Génie Logiciel Diapason 60
S1 S2 e1 e1 e2 1.0 - DFD - s1 0.0 0.0 P1 e2 Si: source Pi: puits ei: entrée si: sortie 0.0: process s1 3.0 2.0 C.Crochepeyre Génie Logiciel Diapason 61
Les process sont identifiés par un verbe et un N transforment les flots de données en entrée en flots de données en sortie Les flots de données portent un nom unique et significatif les extrémités: une à un process l'autre à un process, terminateur, unité de stockage ramifications possibles C.Crochepeyre Génie Logiciel Diapason 62
Exemple ELEMENTS_PAIE PAIE_EDITEE EDITER PAIE 2.0 PAIE_EN ATTENTE C.Crochepeyre Génie Logiciel Diapason 63
Les annotations procédurales D1 D3 * + D2 D4 * ET + OU C.Crochepeyre Génie Logiciel Diapason 64
Les unités de stockage un nom descriptif les flèches = opérations L/E pas de nom sur les flots de données en E/S lecture FICHIER_PAIE écriture FICHIER_CLIENTS maj FICHIER_NOTES C.Crochepeyre Génie Logiciel Diapason 65
Les terminateurs une personne ou un périphérique: agents extérieurs un nom pas de règles précises sur leurs flots de données SAISIE ECRAN C.Crochepeyre Génie Logiciel Diapason 66
Outils textuels En complément des outils graphiques DFD : Dictionnaire de données DD Description des flots de données DFD C.Crochepeyre Génie Logiciel Diapason 67
Dictionnaire de données DD création simultanée diagrammes flots données contient sémantique, structure, flots et stockage de chaque donnée adresse EST nom ET adresse rue ET nom ville ET code postal adresse = nom + adresse rue + nom ville + code postal C.Crochepeyre Génie Logiciel Diapason 68
Les opérateurs DD SYMBOLES SIGNIFICATION = + max min {} est composé de séquence; avec; et répétition; suivi de (au moins min, au plus max)......... ( ) >> >> * * sélection, ou(exclusif), soit: optionnel littéral commentaire C.Crochepeyre Génie Logiciel Diapason 69
Description des flots de données DFD précision du sens des mots "l'identité" de la personne signifie son nom et son prénom type et domaine définition délimitée par * type de valeur: entier, car,... domaine la plage de valeurs nom = *domaine: car, limite: majuscules C.Crochepeyre Génie Logiciel Diapason 70
Outils graphiques/textuels : Diagrammes de structures de données DSD Spécifications de process PSPEC algorithmes arbres de décision tables de décision diagrammes C.Crochepeyre Génie Logiciel Diapason 71
Diagrammes de structures de données DSD description des relations entre les données données simples dans le DD données complexes décrites: textuellement (opérateurs DD) graphiquement (diagrammes M. Jackson) identité nom prénom C.Crochepeyre Génie Logiciel Diapason 72
Spécifications de process PSPEC Par algorithmes Séquence ou traitement traitement_1 traitement_2 traitement_2 Alternatives composées Si <condition> vraie Alors Décider entre traitement_1 Cas_1 vraie Alors traitement_1 Sinon Cas_2 vraie Alors traitement_2 traitement_2 Autrement Finsi Erreur Fin Décider C.Crochepeyre Génie Logiciel Diapason 73
Spécifications de process PSPEC Par arbres de décision TAUX_REMISE montant <10.000Fr >10.000Fr 1ère remise -5% -10% nb achats 1er 2ème 1er 2ème 2ème remise -0% -2% -0% -5% C.Crochepeyre Génie Logiciel Diapason 74
Spécifications de process PSPEC Par tables de décision règles R1 R2 R3 R4 <10.000 V V F F conditions 2ème achat F V F V remise 2% V remise 5% V V V actions remise 10% V V C.Crochepeyre Génie Logiciel Diapason 75
Spécifications de process PSPEC Par diagrammes M. Jackson et Warnier N. Schneiderman Tant que condition vraie vraie Si faux traitement_1.1 vraie Si faux traitement 1.2 traitement_2.1 traitement_2.2 C.Crochepeyre Génie Logiciel Diapason 76
Conclusion SA spécification statique et analyse descendante outils graphiques Data Flow Diagrams DFD: process et flots de données outils textuels dictionnaire de données DD description des flots de données DFD Outils graphiques/textuels diagrammes de structures de données DSD spécifications de process PSPEC C.Crochepeyre Génie Logiciel Diapason 77
Méthode SA Temps Réel SA-RT P. WARD et S. MELLOR (1985) extension de SA au temps réel méthode SA: vue statique des process méthode SA_RT: vue dynamique des process systèmes temps réels: systèmes combinatoires: E => S systèmes séquentiels: E + états internes => S outils graphiques et textuels C.Crochepeyre Génie Logiciel Diapason 78
Diagramme de flots de données: DFD le process ou traitement : un cercle les flots de données: un trait les flots discrets: une flèche les flots continus: une double flèche l'unité de stockage: deux traits parallèles le terminateur: un rectangle C.Crochepeyre Génie Logiciel Diapason 79
Exemple DFD en SA_RT température max flot discret température flot continu Contrôle température arrêt si température>max stockage température Flot discret -> : valeur valide à des instants précis Flot continu ->> : valeur continuellement valide dans le temps C.Crochepeyre Génie Logiciel Diapason 80
Dictionnaire de données: DD répertoire données flots de données stockages des données flots de contrôle stockage des flots de contrôle ou événements informations d'après les diagrammes de flots de données DFD informations d'après les flots de contrôle CFD C.Crochepeyre Génie Logiciel Diapason 81
Diagramme de structure de données: DSD description des relations complexes relations entre fichiers description textuelle avec notation du DD description graphique (diagrammes M Jackson) C.Crochepeyre Génie Logiciel Diapason 82
Spécifications de process: PSPEC description des traitements élémentaires par: algorithmes abstraits arbres de décision tables de décision diagrammes équations fonctions de gestion de bases de données commentaires... C.Crochepeyre Génie Logiciel Diapason 83
Diagramme de flots de contrôle: CFD CFD comprend: les flots de contrôle ou événements ou signaux événements: vecteurs pointillés données discrètes: traits pleins les flots de contrôle "prompt" flèche pointillée E: activation flèche pointillée D: désactivation flèche pointillée T: déclenchement (Tigger) les process de contrôle cercle pointillé les stockages de contrôle ou stockage d'événements deux traits C.Crochepeyre Génie Logiciel Diapason 84
Spécifications de contrôle: CSPEC Diagramme État-Transition: STD états ou attributs d'état: rectangle représentant un intervalle de temps pendant lequel l'objet a un comportement déterminé signaux ou transitions: transitions d'entrée transitions de sortie OU Table État-Transition: STT états: lignes de la table transitions d'entrée: colonnes de la table transitions de sortie, nouvel état: intersection C.Crochepeyre Génie Logiciel Diapason 85
Exemple STD Four froid T monte vers 200 T descend vers 0 T = 200 Fin cuisson Four chaud Four verrouillé T descend vers 0 C.Crochepeyre Génie Logiciel Diapason 86
Exemple STT Transitions Etats T monte vers 200 T = 200 T descend vers 0 F. froid ES: F. chaud TS: aucune F. chaud ES: F. verrouillé TS: T = 200 ES: F. froid TS: aucune F. verrouillé ES: F. chaud TS: Fin cuisson C.Crochepeyre Génie Logiciel Diapason 87
Spécifications de "timing": TSPEC les tables de temps de réponses fréquence de répétition des signaux temps de réponse entre signal entrée et signal sortie temps d'activation dans un état... C.Crochepeyre Génie Logiciel Diapason 88
Méthodologie d'analyse TR expression des besoins: méthodes statiques: SADT ou EA méthodes dynamiques: réseaux de Pétri ou SA_RT spécification du logiciel: modèle essentiel modèle d'environnement diagramme de contexte liste des événements externes modèle de comportement aspects statiques: DFD, DD, DSD, PSPEC aspects dynamiques: CFD, DD, CSPEC, TSPEC C.Crochepeyre Génie Logiciel Diapason 89
Conclusion: spécifications du logiciel analyse fonctionnelle du logiciel des méthodes différentes mais: des outils similaires (graphes, textes, tables) des besoins différents (statique ou dynamique TR) des niveaux différents (besoins, logiciels) des apprentissages plus ou moins faciles Nous venons de voir : l étude des besoins les spécifications du logiciel Passons à: l analyse détaillée et la conception du logiciel C.Crochepeyre Génie Logiciel Diapason 90