La présentation de ce site est conforme aux standards actuels ; sa présentation est optimale avec un navigateur récent.

Design d'Applications Orientées Objet (In2DAOO)

uk English version 

Professeurs : Christophe Lemaigre; Donatien Grolaux; Emmeline Leconte; Stéphane Stevens;

Nombre d'heures : 48

Période :Semestre 1 + Semestre 2

Type de cours : cours magistral + Travaux pratiques + exercices pratiques

Objectifs :

Architecture d'Application

Le cours porte à la fois sur les processus de développement de logiciels, sur les technologies orienté objet en s'appuyant sur les mots clés et instructions du Java et enfin sur UML (Unified Modeling Language).

- Les principes de modélisation des données y compris l'analyse des besoins aboutissant à la création d'un diagramme de classes conceptuel.

- Concevoir une base de données relationnelle efficace par le biais de constructions relationnelles, de tables normalisées, de jointures et de vues, en optimisant l'implémentation physique des tables et en développant des applications bases de données utilisant JDBC API.

- Une approche pragmatique du développement de programmes orienté objet utilisant la méthodologie Agile, d'autres techniques de modélisation (différents diagrammes UML) et les technologies Orienté Objet.

Projet d'Application Orientée Objet

Projet d'application orientée Objet est un cours pratique qui plonge les étudiants dans un exercice proche de la réalité professionnelle. Le cours consiste en la réalisation d'un projet informatique concret, de l'analyse des besoins jusqu'à l'implémentation.

Dans le cadre de ce cours, les étudiants construisent en équipe leur première application informatique, comme des professionnels. Mené de manière itérative, ce projet passe par les phases d'analyse des besoins, de conception, d'implémentation et de tests. L'architecture de l'application à développer respecte notamment les principes d'une architecture 3-tiers. Elle permet, également, de mettre en pratique des concepts vus dans d'autres cours comme MVC, JDBC, DAO, DTO, UOW,  ...

Ce projet se veut réaliste. Voici quelques exemples de projets déjà menés : un logiciel de commandes de pizzas en ligne avec tracking de la commande, une application de gestion des repas, ...

Compétences :

connaissances scientifiques et rigueur
Compétence technique (précision, rigueur, fiabilité)
Capacité de compréhension face à un problème
Capacité d'élaboration d'une réponse à un problème
Capacité de déduction à partir de faits observés
jugement critique
Expression écrite; rédaction d'un rapport
Expression orale
Capacité d'adaptation à de nouvelles situations
Relations humaines
Maîtrise transversale de la discipline
Organisation du travail
Apprentissage d'un outil spécifique
Capacité d'abstraction
Compréhension à la lecture
Compréhension à l'audition

Prérequis :

Architecture d'Application

Les principes de base de la programmation , avec de préférence une expérience en Java.

Projet d'Application Orientée Objet

Les étudiants doivent avoir assimilés et compris les concepts orientés Objet (héritage, encapsulation, polymorphisme,...). Ils doivent également être capables de programmer en Java et écrire des requêtes SQL. Enfin, ils doivent maîtriser les concepts suivants : architecture n-tiers, JDBC, DAO, DTO, UOW et MVC.

Les étudiants doivent avoir suivi les cours suivants:

  • UML
  • Concepts orientés Objet
  • Architecture d'application (en même temps)

Contenu du cours :

Architecture d'Application

Contenu du cours :  

1. Compréhension de l'approche Orienté Objet

  -Une introduction sur la technologie Orienté Objet s'appuyant sur les mots clés et instructions du Java

  - Les objets interactifs dans le monde réel et en programmation: différence entre état et comportement, persistance versus volatilité

  - L'essentiel sur les classes, l'héritage, le polymorphisme, l'encapsulation, la protection des accès, les interfaces.

  - La délégation de responsabilité par polymorphisme: lien statique et dynamique, interfaces, surcharge et surtypage

  - Introduction simultanée de 3 diagrammes UML utiles:

         Le diagramme de classes: attributs, opérations et méthodes.

         Le diagramme d'états: événements et transitions, actions et activités.

         Le diagramme de séquences entre objets et classes, les événements décrits comme appels à des méthodes déclenchant une action ou une activité

