• CYCLE DE VIE D`UN LOGICIEL • EXPRESSION DES BESOINS
Transcription
• CYCLE DE VIE D`UN LOGICIEL • EXPRESSION DES BESOINS
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: – – – – C.Crochepeyre domaine de la recherche orientation vers des techniques formelles définition du langage de spécification approches différentes de spécifications 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 - DFD S1 e1 s1 0.0 S2 e1 s1 C.Crochepeyre P1 e2 0.0 e2 1.0 3.0 Si: source Pi: puits ei: entrée si: sortie 0.0: process 2.0 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 PAIE_EDITEE ELEMENTS_PAIE EDITER PAIE 2.0 C.Crochepeyre Génie Logiciel PAIE_EN ATTENTE Diapason 63 Les annotations procédurales D1 D3 * + D4 D2 * C.Crochepeyre + ET Génie Logiciel OU 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 écriture FICHIER_PAIE FICHIER_CLIENTS C.Crochepeyre Génie Logiciel maj FICHIER_NOTES 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 C.Crochepeyre ECRAN 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 = est composé de + séquence; avec; et max min {} ... ... ... () >> >> * C.Crochepeyre SIGNIFICATION * répétition; suivi de (au moins min, au plus max) sélection, ou(exclusif), soit: optionnel littéral commentaire 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 • • • • C.Crochepeyre algorithmes arbres de décision tables de décision diagrammes 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 C.Crochepeyre prénom 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 traitement_1 Sinon traitement_2 Finsi C.Crochepeyre Décider entre Cas_1 vraie Alors traitement_1 Cas_2 vraie Alors traitement_2 Autrement Erreur Fin Décider Génie Logiciel Diapason 73 Spécifications de process PSPEC – Par arbres de décision TAUX_REMISE montant 1ère remise -5% -10% nb achats 1er 2ème 2ème remise -0% -2% C.Crochepeyre >10.000Fr <10.000Fr Génie Logiciel 1er 2ème -0% -5% Diapason 74 Spécifications de process PSPEC – Par tables de décision règles R1 R2 R3 R4 <10.000 V V F F 2ème achat F V F V remise 2% remise 5% remise 10% C.Crochepeyre conditions V V V V V actions V Génie Logiciel Diapason 75 Spécifications de process PSPEC – Par diagrammes • M. Jackson et Warnier • N. Schneiderman Tant que condition vraie vraie traitement_1.1 traitement 1.2 C.Crochepeyre Si faux vraie traitement_2.1 Génie Logiciel Si faux traitement_2.2 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 arrêt si température>max flot discret température Contrôle température flot continu 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: • • • • • • • C.Crochepeyre algorithmes abstraits arbres de décision tables de décision diagrammes équations fonctions de gestion de bases de données commentaires..... 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° Four chaud T° = 200° T° descend vers 0° Fin cuisson Four verrouillé C.Crochepeyre Génie Logiciel Diapason 86 Exemple STT Transitions Etats T° monte vers 200° F. froid ES: F. chaud TS: aucune F. chaud ES: F. verrouillé TS: T° = 200° F. verrouillé C.Crochepeyre T° = 200° T° descend vers 0° ES: F. froid TS: aucune ES: F. chaud TS: Fin cuisson 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