Exemple de développement d une application



Documents pareils
Gé nié Logiciél Livré Blanc

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Réussir l externalisation de sa consolidation

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

Créer et partager des fichiers

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

LA GESTION DE PROJET INFORMATIQUE

Manuel de System Monitor

MEGA ITSM Accelerator. Guide de démarrage

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

QU EST-CE QUE LE SAAS?

LA GESTION DE PROJET INFORMATIQUE

La présentation qui suit respecte la charte graphique de l entreprise GMF

Système d Information du CNRST - SIC -

Développement itératif, évolutif et agile

QU EST-CE QUE LE SAAS?

Merise. Introduction

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Chapitre 2. Eléments pour comprendre un énoncé

DEMANDE D INFORMATION RFI (Request for information)

Marché à Procédure adaptée. Tierce maintenance applicative pour le portail web

DEMANDE D INFORMATION RFI (Request for information)

Base de Connaissances SiteAudit. Utiliser les Rapports Planifiés. Sommaire des Fonctionnalités. Les Nouveautés

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Projet de Java Enterprise Edition

Module Communication - Messagerie V6. Infostance. Messagerie

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

Cyberclasse L'interface web pas à pas

Mise en œuvre des serveurs d application

Nom de l application

CAHIER DES CHARGES DES MOYENS INFORMATIQUES Introduction

COURS WINDEV NUMERO 3

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Projet Active Object

hager Logiciel PC pour configurateur Radio Tebis TX 100 Manuel d utilisation 6T7266

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

Une ergonomie intuitive

Brique BDL Gestion de Projet Logiciel

COMMENT LIRE UN DEVIS DE CREATION DE SITE WEB?

Messagerie & Groupeware. augmentez l expertise de votre capital humain

Guide de l utilisateur Communauté virtuelle de pratique en gestion intégrée des risques

TUTORIEL Qualit Eval. Introduction :

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

PG208, Projet n 3 : Serveur HTTP évolué

MEGA ITSM Accelerator. Guide de Démarrage

Fiche méthodologique Rédiger un cahier des charges

SECTION 5 BANQUE DE PROJETS

Installation et configuration de base de l active Directory

Marché Public. Serveurs et Sauvegarde 2015

Thunderbird est facilement téléchargeable depuis le site officiel

Comment configurer Kubuntu

MANUEL DE L UTILISATEUR

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

ASTER et ses modules

PLAN. Industrialisateur Open Source LANS DE SECOURS INFORMATIQUES PRINCIPES GENERAUX ETAT DE L ART SELON BV ASSOCIATES

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Documentation Suivi S.E.O

Conception, architecture et urbanisation des systèmes d information

MANUEL UTILISATEUR SAMS 3.00H <MDJ-SAMS-UTIL-02>

Groupe Eyrolles, 2004 ISBN :

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

INDUSTRIALISATION ET RATIONALISATION

Principe et règles d audit

Méthodologie de mise en place de

Comment utiliser RoundCube?

Définitions. Numéro à préciser. (Durée : )

Refonte front-office / back-office - Architecture & Conception -

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Le génie logiciel. maintenance de logiciels.

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

Notre expertise au cœur de vos projets

1. Des chartes graphiques homogènes, élégantes, créatives

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

Notice d utilisation

Information utiles. webpage : Google+ : digiusto/

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Les projets d investissement en PME

MÉTHODOLOGIE PROJET SYSTÈME D INFORMATION DÉCISIONNEL BI - BUSINESS INTELLIGENCE. En résumé :

UTILISER UN SITE COLLABORATIF

CAHIER DES CLAUSES TECHNIQUES PARTICULIÈRES (CCTP) MISE EN PLACE ET MAINTENANCE D UN MOTEUR DE RECHERCHE

PROCÉDURE D AIDE AU PARAMÉTRAGE

DISTRILOG 2 QUICK START

Création outil multimédia de restitution du projet «l intergénérationnel : un levier pour un levier pour créer du lien social en milieu rural

MEGA Application Portfolio Management. Guide d utilisation

ITSM - Gestion des Services informatiques

Manuel d'installation de GESLAB Client Lourd

