Prérequis
Les étudiants sont invités à vérifier qu'ils possèdent les
compétences suivantes :
-
en algorithmique séquentielle (CSC3101, bonne pratique),
-
en système d'exploitation UNIX (CSC3102, bonne pratique),
-
en génie logiciel avec le langage Java (CSC4102, bonne
pratique),
-
en architecture matériel et langage C (CSC4103, bonne pratique),
-
en programmation réseau avec le langage C (NET4102, connaissance
de base),
|
Objectifs du module
À l'issue du module, les étudiants seront capables, dans le cadre
du développement d’une application répartie de petite taille, mais
réaliste, et dont le cahier des charges est fourni, de :
-
développer entièrement une application répartie avec TCP/IP en
utilisant la bibliothèque JAVA NIO avec des communications en
modes connecté et déconnecté, et en modes synchrone et
asynchrone,
-
lire, donner une exécution, et expliquer les preuves
d'algorithmes répartis de base (élection, diffusion, exclusion
mutuelle, interblocage et détection de terminaison),
-
de mettre en œuvre les algorithmes étudiés par insertion dans
l'application répartie développée dans le module et avec
écriture de scénarios de tests simples (c.-à-d. sans
utilisation de canevas logiciel d'émulation ou de simulation)
pour vérifier les propriétés de correction et de progression.
À l'issue du module, les étudiants seront aussi capables d'étudier
en groupe des articles de recherche sur la thématique de la
tolérance aux fautes, d'en discuter avec un spécialiste, et
ensuite, d'en faire une présentation synthétique aux autres
étudiants de la classe.
|
Mode d'évaluation
Note =
-
8/18 Devoir maison avec soutenance (6 pour la soutenance + 2 pour le rendu du devoir ; le devoir peut être effectué en binôme, la soutenance est individuelle)
-
+ 3/18 lecture et présentation d'un article de recherche
-
+ 9/18 série de TP avec rendus (rapport et code)
|