A l’issue de cette formation, vous serez à l’aise avec le design des applications et les pratiques de conception modernes telles que le TDD et le refactoring.
Vous apprendrez à créer des applications évolutives et réutilisables en prenant en compte les principaux patterns de conception.
LES OBJECTIFS DE LA FORMATION
Maîtriser les principes fondamentaux de la conception objet.
Maîtriser et savoir mettre en œuvre les principaux design patterns de conception et d’architecture.
Savoir organiser ses packages, savoir refactoriser son code avec les designs patterns.
Savoir utiliser les designs patterns en TDD, Savoir développer en mode itératif.
MOYENS PÉDAGOGIQUES
Les formations sont dispensées par un expert, via des :
Supports de formation.
Exercices & travaux pratiques.
MODALITES D’ÉVALUATION
L’évaluation s’effectue tout le long de la formation avec des ateliers en fin de chaque partie de la formation pour mettre en œuvre des patterns de conception dans un projet applicatif.
À QUI S’ADRESSE CETTE FORMATION ?
Public
Pré-requis
Compétences visées
Concepteurs, développeurs, architectes logiciels ou chefs de projet technique.
Notions de conception objet. Connaissance de base d’un langage objet.
Principes fondamentaux de la conception objet, design pattern de conception.
PROGRAMME DÉTAILLÉ
OBJECTIF PÉDAGOGIQUE
THÈMES À ABORDER
JOUR 1
DÉMARCHE DE LA CONCEPTION OBJET (1/2)
Les concepts de la POO
Origine d’UML
UML et ses diagrammes
La démarche UML pour la conception
Les niveaux de conception
DÉMARCHE DE LA CONCEPTION OBJET (2/2)
Principes SOLID
SRP : principe de responsabilité unique
OCP : principe d’ouverture/fermeture
LSP : principe de substitution de Liskov
ISP : principe de séparation des interfaces
DIP : principe d’inversion de dépendance
Principe DRY: Don’t Repeat Yourself
Principe KISS: Keep It Simple Stupid
Principe YAGNI : You Ain’t Gonna Need It
La répartition des responsabilités avec le GRASP
Découpage des responsabilités entre les classes
JOUR 2
PATTERNS DE CRÉATION
Singleton
Fabrique abstraite
Monteur
Fabrication
Prototype
PATTERNS COMPORTEMENTAUX
Chaîne de responsabilité
Commande
Interpréteur
Itérateur
Médiateur
Mémento
Observateur
Stratégie
Etat
Visiteur
Patron de méthode
PATTERNS DE STRUCTURE
Composite
Décorateur
Adaptateur
Pont
Façade
Poids mouche
Procuration
Mise en œuvre pratique depuis la conception, sélection parmi les patterns
Codage et exécution d’un cas complet
JOUR 3
INTRODUCTION A L’ARCHITECTURE LOGICIELLE ET AUX PATTERNS ARCHITECTURAUX
Architecture logicielle
Design patterns architecturaux
Des exigences à l’architecture
Architecture en couches
MVC
MVVM
Client/serveur
Service de bus
Blackboard
Plugin
PRINCIPE D’ORGANISATION EN PACKAGES
Notions sur les packages
Règles : GRIN, DIP, CCP, CRP, et fonction commune
Métriques sur les packages
Analyse et préconisations des modifications à appliquer sur des packages mesurés à partir des outils introduits
JOUR 4
LA REFACTORISATION
Définition
Pourquoi refactoriser ?
Quand refactoriser ?
Comment refactoriser ?
Niveaux de refactorisation
Modification de la présentation
Modification des méthodes
Modification de l’algorithmique des classes
Refonte de la conception.
Refactorisation de package
A partir d’une modélisation existante, refonte et réalisation d’un cas complet avec l’aide des usages de design patterns de conception
JOUR 5
DÉVELOPPEMENTS PILOTÉS PAR LES TESTS
Tests unitaires
Test Driven Development (TDD)
Mock
En mode TDD et itératif, réalisation d’un cas complet nécessitant l’usage de Design Patterns de conception
CONCEPTION ET DÉVELOPPEMENT EN MODE ITÉRATIF
Le manifeste agile.
SCRUM
Particularités SCRUM, XP & AGILE
LE FORMATEUR
Architecte logiciel, expert connaissant très bien les problématiques de conception objet et les design patterns de conception.