ZOTERO Un outil gratuit de gestion de bibliographies

Installation et utilisation du client FirstClass 11

Algorithme. Table des matières

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3?

Bien architecturer une application REST

Transcription:

Exemple de développement d une application Département Informatique TELECOM SudParis 1ère année Dépt INF 2009/2010

Table des matières Exemple de développement d une application Département Informatique,, Dépt INF, TELECOM SudParis 1ère année 2009/2010 1 1 Objectifs de l étude de cet exemple 3 2 Énoncé du sujet 4 3 Cahier des charges 5 4 Spécification 6 4.1 Analyse................................................. 7 4.2 Description des fonctionnalités.................................... 8 4.3 Plan de tests.............................................. 9 5 Conception préliminaire 10 5.1 Les structures de données....................................... 11 5.2 Stockage de l information....................................... 12 5.3 Les modules............................................... 13 5.4 Interfaces des modules......................................... 14 5.5 Dépendances entre modules...................................... 15 5.6 Description des fonctions....................................... 16 5.7 Exemple de tests d intégration.................................... 18 6 Conception détaillée de la version "terminal" 19 7 Codage de la version "terminal" de l application 20 Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 2

1 Objectifs de l étude de cet exemple Illustration de la démarche générale de développement différentes étapes du développement exemples de livrable pour chaque étape # 2 Préparation de la partie pratique sur les applications graphiques et web connaissance de la structure générale de l application exemple différentes structures de données utilisées interfaces des différents modules de l application Seul l aspect développement est pris en compte ici. L aspect gestion de projet (planification, répartition du travail, suivi d activité...) n est pas retranscrit. Dans le cadre des projets du module CSC3502, les rôles ne sont pas aussi rigoureusement définis qu ils peuvent l être dans des projets réels : l enseignant responsable est en effet à la fois utilisateur final et maître d ouvrage (i.e. donneur d ordre et porteur du besoin fournissant les spécifications fonctionnelles) et l étudiant chef de projet à la fois maître d œuvre (responsable de la conception, du bon déroulement des travaux, de la coordination des divers prestataires et de la qualité technique) et développeur contribuant à la réalisation. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 3

2 Énoncé du sujet Il s agit d écrire une application de gestion des ouvrages d une bibliothèque. # 3 Les fonctionnalités qui devront être offertes par l application sont : Ajouter un ouvrage Supprimer un ouvrage Rechercher un ouvrage Afficher l ensemble des ouvrages Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 4

3 Cahier des charges Les fonctionnalités décrites dans le sujet sont à implanter dans un premier temps avec une interface mode terminal, puis le seront avec une interface graphique. Le langage de développement choisi est le C. Les fichiers source doivent être livrés avec un makefile. # 4 L interface de l application doit être conforme aux maquettes fournies ci-dessous : Le cahier des charges est un document de référence contractuel qui formalise les besoins pour en assurer une compréhension homogène par tous les acteurs et cadrer la mission de ces derniers. Il peut comporter une partie technique énumérant les contraintes techniques à respecter. Il permet de garantir que les livrables fournis par le maître d œuvre sont conformes à ce qui a été demandé par le maître d ouvrage, et d éviter des modifications de la demande en cours de projet, comme l introduction de nouvelles fonctionnalités non prévues initialement, par exemple. Concernant l application proposée, une extension est envisagée dans un deuxième temps : une consultation en mode web à travers l utilisation d un navigateur (une application complète en ligne avec ajout et suppression demanderait la gestion de l accès concurrent aux données de l application côté serveur). La maquette de l IHM (interface homme-machine) de l extension envisagée est fournie ci-dessous. Cette extension devra être utilisable avec un client navigateur indépendant de l OS. On utilisera un serveur Apache sous Linux. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 5