2. Aperçu de l'architecture du système

Les quatre couches de l'architecture J2EE (Client, Web/présentation, Business, EIS/data) ainsi que le XML data binding dans la couche présentation respectant les normes internationales

3. Le serveur de Bases de données et le design de bases de données

  - La théorie relationnelle (tables, attributs, domaines, NULL, opérateurs, clés, règles d'intégrité, vues) et la modélisation de la base de données (les 12 critères de Codd) utilisant les diagrammes de classes au niveau conceptuel.

  - L'architecture du système de gestion de base de données (3 couches) et les fonctions associées telles que le locking, la transaction commit et le rollback, le backup/restore, la sécurité.

  - Le processus de normalisation des tables au-delà de la 3FN.

  - Les patterns permettant l'introduction d'objets et de XML dans les bases de données relationnelles

4. Description du processus de développement de logiciels en utilisant les techniques de modélisation UML

  - UML comme outil de communication: parcours des diagrammes UML, se focalisant surtout sur le diagramme de classes et ses 3 différents niveaux (conceptuel, d'interface et d'implémentation), les diagrammes de séquences et de communication, les diagrammes d'état-transition et les diagrammes d'activités.

  - Le processus de développement de logiciels (analyse du domaine, analyse des besoins, modèle d'architecture, conception du système) avec les liens entre les différents diagrammes UML utilisés à chaque étape.

  - Le processus de développement est basé sur les trois niveaux de modélisations (modèle statique des données, modèle dynamique du contrôle des flux et modèle fonctionnel de la transformation des données)

5. Vers le design

  - Organisation des classes Java en packages

  - Importance des interfaces lors du design des classes Java: différencier interface et implémentation

  - Application de patterns d'analyse

  - Design en utilisant la composition, la délégation, l'héritage et les interfaces

  - Préciser les contrôles: par les données, par les états, par le dialogue

  - Internationalisation des dates, des nombres, des textes. Jeu de caractères ISO versus UTF

  - Connexion avec les bases de données en utilisant les drivers JDBC: utilisation des Statement Objects, accès aux MetaData et recours aux PreparedStatements.

6. Pragmasutra

  - Approche des méthodologies de développement du logiciel Agile

Projet d'Application Orientée Objet

Il n'y a pas de matière nouvelle en soi car il s'agit de mettre en pratique des notions déjà étudiées (citées en pré requis).

Méthode d'enseignement :

Architecture d'Application

/

Projet d'Application Orientée Objet

Les étudiants travaillent en groupe sur le projet pendant les séances de cours.  Les professeurs s'assurent du bon déroulement du travail d'équipe : ils corrigent les erreurs, ils répondent aux questions, ils soulèvent des questions au sein du groupe, ...

Durant ce semestre, le projet est réalisé par itérations : 4 étapes sont prévues. A chaque itération, les étudiants soumettent leur dossier d'analyse ainsi que l'implémentation et les professeurs évaluent le travail et font le point avec le groupe sur l'avancement du projet.

En plus

Le cours dispose d'un espace en ligne sur l'extranet qui permet aux étudiants de mieux collaborer dans le cadre du projet (espace de travail partagé, etc.). Les étudiants disposent également d'un serveur CVS.

Lectures recommandées :

Architecture d'Application

/

Projet d'Application Orientée Objet

Les ouvrages suivants sont disponibles à la bibliothèque de l'école:

  • CRAIG LARMAN, UML2 et les Design Patterns, Analyse et conception orientées objet et développement itératif.
  • CRAIG LARMAN, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development.
  • PASCAL ROQUES, UML2 par la pratique.
  • DAN PILONE, UML2 en concentré - Manuel de référence.
  • BRETT McLAUGHLIN, GARY POLLICE and DAVID WEST, Analyse et conception orientée Objet - Tête la première

Méthode d'évaluation :

Architecture d'Application

Choix multiples et questions style trouver l'erreur dans des diagrammes et des codes sources

Projet d'Application Orientée Objet

Le projet est évalué de manière continue pendant le semestre.

Il n'y a pas d'examen.