Skip to content
Snippets Groups Projects
_index.md 7.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexandre MEYER's avatar
    Alexandre MEYER committed
    ---
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    title: "Travaux Dirigés"
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    description: "TD"
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    ---
    
    Alexandre MEYER's avatar
    ...
    Alexandre MEYER committed
    
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    Il y a des TD au tableau/stylo et des TD sur machine. Pour la partie marchine, le module Image est à rendre.
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    ### TD-C1 Conception et diagramme des classes
    
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    <img src="doc/conception.jpg" width="100" class="center">
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * [TD Conception : étude de la conception de différentes applications, diagramme des classes](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAP4_TD1_ConceptionLogicielle.pdf)
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    <!--* [Elements de correction du TD Conception](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAP4_TD1_ConceptionLogicielle_corriges.pdf)-->
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    <br>
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    ### TD Outils
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <img src="doc/tools.png" width="200" class="center">
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    #### TD-O0 Installation et choix d'un éditeur de code
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    Choisisser un éditeur de code. Nous vous conseillons de choisir parmi VSCode, Visual Studio(Windows), XCode(MacOS), CLion ou Codeblocks (Windows/Linux). [Regarder les consignes d'installation ici](https://forge.univ-lyon1.fr/Alexandre.Meyer/L2_ConceptionDevApp/*/blob/master/doc/install.md)
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    #### TD-O1 Classe Image
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    Voir l'énoncé de la [Partie 1](doc/LIFAPCD_TD-O1_ClasseImage.pdf)
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * Ecriture de la structure Pixel et de la classe Image
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Organisation des fichiers
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Début des tests de la mémoire avec Valgrind  
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    
    Alexandre MEYER's avatar
    TD  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    #### TD-O2 Gestionnaire de version et documentation
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    * Passage du code dans un projet git
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
      * Se connecter sur la [forge Lyon 1](https://forge.univ-lyon1.fr)
      * Dupliquez le projet suivant de module Image 
      * Ajoutez-y les membres de votre groupe
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
      * [Réalisez le tutorial "Premier pas" se trouvant ici](https://forge.univ-lyon1.fr/Alexandre.Meyer/L2_ConceptionDevApp/-/blob/master/doc/git.md)
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Documentation de la classe Image avec les balises doxygen. [Voir les explications générales sur doxygen ici](https://forge.univ-lyon1.fr/Alexandre.Meyer/L2_ConceptionDevApp/-/blob/master/doc/doxygen.md).  
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    #### TD-O3 Débogage
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    Voir l'énoncé de la [Partie 3](doc/LIFAPCD_TD-O3_Debogage.pdf)
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * Gestion de mémoire et optimisation de code sur un exemple "jouet"
    * Débogage des fonctions de sauvegarde et de chargement d'une image
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Gdb
    * Valgrind
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    #### TD-O4 Bibliothèques (lib)
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    Voir l'énoncé de la [Partie 4](doc/LIFAPCD_TD-O4_SDL.pdf)
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Installer les librairies SDL2
    * Écrire la classe ImageViewer
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * Faire le diagramme des classes du module Image
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <br>
    <br>
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    ## Module Image à rendre
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    <img src="../projet/doc/livrable.png" width="150" class="center">
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    ### À rendre
    
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    Votre archive sera testée avec un script particulier (cf. plus bas). Vous devez donc **respecter exactement le format attendu par ce script sinon vous aurez la note zéro**.
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    **Déposez votre archive sur TOMUSS**, dans la case `DepotModuleImage` du cours. Vous devez **respecter l'heure limite,** car le dépôt sera désactivé après l'heure limite. Une soumission en retard (par email ou autre) entraînera la note zéro pour tout le groupe. Un seul dépôt par groupe d'étudiants (sur n'importe lequel des comptes).
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    Votre module Image doit respecter les conventions suivantes.
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * À faire en groupe de 2 ou 3 étudiants
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Votre archive s'appelle `NUMEROETU1_NUMEROETU2_NUMEROETU3.tgz` ou `NUMEROETU1_NUMEROETU2_NUMEROETU3.tar.gz` (pas de zip) où `NUMEROETU1` est le numéro étudiant du premier membre du groupe, etc.
    * Tous les fichiers se décompressent dans un répertoire ayant pour nom `NUMEROETU1_NUMEROETU2_NUMEROETU3` (même nom que l'archive)
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * Ce répertoire doit contenir les sous-répertoires `bin`, `src`, `obj`, `data` et `doc`
    * Le fichier `Makefile` (donné explicitement ou bien générable par le fichier `CMakeLists.txt` de CMake) compile les trois programmes :
      * `bin/exemple` exécute le code générant les images en sortie (i.e. exécute mainExemple.cpp)
      * `bin/test` appelle `testRegression`  (test de non-régression qui vérifie tout) et affiche les tests effectués à l'écran (i.e. exécute mainTest.cpp)
      * `bin/affichage` fait l'affichage de l'image dans une fenêtre SDL avec zoom/dézoom (i.e. exécute mainAffichage.cpp)
    * `readme.md` est un fichier texte expliquant la librairie. Au minimum comment compiler et exécuter, ce que fait le module et chacun des exécutables, l'organisation de l'archive, etc., et il doit indiquer les noms/prénoms/numéros des étudiants et l'id du projet sur la forge
    * Vos fichiers sources (.h et .cpp) sont placés dans le dossier `src`
    * Les images sauvées et lues seront toujours placées dans le dossier `data`
    * Dans le dossier `doc`, vous aurez
      * `doc/image.doxy` est le fichier de configuration de doxygen
      * `doc/html/index.html` est la page d'entrée de la documentation (générée avec doxygen)
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    Ces conventions sont très répandues, et il serait de bonne habitude de les appliquer pour tous vos rendus de TP (info ou autres), ou vos projets futurs publiés sur internet. Vous utiliserez notamment ces conventions pour votre projet.
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    **Vous n'avez pas le droit de modifier le code fourni.** Les programmes principaux, les noms des fichiers, des classes et structures, des fonctions, des données, etc., doivent être exactement les mêmes que ceux donnés. Ceci conditionne fortement le succès du script.
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    
    
    ### Script de test du module Image
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    Votre archive du module Image sera testée avec le script présent dans le répertoire `TD_moduleImage` [fourni durant le TD ici](https://forge.univ-lyon1.fr/Alexandre.Meyer/L2_ConceptionDevApp), s'appelant evalModuleImage.py (script Python). Avant de soumettre votre archive, vérifiez que l'exécution du script se déroule sans erreur. Pour vous, il y a 3 manières de lancer le script :
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * sous linux avec le code du script en tapant la commande `python3 evalModuleImage.py NUMEROETU1_NUMEROETU2_NUMNUMEROETU3.tgz`;
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * sur la machine de l'université en [suivant les explications ici]https://forge.univ-lyon1.fr/Alexandre.Meyer/L2_ConceptionDevApp);
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * en clonant [ce projet](), à chaque commit le script est lancé.
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    #### Script et notation
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    * Si le script échoue à une étape, le correcteur n'ira pas plus loin (même si la suite est juste).
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * Si le script rapporte des erreurs, corrigez les avant de soumettre votre archive.
    * Le script vous donne également une note **INDICATIVE** à la fin. **Pour la note finale, des vérifications supplémentaires (non automatiques) seront effectuées par les enseignants.** La note indicative est donc une note maximale possible.
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    td  
    Alexandre MEYER committed
    
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    #### Précision technique sur ce script
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    
    
    PRONOST NICOLAS's avatar
    PRONOST NICOLAS committed
    * Ce script doit tourner sous Linux avec python3 (uniquement Linux à cause de valgrind). Si vous l'exécutez sur votre machine personnelle, il faut installer python, doxygen, valgrind, SDL2, etc. Voir les installations à faire sur [la page projet](projet).
    * Si votre code nécessite l'utilisation du standard CPP11 ou plus, n'oubliez pas d'ajouter l'option `-std=c++11` (ou plus) dans les lignes de commande g++ de votre Makefile.
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Sous MacOS, [regardez les consignes ici](doc/tools_MacOS.pdf) (merci Erwan)
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Sous Windows, installer WSL, puis tout se passe comme sous Linux
    
    Alexandre MEYER's avatar
    Alexandre MEYER committed
    * Si le message suivant apparaît, vous devez utiliser Python 3 (Python 2 produit ce type d'erreur).
      ```
      File "evalModuleImage.py", line 120
          print("Numeros des etudiants =", end=' ')
      SyntaxError: invalid syntax​
      ```