Programme des cours 2022-2023
ATTENTION : version 2021-2022 de l'engagement pédagogique
INED0001-2  
Conception avancée
  • Conception d'applications distribuées
  • Design et architecture d'applications OO
Durée :
Conception d'applications distribuées : 18h Pr
Design et architecture d'applications OO : 24h Th
Nombre de crédits :
Bachelier en informatique de gestion5
Nom du professeur :
Conception d'applications distribuées : Cédric Peeters
Design et architecture d'applications OO : Isabelle Dony
Coordinateur(s) :
Isabelle Dony
Langue(s) de l'unité d'enseignement :
Langue française
Organisation et évaluation :
Enseignement au premier quadrimestre, examen en janvier
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement :
Conception d'applications distribuées
Ce laboratoire a pour but de faire connaître, et mettre en œuvre, diverses technologies pour le développement et le déploiement d'applications distribuées. Ce laboratoire illustrera également le fait que les entités distribuées (clients et serveurs) peuvent être programmées dans un même langage ou dans des langages différents.  :
  • EJB3 (session stateless et stateful, entity) avec déploiement surun serveur d'application
  • Algorithme d'élection
  • Two-phase commit
  • Spring
  • Introduction aux micro-services
Selon l'état d'avancement de la matière d'autres matières sont succeptibles d'êtres ajoutées ou à l'inverse certaines matières pourraient ne pas être abordées.
Design et architecture d'applications OO
  • Présentation des différentes visions informatiques (architectures applicative, logicielle et physique)
  • Design patterns: étude et applications en java.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement :
Savoirs:
  • Connaître les caractéristiques des différents modèles de conception et d'architecture
  • Connaître les notions fondamentales de la communication entre processus: protocole, modèle client-serveur, modèle RMI, modèle n-tiers. Comprendre l'importance de la spécification du protocole de communication entre deux processus qui interagissent pour une même application.
  • Connaitre le principe des algorithmes d'élection.
  • Connaitre le 2-phase commit.
Savoir-faire:
  • Comprendre avec esprit critique la documentation des différents design patterns et les appliquer à bon escient.
  • Appliquer certains patterns dans le cadre d'architecture de programme (DAO, MVC ou modèle en couches).
  • Spécifier les protocoles d'une application distribuée, modéliser et implémenter des applications OO distribuées non triviales.
  • Comprendre, choisir et mettre en œuvre un standard défini (pouvoir comparer RMI et CORBA. Choisir les divers types de EJB.).
  • Développer une application mobile de base sous Android.
Savoir-être:
  • Respecter les échéances.
  • Travailler de manière régulière
  • Fournir des codes lisibles et documentés.
  • Apprendre par soi-même (se servir des bases apprises pour apprendre des matières avancées). 
  • Savoir expliquer clairement devant  auditoire un modèle de conception.
 
Conception d'applications distribuées
 
  • Créer un client et un serveur et communiquer entre eux (EJB, CORBA, etc.)
  • Pouvoir élire un serveur maitre parmi plusieurs serveurs.
  • Assurer la cohérence des données réparties sur plusieurs serveurs.
 
