Aperçu des sections

  • Fiche descriptive du cours

    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 :  Résumé GOF Design Pattern
    Séance 9 : Chapitre 5 : Organisation en paquets
  • Supports de cours

    Polycopié  Diapositives Objectif du chapitre
    Chapitre 1. Limites du paradigme objet pour la conception Diapositives Se rendre compte que les concepts du paradigme de 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 Diapositives

    Conclusion du chapitre
    Connaî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 Diapositives Connaî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.
    Conclusion Diapositives Conclusion générale
    Annexe. Programmation orientée aspect Diapositives Avoir connaissance du paradigme de programmation orientée aspect qui s'inscrit au-dessus du paradigme de programmation orientée objet.
  • Travaux dirigés

  • Travaux pratiques de Git

  • Travaux pratiques : ressources pour le projet


  • Coding dojos

    Qu'est ce qu'un coding dojo ?

    Le coding dojo est une rencontre entre plusieurs personnes qui souhaitent travailler sur un défi de programmation de façon collective. Ce n'est pas une compétition mais un moment de partage et de convivialité.

    Nous proposons ici plusieurs exercices qui visent à expérimenter l'implémentation en Java de patrons de conception.

    Organisation d'une séance de coding dojo

    Réunissez-vous à plusieurs dans une salle réquisitionnée pour l'occasion. Pour partager la séance, utilisez le vidéoprojecteur de la salle si elle est équipée ou l'outil de codage collaboratif disponible sur un IDE (par exemple code with me d'IntelliJ IDEA).

    Choisissez un exercice dans la banque d'exercices proposée ci-dessous et réalisez l'exercice sous la forme d'un Kata (une personne montre aux autres) ou d'un Randori (des binômes tournant de façon régulière : de 5 à 10 minutes).

    Modalités de réalisation d'un exercice

    1. Téléchargez l'archive zip du projet s'il existe
    2. Ouvrez le dossier du projet dans l'IDE ou créez un nouveau projet quand il n'y a pas d'archive zip.
    3. Répondez aux différents exercices de l'énoncé par l'écriture de code.
  • 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)
  • Sites Web