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
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, ...
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:
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).
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.
Architecture d'Application
/
Projet d'Application Orientée Objet
Les ouvrages suivants sont disponibles à la bibliothèque de l'école:
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.