Aperçu des sections

  • Organisation

    Lien BBB pour le cours :

    https://bbb.ensicaen.fr/b/clo-nhm-2kd



    Fiche de description du cours : Cours 2I1AC3

    La programmation de logiciels avec un langage à objet va au-delà du simple codage avec des classes. Cela introduit une nouvelle façon d'analyser et de concevoir les logiciels.

    L'objectif pédagogique de ce cours est une sensibilisation aux paradigmes avancés de l'analyse et de la conception par objets qui s'appuie sur un ensemble de principes, de règles et de patrons de conception (design patterns). Cela passe aussi par la spécification de quelques principes d'organisation du code en paquets.

    Ce cours aborde les points suivants :

    • Les principes SOLID de conception orientée objet.
    • La réutilisabilité en conception logicielle.
    • Les patrons de conception de la "bande des quatre".
    • Les patrons d'architecture.
    • L'organisation du code en paquets.
    • La programmation orientée aspect.

    • Syllabus

      Séance 1 : chapitre 1: Introduction
      Séance 2 : Chapitre 2 : Principes avancés de conception objet (diapo 28 avant la réutilisation)
      Séance 3 : Chapitre 2 : Réutilisation + Chapitre 3 : GOF Design Pattern (Adaptateur, Fabrique, Fabrique abstraite)
      Séance 4 : Chapitre 3 : GOF Design Pattern (Composite, Itérateur, Visiteur)
      Séance 5 : Chapitre 3 : GOF Design Pattern (Décorateur, Procuration, Observateur)
      Séance 6 : Chapitre 4 : Patrons d'architecture
      Séance 7 : Chapitre 3 : GOF Design Pattern (Commande, Stratégie, État, Buiilder)
      Séance 8 : Chapitre 3 : GOF Design Pattern (Singleton, Pont), Anti-patter, + Résumé.
      Séance 9 : Chapitre 5 : Organisation en paquets
      • Supports de cours

        Chapitre PolycopiéObjectif du chapitre
        Chapitre 1. Limites du paradigme objet pour la conception DiapositivesSe rendre compte que les concepts de la conception orientée objet ne sont pas suffisants pour produire des logiciels robustes, maintenables et réutilisables.
        Chapitre 2. Principes avancés de conception objet Diapositives
        Savoir produire des logiciels robustes, maintenables et réutilisables en s'appuyant sur des :
        - Principes de conception (SOLID),
        - Règles de conception,
        - Patrons de conception.
        Chapitre 3. Patrons de conception de la bande des quatre DiapositivesConnaître le détail des 23 patrons de conception de la bande des quatre "Gang of Four" et savoir les utiliser dans ses propres développements.
        Chapitre 4. Patrons d'architecture DiapositivesConnaître les patrons d'architecture de base.
        Chapitre 5. Principes de conception en paquets Diapositives
        Savoir organiser les sources d'un projet en paquets afin de favoriser le développement, la maintenance et la réutilisabilité de projet.
        Résumé  + quiz DiapositivesRésumé et quiz.
        Annexe. Programmation orientée aspect DiapositivesAvoir connaissance du paradigme de programmation orientée aspect qui s'inscrit au-dessus du paradigme de programmation orientée objet.

      • Travaux Pratiques de Git

        • Références bibliographiques

          • E. Gamma, R. Helm, R. Johnson, J. Vlissides. "Design Patterns Catalogue de modèles de conception réutilisables", Addison-Wesley, 1995/1999. (Le livre référence)
          • A. Shalloway, J. R. Trott. "Design Patterns par la pratique", 2002. (Les patrons abordés par l'aspect pratique).
          • F. Bushmann, R. Meunier, H. Rohnert, M. Stal, "Pattern-oriented software architecture: a system of patterns", Wiley & Sons, 1996.
          • B. Bates, E. Freeman, E. Freeman, K. Sierra, "Head First Design Patterns", O'Reilly Media, 2004. (Très didactique)
          • Robert Martin, "Agile software development: principles, patterns, and practices.", Pearson Education, 2002. (Une référence dans le domaine)
          • Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford, "Patterns of Enterprise Application Architecture.", Addison-Wesley, 2002. (Une autre référence dans le domaine)