Programme des cours 2023-2024
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, orientation développement d'applications4
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.  :

  • Divers Design Pattern propres aux système distribués (Algorithme d'élection, Two-phase commit, etc.)
  • Introduction à Spring
  • Introduction aux micro-services et utilisation avec Spring.
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
  • Collaborer à la résolution de problèmes complexes avec méthode, rigueur, pro activité et créativité.
  • Identifier ses besoins de développement et s'inscrire dans une démarche de formation permanente
  • Rédiger un document technique, un rapport
  • Exploiter un document technique en français et en anglais
  • Concevoir, implémenter et maintenir des algorithmes répondant aux spécifications et fonctionnalités fournies
  • Respecter les délais prévus
  • Documenter son travail afin d'en permettre la traçabilité

 
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
  • Les cours de réseaux de bloc 1 et bloc 2.
  • Les cours de POO de bloc 1 et bloc 2.
  • 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 ou un d'un modèle d'architecture
Les documents, exercices sont accessibles sur Moodle
Mode d'enseignement (présentiel, à distance, hybride) :
Conception d'applications distribuées
Présentiel et travaux à domicile.

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 

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

L'évaluation certificative n'est pas une évaluation intégrée regroupant les AA de l'unité. La raison est que l'AA "Design et architecture d'applications OO" se focalise sur les design pattern, l'AA "Conception d'applications distribuées " utilise des technologies qui se basent sur ces design pattern et aborde des design pattern propres aux systèmes distribués. Ces deux AA sont donc complémentaires mais disjointes.
Conception d'applications distribuées
  • évaluation continue (un ou plusieurs travaux à rendre et/ou une ou plusieurs interrogations) : 40% de la note totale
  • évaluation certificative (examen écrit sur papier et/ou ordinateur) : 60% de la note totale
L'évaluation certificative en seconde session reprend la même forme qu'en première session : un travail qui compte pour 40% et un examen écrit qui compte pour 60%.

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 écrit (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 :
Contacts :
Design et architecture d'applications OO
isabelle.dony@hers.be