Home

Projets de fin d`année Sujets

image

Contents

1. stocker des r f rences de livres auteur titre ajout suppression et modification de livres Recherche d un ouvrage selon un ou plusieurs crit res Gestion des pr ts Deux interfaces de visualisation et de manipulation sont demand es d une part une interface en ligne de commande d autre part une interface graphique Vous utiliserez les outils Flex et Bison pour analyser les fichiers stockant les informations relatives une biblioth que Des informations compl mentaires d taillant le sujet sont fournies la section 3 1 2 11 Matrices creuses Nombre d tudiants maximum 2 Dans beaucoup de domaines on utilise des matrices de grande taille mais dont beaucoup de coefficients sont nuls Ces matrices sont appel es creuses On peut repr senter ces matrices en ne stockant que la liste de leurs coefficients non nuls crire un programme manipulant des matrices creuses Ce logiciel doit permettre de saisir de sauvegarder de charger des matrices et d effectuer des op ration courantes Des informations compl mentaires d taillant le sujet sont fournies la section 3 2 2 12 Calcul formel Nombre d tudiants maximum 2 Une expression symbolique du type x 5 peut tre repr sent e par un arbre w N w 5 Le logiciel permettra de saisir une expression par exemple z2 3x 8 de l valuer pour une valeur de x et de la d river On d sirera aussi sauvegarder et r cup rer des expres
2. Une exception peut tre faite lorsque deux symboles externes sont toujours uti lis s ensemble de sorte qu aucun programme raisonnable n en utiliserait un sans utiliser l autre dans ce cas ils peuvent aller tous les deux dans le m me fichier Les symboles externes qui ne sont pas des points d entr e document s pour Tutilisateur et ne lui sont donc pas destin s doivent avoir des noms commen ant par Ils doivent eux aussi contenir le pr fixe choisi pour la biblioth que afin de pr venir des conflits avec d autres biblioth ques Ils peuvent tre plac s dans les m mes fichiers avec des points d entr e pour l utilisateur D 1 COMPORTEMENT COMMUN TOUS LES PROGRAMMES 39 D 1 3 Formattage des messages d erreur Les messages d erreurs des programmes non interactifs doivent ressembler cela programme nom fichier source num ligne message quand il existe un nom de fichier source appropri ou cela programme message quand il n y a pas de fichier source pertinent Pour un programme interactif un programme qui lit des commandes d un ter minal il est pr f rable de ne pas inclure le nom du programme dans le message d erreur L endroit ad quat pour indiquer quel programme s ex cute est l invite prompt ou un emplacement sp cifiquement r serv dans l agencement de l cran Quand le m me programme s ex cute en prenant son entr e une autre source qu un terminal il n es
3. ns fonctionnelles architecturales enca aoas mm AR Hans d taill e Ham 2 a star idee os B Le m moire du projet B 1 Pr sentation B 2 Plan du m moire C valuation du projet 13 13 15 17 19 21 21 22 22 23 24 24 26 26 29 29 29 31 4 TABLE DES MATI RES D Standards de programmation de GNU 33 D 1 Comportement commun tous les programmes 33 D 1 1 Ecrire des programmes robustes 33 D 1 2 Biblioth ques de fonctions 34 D 1 3 Formattage des messages d erreur 39 D 1 4 Standards pour l interface ligne de commande 39 TSD 36 D 1 6 help Sat ass ae RE bath me nt la pa fat 37 D 1 7 Utilisation de la m moire 37 D 2 Faire le meilleur usage de C 37 D 2 1 Formater votre code source 37 D 2 2 Commenter votre travail o aooaa 39 D 2 3 Utilisation propre des constructions C 40 D 2 4 Choix des identificateurs de variables et de fonctions 42 Chapitre 1 Consignes 1 1 Introduction Ce document regroupe l ensemble des informations n cessaires la r alisation du projet de fin d ann e Vous y trouverez les consignes g n rales sur le projet section 1 2 les sujets section 2 des informations compl mentaires pour certains sujets section 3 ainsi qu en annexe un guide et des consig
4. la partie indexation L objectif est de construire un in dex d une collection de documents Lindex construit est similaire l index d un livre Il contient notamment les termes mots et groupes de mots pr sents dans les documents Il doit tre organis de mani re faciliter la recherche c est dire la r cup ration des documents pertinents pour une requ te donn e Le projet consiste d velopper un moteur d indexation suffisamment g n rique pour indexer des documents en fonction de termes mais aussi en fonction de diff rents types de m ta donn es qui pourraient tre associ es aux documents Il pourra g rer ainsi plusieurs index On fournira galement une interface minimale offrant la possibilit de soumettre des requ tes au format CQL Common Query Language protocole Z3940 Documenttation compl mentaire http fr wikipedia org wiki Moteur_de_recherche http fr wikipedia org wiki 0ptimisation_pour_les_moteurs_de_recherche http fr wikipedia org wiki Indexation http zing z3950 org cql http www ifla org IV ifla72 papers 102 McCallum_trans fr pdf Chapitre 3 Informations compl mentaires 3 1 Gestion de biblioth que Le logiciel est destin la biblioth que d un petit coll ge de 12 classes contenant environ un millier de livres Il faudra g rer trois fichiers le fichier des emprunteurs r f rence n d identifiant unique nom pr nom classe le
5. contenant le code comment de vos programmes dans leurs tats actuels NB le code devra proposer des fonctions de test document es un manuel utilisateur un manuel d installation des jeux de test permettant de v rifier le bon fonctionnement du logiciel NB Le code peut tre modifi jusqu au jour de la pr sentation et de la d monstration mais vos risques et p rils conservez une version qui fonctionne La note finale tiendra compte du rendu de ce rapport qualit du document et fonctionnalit s d velopp es de la qualit des commentaires du code des manuels utilisateur et d installation Vous effectuerez ensuite une pr sentation sous PowerPoint ou OpenOffice et une d monstration Le fichier de pr sentation sera envoy la veille de la soutenance Vous devez pr parer la d monstration La note finale tiendra compte de la qualit de la pr sentation et de la d monstration ainsi que du rendu logiciel Aide technique Vous pouvez naturellement venir nous voir ou nous envoyer des messages lectroniques pour avoir des claircissements sur votre sujet ou un aide sur un probl me technique ne restez pas trois semaines sur un bug sans venir nous voir Mais ne venez pas non plus pour un probl me de compilation d une simple erreur de syntaxe Pensez d abord nous pr venir par mail nous ne sommes pas obligatoirement disponibles sur l instant et amener votre code sous format lectron
6. Ecrivez des phrases compl tes et 40 ANNEXE D STANDARDS DE PROGRAMMATION DE GNU mettez une majuscule au premier mot En revanche si un identificateur en minus cules vient en d but de phrase ne lui mettez pas de majuscule Changer une des lettres en fait un identificateur diff rent Si vous n aimez pas commencer une phrase par une lettre minuscule crivez la phrase autrement Le commentaire d une fonction est plus claire si vous utilisez le nom des argu ments pour parler des valeurs des arguments Le nom de variable lui m me doit tre en minuscule mais crivez en capitales quand vous parlez de la valeur plut t que de la variable elle m me Ainsi the inode number NODE NUM plut t que an inode Normalement redonner le nom de la fonction dans le commentaire qui la pr c de n a aucun int r t puisque le lecteur peut le voir par lui m me Il peut n anmoins y avoir une exception lorsque le commentaire est si long que la fonction elle m me pourrait ne pas appara tre l cran Il doit aussi y avoir un commentaire pour chaque variable statique static comme Nonzero means truncate lines in the display zero means continue them int truncate_lines Tout endif doit avoir un commentaire associ except dans le cas de structures conditionnelles courtes juste quelques lignes et sans imbrication Le commentaire doit donner la condition de la structure conditionnelle qui se termine ainsi que s
7. ceci if foo char malloc sizeof foo 0 fatal virtual memory exhausted crivez cela la place foo char malloc sizeof foo if foo 0 fatal virtual memory exhausted Ne rendez pas le programme inutilement compliqu juste pour satisfaire les exi gences de 1int Ne mettez jamais de cast pour un void Un z ro sans cast convient la perfection pour une constante pointeur nulle sauf lors d un appel de fonction nombre d arguments variables D 2 4 Choix des identificateurs de variables et de fonctions Dans un programme les noms des variables globales et des fonctions constituent une forme de commentaire En cons quence plut t que d utiliser des noms concis cherchez plut t des noms qui donnent des informations utiles sur la signification de la variable ou de la fonction Dans un programme GNU de la m me mani re que pour les commentaires les identificateurs doivent tre en anglais Les noms de variables locales peuvent tre plus courts car ils sont utilis s uni quement dans un seul contexte o des commentaires expliquent leur r le Utilisez des caract res underscore pour s parer les mots dans un identificateur afin que les commandes sur les mots de Emacs puissent leur tre appliqu es utile ment Tenez vous en aux lettres minuscules r servez les majuscules aux constantes d finies par macros ou enum et aux pr fixes qui ob issent une convention uniforme Vous pouvez
8. des options noms longs est qu elles peuvent tre consistantes d un programme l autre Par exemple les utilisateurs doivent pouvoir s attendre ce que l option ji verbeuse de tout programme GNU en poss dant une s crive exactement verbose Habituellement il est pr f rable que les noms de fichier donn s comme argu ments ordinaires ne puissent tre que des fichiers d entr e tout fichier de sortie devra tre sp cifi l aide d options de pr f rence 0 ou output M me si pour des raisons de compatibilit vous autorisez des noms de fichiers de sortie comme arguments ordinaires essayez d offrir en plus la possibilit de les sp cifier l aide d une option Cela conduira une plus grande consistance entre les utilitaires GNU et r duira le nombre de sp cificit s dont les utilisateurs devront se rappeler Tout programme doit supporter deux options standards version et help D 1 5 version Tout programme appel avec cette option doit afficher sur la sortie standard des informations sur son nom sa version son origine et son statut l gal ensuite de quoi le programme se termine normalement Les autres options et arguments doivent tre ignor s d s que cette option est reconnue et le programme ne doit pas assurer son fonctionnement normal La premi re ligne est cens e pouvoir tre analys e facilement par un programme le num ro de version est plac juste
9. donn es vous devez donner une justification pr cise des choix effectu s Lorsque le logiciel utilise des fichiers c est cette tape que vous devez d crire tr s pr cis ment le format de ces fichiers Il s agit de donner tous les d tails n cessaires afin que chaque module utilisant ces fichiers puisse tre programm ind pendamment des autres Pour les modules les plus importants vous devez de plus donner un algorithme en fran ais et non dans un langage de programmation A cette tape il ne s agit pas de commencer la programmation mais seulement de pr parer le travail de programmation en pr cisant un peu plus la mani re dont les fonctionnalit s seront r alis es Vous devez ce moment l tablir un planning pr visionnel indiquant la liste des t ches r aliser la date et le d but de chaque t che qui la r alise en veillant ce que l encha nement des t ches dans le temps soit correct il faut r aliser d abord les t ches n cessaires la r alisation d autres t ches Et il ne faut pas oublier les t ches de documentation et de pr paration de la d monstration Vous reprendrez le tableau de validation en pr sentant cette fois pour chaque module la liste des fonctionnalit s implanter les valeurs d entr e normales avec les r sultats attendus jeu de test en pr cisant les cas particuliers qui peuvent se pr senter et l tat actuel de la validation pas fait les tests n ont pa
10. est aucunement n cessaire de lister les ann es concernant les modifications correspon dant aux versions pr c dentes Vous n avez pas mentionner le nom du programme dans ces notices puisqu il a d j t mentionn la premi re ligne D 1 6 help Cette option doit afficher sur la sortie standard une documentation br ve sur la mani re d appeler le programme ensuite de quoi le programme se termine norma lement Les autres options et arguments doivent tre ignor s d s que cette option est reconnue et le programme ne doit pas assurer son fonctionnement normal Vers la fin de cet affichage il doit y avoir une ligne expliquant o envoyer un mail pour signaler un bogue Cette ligne doit respecter le format suivant Report bugs to mailing address D 1 7 Utilisation de la m moire Si vous n utilisez que quelques m gas de m moire ne vous pr occupez pas de faire des efforts pour r duire l utilisation de la m moire Par exemple si pour de toutes autres raisons il n est pas envisageable en pratique de travailler sur des fichiers de plus de quelques m gaoctets il est raisonnable de charger enti rement les fichiers d entr e en m moire pour travailler dessus Cependant pour des programmes comme cat ou tail qui op rent utilement sur de tr s grands fichiers il est important d viter d utiliser une technique qui limi terait artificiellement la taille des fichiers qu ils pourraient traiter Si un programme
11. fichier des ouvrages r f rence n d identifiant unique nom auteur pr nom auteur titre tat emprunt rendu en rayon en r paration r f rence d emprunt le fichier des emprunts r f rence n d identifiant unique r f rence livre r f rence d emprunteur date d emprunt date limite d emprunt Il faut que l on puisse emprunter rendre ajouter retirer modifier l tat d un livre et inscrire d sinscrire les emprunteurs Vous g rer galement g rer les retard de rendu d ouvrages permettre de rechercher un ouvrage 13 14 CHAPITRE 3 INFORMATIONS COMPL MENTAIRES 3 2 MATRICES CREUSES 15 3 2 Matrices creuses Les matrices creuses sont des matrices ayant beaucoup d l ments nuls Soit 4 une matrice creuse Pour chaque l ment non nul afi j on cr e un enregistrement de cinq champs contenant la valeur les indices i j deux pointeurs vers l l ment non nul suivant de de sa ligne et de sa colonne respectivement La matrice sera repr sent e par un tableau ligne et un tableau colonne de poin teurs t te de liste pour les lignes et les colonnes respectivement Par exemple la matrice 0 0 7 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 donnera la repr sentation 0 1 2 3 4 5 e o ele HL 7102 4 01S wle e e S Ne ee Le logiciel perm
12. il est utilis 4 Un manuel utilisateur en deux parties le manuel d installation qui donne la liste des fichiers n cessaires pour ex cuter le logiciel librairies utili taires programme source ex cutable en les commentant ne pas oublier de pr ciser les num ros de version de syst me ou de compilateur tout l environnement n cessaire l ex cution doit tre d crit les fichiers constituant le logiciel et la fa on de les installer sur sa machine le manuel utilisateur qui d crit comment lancer le logiciel comment l utiliser quelles sont les fonctionnalit s possibles quelles contraintes doivent tre respect es comment se d roule le dialogue utilisateur logiciel ventuellement donner les crans de l interface utilisateur que se passe t il en cas d erreur liste des messages d erreur comment quitter le logi ciel proc dure normale et en cas d erreur 5 Le planning pr visionnel remis avec la conception d taill e et le planning r el 6 Le tableau de validation compl t 7 Le cas ch ant les fichiers de donn es avec lesquels vous avez test votre logiciel 8 Une liste de r f rences bibliographiques Les r f rences sont les ouvrages livres articles que vous avez utilis s pour l analyse du probl me et la r alisation de votre projet Ne faites appara tre que les ouvrages que vous avez directe ment consult s Une liste de r f ren
13. in3 1 or1 2 liaison or1 1 out1 Vous inclurez les fonctionnalit s suivantes ajouter d autres composants noeud1 2 noeud qui envoie sur ses deux sorties la m me chose que ce qu il a en entr e multiplexeurs produire des tables de v rit tableaux dont les colonnes contiennent les va leurs en entr e et les valeurs en sortie diter un circuit avec le logiciel et animer les circuits difficile 20 CHAPITRE 3 INFORMATIONS COMPL MENTAIRES Annexe A Guide de r alisation des projets Cette partie a t initialement r dig e par Marc Champesme D partement d In formatique Institut Galil e Universit Paris Nord Certaines modifications ont t apport es pour l adapter aux contraintes des projets de fin d ann e A 1 Preliminaires Un peu de G nie Logiciel L criture d un programme sur machine doit imp rativement tre pr c d e de l analyse et de la conception du probl me avec du papier et un crayon Une fois les algorithmes crits dans un pseudo langage l ex cution de ceux ci doit tre simul e la main pour des exemples de petite taille dans le but d viter de d couvrir lors de la programmation des erreurs dues des contraintes non prises en compte lors de l analyse ou d essayer de corriger un programme qui repose sur des algorithmes erron s d un point de vue logique Une fois le programme mis au point il faut le tester c est dire pren
14. par exemple utiliser des noms comme ignore space change flag mais n utilisez pas de nom comme iCantReadThis Les variables indiquant si des options de la ligne de commande ont t sp cifi es doivent tre nomm es d apr s la signification de l option et non d apr s la lettre correspondant l option Un com mentaire doit indiquer la fois la signification de l option et sa lettre Par exemple Ignore changes in horizontal whitespace b int ignore_space_change_flag Quand vous voulez d finir des noms avec des valeurs constantes enti res utilisez enum plut t que define GDB reconna t les constantes num rations Utilisez des noms de fichier de 14 caract res ou moins afin d viter des probl mes avec les plus anciennes versions du syst me System V Vous pouvez utilisez le pro gramme doschk pour tester cela doscheck teste aussi les conflits de nom potentiels si les fichiers taient charg s sur un syst me de fichier MS DOS libre vous de vous en soucier ou non
15. programme doit permettre luti lisateur de saisir des arbres g n alogiques puis de les afficher et de les modifier L utilisateur devra aussi avoir la possibilit de sauvegarder l arbre dans un fichier et bien s r de pouvoir afficher modifier compl ter un arbre ainsi sauvegard L arbre g n alogique d une personne contient tous ses ascendants parents grands parents arri re grands parents connus Pour chaque personne on peut donner son nom son pr nom sa date et son lieu de naissance et ventuellement sa date et son lieu de d c s 2 10 GESTION DE BIBLIOTH QUE 11 On souhaite galement pouvoir stocker les autres enfants d un couple ce qui am ne la notion de fr re s ur cousin etc On voudrait pouvoir saisir des arbres g n alogiques ajouter des individus avec leur lien de parent les afficher et les modifier La navigation devra permettre de chercher un fr re une s ur un cousin et tout parent possible Vous devrez galement permettre les divorces et les remariages effectuer des recherches par nom pr nom naissance date ou lieu d c s date et lieu Vous utiliserez les outils Flex et Bison pour analyser les fichiers stockant les informations relatives un arbre g n alogique 2 10 Gestion de biblioth que Nombre d tudiants maximum 2 Dans ce projet vous d velopperez un logiciel de gestion de biblioth que Il devra offrir les fonctionnalit s suivantes
16. JETS FIGURE 2 1 Agencement des t ches 2 7 Ordonnancement des processus Nombre d tudiants maximum 2 On suppose que les processus sous forme de threads arrivent dans le syst me au hasard Implanter les diff rents algo rithmes d ordonnancement de ces processus vus en cours et comparer leur effica cit 2 8 SGBD r parti Nombre d tudiants maximum 3 Dans ce projet on souhaite g rer un SGBD r parti simplifi Dans un SGBD r parti les donn es ne sont pas stock es sur un seul serveur mais sur un ensemble de serveur on suppose qu un enregistrement est stock compl tement sur un serveur Lorsqu un client fait une requ te sur ce SGBD il doit interroger l ensemble des serveurs constituant le SGBD pour obtenir le r sultat on suppose de requ tes simples SELECT FROM WHERE sans jointure De m me lorqu il fait une insertion ou une mise jour il faut d terminer sur quel serveur doit se faire l op ration Pour r soudre ce probl me deux solutions sont envisageables 1 un serveur central qui la connaissance de tous les serveurs constituant la base 2 une architecture de type P2P Vous mettrez en place un m canisme pour le stockage des enregistements sur les serveurs un m canisme de cache en m moire pour les enregistements les plus souvent acc d s Vous d finirez un mini langage de requ tes 2 9 Gestion d arbres g n alogiques Nombre d tudiants maximum 2 Le
17. Projets de fin d annee Sujets Ann e 2011 2012 Table des 1 Consignes 1 1 Introduction mati res 1 2 Informations et d roulement des projets 2 Liste des projets 2 1 Gestion de r ferences bibliographiques en bibtex et HTML 2 2 Gestion de cave vin 2 3 Jeu d chec en r seau 2 4 Un d mon terminal de connexion espion 2 5 Un serveur de calculs 2 6 Allocation contigue en m moire centrale 2 7 Ordonnancement des processus 2 8 SGBD r parti 2 9 Gestion d arbres g n alogiques 2 10 Gestion de biblioth que 2 11 Matrices creuses 2 12 Calcul formel 2 13 Polynomes 2 14 Simulation de circuits lectroniques 2 15 Moteur d indexation 3 Informations compl mentaires 3 1 Gestion de biblioth que 3 2 Matrices creuses 3 3 Calcul formel 3 4 Simulation de circuits lectroniques A Guide de r alisation des projets A 1 Pr liminaires Un peu de G nie Logiciel A 2 Analyse et sp cifications fonctionnelles A 2 1 Analyse des besoins A 2 2 Sp cificatio A 3 Conception A 3 1 Conception A 3 2 Conception A 4 Codage
18. a signification Tout else doit avoir un commentaire d crivant la condition et la signification du code qui le suit Par exemple ifdef foo else not foo endif not foo en revanche crivez les commentaires de cette mani re pour un ifndef ifndef foo else foo endif foo D 2 3 Utilisation propre des constructions C D clarez explicitement tous les arguments des fonctions Ne les omettez pas sous pr texte que ce sont des int Les d clarations de fonctions externes et de fonctions apparaissant plus loin dans le fichier source doivent toutes tre plac es un endroit vers le d but du fichier quelque part avant le premi re d finition de fonction du fichier ou bien dans un fichier header avec suffixe h Ne mettez pas de d clarations extern l int rieur des fonctions Evitez de r utiliser toujours les m mes variables locales avec des noms comme tmp pour des valeurs diff rentes l int rieur d une m me fonction Pour viter cela il est pr f rable de d clarer une variable locale distincte pour chaque utilisa tion distincte et de lui donner un nom porteur de sens Ce n est pas uniquement pour rendre les programmes plus simples comprendre mais aussi parce que cela facilite l optimisation faite par les bons compilateurs Vous pouvez aussi d placer D 2 FAIRE LE MEILLEUR USAGE DE C 41 la d claration de chaque variable locale dans le plus petit bloc incluant t
19. an du m moire Le m moire proprement dit doit comporter les chapitres suivants 1 L nonc du probl me et son analyse approfondie afin de d crire enti rement le projet r aliser Les probl mes th oriques ou pratiques sous jacents l nonc les fonctionnalit s demand es ou n cessaires les contraintes ex plicites ou non l environnement mat riel et logiciel du projet doivent tre d taill s les choix effectu s doivent tre pr sent s avec leur justification 2 La conception architecturale du logiciel afin de d finir les constituants du logi ciel Le projet est d coup en modules chaque module regroupe des proc dures ou fonctions Cette partie du document comprend l architecture logicielle la d coupe en modules et le graphe de d pendance 3 La conception d taill e les param tres et variables principaux qui sont nomm s et d crits la liste des en t tes de proc dures ou fonctions class s par module puis ordre alphab tique la liste des donn es partag es et leur structure class es par ordre alphab tique 29 30 ANNEXE B LE M MOIRE DU PROJET la liste des fichiers comportant les donn es ou les programmes avec leur structure l esquisse des algorithmes cruciaux Pour chaque objet ajouter un commentaire le d crivant et la page o il est d clar dans le code Pr ciser ventuellement quoi il sert et dans quels mo dules proc dures ou fonctions
20. apr s le dernier espace De plus elle contient le nom canonique de ce programme sous le format suivant GNU Emacs 19 30 Le nom du programme doit tre une cha ne de caract res constante ne la cal culez pas partir de argv 0 L id e est de donner le nom standard ou canonique du programme pas son nom de fichier Il existe d autres proc d s pour retrouver le nom exact du fichier trouv par l interm diaire de PATH pour une commande donn e Si le programme est une partie annexe d un package plus important mentionnez le nom du package entre parenth ses de la mani re suivante emacsserver GNU Emacs 19 30 Si le package a un num ro de version diff rent du num ro de version du pro gramme vous pouvez mentionner le num ro de version du package juste avant la parenth se fermante Sil est n cessaire de mentionner les num ros de version des biblioth ques qui sont distribu es s par ment du package qui contient ce pro gramme vous pouvez le faire en affichant une ligne suppl mentaire d information sur la version pour chaque biblioth que que vous voulez mentionner Pour ces lignes utilisez le m me format que pour la premi re ligne Ne mentionnez pas toutes les biblioth ques utilis es par le programme juste par compl tude cela produit un fouillis inutile Ne mentionnez les num ros de version des biblioth ques que si vous trouvez que c est tr s important pour vous pour le d boguage La ligne suivant la ou le
21. ces est une source d information elle doit tre pr cise et concise L ensemble de la documentation devra tre rendu sous forme papier avec un fichier contenant code et documentation Annexe C Evaluation du projet L valuation du projet sera faite au vu de la qualit technique de la r alisation en particulier l ad quation du logiciel au probl me pos mais aussi le respect des standards de programmation donn s en annexe la qualit du m moire pr sentation et contenu la qualit de la d monstration du logiciel l organisation et le travail en groupe Quelques mots sur la preparation de la demonstration du logiciel C est lors de la d monstration que la qualit technique de la r alisation sera valu e Pr parer une d monstration passe par les tapes suivantes 1 d finir un objectif ce que l on veut montrer 2 associer un sc nario d utilisation permettant de satisfaire cet objectif 3 r p ter l ex cution du sc nario en situation r elle c est dire dans la configu ration mat rielle et logicielle qui sera celle de la v ritable d monstration en particulier si vous avez r alis le projet chez vous il est tr s probable que vous devrez y apporter des modifications pour qu il fonctionne correctement l Institut Galil e et pr parer des commentaires oraux Vous devez mettre en valeur ce que vous avez fait et seulement la fin expliquer les erreur
22. ciel Ce processus de d composition est r it r jusqu obtenir des modules aussi simples que possible Lors de ce travail vous devez donner un nom le plus explicite possible chaque module et aux donn es qu il utilise ou produit Un autre but important de cette d composition est de mettre en vidence des modules poss dant des caract ristiques fonctionnalit et interface suffisamment proches pour tre fusionn s en un m me module plus g n ral r duisant d autant le travail de programmation Dans le m me ordre d id e lorsque des biblioth ques logicielles sont disponibles la d coupe en modules devra autant que possible per mettre la r utilisation de modules d j existant dans ces biblioth ques En m me temps que ce d coupage vous devez faire appara tre les d pendances entre modules quel module utilise quel module Le r sultat de ce travail sera exprim sous forme d un graphe de d pendances chaque module est repr sent par une bo te et les d pendances sont repr sent es par des fl ches entre ces bo tes 26 ANNEXE A GUIDE DE R ALISATION DES PROJETS A 3 2 Conception d taill e L tape de conception d taill e fournit pour chaque composant ou module une description de la mani re dont les fonctions du composant sont r alis es C est cette tape que vous devez d finir et nommer les structures de donn es qui seront utilis es dans le programme Pour les principales structures de
23. cifiquement servir d interface certains types d imprimantes qui ne peuvent pas g rer ces caract res Testez toujours le code d erreur renvoy par un appel syst me Tout message d erreur r sultant de l chec d un appel syst me doit contenir le texte de l erreur syst me obtenu l aide de perror ou d un quivalent ainsi que le nom du pro gramme dont l appel syst me est issu et le cas ch ant le nom du fichier Afficher seulement cannot open foo c ou stat failed n est pas suffisant Testez tout appel malloc ou realloc pour voir s il renvoie z ro Testez realloc m me si vous diminuez la taille du bloc avec un syst me qui arrondit les tailles de bloc une puissance de 2 realloc peut rendre un bloc diff rent si vous demandez moins d espace m moire Sous Unix realloc peut d truire le bloc m moire s il renvoie z ro Le realloc de GNU ne pr sente pas cette bogue s il choue le bloc original est inchang Vous pouvez faire l hypoth se que cette bogue a t corrig e Si vous d sirez ex cuter votre programme sous Unix et souhaitez viter tout probl me dans ce cas vous pouvez utiliser le malloc de GNU Vous devez vous attendre ce que free modifie le contenu du bloc qui a t 33 34 ANNEXE D STANDARDS DE PROGRAMMATION DE GNU lib r Tout ce que vous devez r cup rer de ce bloc doit tre r cup r avant d ap peller free Si malloc choue dans un programm
24. de grandeur des diff rents pa ram tres Configuration mat rielle sur quel type de machine fonctionnera le logiciel Votre logiciel n cessite t il la pr sence de p riph riques particuliers cran graphique souris imprimante scanner lecteur de CD ROM etc Configuration logicielle syst me d exploitation compilateur biblioth ques de fonctions Pour chacun de ces logiciels vous devrez pr ciser le num ro de version R utilisation de logiciels existants Dans le cas particulier o vous faites une nouvelle version d un logiciel d j op rationnel il faut choisir entre reprendre et modifier le logiciel ou le refaire compl tement Choix de l environnement de d veloppement l environnement de d veloppement est l ensemble des logiciels que vous utiliserez pour la programmation exemple gcc Il comprend au minimum un compilateur un diteur de texte et un d bogueur Ces logiciels peuvent ou non tre accessibles partir d une unique application Pour r aliser le d coupage en modules on part des fonctionnalit s qui ont t d finies pr c demment Pour chaque fonctionnalit on d finit pr cis ment son inter face avec le reste du logiciel c est dire l ensemble des informations dont elle aura besoin pour effectuer sa t che celles qu elle pourra modifier Puis on la d compose en modules plus simples dont on pr cise la fonction r alis e et l interface avec le logi
25. dre des valeurs de param tres moyennes ou limites pour v rifier le bon comportement du programme en toute occasion De plus un logiciel doit tre crit en pensant qu il peut tre r utilis un jour par son concepteur ou un autre informaticien Il doit donc tre facile comprendre li sible et bien comment Cela n cessite un certain style de programmation comme de ne pas utiliser d astuces ou alors de les commenter dans le code de ne pas essayer d optimiser tout prix en particulier optimiser la longueur du code en minimisant la longueur des identificateurs ce qui est sans effet sur le temps d ex cution Le programme doit tre accompagn d un document qui en explique l organisation les fonctionnalit s et les diff rents modules pour l informaticien r utilisateur celui qui aura corriger les bogues du logiciel ou en concevoir des extensions et d un ma nuel utilisateur pour celui qui utilisera effectivement le logiciel sans avoir particip sa r alisation Votre projet devra tre r alis en fonction des besoins et caract ristiques des futurs utilisateurs du logiciel Cependant dans le cadre de ce projet vous ne disposez pas d un interlocuteur susceptible de jouer le r le de l utilisateur final La r alisation de votre projet n cessitera donc que vous imaginiez un utilisateur et le plus simple sera probablement d imaginer que cet utilisateur est quelqu un qui vous ressemble Cependant en a
26. e non interactif faites en une erreur fatale i e avec terminaison imm diate de l ex cution du programme Pour un programme interactif un programme qui lit des commandes de l utilisateur il est pr f rable de faire terminer la commande pr matur ment et de retourner la boucle de lecture de commande Cela permet l utilisateur de tuer d autres processus pour lib rer de la m moire virtuelle et de r essayer la commande apr s Utilisez getopt_long pour d coder les arguments moins que la syntaxe des arguments en rende l utilisation d raisonnable Quand de la m moire statique static doit tre modifi e lors de l ex cution d un programme utilisez du code C explicite pour l initialiser R servez le m canisme d initialisation la d claration de C pour les donn es qui ne changeront pas Essayez d viter les r f rences des structures de donn es de bas niveau de Unix telles que r pertoires utmp ou disposition de la m moire du noyau Unix car il est peut probable que ce soit compatible avec d autres implantations d Unix A titre d exemple si vous avez besoin des noms de tous les fichiers d un r pertoire utilisez readdir ou toute autre interface de haut niveau Dans ce cas la compatibilit sera assur e par GNU Dans les tests d erreurs qui d tecte des conditions impossibles contentez vous de faire terminer le programme pr matur ment En g n ral cela ne sert rien d afficher
27. eption Ici vous pourriez dresser un tableau de validation comme illustr sur le tableau A 1 la colonne validation sera remplie lorsque la fonctionnalit aura t implant e R alisation d une version pr liminaire de l interface les diff rents crans de l interface utilisateur doivent tre d crits ainsi que la mani re dont ils s encha nent en fonction des choix de l utilisateur R daction d une version pr liminaire du manuel utilisateur les fonc tionnalit s doivent tre suffisamment bien d crites pour pr voir pr cis ment comment le logiciel pourra tre utilis Le manuel utilisateur ne vous est pas demand maintenant mais pensez lors de la r daction de votre document 24 ANNEXE A GUIDE DE R ALISATION DES PROJETS Comptable Syst me Demande dition feuille de paye l 45 1 1 Affichage fchevide 1 Saisie de donn es 1 eco ieai donn e valides Calcul des mortanta T Afichage des mantarts calcul s i kiWiltr lm Demande d impression FIGURE A 1 Exemple de sc nario d utilisation de sp cification garder le point de vue de l utilisateur Vous pourrez plus facilement vous inspirer de ce premier document lors de la r daction ult rieure du manuel utilisateur A 3 Conception L activit de conception consiste enrichir la description du logiciel de d tails d implantation afin d aboutir une descripti
28. es suppl mentaires de sorte que l indentation illustre l imbrication mode inmode j VOIDmode GET_MODE_ SIZE outmode j gt GET_MODE_ SIZE inmode j outmodel j inmode j Ins rez des parenth ses suppl mentaires de sorte que Emacs indente le code cor rectement titre d exemple l indentation suivante peut sembler correcte si vous la faites la main mais Emacs sabotera votre beau travail v rup gt ru_utime tv_sec 1000 rup gt ru_utime tv_usec 1000 rup gt ru_stime tv_sec x1000 rup gt ru_stime tv_usec 1000 L ajout de quelques parenth ses r soudra le probl me v rup gt ru_utime tv_sec x1000 rup gt ru_utime tv_usec 1000 rup gt ru_stime tv_secx1000 rup gt ru_stime tv_usec 1000 Formatez les structures de contr le do while comme ceci do a foo a while a gt O Utilisez des caract res de saut de page control L pour s parer votre programme en pages des endroits logiques mais pas l int rieur d une fonction La longueur des pages n a aucune importance il n est pas n cessaire qu elle corresponde la longueur d une page imprim e Une ligne contenant un saut de page ne doit rien contenir d autre D 2 2 Commenter votre travail Tout programme doit commencer par un commentaire disant bri vement quoi il sert Exemple fmt filter for simple filling of text Dans un programme GNU crivez les commentaires en anglai
29. est habituellement d crit l aide d un sch ma cf figure A 1 D autres sc narios sont possibles pour ce cas d utilisation mais on d crit le sc nario standard sur le sch ma Il faut cependant pr ciser les cas d erreur ou les diff rentes possibilit s qui peuvent survenir Ici les donn es pourraient tre non valides ou bien le comptable pourrait ne pas demander l impression mais continuer diter d autres feuilles de paye ou vouloir modifier un des parametres qu il a entr s Les fonctionnalit s du syst me apparaissent en cherchant les utilisations pos sibles du logiciel Et en m me temps les donn es n cessaires au traitement ici quels sont les param tres saisis Que peut on imaginer comme donn es internes au syst me n cessaires au calcul des montants Du coup une fonctionnalit de modi fication des param tres du syst me devient n cessaire par exemple pour changer le taux de TVA ou de pr l vement pour les ASSEDIC ou la caisse de retraite Les fonctions ou proc dures d finir pour r aliser le syst me se dessinent galement avec leurs param tres Pour chaque fonctionnalit d finie il faut pr voir une proc dure de test Il s agit ici de pr parer la phase de test en d crivant des proc dures et ventuellement des donn es qui permettront une fois la programmation effectu e de v rifier que la fonctionnalit est correctement remplie Ce travail vous est demand en phase de conc
30. ettra l addition la soustraction et la multiplication de matrices creuses On pourra sauvegarder et restaurer des matrices creuses Vous pourrez galement remplacer les tableaux qui repr sentent la matrice par des listes 16 CHAPITRE 3 INFORMATIONS COMPL MENTAIRES 3 3 CALCUL FORMEL 17 3 3 Calcul formel Une expression symbolique du type x 3x 8 peut tre repr sent e par un arbre a T NZ X Dans un premier temps on se limitera aux 4 op rations de base Ce logiciel permettra de saisir une expression symbolique et de l valuer pour un valeur de x et de la d river La notation la plus facile comprendre pour un programme est la notation polonaise invers e en vigueur sur certaines calculatrices comme les HP48 Elle consiste simplement donner les arguments de la fonction avant la fonction elle m me Ainsi 3x 8 est il not xx x 3x x 8 en notation polonaise invers e Pour d river on utilise les formules de d rivation d une somme d une diff rence d un produit et d un quotient Ainsi la formule ab ab a b se traduira par la d riv e de l arbre gt est l arbre N Ja eo A B A B Mais vous devrez aussi faire des simplifications l mentaires 3z 1 3x1 0xz 0 3 0 0 3 Vous inclurez les fonctionnalit s suivantes ajouter des constantes T e ajouter d autres fonctions sinus log am liorer les
31. f rents par exemple utilisateurs novices utilisateurs exp riment s D terminer pr cis ment les entr es et les sorties du logiciel l utilisateur devra fournir des donn es au logiciel les entr es pour qu il puisse accomplir sa t che Vous devez d terminer sous quelle forme l utilisateur disposera de ces donn es afin de choisir la proc dure d entr e des donn es la plus adapt e De la m me mani re vous devez d terminer quelle est la mani re la plus ap propri e pour pr senter les r sultats du programme les sorties l utilisateur cela d pend en particulier de l utilisation que fera l utilisateur des r sultats produits par le logiciel Caract ristiques quantitatives vous devez d terminer la taille et la quantit de donn es que l utilisateur doit pouvoir traiter avec le logiciel A 2 ANALYSE ET SP CIFICATIONS FONCTIONNELLES 23 A 2 2 Sp cifications fonctionnelles En prenant en compte les points pr c dents vous devez d terminer pr cis ment ce que le programme doit faire c est dire ses fonctionnalit s C est la partie la plus importante de l tape c est celle qui vous prendra le plus de temps et qui n cessitera le plus grand travail de r daction Chaque fonctionnalit doit tre d crite de mani re tr s d taill e sans pour autant entrer dans des d tails d implantation ou de configuration mat rielle Pour faire une analogie avec le travail d un architecte pr parant le p
32. ique de pr f rence sur cl USB sinon disponible sur le r seau Chapitre 2 Liste des projets 2 1 Gestion de r ferences bibliographiques en bib tex et HTML Nombre d tudiants maximum 2 Une base de donn es de r f rences biblio graphiques contient des r f rences qui peuvent tre des livres des articles de revue ou des articles de conf rences chacun de ces genres de r f rence correspondent plusieurs champs Les diff rents champs sont donn es dans l exemple de r f rences au format bibtex ci dessous Exemple de r f rence au format bibtex pour un livre BooktMa11atbook author S Mallat title A Wavelet Tour of Signal Processing publisher Academic Press year 1998 OPTeditor OPTvolume OPTnumber OPTseries address Boston OPTedition OPTnote OPTannote 1 Exemple de r f rence au format bibtex pour un article de revue Article Temlyakov author V Temliakov title Nonlinear methods of approximation journal F00M year 2008 OPTkey volume 3 number 1 pages 33 107 month Feb OPTnote OPTannote 1 Exemple de r f rence au format bibtex pour un article de conf rence 7 8 CHAPITRE 2 LISTE DES PROJETS CInProceedings pati930MP author Y Pati and R Rezaiifar and P Krishnaprasad title Orthogona1 Matching Pursuit Recursive Function Approximation w
33. ith Applications to Wavelet Decomposition booktitle 27 th Annual Asilomar Conference on Signals Systems and Computers pages 40 44 year 93 OPTeditor volume 1 OPTnumber OPTseries OPTaddress publisher IEEE OPTnote DPTannote NB Dans les r f rences ci dessus les champs commen ant par OPT sont op tionels et ne sont pas renseign s Les r f rences portent les noms Mallatbook Temlyakov et pati93OMP Ecrire un logiciel permettant de g rer des r f rences au format bibtex Le fichier charg pourra contenir des r f rences incompl tes Le logiciel offrira les fonctionna lit s suivantes chargement d un fichier bibtex ajout de r f rences modification de r f rences suppression de r f rences sauvegarde des modifications Extraction recherche des r f rences partir de noms d auteurs de mots du titre de noms de r f rences g n ration d un fichier HTML valide permettant d afficher la liste des r f rences dans le format standard author title publisher series booktitle volume number pages adress year note annote interrogation distance gr ce une architecture client serveur Vous utiliserez les outils Flex et Bison pour analyser un fichier Bibtex 2 2 Gestion de cave vin Nombre d tudiants maximum 2 On caract rise une bouteille de vin par sa r gion son do
34. lan d une maison individuelle il s agit de d terminer de quels types de pi ces le futur propri taire aura besoin comment le propri taire souhaite utiliser chaque pi ce pour dormir regarder la t l vision manger en famille couter de la musique travailler s il souhaite disposer d un jardin et pour quelle utilisation pour cultiver un potager pour jouer au football pour mettre une caravane Ce n est qu l tape suivante et en fonction des informations recueillies cette tape qu il d terminera le nombre exact de pi ces leur emplacement et leur taille et encore plus tard qu il pourra d terminer comment chaque pi ce sera effectivement construite choix des mat riaux et des proc d s de construction Les fonctionnalit s que doit r aliser le logiciel seront d finies via les interactions de l utilisateur avec le syst me Vous d crirez les diff rents sc narios d interactions entre syst me et utilisateur en pr cisant pour chaque sc nario les actions du syst me et celles de l utilisateur C est ce qu on appelle un cas d utilisation en UML et OOSE Par exemple pour un logiciel de comptabilit un cas d utilisation possible est de calculer et diter une fiche de paye La description de cette utilisation possible est donn e sous la forme d un sc nario qui indique s quentiellement les interactions et actions de chacun des intervenants dans le sc nario les acteurs Ce sc nario
35. maine son chateau sa couleur son ann e son c page la taille de la bouteille On voudrait aussi donner pour un vin le nombre de bouteilles une ann e de maturit une localisation dans la cave des commentaires d au plus 1000 caract res Ecrire un logiciel permettant de g rer une cave vin Il offrira les fonctionnalit s suivantes Chargement d un fichier d crivant une cave modification des vins ajout des vins suppression des vins sauvegarde d une cave Recherche et affichage des vins par nom par ann e de maturit par couleur par c page r gion etc Plusieurs crit res pourront tre combin s 2 3 JEU D CHEC EN R SEAU 9 interrogation distance gr ce une architecture client serveur NB Le nombre de vins ne sera pas limit vous utiliserez une structure de donn es dont la taille n est pas fix e l avance Vous utiliserez les outils Flex et Bison pour analyser les fichiers stockant les informations relatives aux cave s vins 2 3 Jeu d chec en r seau Nombre d tudiants maximum 2 Ce projet devra permettre un joueur de pouvoir entreprendre une ou plusieurs parties travers le r seau avec d autres partenaires Un serveur g rera les plateaux correspondant diff rentes parties Les clients se connectant au serveur pour soit jouer soit assister comme spectateur au d roulement d une ou plusieurs parties 2 4 Un d mon
36. n tube pipe alors habituellement le mieux est de choisir comme comportement par d faut celui qui est le plus pertinent avec un terminal de sortie et de proposer une option pour l autre comportement La compatibilit n cessite que certains programmes soient d pendants du type de p riph rique de sortie Il serait d sastreux que 1s ou sh ne le fasse pas de la mani re laquelle tous les utilisateurs s y attendent Dans certains cas nous ajou tons au programme une version alternative pr f r e ne d pendant pas du type de p riph rique de sortie Par exemple nous fournissons un programme appell dir tr s proche de 1s except que son format de sortie par d faut est toujours multi colonne Il est pr f rable de suivre les principes propos s par POSIX pour les options de la ligne de commande d un programme La mani re la plus simple de le faire est d utiliser getopt pour les extraire de la ligne de commande Notez que norma lement la version GNU de getopt autorisera des options n importe o parmi les arguments moins que l argument sp cial ne soit utilis Ce n est pas ce que sp cifie POSIX c est une extension GNU D finissez des options noms longs quivalentes aux options en une lettre de style Unix Nous esp rons de cette mani re rendre GNU plus convivial C est facile mettre en uvre avec la fonction GNU getopt_long 36 ANNEXE D STANDARDS DE PROGRAMMATION DE GNU L un des avantages
37. nes pour la r alisation du projet de fin d ann e annexes A B C D 1 2 Informations et d roulement des projets Les projets peuvent tre r alis s en bin me ou en trin me Le nombre maximum d tudiants par projet est indiqu Vous devez choisir un sujet parmi ceux pr sent s ici Aucune proposition per sonnelle ne sera accept e Le langage impos est le langage C Des librairies graphiques Gtk par exemple ou Java sont autoris es pour l interface graphique Un guide de r alisation de projet vous est galement distribu Vous devez envoyer Catherine Recanati catherine recanati lipn univ paris13 fr et Mario Valencia valencia lipn univ paris13 fr trois sujets vous int ressant dans l ordre de vos pr f rence ainsi que la composition de votre bin me ou trin me avant le 06 avril 2012 17h Le sujet attribu vous sera signifi par courrier lectronique avant le 13 avril 2012 17h NB Tr s exceptionnellement le m me sujet pourra tre attribu deux groupes diff rents apr s accord explicite des responsables du module Si vous ne fournissez pas une liste de trois sujets pr f r s il est possible que vous voyez attribuer un tout autre sujet Le 11 mai 2012 12h au plus tard vous nous remettrez un document de 15 pages maximum au format PDF uniquement tout document dans un autre format sera refus fournissant une analyse approfondie de votre projet les cas d utilisa
38. on tr s proche d un programme Elle se d roule en deux tapes l tape de conception architecturale et l tape de conception d taill e Cette tape peut ventuellement donner lieu une r vision des r sultats de l tape pr c dente A 3 1 Conception architecturale L tape de conception architecturale a pour but de d composer le logiciel en composants plus simples et ind pendants les uns des autres ces composants sont aussi appel s modules afin de simplifier l activit de programmation qui suivra Cette d composition doit tre faite de sorte que chaque module puisse tre r alis de mani re totalement ind pendante des autres par des programmeurs diff rents La personne qui l tape de codage programmera un module doit pouvoir effectuer sa t che sans avoir besoin de savoir comment les autres modules ont t sont ou seront programm s C est aussi cette tape que l on doit faire les choix contraignant l implantation A 3 CONCEPTION 25 TABLE A 1 Tableau de validation Fonctionnalit Valeur nominales cas particu Validation liers Calcul et dition de feuille de paye 1 Nom du salari connu 2 Nbre d heures travaill es entier compris entre 20 et 39 cas particuliers j20 39 et 45 si autre chose mes sage et it ration 3 Salaire en francs et en eu ros avec deux d cimales Modification des pa V rifier les unit s et ordre ram tres du syst me
39. orrect est donc static char concat si s2 Name starts in column zero here char s1 s2 Open brace in column zero here ou bien si vous voulez utiliser ANSI C formater la d finition de cette mani re static char concat char s1 char s2 En ANSI C si les arguments ne tiennent pas correctement sur une ligne scinder la liste des arguments de la mani re suivante int lots_of_args int an_integer long a_long short a_short double a_double float a_float Pour le corps de la fonction nous pr f rons un code format comme ceci if x lt foo y z haha bar 4 5 else while z haha foo z z Zes return x bar Il est plus facile de lire un programme quand il y a des espaces avant les parenth ses ouvrantes et apr s les virgules Plus particuli rement apr s les virgules Lorsque vous scinder une expression sur plusieurs lignes scindez la avant un op rateur pas apr s Ceci est la bonne mani re de faire if foo_this_is_long amp amp bar gt win x y amp amp remaining_condition Essayez d viter d avoir deux op rateurs de precedences diff rentes au m me niveau d indentation Par exemple n crivez pas ceci mode inmodel j VOIDmode GET_MODE_SIZE outmode j gt GET_MODE_SIZE inmode outmode inmodel j D 2 FAIRE LE MEILLEUR USAGE DE C 39 Au lieu de cela utilisez des parenth s
40. outes ses utilisations Cela rend le programme encore plus propre N utilisez pas de variables locales ou de param tres masquant des identificateurs globaux Ne d clarez pas plusieurs variables en une d claration s tendant sur plusieurs lignes Au lieu de cela commencez une nouvelle d claration chaque ligne Par exemple au lieu de ceci int foo bar crivez soit cela int foo bar soit cela int foo int bar Si ce sont des variables globales chacune doit tre pr c d e d un commentaire Quand vous avez un if else imbriqu dans un autre if mettez toujours des accolades autour du if else Ainsi n crivez jamais ceci if foo if bar win 0 else lose crivez toujours cela if foo if bar win else lose Si vous avez un if imbriqu dans un else ou bien crivez else if sur une ligne comme ceci if foo else if bar avec la partie then indent e comme la partie then pr c dente ou bien crivez le if imbriqu entre accolades comme cela if foo else if bar 42 ANNEXE D STANDARDS DE PROGRAMMATION DE GNU Ne d clarez pas la fois une structure et des variables ou des d finitions de types dans la m me d claration Au lieu de cela d clarez la structure s par ment et utilisez la ensuite pour d clarer les variables ou les types Essayez d viter les affectations l int rieur des conditions des if Par exemple n crivez pas
41. point Le programme est ex cut sur les donn es de test et les r sultats obtenus sont compar s avec ceux attendus Lorsque les r sultats obtenus diff rent des r sultats attendus il faut corriger le programme et faire repasser tous les tests La phase de 4 4 CODAGE 27 test est consid r e comme termin e lorsque la version d bogu e du logiciel passe tous les tests avec succ s 28 ANNEXE A GUIDE DE R ALISATION DES PROJETS Annexe B Le m moire du projet Lors de la r alisation du projet chaque tape a donn lieu la r daction de documents Ces diff rents documents ont du tre r vis s au fur et mesure que la r alisation avan ait Le document final du projet reprend l essentiel de ces docu ments dans leur version finale dans une pr sentation l g rement diff rente plus certaines informations compl mentaires B 1 Pr sentation Sa pr sentation est la m me que tous les documents interm diaires Le m moire doit tre tap l aide d un traitement de texte Il doit videmment comporter un ent te ou une premi re page avec un titre le nom de s l hauteur s et son es courrier lectronique la mati re la formation et l ann e le nom de l enseignant encadrant auquel le document est destin la date laquelle cette version du m moire a t termin e Toutes les pages doivent tre num rot es et le m moire doit comporter une table des mati res B 2 Pl
42. quelque message que ce soit Ces tests indiquent la pr sence de bogues Qui que ce soit voulant corriger ces bogues devra lire le code source et utiliser un d bogueur Expliquez donc l erreur l aide de commentaires dans le code source Les donn es int ressantes seront dans des variables qui pourront tre examin es facilement avec le d bogueur N utilisez pas un compteur d erreurs comme code de retour d un programme Cela ne marche pas car les valeurs de code de retour des programmes sont limit es une repr sentation sur 8 bits valeurs de 0 255 Il est possible qu une seule ex cution d un programme produise 256 erreurs si vous essayez de renvoyer 256 comme code de retour le processus p re verra un code de retour gal 0 et il supposera que le programme a r ussi Si vous cr ez des fichiers temporaires testez la variable d environnement TMPDIR si cette variable est d finie utilisez le r pertoire sp cifi la place de tmp D 1 2 Biblioth ques de fonctions Voici maintenant quelques conventions de nommage concernant les biblioth ques de fonctions afin d viter les conflits de nom Choisissez pour chaque biblioth que un pr fixe de plus de deux caract res Tout nom de fonction ou variable externe doit commencer par ce pr fixe De plus chaque membre de la biblioth que ne doit contenir qu un symbole externe Cela signifie habituellement que chacun doit tre plac e dans un fichier source distinct
43. s t pass s en cours les tests sont en cours mais la mise au point n est pas termin e il reste des bogues OK les tests ont t pass s avec succ s La colonne validation sera remplie au fur et mesure de la mise au point apr s le codage et restera donc vide pour le moment A 4 Codage C est seulement cette tape que commence la programmation Si les tapes pr c dentes ont t pass es correctement chaque module peut tre programm ind pendamment des autres et le travail de programmation pourra tre r parti entre les diff rents participants au projet Cette phase de programmation doit suivre cer taines r gles se conformer strictement la description du module qui a t faite lors de la conception d taill e fonctionnalit s r aliser et interface avec le reste du logiciel tout cart cette r gle peut remettre en cause la r alisation de l ensemble du projet et r duire n ant tout le travail d j effectu sur les autres modules adopter des standards de programmation cf annexe pour le nommage des diff rents objets du langage fichiers type variables constantes fonctions procedures pour l criture des commentaires pour la pr sentation du code en particulier pour l indentation pour le traitement des erreurs d tection syst matique des erreurs pouvant tre caus es par les appels syst mes format des messages d erreurs Test et mise au
44. s l anglais est la langue que pratiquement tous les programmeurs de tous les pays peuvent lire Si vous n crivez pas bien anglais crivez vos commentaires en anglais aussi bien que vous le pouvez puis demandez d autres personnes de vous aider les r crire Si vous ne pouvez pas crire de commentaires en anglais trouvez quelqu un pour travailler avec vous et traduire vos commentaires en anglais Pour chaque fonction mettez un commentaire d crivant ce que fait la fonction quelle sorte d arguments elle prend ainsi que ce que signifient et quoi sont utilis es les diff rentes valeurs possibles des arguments Il n est pas n cessaire de r p ter avec des mots la signification des d clarations C des arguments si un type C est utilis de mani re habituelle Si il y a quelque chose de non standard dans son utilisation comme un argument de type char qui est en r alit l adresse du second caract re d une cha ne de caract res et non celle du premier o que l une des valeurs possibles ne fonctionnerait pas de la mani re laquelle on peut s attendre tel qu un fonctionnement correct non garantie pour des cha nes de caract res contenants des sauts de lignes alors vous devez obligatoirement le mentionner Expliquez aussi la signification de la valeur retourn e si elle en a une Afin que les commandes Emacs sur les phrases fonctionnent mettez deux espaces apr s la fin d une phrase dans vos commentaires
45. s lignes de num ro de version doit tre une notice de copyright Si plusieurs notices de copyright sont n cessaires mettez les chacune sur des lignes s par es Ensuite doit suivre une br ve d claration sur le fait que le programme est un logiciel libre et que les utilisateurs sont libres de le copier et le modifier sous certaines conditions Si le programme est couvert par la GNU GPL dites le ici Mentionnez aussi qu il n y a aucune garantie dans les limites permises par la loi Vous pouvez terminer le message affich par une liste des principaux auteurs du programme afin de leur en attribuer le cr dit Voyez ci apr s un exemple d affichage respectant ces r gles GNU Emacs 19 34 5 Copyright C 1996 Free Software Foundation Inc GNU Emacs comes with NO WARRANTY to the extent permitted by law D 2 FAIRE LE MEILLEUR USAGE DE C 37 You may redistribute copies of GNU Emacs under the terms of the GNU General Public License For more information about these matters see the files named COPYING Bien entendu vous devez adapter cela votre programme en y mettant les in formations correctes concernant l ann e le d tenteur du copyright le nom du pro gramme le cadre autoris pour la redistribution et en modifiant les termes employ s autant que n cessaire Dans cette notice de copyright il n est n cessaire de mention ner que l ann e la plus r cente laquelle des modifications ont t apport es il n
46. s r siduelles et les fonctionnalit s non op rationnelles Les probl mes de gestion de groupe que vous pouvez avoir rencontr s ne doivent pas appara tre lors de la d monstration ils doivent avoir t voqu s bien avant au moment o ils se sont produits avec votre enseignant 31 32 ANNEXE C VALUATION DU PROJET Annexe D Standards de programmation de GNU Traduction partielle des GNU Coding Standards r dig s par Richard Stallman et disponible http gnu via ecp fr prep standards_toc html D 1 Comportement commun tous les programmes Ce chapitre d crit comment crire des logiciels robustes Il d crit aussi des stan dards g n raux pour les messages d erreur l interface ligne de commande et la mani re dont les biblioth ques de fonctions doivent se comporter D 1 1 Ecrire des programmes robustes Evitez les limites arbitraires sur la taille des structures de donn es y compris la taille des noms de fichiers des lignes des fichiers et des symboles Pour cela utilisez l allocation dynamique pour toutes les structures de donn es Dans la plupart des utilitaires Unix les lignes longues sont tronqu es sans avertissement Ce n est pas toutefois pas acceptable Les utilitaires lisant des fichiers ne doivent pas liminer les caract res NUL ou tout autre caract re y compris ceux dont le code est inf rieur 0177 Les seules exceptions admises concernent les utilitaires qui sont destin s sp
47. simplifications 18 CHAPITRE 3 INFORMATIONS COMPL MENTAIRES 3 4 SIMULATION DE CIRCUITS LECTRONIQUES 19 3 4 Simulation de circuits lectroniques On voudrait simuler le fonctionnement d un circuit lectronique logique c est dire donner les valeurs de sortie 0 ou 1 en fonction des valeurs donn es en entr e 0 ou 1 Un circuit lectronique est un ensemble de composants connect s entre eux Ces composants peuvent tre des portes AND 2 entr es 1 sortie des portes OR 2 entr es 1 sortie des portes XOR 2 entr es 1 sortie des inverseurs NOT 1 entr e 1 sortie des entr es IN 0 entr e 1 sortie ou des sorties OUT 1 entr e 0 sorties Les tables de v rit s de ces composants sont les suivantes AND 011 OR 0 1 XOR 0 1 0 0 0 0 01 1 0 0 1 NOT 1 l 1 0 1 1 1 1 1 1 0 Les circuits ne seront pas dit s dans le logiciel mais charg s partir d un fi chier Une ligne dans un fichier d crit soit un composant composant NomComposant TypeComposant soit une liaison entre deux composants liaison NomComposant N Sortie NomComposant N Entr e avec TypeComposante AND OR NOT IN OUT et NomComposant un mot suite de caract re sans espace Exemple de fichier de circuit composant ini IN composant in2 IN composant in3 IN composant outi OUT composant andi AND composant or1 OR liaison ini 1 andi 1 liaison in2 1 andi 2 liaison andi 1 ori 1 liaison
48. sions Des informations compl mentaires d taillant le sujet sont fournies la section 3 3 12 CHAPITRE 2 LISTE DES PROJETS 2 13 Polyn mes Nombre d tudiants maximum 3 Un polyn me coefficients r els est repr sent par la liste de ses mon mes sans limitation de degr Ce logiciel devra faire toutes les op rations usuelles sur les polyn mes addition soustraction mul tiplication division euclidienne PGCD PPCM d rivation et aussi sauvegarder et restaurer les polyn mes d finis Vous tudierez une variante o les coefficients sont dans Z pZ avec p premier Vous pourrez galement tendre aux polyn mes de 2 variables quand cela a un sens 2 14 Simulation de circuits lectroniques Nombre d tudiants maximum 3 Les circuits lectroniques simuler sont constitu s de composants reli s entre eux par des entr es et des sorties La simulation consiste envoyer un signal l entr e du circuit des 0 ou des 1 et observer ce qui se passe la sortie encore des 0 ou des 1 Ce logiciel devra permettre de cr er de sauvegarder et de charger des circuits lectroniques Des informations compl mentaires d taillant le sujet sont fournies la section 3 4 2 15 Moteur d indexation Nombre d tudiants maximum 3 Un moteur de recherche est compos de trois grandes parties l exploration r alis e par le moissonneur ou le crawler l indexation et la recherche On sinteressera ici
49. t pas interactif et devra donc crire les messages d erreur dans le style non interactif La cha ne de caract res message ne doit pas commencer par une majuscule quand elle suit un nom de programme ou de fichier En outre elle ne doit pas se terminer par un point Les messages d erreur des programmes interactifs ainsi que les autres messages comme les messages d utilisation usage doivent commencer par une majuscule mais ne doivent pas se terminer par un point D 1 4 Standards pour l interface ligne de commande Faites en sorte que le comportement d un logiciel ne d pende pas du nom utilis pour lancer la commande Il est parfois utile de faire un lien vers un logiciel en utilisant un nom diff rent et cela ne doit pas modifier ce qu il fait Au lieu de cela utilisez des options d ex cution ou des options de compilation ou bien les deux pour s lectionnez parmi les diff rents comportements alternatifs De la m me fa on ne rendez pas le comportement d un programme d pendant du type de p riph rique de sortie avec lequel il est utilis L ind pendance par rapport aux p riph riques est un principe important de conception des syst mes ne le compromettez pas dans le seul but d viter quelqu un de taper une option par ci par l Si vous pensez qu un comportement est plus ad quat quand la sortie est dirig e vers un terminal et qu un autre est plus pertinent lorsque la sortie est dirig e vers un fichier ou u
50. terminal de connexion espion Nombre d tudiants maximum 3 On souhaite avoir un d mon effectuant les t ches suivantes e V rification que toute personne connect e sur une machine soit r f renc e lt e Si un utilisateur n est pas r f renc r cup rer toutes les commandes effectu es par le dit individu e V rification d utilisation de commandes illicites e Ex cution de commandes envoy es par l administrateur Exemple destruction de tous les textedits d un utilisateur 2 5 Un serveur de calculs Nombre d tudiants maximum 2 Il s agirait d un serveur permettant ses clients d ex cuter l aide d un m ta langage des op rations en parall le sur des machines peu charg es Exemple le client envoie la suite d instructions 1 res1 3 x 7 y 2 res2 6 x 9 y 3 amp 1 res3 exp res1 4 amp 2 res4 exp res2 5 amp 1 amp 4 res5 res4 res1 Le serveur effectue les calculs suivants voir Fig 2 1 1 3 et 5 sur une machine A 2 et 4 sur une machine B 2 6 Allocation contigue en m moire centrale Nombre d etudiants maximum 2 Il s agit d implanter des algorithmes classiques savoir best fit first fit et worst fit et de simuler des processus threads venant demander un espace m moire pour s ex cuter Une comparaison des performances est n cessaire 2 On informera ladministrateur 10 CHAPITRE 2 LISTE DES PRO
51. tion ou de l environnement logiciel et mat riel En effet un des buts majeurs de la r alisation de ces projets est justement de vous faire acqu rir des comp tences suppl mentaires dans ces domaines programmation dans un environnement logiciel et mat riel bien d fini A 2 1 Analyse des besoins L analyse est consacr e l explicitation du contexte d utilisation du logiciel et des besoins des utilisateurs Quel est l objectif du logiciel quoi doit il servir quel est le probl me qu il doit r soudre L analyse commence par exposer ce sur quoi porte le logiciel c est dire votre vision du sujet que vous avez choisi quel type d utilisateur s adresse le logiciel quel est son niveau de comp tence dans le domaine couvert par le logiciel Ces informations seront essentielles pour la conception de l interface utilisateur et le choix des fonctionnalit s qui seront offertes Quel est le contexte d utilisation du logiciel quelle s occasion s Putili sateur se servira t il du logiciel Quelles sont les diff rents types dutilisa tion du logiciel titre d exemple il arrive souvent qu un logiciel n cessite une phase d initialisation ou de configuration durant laquelle seules certaines fonctionnalit s seront utilis es et ces fonctionnalit s ne seront que tr s ra rement utilis es dans le contexte courant Souvent ces diff rents contextes d utilisation correspondent des types d utilisateurs dif
52. tion principaux l architecture logicielle les sp cifications et les diagrammes de classes ou les interactions entre modules ou librairies en vue de l impl mentation aucune programmation n est demand e ce stade la description des formats d entr es sortie commandes format des fichiers etc 6 CHAPITRE 1 CONSIGNES les tests devant tre r ali s pour v rifier lors de la deuxi me phase du projet le fonctionnement correct du logiciel d velopp Vous soignerez la pr sentation du document ainsi que l analyse du sujet La note finale tiendra compte du rendu de ce rapport qualit du document respect de fonctionnalit s demand es et analyse du sujet La semaine du 14 mai 2012 vous aurez un retour sur votre document par courrier lectronique Chaque groupe sera convoqu pour une s ance de travail informelle pendant laquelle il d crira bri vement la proposition et ventuellement des correc tions pourront tre propos es par les encadrants NB Il est tr s important que vous respectiez les d lais La soutenance du projet est pr vue le 22 juin 2012 vous serez inform par un affichage La semaine qui pr c de vous nous aurez remis par mail un document de 25 pages maximum au format PDF uniquement tout document dans un autre format sera refus d crivant l ensemble de votre projet n incluez pas de listing de code une archive ZIP ou tar gz tout autre format sera refus
53. travaille ligne par ligne et doit s appliquer des fichiers quelconques fournis par l utilisateur il ne doit conserver qu une ligne en m moire car cela n est pas tr s dif ficile mettre en uvre et que les utilisateurs voudront tre en mesure de travailler sur des fichiers d entr e plus grands que ceux qui pourraient tenir en m moire Si votre programme cr e des structures de donn es complexes faites le en m moire et faites terminer le programme pr matur ment fatal error si malloc retourne z ro D 2 Faire le meilleur usage de C Ce chapitre fournit des conseils sur comment faire le meilleur usage du langage C lors de l criture de logiciels GNU D 2 1 Formater votre code source Il est important de placer en colonne z ro les accolades ouvrantes qui marquent le d but du corps d une fonction C et d viter de placer toute autre accolade ou vrante parenth se ouvrante ou crochet ouvrant en colonne z ro Diff rents outils recherchent les accolades ouvrantes en colonne z ro pour d terminer les d buts de 38 ANNEXE D STANDARDS DE PROGRAMMATION DE GNU fonctions C Ces outils ne fonctionneront pas si vous ne formater pas votre code source de cette mani re De m me pour les d finitions de fonctions il est important de faire commencer le nom de la fonction en colonne z ro Cela aide les gens dans la recherche de d finitions de fonctions et peut aussi aider certains outils les reconna tre Le formatage c
54. ucun cas vous ne devez supposer que vous serez le seul et unique utilisateur du logiciel vous devez concevoir le logiciel afin quil soit facilement utilisable par une personne n ayant pas particip sa conception 21 22 ANNEXE A GUIDE DE R ALISATION DES PROJETS A 2 Analyse et sp cifications fonctionnelles Cette tape de la r alisation du projet doit permettre de d terminer ce que le logiciel d velopper devra faire le quoi A cette tape on ne se pr occupe pas de savoir comment le logiciel sera programm Cela signifie en particulier qu analyse et sp cification ne devront pas d pendre ou mentionner des aspects d implantation comme les caract ristiques d un langage de programmation ou d une machine On ne se pr occupe cette tape que des services que le logiciel devra rendre l utili sateur final du logiciel En principe c est seulement apr s cette premi re tape que le choix du langage de programmation et de l environnement logiciel quel syst me d exploitation quels outils de d veloppement et mat riel quel mod le de ma chine sera effectu en fonction des r sultats de cette tape M me si dans le cadre de votre projet ces choix langage de programmation et environnement logiciel et mat riel vous sont impos s il faut au maximum en faire abstraction Le risque est que les fonctionnalit s du logiciel soient d termin es en fonction de vos connaissances du langage de programma

Download Pdf Manuals

image

Related Search

Related Contents

DELL Inspiron One 2020  Untitled  Service Manual  施工・取扱説明書  ARU 2100R - CPAC Equipment Inc  Softwareanleitung - Schilling Marking Systems  Samsung YP-G1CW Felhasználói kézikönyv  Ardes AR5T90R fan      

Copyright © All rights reserved.
Failed to retrieve file