4 Spécification # 5 4.1 Analyse....................................................................... 6 4.2 Description des fonctionnalités................................................. 7 4.3 Plan de tests.................................................................. 8 L objectif de cette phase est de décrire précisément et exhaustivement les fonctionnalités offertes par l application (le QUOI?). Les documents de spécification ont vocation à être validés par le client. Pour une application de taille modeste, la spécification se limite en général à la spécification fonctionnelle qui décrit les fonctionnalités de l application et les conditions d utilisation de ces fonctionnalités (opérations à exécuter par l utilisateur, interactions, règles...), souvent au travers de cas d utilisation. Pour un développement plus conséquent, la spécification peut comporter une spécification d architecture (ou étude technique) pour décrire les moyens techniques à mettre en oeuvre et l organisation générale (par exemple en couches) de l application et du système informatique dans lequel elle doit être intégrée. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 6

4.1 Analyse 4 Spécification Une relecture détaillée du cahier des charges initial avec le "client" de l application est souvent nécessaire pour : donner des réponses à toutes les questions, lever toutes les ambiguïtés. # 6 Par exemple, qu est-ce qu un ouvrage? Un ouvrage est en général composé des informations suivantes : le titre, l auteur (principal), l année d édition, l éditeur... On ne considère pas ici le cas d ouvrages avec plusieurs auteurs. De nombreuses questions doivent recevoir des réponses : Est ce que tout le monde aura accès à toutes les fonctionnalités? Sinon, quels sont les types d utilisateurs et leurs droits respectifs, et comment s authentifie-t-on? On considère ici que tous les utilisateurs ont le même privilège (c est-à-dire qu il n y a pas de notion d administrateur) et qu ils n ont pas à s authentifier. Doit-on gérer les accès simultanés? On considère qu à un moment donné, il n y a qu un seul utilisateur de l application. Connaît-on le nombre maximum d ouvrages? La collection d ouvrages est de taille quelconque. Faut-il créer un seul fichier pour stocker les ouvrages ou plusieurs? On considère qu il faut créer un seul fichier, c est-à-dire s assurer a minima de la persistance des données. Le fichier doit-il être localisé sur le compte de l utilisateur ou sur un compte spécifique? Sur le compte de l utilisateur. La recherche a-t-elle lieu dans le fichier ou en mémoire? Afin de limiter les accès fichier, la recherche sera effectuée sur la représentation interne de la collection d ouvrages en mémoire et non pas dans le fichier. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 7

4.2 Description des fonctionnalités 4 Spécification Les fonctionnalités offertes par l application sont les suivantes : Ajouter un ouvrage doit permettre à l utilisateur de saisir les informations d un ouvrage. # 7 Supprimer un ouvrage doit permettre à l utilisateur de saisir les informations utiles pour la suppression (selon un ou plusieurs critères d un ou plusieurs ouvrages) Rechercher un ouvrage doit permettre à l utilisateur de saisir les informations utiles pour la recherche (selon un ou plusieurs critères d un ou plusieurs ouvrages) Afficher l ensemble des ouvrages doit afficher tous les ouvrages. Il convient de préciser les conditions d utilisation des fonctionnalités : Ajouter un ouvrage : on vérifiera au préalable que l ouvrage n existe pas déjà pour ne pas créer de doublon, et on refusera la création d un ouvrage lorsque les informations sont incomplètes (cette spécification n est pas prise en compte dans l implantation proposée). Supprimer un ouvrage : on affichera tous les ouvrages trouvés. Pour simplifier, on considère qu on supprime tous les ouvrages trouvés selon tous les critères proposés, et pour simplifier l implantation, un seul critère sera utilisé dans la suite, le nom de l auteur. Rechercher un ouvrage : on affichera tous les ouvrages trouvés. Pour simplifier l implantation, la recherche ne portera dans la suite que sur le critère nom de l auteur (et, comme prévu lors de l analyse, elle sera effectuée sur la représentation interne de la collection d ouvrages en mémoire). Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 8

4.3 Plan de tests 4 Spécification Dès la spécification, on doit prévoir les tests de validation. # 8 Exemple de tests à prévoir pour la fonctionnalité "Ajouter un ouvrage" : Donnée : un ouvrage déjà existant à ajouter Résultat : message d erreur : "L ouvrage existe déjà". Donnée : un ouvrage incomplet à ajouter Résultat : message d erreur : " Veuillez renseigner toutes les informations demandées" On rappelle que l implantation proposée ne vérifie pas la contrainte du premier de ces deux tests. Par ailleurs, il est clair que si l on souhaitait améliorer le confort d utilisation de l application, on pourrait par exemple : demander une confirmation à l utilisateur lors des suppressions, ajouter une liste de mots-clés pour aider à la recherche, effectuer un tri sur l auteur ou le titre pour l affichage... Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 9

