Design Patterns, mise en œuvre

Design des applications et aux pratiques de conception modernes telles que le développement guidé par les tests et le re factoring. Les nombreux cas pratiques vous apprendront à créer des applications évolutives et réutilisables en prenant en compte les principaux patterns de conception.

Objectifs

  • Comprendre les principes fondamentaux de la conception Objet
  • Appliquer les règles fondamentales de découpage d’une application en package
  • Appliquer les principes de construction des classes d’une application
  • Mettre en pratique le développement piloté par les tests
  • Mettre en œuvre les principaux Design Patterns

Pour qui

  • Concepteurs, développeurs, architectes ou chefs de projet.

Pré-requis

  • Connaissance d’un langage Objet.

Contenu de la formation

Design Patterns, mise en œuvre

Présentation du design

  • Rappel des fondamentaux de la POO et d’UML.
  • Les apports d’UML pour la conception.
  • Les enjeux de la conception.
  • L’utilisation de l’héritage. Avantages et inconvénients.

Principes fondamentaux en conception Objet

  • Les principes d’ouverture/fermeture (OCP) et de substitution de Liskov (LSP).
  • Concept de polymorphisme, de couplage faible et de forte cohésion.
  • L’impact de la conception objet sur les projets.
  • Travaux pratiques : Découpage des responsabilités entre les classes.

Principes de construction des classes

  • La gestion des dépendances avec l’inversion de dépendance (DIP).
  • La réduction de la complexité apparente par la séparation des interfaces (ISP).
  • La répartition des responsabilités avec le GRASP.

Principes d’organisation en packages

  • Le package : une unité de conception livraison/réutilisation (REP) et la réutilisation commune (CRP).
  • Le découpage des packages. Le CCP.
  • L’organisation entre packages.

Travaux pratiques

Construction et hiérarchisation des packages.

Développements pilotés par les tests

  • Approche Test Driven Development (TDD) versus approche Model Driven Engineering (MDE).
  • Ecriture des cas et de suites de tests.
  • Travaux pratiques : Attribution des responsabilités aux composants logiciels via l’approche TDD.

Principes des Design Patterns

  • Les Design Patterns pour réutiliser l’expérience.
  • Périmètre, avantages et limites des Design Patterns.
  • Répondre à des problèmes récurrents.
  • Les patterns fondateurs de Gamma et GoF : les patterns de création, de comportement, de structure.
  • La refactorisation. Pourquoi refactoriser ?
  • Modification de la présentation du code et de l’algorithmique des classes. Refonte de la conception.
  • Travaux pratiques : Exemple de conception, refactorisation et programmation avec des patterns GoF.

Architecture logicielle et patterns architecturaux

  • Des exigences à l’architecture.
  • Styles architecturaux.
  • Patterns de distribution (Client Serveur Style, Data Bus Pattern, Blackboard, Repository).
  • Patterns de conception de systèmes (MVC, architecture en couches, Plug-in Style, Pipeline).

Processus de développement

  • Concevoir dans un processus itératif et incrémental.
  • Le manifeste Agile. XP, Scrum.

Nos prochaines sessions