Aperçu des sections

  • Documents de cours

    Fiche de description du cours : Cours 1I2AC1

    Selon l'arrêté ministériel du 30 décembre 1983 relatif à l'enrichissement du vocabulaire de l'informatique, le génie logiciel est défini comme « l'ensemble des activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi. ».

    Ce cours d'introduction au génie logiciel aborde les points suivants :

    • le paradigme de Conception Orientée Objet.
    • le langage de modélisation graphique  UML (Unified Modeling Language).
    • le développement logiciel Agile.

    Responsable de l'enseignement: Régis Clouard

    Volume horaire

    • Cours magistral : 11h
    • Travaux dirigés : 14h

    Coefficients

    • Examen final : 2
    • Cours

      Chapitre PolycopiéObjectif du chapitre
      Chapitre 1 : Introduction au génie logiciel Diapositives Pourquoi un cours sur le génie logiciel ?
      Chapitre 2 : Le paradigme objet Diapositives Initiation au paradigme objet pour la conception logicielle.
      Chapitre 3 : Le langage UML Diapositives Présentation du langage UML à travers ses principaux diagrammes.
      Chapitre 4 : Processus de développement agile Diapositives Une première introduction aux principes agiles du développement logiciel.
      Chapitre 5 : Qualité logicielle
      Diapositives Présentation de la notion de qualité logicielle avec un focus particulier sur le point de vue du développeur.
      Chapitre 6 : Code propre Diapositives Définition de la notion de code propre à travers et les principes et la pratique.
      Chapitre 7 : Test logiciel Diapositives Initiation aux tests logiciels et en particulier aux tests dynamiques.
      Chapitre 8 : Refactoring de code Diapositives Présentation de quelques règles de refactoring du code pour en améliorer sa qualité.
      Chapitre 9 : Les 12 choses que tout bon développeur doit savoir Diapositives
      Questions de cours Quiz

      • Lectures complémentaires

        • Ressources

          I. TD

          Exemple de code java :


          II. Katas

          Un Kata est un exercice de développement logiciel destiné à améliorer et maintenir ses compétences en matière de développement à travers la pratique et la répétition. Les katas sont de petits exercices qui peuvent être effectués en moins d'une heure.

          C'est la répétition qui permet réellement de progresser notamment dans la maîtrise des fonctionnalités de l'IDE en cherchant à aller toujours plus vite à développer le même programme, ainsi que dans la  compréhension des concepts mis en exergue par l'exercice en cherchant à accroître constamment la qualité du développement.

          1. Kata de code propre

          Ce kata consiste à retravailler le code Java d'un programme en appliquant les règles de code propre.

          Kata 1 : Eratosthène

          Le programme consiste à calculer les nombres premiers inférieurs à un nombre maximal donné en utilisant le crible d'Eratosthène.

          2. Katas développement dirigé par les tests (TDD)

          Les exercices consistent à développer un programme en appliquant la méthode de développement dirigée par les tests.

          Kata 2 : Bowling

          Cet exercice consiste à développer un programme de gestion des points d'une partie de Bowling

          • L'énoncé et les étapes de la solution de R. Martin : BowlingGameKata.ppt
          • La liste des commandes IntelliJ IDEA pour réaliser le Kata : synopsis.

          Kata 3 : Calculatrice

          Cet exercice consiste à développer une calculatrice utilisant la logique polonaise.

          • Références

            • Grady Booch, James. Rumbaugh, Ivar Jacobson, « Le guide de l'utilisateur UML ». Eyrolles, 1998.
            • Martin Fowler, « UML 2.0 », Campus Press, 2003. (La description de la version 2.0)
            • James Rumbaugh, « Modélisation et conception orientées objet », Prentice Hall, 1991.
            • Nathalie Lopez, Jorge Migueis, Emmanuel Pichon, « Intégrer UML dans vos projets », Eyrolles 1998.
            • Pierre-Alain Muller, Nathalie Gaertner, « Modélisation objet avec UML », Eyrolles 2e ed, 2000.
            • Ivar Jacobson, « Le génie logiciel orienté objet », Addison-Wesley, 1992.
            • Pascal Roques, Franck Vallée, « UML en action », Eyrolles, 2002.
            • Bertand Meyer, « Conception et Programmation orientées objet », Eyrolles, 2000.
            • Robert C. Martin. « Agile Software Development: Principles, Patterns, and Practices », Prentice Hall International, 2002.
            • Robert C. Martin, « Clean Code A Handbook of Agile Software Craftsmanship  », Prentice Hall, 2009.
            • Glenford J. Myers, « The Art of Software Testing », John Wiley & Sons, Inc., 2004.