5 Conception préliminaire # 9 5.1 Les structures de données.....................................................10 5.2 Stockage de l information.....................................................11 5.3 Les modules................................................................. 12 5.4 Interfaces des modules........................................................13 5.5 Dépendances entre modules.................................................. 14 5.6 Description des fonctions..................................................... 15 5.7 Exemple de tests d intégration................................................ 16 Cette première étape de la conception vise à décrire à haut niveau et d un point de vue "informatique" (le COMMENT) : les structures de données qui seront utilisées dans l application, le stockage de l information, la structuration de l application en modules, toutes les fonctions nécessaires au fonctionnement de l application (prototypes et description sommaire), les tests d intégration à prévoir. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 10

5.1 Les structures de données 5 Conception préliminaire Représentation d un ouvrage : # 10 structure ouvrage titre nomauteur anneeedition fstruct : Chaîne de caractères : Chaîne de caractères : Entier On peut également introduire une structure bibliothèque : structure bibliotheque nomfichier : Chaîne de caractères listeouvrages : ListeOuvrages fstruct Un ouvrage est caractérisé par un ensemble de propriétés. Pour simplifier, on ne considère dans la suite que les trois premiers champs : le titre de l ouvrage, son auteur, l année d édition (voir la partie analyse). Il faut aussi pouvoir gérer un ensemble d ouvrages : pour cela, on pourra considérer la structure de tableau ou de liste chaînée. Indépendamment de la représentation interne choisie, nous parlerons dans la suite de liste d ouvrages, sous la forme du type abstrait ListeOuvrages. La structure bibliothèque regroupe des informations sur le stockage fichier de la collection d ouvrages (le nom du fichier, information de type Chaîne de caractères), et sur sa représentation en mémoire (information de type ListeOuvrages). Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 11

5.2 Stockage de l information 5 Conception préliminaire Stockage des informations de l ensemble des ouvrages dans un fichier texte data.txt. modifiable dans un éditeur de texte facilite les tests # 11 Structure du fichier volontairement simplifiée : une information par ligne, une ligne vide entre deux ouvrages successifs. Introduction au génie logiciel J-L. Raffy 2005 Mon Système Linux C. Schüller 2002 La structure du fichier pourrait bien entendu être plus sophistiquée ; par exemple : une première ligne avec un commentaire précisant les significations des informations. les lignes suivantes : 1 ouvrage par ligne, avec les champs séparés par un ; (ou encore format CSV, i.e. Comma Separated Values). Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 12

5.3 Les modules 5 Conception préliminaire On choisit ici de décomposer l application en cinq modules : main : correspond à la fonction principale, avec le point d entrée de l application (initialisation, affichage d un menu), # 12 menu : dédié à l interaction utilisateur (affichage/saisie d informations, boucle d interaction avec l utilisateur), ouvrage : dédié à la gestion des ouvrages, bibliotheque : dédié à la gestion des listes d ouvrages, util : fonctionnalités de plus bas niveau liées au stockage de l information (sur disque et en mémoire). Le module menu sera clairement impacté par la déclinaison selon les différentes modalités d utilisation (terminal, graphique) ; c est aussi le cas de ouvrage et bibliotheque Différentes décompositions en modules sont possibles. Celle que nous proposons ici tente de concilier d une part la contrainte des différentes modalités de fonctionnement (terminal, graphique) prévues par le cahier des charges et d autre part une factorisation maximale des fonctionnalités communes aux différentes versions. Ce premier découpage va s avérer insuffisant lors de l étape de conception détaillée, mais il permet néanmoins de recenser les fonctionnalités indispensables et de préciser les interactions entre modules. Dans un deuxième temps, l implantation des modules menu, ouvrage et bibliotheque nous aménera à distinguer les opérations spécifiques à chaque modalité d utilisation. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 13

