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

Analyse Orientée Objet (In2AnOO)

uk English version 

Professeurs : Brigitte Lehmann; Emmeline Leconte; Stéphane Stevens;

Nombre d'heures : 54

Période :Semestre 1

Type de cours : cours magistral

Objectifs :

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.

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
Travail en équipe
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 :

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.

Contenu du cours :

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 :

  • INTRODUCTION À LA MODÉLISATION ORIENTÉE OBJET
  • NOTIONS ORIENTÉES OBJET
  • UML
  • LES CAS D'UTILISATION (USE CASES)
  • DIAGRAMMES DE CLASSES
  • DIAGRAMMES D'OBJETS
  • DIAGRAMMES DE PACKAGES
  • DIAGRAMMES DE COMPOSANTS
  • DIAGRAMMES DE DÉPLOIEMENT
  • DIAGRAMMES D'ACTIVITÉS
  • DIAGRAMMES D'INTERACTIONS
  • DIAGRAMMES D'ÉTATS
  • MISE EN OEUVRE D'UML

Méthode d'enseignement :

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

Lectures recommandées :

Concepts Orientés Objets

Participation au cours :  Obligatoire

UML

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 :

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)