Evolution MM

Formations à l'informatique
Découvrez la différence ENI

Lien accueil

ENI Service est partenaire du DevFest Nantes 2019.

Rendez-vous les 21 et 22 octobre prochains pour un festival très rock !

Rechercher
Rechercher une formation
 

La conception orientée objet

Dans cette formation, vous apprendrez les concepts, le vocabulaire associé et les avantages de la conception orientée objet. Vous apprendrez également à modéliser à l'aide du langage UML et vous commencerez à traduire la modélisation en code source Java ou C#.

Public :

  • Développeurs, analystes programmeurs, chefs de projets.

Objectifs :

  • Comprendre les différents principes liés à la programmation orientée objet et savoir les appliquer ;
  • Modéliser un projet logiciel en UML ;
  • Comprendre l'impact de la modélisation sur la génération de code.

Pré-requis :

  • Avoir une expérience de programmation, quel que soit le langage d'origine ;
  • Avoir développé et livré une application en autonomie ou en équipe.

Contenu pédagogique

Partie 1 : Les fondamentaux de l'approche objet

Les évolutions du modèle de développement logiciel

  • Historique des langages
  • Limite des langages non objet
  • Quels sont les objectifs d'un modèle de programmation ?

Le modèle objet, oui mais pourquoi ?

  • Quels sont les apports du modèle objet ?
  • Une analyse plus simple et proche du réel
  • Les concepts associés : abstraction, encapsulation, héritage, polymorphisme, …
  • Vers une plus grande flexibilité, évolutivité et réutilisation
  • Modélisation associée : UML
    • Les objectifs d'UML
    • Pour commencer : le diagramme de classe, le diagramme de séquence

Les caractéristiques des objets

  • Objets et messages
  • Relation entre classe et objet
  • Encapsulation et réutilisation
  • Héritage et polymorphisme
  • Classes, classes abstraites et interfaces

Présentation des concepts objet par la pratique (langage C# ou Java)

  • Démonstration des concepts
  • Découverte du code
  • Commentaires et échanges

Travaux pratiques

  • Conception de classes
  • Les membres d'instance et les membres de classes
  • Création d'objets
  • Appel de méthodes et de propriétés d'un objet
  • Mise en œuvre de l'encapsulation avec les modificateurs d'accès
  • Bénéfices de l'encapsulation
  • Mise en œuvre de l'héritage
  • Surcharges et redéfinitions de méthodes
  • Mise en œuvre des classes abstraites et des interfaces
  • Mise en œuvre du polymorphisme

Partie 2 : Concevoir efficacement en objet

Processus de développement en mode projet - Introduction au Processus Unifié

  • Comment les besoins guident la démarche ?
  • Les notions fondamentales du Processus Unifiée
    • Construction incrémentale et itérative
    • Amélioration continue
    • Les différentes activités et phases
  • Adéquation avec la méthode de gestion de projet Agile Scrum

Evolution des techniques de conception de logiciels

  • Mise en place d'une architecture de développement
    • Les objectifs recherchés
    • La démarche
    • Les solutions : composants, patterns, frameworks

Les composants

  • Architectures distribuées à base de composants
  • Conception et réutilisation des composants : les bonnes pratiques

Les Design Patterns

  • Que sont les Designs Patterns ?
  • Nécessité des patterns
  • L'approche UML
  • Architecture des Design Patterns et répartition des responsabilités
  • Les 3 familles de patterns GoF : construction, structuration, comportement
  • Travaux pratiques : Mise en œuvre en langage C# ou Java de quelques patterns GoF : fabrique simple, fabrique abstraite, singleton, façade, adaptateur, objet composite, itérateur, état…

Les Frameworks

  • Les objectifs recherchés dans la conception d'un framework
  • Les avantages pour le développement logiciel

Travaux Pratiques

  • Identifier les besoins définis par un cahier des charges et savoir les classer par priorité
  • Identifier le périmètre des différentes itérations pour un projet donné
  • Définir les éléments d'une architecture logicielle et faire des choix de technologies par rapport à des contraintes techniques données
  • Identifier des contraintes et problématiques pouvant être solutionnées par application de patterns, et savoir choisir le pattern approprié.

Partie 3 : La modélisation UML

Présentation d'UML

  • Les axes et les vues de modélisation UML
  • Présentation générales des différents diagrammes
  • Quelle démarche adopter avec UML ?
    • Présentation de différentes démarches de modélisation
  • Les outils pour UML
    • Les fonctionnalités attendues d'un AGL (Atelier de Génie Logiciel)
    • Présentation et comparatif de plusieurs outils de modélisation actuels
    • La génération de code

La modélisation des besoins : l'axe fonctionnel

  • Comment commencer ?
  • Introduction aux méthodes permettant de recueillir les besoins d'un système
  • L'analyse fonctionnelle à partir du cahier des charges
    • Analyser et identifier pour réaliser la description des cas d'utilisation
    • Identification des différents scénarii
  • Des cas d'utilisation au diagramme de cas d'utilisation
    • Les éléments de notation du diagramme de cas d'utilisation
  • Finaliser le diagramme de cas d'utilisation
    • Les relations entre les cas d'utilisation, les différents types d'acteurs, les sous-systèmes, ….
    • Préparer l'axe de modélisation suivant

La modélisation des comportements du système et des objets : l'axe dynamique

  • Les notions relatives à la modélisation de la dynamique
    • Les messages, les événements et les états
  • Les diagrammes d'interaction
    • Le diagramme de séquence
    • Le diagramme de communication
  • Les diagrammes complémentaires
    • Le diagramme de timing
    • Le diagramme de vue d'ensemble des interactions
  • Formalisation des scénarii en diagrammes d'interactions
  • Modélisation des activités : le diagramme d'activité
  • Modélisation du cycle de vie des objets : le diagramme d'états-transitions

La modélisation de la structure des objets : l'axe statique

  • Identification des classes à partir des objets identifiés dans les axes de modélisation précédents
  • Le formalisme du diagramme de classe
    • Représentation des classes concrètes et classes abstraites
    • La notion de stéréotypes
  • Première représentation des classes d'objets sur le diagramme de classe
    • Les attributs et opérations membres
    • Les types de données
    • La visibilité des membres
  • Les associations entre classes
    • Liens d'associations, rôles, cardinalité, navigation…
  • Les différents types d'associations
    • L'agrégation et la composition
    • La généralisation et la spécialisation : modélisation de l'héritage
    • Définir des contraintes sur les associations
  • Utilisation des interfaces
    • Les spécificités des interfaces
    • La relation de réalisation
  • Identifier et représenter des objets spécifiques
    • Le diagramme d'objets
    • Le diagramme de structure composite

La modélisation de l'architecture du système

  • L'architecture logicielle et matérielle
  • Organiser l'architecture logicielle du système avec ses objets
    • Identification des paquetages (packages) fonctionnelles
    • Identification des couches logicielles
    • La modélisation des paquetages et de leurs relations : le diagramme de paquetage
  • Des objets aux composants
    • Identification des composants logiciels par assemblage d'objets
    • Le diagramme de composants
  • L'architecture matérielle
    • Décrire le système dans son environnement de fonctionnement.
    • Le diagramme de déploiement

Travaux Pratiques

  • Analyse d'un cahier des charges
  • A partir d'une pré-analyse et de l'identification des besoins réalisés dans la partie précédente, identifier les priorités de modélisation
  • Réalisation de diagrammes de cas d'utilisation
  • Réalisation de diagrammes de séquences
  • Réalisation de diagrammes de classes
  • Réalisation de diagrammes d'états-transitions