5.4 Interfaces des modules 5 Conception préliminaire On dresse ensuite la liste des fonctions assurant l interface des différents modules menu.h : interaction utilisateur init(), menu(), afficher() # 13 ouvrage.h : gestion des ouvrages afficherouvrage(), afficherauteur(), saisirouvrage(), saisirauteur() bibliotheque.h : gestion des listes d ouvrages nouvellebibliotheque(), supprimerbibliotheque(), ajouterouvrage(), supprimerlesouvragesdeauteur(), rechercherlesouvragesdeauteur(), afficherlisteouvrages(), afficherbibliotheque() util.h : gestion du stockage insererdansliste(), rechercherdansliste(), supprimerliste(), insererdansfichier(), lecturefichier(), ecriturefichier() L interface d un module est la partie publique du module, qui sera décrite en C dans un fichier d entête (.h). Elle expose les prototypes des fonctions fournies par le module (services disponibles) et que les fonctions des autres modules peuvent appeler. La partie privée du module (.c) fournit quant à elle l implantation (le corps) de ces fonctions et définit toute fonction utile à cette implantation. Par exemple dans le cas du module menu, une approche descendante de la conception de la fonction menu() amènera vraisemblablement à définir des fonctions choixajouter(), choixrechercher(), choixsupprimer() et choixafficher(). Ces fonctions resteront privées et n apparaissent donc pas au niveau de l interface. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 14

5.5 Dépendances entre modules 5 Conception préliminaire init menu Menu saisirouvrage saisirauteur Ouvrage afficherouvrage # 14 Main nouvellebibliotheque ajouterouvrage afficherbibliotheque supprimerbibliotheque rechercherlesouvrages... supprimerlesouvrages... Bibliotheque rechercherdansliste insererdansliste supprimerliste lecturefichier ecriturefichier insererdansfichier Util Pour chacun des modules menu, ouvrage et bibliotheque, les fonctions seront réparties dans deux fichiers sources lors du codage : l un pour la partie générique, constituée des fonctions du module dont l implantation est indépendante des modalités d interaction avec l utilisateur, l autre pour la partie spécifique à chaque modalité. Ce découpage peut être adopté pendant la conception. Pour avoir un exemple du fonctionnement de ces dépendances, on peut considérer le cas d utilisation où l utilisateur fait le choix d ajouter un ouvrage, ce qui devrait a priori produire dans la fonction menu() un appel d une fonction choixajouter() du module menu. Cette fonction appelle alors saisirouvrage() du module ouvrage, puis ajouterouvrage() du module bibliotheque qui elle-même appelle inseredansliste() et insererdansfichier() du module util. A noter que la fonction saisirouvrage() fait partie de la partie spécifique du module ouvrage, ce qui n est pas le cas de la fonction ajouterouvrage() pour le module bibliotheque. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 15

5.6 Description des fonctions 5 Conception préliminaire La description sommaire des fonctions de l application peut alors suivre une méthode descendante (top-down), en commençant par la fonction principale : # 15 fonction principale() : CodeRetour bibliotheque : Bibliotheque bibliotheque = nouvellebibliotheque(nomfichier) init() // Initialisations diverses (affichage...) menu(bibliotheque) retourner OK ffct L approche descendante amène de proche en proche à décrire toutes les fonctions et procédures nécessaires. par exemple : procédure menu (donnée-résultat bibliotheque : Bibliotheque) affichermenu() tq (choix menu()) <> quitter faire cas où choix vaut ajout : choixajouter(bibliotheque) supprimer : choixsupprimer(bibliotheque) rechercher : choixrechercher(bibliotheque) afficher : choixafficher(bibliotheque) autre : afficher("erreur dans le choix du menu") fcas affichermenu() ftq fproc À titre d exemple, nous considérons ci-dessous la fonctionnalité d ajout d un ouvrage, qui doit permettre à l utilisateur de saisir les informations d un ouvrage. Ces informations saisies doivent être persistantes (sauvegardées dans le fichier) : procédure choixajouter (donnée-résultat bibliotheque : Bibliotheque) Ouvrage ouvrage ouvrage saisirouvrage() ajouterouvrage( bibliotheque, ouvrage ) fproc Cette procédure choixajouter() utilise une fonction et une procédure que nous explicitons sommairement : fonction saisirouvrage () : Ouvrage Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 16