Design et architecture d'applications OO
En suivant ce cours, l'étudiant pourra :
en termes de savoirs
Connaitre les différents positionnements de la vision informatique en se focalisant sur la vision informatique logique et la vision informatique technique :
  • Architecture applicative
  • Architecture logicielle avec focus sur les différents design patterns, leurs rôles et leur classification.Modèle en couches
  • Architecture physique
 en termes de savoir-faire
  • Comprendre la documentation des différents design patterns et les appliquer à bon escient. Avoir un esprit critique par rapport à ces patterns. Appliquer certains patterns dans le cadre d'architecture de programme (DAO, MVC ou modèle en couches). (Compétences : choisir et mettre en œuvre un standard défini ou une technologie spécifique, choisir les méthodes de conception, prendre en compte les évolutions probables de la demande et envisager les diverses solutions possibles)
  • Comprendre l'importance du rôle de l'architecte dans la construction d'un projet face à l' « urbanisation » des SI. (Compétence : comprendre, choisir et mettre en œuvre un standard défini (méthodologie, environnement, langage), prendre en compte les évolutions probables de la demande et envisager les diverses solutions possibles)
  • Modéliser et implémenter des problèmes complexes en Java en utilisant les principes de l'orienté objet ; savoir jongler avec un bon nombre d'APIs Java, avec les design patterns et la documentation UML. (Compétences : concevoir et implémenter des algorithmes répondant à des spécifications et des fonctionnalités données, concevoir et implémenter un ensemble structuré de données).
  • Utiliser JUNIT pour valider ses programmes. (Compétence : choisir, mettre en œuvre un processus de validation et d'évaluation et prendre les mesures appropriées)
  • Documenter son travail. (Compétence : documenter et justifier tous les écarts apparents aux standards)
  • Présenter de manière pédagogique à l'ensemble de la classe un pattern en motivant son utilisation par un exemple intéressant de son application. (Compétence : présenter une solution devant un public avec un support adéquat)
en termes de savoir-être/devenir
  • Rendre les travaux en respectant les différentes consignes. (Compétences : évaluer la charge et la durée de travail liée à une tâche, planifier son travail, respecter les délais prévus, suivre un protocole méthodologique précis)
  • Fournir des codes lisibles et documentés. (Compétence : documenter son travail afin d'en permettre la traçabilité)
  • Apprendre par soi-même. (Compétences : identifier ses besoins de développement et s'inscrire dans une démarche de formation permanente, exploiter un document technique en français et en anglais)
 
Savoirs et compétences prérequis :
Conception d'applications distribuées
  • Connaitre TCP et UDP
  • Connaitre la POO
  • Pouvoir utiliser une base de données.
Design et architecture d'applications OO
paradigme orienté objet 
diagrammes de classes 
diagrammes de séquence
Activités d'apprentissage prévues et méthodes d'enseignement :
Conception d'applications distribuées
Exposés théoriques accompagnés d'exemples et d'exercices.
Design et architecture d'applications OO
Slides et divers documents à lire
Exercices : application des différents concepts via des travaux:
  • des analyses et implémentations de petits ou moyens projets (impliquant un concept ou plusieurs) 
  • Une étude théorique d'un design pattern
Les documents, exercices sont accessibles sur Moodle
Mode d'enseignement (présentiel, à distance, hybride) :
Conception d'applications distribuées
Présentiel et travaux à domicile. Si les conditions l'exigent, le cours sera donné en distanciel à l'aide d'un logiciel de visioconférence.
Toute activité organisée durant le quadrimestre (par exemple une conférence), non dispensée par l'enseignant, et qui est en rapport avec la matière de l'activité d'apprentissage, compte dans les heures de ladite activité d'apprentissage. La matière abordée par l'activité en question pourra faire l'objet d'une évaluation, quelle soit continue ou certificative.
 
Design et architecture d'applications OO
présentiel (distanciel si les conditions l'exigent)
travail à la maison
toute activité organisée durant le quadrimestre (par exemple une conférence), non dispensée par l'enseignant, et qui est en rapport avec la matière de l'activité d'apprentissage, compte dans les heures de ladite activité d'apprentissage. La matière abordée par l'activité en question pourra faire l'objet d'une évaluation, quelle soit continue ou certificative.
Lectures recommandées ou obligatoires et notes de cours :
Conception d'applications distribuées
La documentation officielle en ligne de chaque technologie abordée.
Modalités d'évaluation et critères :
Pondération:
Design et architecture d'applications orientées objet (50%)
Conception d'applications distribuées(50%)
Validation de l'unité : moyenne géométrique des deux notes >= 10
Conception d'applications distribuées
  • Évaluation continue (travaux à rendre) : 40% de la note totale
  • Évaluation certificative (examen écrit) : 60% de la note totale
L'évaluation certificative en seconde session reprend soit un examen écrit qui compte pour 100% de la note, soit un travail individualisé à rendre qui compte pour 100% de la note. Il n'y a plus d'évaluation continue dans ce cas. Les étudiants sont informés du choix lors de la consultation des copies qui suit la délibération de juin. Ceux qui ne sont pas présents à ce moment seront tenus informés par mail. Les évaluations peuvent être réalisées en présentiel ou en distanciel en fonction des conditions du moment.
Si les conditions l'exigent l'examen sera en mode distanciel. Dans ce cas, une webcam sera nécessaire. Si l'étudiant n'a pas le matériel adéquat pour passer l'examen à distance, il doit le signaler pour que l'école lui permette de passer l'examen depuis un local de l'école avec le matériel adéquat.

Remarque valable pour toutes les activités d'apprentissage de l'unité : lorsqu'on vous demande de rendre un travail ou un exercice ou lorsque vous devez rendre un examen ou une interrogation, si plusieurs copies sont fortement similaires, la note finale est divisée par le nombre de copies similaires. 
 
Design et architecture d'applications OO
Examen oral (60%): Question(s) ciblée(s) sur un pattern vu en classe ou un pattern à découvrir et à interpréter. Les étudiants peuvent avoir leurs notes théoriques (description des patterns).
L'objectif est de me prouver qu'on est capable de comprendre et d'exploiter les design patterns et pas de simplement connaître la liste et les caractéristiques des patterns existants.
Evaluation continue (40%) : étude et présentation d'un pattern + conception et implémentation de mini projets en java avec respect des échéances
L'objectif est de me prouver qu'on est capable
  • de comprendre et exploiter les design patterns ;
  • de présenter de manière claire aux autres étudiants ce qu'on a étudié;
  • d'exploiter les modèles de conception  et d'architecture dans une application plus vaste.
 (met en avant aussi l'organisation, la communication et l'analyse de problème)
Stage(s) :
Remarques organisationnelles :
Conception d'applications distribuées
Ce cours est donné en présentiel si les conditions le permettent. Distanciel à l'aide d'un outil de visioconférence sinon.
Contacts :
Design et architecture d'applications OO
isabelle.dony@hers.be