Professeurs : Brigitte Lehmann; Emmeline Leconte; Stéphane Stevens;
Nombre d'heures : 54
Période :Semestre 1
Type de cours : cours magistral
Concepts Orientés Objets
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.
UML
En guise d'introduction au cours d'UML, différents concepts de l'ingénierie logicielle sont abordés, notamment, les différents cycles de vie d'un projet informatique (modèle en cascade, UP, eXtreme Programming,... ).
Le coeur du cours consiste en l'étude des diagrammes UML 2.0 (diagramme de classes, diagrammes d'états, use cases,... ). Nous abordons également les cartes CRC.
Au terme du cours, les étudiants seront capables de mettre en pratique adéquatement les différents diagrammes abordés dans le cadre d'un projet informatique.
Concepts Orientés Objets
Les principes de base de la programmation , avec de préférence une expérience en Java.
UML
Une connaissance de base des notions orientées Objet et du langage Java est indispensable.
Concepts Orientés Objets
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
UML
Le cours débute par une présentation théorique des différents cycles de vie de projet informatique (en cascade, en V, en spirale, ...).
Ensuite les diagrammes d'analyse orientée Objet UML et autres, sont détaillés ainsi que leurs usages. Parallèlement, des exercices simples permettent de fixer la syntaxe et la sémantique de ces diagrammes UML.
Voici la table des matières du syllabus :
Concepts Orientés Objets
/
UML
Le cours se donne en séance de 2 heures. La séance commence par un exposé théorique et se poursuit par la mise en pratique de la matière abordée.
En plus
Le cours dispose d'une version en ligne sur l'extranet. Les étudiants peuvent s'y exercer et trouver des informations intéressantes
Concepts Orientés Objets
Participation au cours : Obligatoire
UML
Les ouvrages suivants sont disponibles à la bibliothèque de l'école:
Concepts Orientés Objets
Choix multiples et questions style trouver l'erreur dans des diagrammes et des codes sources
UML
Un examen écrit se déroule durant la session de janvier (et éventuellement celle de septembre)