5 Conception préliminaire ffct // Il faut saisir successivement les informations // caractéristiques de l ouvrage // en utilisant des modalités spécifiques pour chaque version Ainsi, au cours de la descente dans l écriture, nous finissons par rencontrer la nécessité de tenir compte des modalités d interaction avec l utilisateur. Dans la suite, nous nous intéressons exclusivement à la version "terminal" de l application, et l implantation de chacun des trois modules menu, ouvrage et bibliotheque comportera une partie générique et une partie propre à la version "terminal". procédure ajouterouvrage (donnée ouvrage : Ouvrage, donnée-résultat bibliotheque : Bibliotheque) // Garder l information dans la liste insererdansliste(ouvrage, bibliotheque -> listeouvrages) // Garder l information dans le fichier insererdansfichier(ouvrage, bibliotheque->nomfichier) fproc Nous devons bien entendu expliciter les deux procédures utilisées par ajouterouvrage() : procédure insererdansliste ( donnée ouvrage : Ouvrage, donnée-résultat liste : ListeOuvrages) // L insertion d un élément dans une // liste est un problème connu fproc procédure insererdansfichier ( donnée ouvrage : Ouvrage, donnée-résultat fichier : Fichier) // Ecrire un item dans un fichier est connu // Il faudra cependant étudier le format fproc Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 17

5.7 Exemple de tests d intégration 5 Conception préliminaire Pour la fonction "ajouterouvrage()" : # 16 Donnée : un ouvrage déjà existant à ajouter Résultat : liste et fichier inchangés Donnée : un ouvrage incomplet à ajouter Résultat : liste et fichier inchangés Donnée : un ouvrage saisi correctement, mais liste et fichier inexistants Résultat : liste créée avec l ouvrage saisi, fichier créé contenant la liste Un ou plusieurs de ces tests ne seront peut-être pas réalisables. Cela va dépendre de la conception détaillée des fonctions utilisées. Par contre le fait de décrire les tests fait réfléchir au meilleur moyen d implanter les fonctions concernées. On peut convenir soit que l application ne peut être lancée s il n existe pas de fichier, soit de créer le fichier s il n existe pas (cette dernière solution est retenue dans l implantation proposée). Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 18

6 Conception détaillée de la version "terminal" Cette étape de la conception va fournir : le contenu détaillé des différentes structures de données # 17 le corps de toutes les fonctions et procédures de l application en distinguant, pour les modules menu, ouvrage et bibliotheque, partie générique de l interface et partie spécifique à la version "terminal" Exemple du module bibliotheque : partie générique ( bibliotheque.c) : nouvellebibliotheque, ajouterouvrage... partie spécifique ( bibliotheque-term.c) : afficherlisteouvrages Lors du développement de la version graphique de l application, les parties génériques des modules menu, ouvrage et bibliotheque seront ré-utilisées sans aucune modification. Les parties spécifiques devront être ré-écrites ; la nouvelle implantation des fonctions correspondantes de l interface pour cette version graphique s appuient sur l API de la bibliothèque graphique choisie. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 19

7 Codage de la version "terminal" de l application # 18 Le codage de l application consiste à traduire en langage C l ensemble des informations produites lors de la conception détaillée : module main : main.c, module menu : menu.h, menu.c, menu-term.c module ouvrage : ouvrage.h, ouvrage.c, ouvrage-term.c module bibliotheque : bibliotheque.h, bibliotheque.c, bibliotheque-term.c module util : util.h, util.c. Étudier la documentation : le fichier makefile le graphe d appel de la fonction main la documentation doxygen complète Tester le code à l aide de l archive en ligne : Archive codeterminal.tgz Pour appréhender les sources, il est conseillé de commencer par l étude des fichiers d entête (les.h), puis d utiliser la documentation doxygen pour naviguer dans les sources à partir de la fonction principale, en s appuyant sur le graphe d appel. Dépt INF Département Informatique 2009/2010 TELECOM SudParis 1ère année 20