Deuxième année

La filière présente en deuxième année une vue d'ensemble des fondements théoriques et des concepts, des modèles structurants, des techniques de base et des solutions architecturales, des pratiques et méthodes, indispensables aux architectes et aux concepteurs-développeurs des logiciels et systèmes répartis.

Les unités d'enseignement

  • SLR201 Bases du développement des applications réparties (en Java)
  • SLR202 Modélisation UML : vue structurelle et simulation comportementale
  • SLR203 Architectures modulaires
  • SLR204 Bases de la vérification des systèmes et logiciels répartis
  • SLR205 Ingénierie des exigences, méthode agile
  • SLR206 Fondements des algorithmes répartis
  • SLR207 Infrastructures et plateformes pour l'informatique répartie

Au choix :

  • SLR208 Architectures de grands systèmes répartis et ouverts
  • SLR209 Séminaire de la filière SLR

UE du créneau d'UE partagées

  • INF224 : Paradigmes de programmation - UE obligatoire
  • SD202 : Bases de Données - UE recommandée

Détail des unités d'enseignement

SLR 201 Bases du développement des applications réparties (en Java) (24h, 2,5 ECTS) (Ada Diaconescu)

Objectifs de formation

Ce cours introduit aux notions essentielles à la compréhension d'applications réparties et à leur développement en Java. Il introduit aussi au concept d'intergiciel et présente deux exemples concrets d'intergiciels de différents types : basé sur un modèle d'invocation de méthodes à distance et sur un modèle de communication orienté message

Contenu

Cette UE traite des points suivants :

- Threads Java, synchronisation, sérialisation d'objet, entrées/sorties et sockets ;

- Introduction aux intergiciels et aux modèles de programmation RMI (Remote Method Invocation) et JMS (Java Message Service) pour plate-forme d'exécution Java ;

- La mise en œuvre en TPs de Java avancé, RMI et JMS ; automation de la compilation et de l’exécution du code avec l'outil Apache ANT.

Prérequis : une bonne compréhension de la programmation Orienté Objet (POO) et une première expérience de développement en Java


SLR 202 Modélisation UML : vue structurelle et simulation comportementale (24h, 2,5 ECTS) (Etienne Borde)

Objectifs de formation

L'objectif de cette UE est l’apprentissage du standard le plus utilisé dans l'industrie pour modéliser des architecture logicielles : UML. Dans le cadre d’un processus simple et générique, cet apprentissage couvre (i) la modélisation du périmètre fonctionnelle d'une application, (ii) la conception d'applications orienté objets, et (iii) la modélisation comportementale.

Contenu

L'UE abordera les points suivants:

- La spécification des exigences, exprimée par des diagrammes de cas d'utilisation.

- La modélisation d'architecture orienté objets, basée sur les diagrammes de classes et se raffinant par des patrons de conception reconnus (Design Patterns GOF).

- La modélisation d'interactions exprimée par des diagrammes de séquences.

- La modélisation comportementale en utilisant les diagrammes de state-charts.

Cette UE propose une démarche de modélisation mettant en relation ces différents diagrammes UML2 dans la tendance des recommandations standardisées faisant consensus dans l'industrie. Les élèves mettront en œuvre cette démarche outillée sur un projet.

Prérequis : une bonne compréhension de la programmation Orienté Objet (POO)

SLR 203 Architectures logicielles applicatives (24h, 2,5 ECTS) (Sylvie Vignes)

Objectifs de formation

Cette UE forme aux activités d’un concepteur-développeur d'applications Web Java de façon à ce qu'elles soient maintenables, évolutives, et passent à l’échelle.

Contenu

1) Panorama de modèles d'interaction d'applications réparties, avec quelques exemples de modèle d'exécution et de plate-forme.

2) Conception et Développement par étapes d'un serveur d'application multi-tiers client-serveur:

  1. Mise en place d'une chaine de production de logiciel (Maven) permettant la pratique de TDD (Test Driven Development)
  2. Mise en oeuvre de composants logiciels : architecture MVC Web du framework Java EE; framework de présentation (Struts) et framework de persistance (ORM)
  3. Mise en oeuvre de Web Services et architecture REST

Prérequis

INF224 (obligatoire ; occurrence P1 ou P2), INF225 (recommandée ; occurrence P1 ou P2), SLR201

Connaissances avancées en Java telles que les techniques de développement des applications réparties ; des connaissances générales en langages, du modèle MVC et des bases de données; une expérience de développement logiciel avec Eclipse


SLR 204 Bases de la vérification des systèmes et logiciels répartis (24h, 2,5 ECTS) (Elie Najm)

Objectifs de formation

L'objectif de l'UE est d'introduire les concepts de base de la vérification des systèmes répartis et concurrents.

Contenu

Seront traités, notamment, les aspects suivants :

- Introduction et rôle de la vérification dans le processus de développement, modélisation de comportement et de propriétés et sémantique formelle.

- Algèbre de processus et systèmes de transitions étiquetés

- Propriétés remarquables (non déterminisme, deadlock, livelock, équité, famine, etc.).

- Relations de simulation et de bisimulation.

- Logiques temporelles (LTL et CTL), Model Checking, structure de kripke, automate de Buchi, point fixe.

- Réseaux de Petri, modélisation de la concurrence, de la synchronisation, du conflit.

- Propriétés de finitude, invariants linéaires.

Pas de prérequis

SLR 205 Ingénierie des Exigences et méthodes industrielles de développement (24h, 2,5 ECTS) (Sylvie Vignes)

Objectifs de formation

L'objectif est de présenter les connaissances conceptuelles, méthodologiques et techniques indispensables à un architecte logiciel, en amont du cycle de vie de développement.

Cette UE est organisée en 2 parties:

1) Introduction à l'Ingénierie des Exigences

2) Conception de solutions techniques et méthodes industrielles

Contenu

1) Développement d'une spécification formalisée pour valider les exigences fonctionnelles et non-fonctionnelles (fiabilité, robustesse, sûreté de fonctionnement). Introduction à une méthode d'ingénierie des exigences, orientée but (KAOS). Introduction à la vérification de propriétés de modèles.

La partie pratique de ce cours est l'application de la méthode sur un projet en petite équipe.

2) Conception de solutions techniques

- Panorama des technologies d'intégration d'applications: EAI et SOA, BPM, SaaS

- processus de développement (UP) de grands systèmes logiciels : conduite de projet technique pour des réalisations de grande taille; standards de qualité

- méthode agile (ex SCRUM)

Prérequis : SLR201, SLR202 et SLR203. Etre capable de développer des applications réparties en Java, connaître UML et avoir une expérience en conception et développement d’application.


SLR 206 Fondements des algorithmes répartis (24h, 2,5 ECTS) (P. Kuznetsov)

Le principal objectif est de permettre à chacun d'appréhender les concepts de l'algorithmique répartie, et de comprendre l'intérêt et les problèmes rencontrés pour l'étude et la conception d'algorithmes répartis. Un effort particulier sera demandé sur la spécification des problèmes, la formalisation des preuves et le défi intellectuel que représente le fait de concevoir soi même des algorithmes répartis.

Un des objectifs de l'UE sera aussi de mettre en relation les approches menées sur des thèmes proches mais différents (par exemple : algorithmique de synchronisation, mémoires transactionnelles, détecteurs de défaillance, réplication de machine d’'état).

Prérequis: connaissance de base en mathématiques et l'algorithmique

classique y compris des calculs de complexité.

SLR 207 Infrastructures et plateformes pour l’informatique répartie (24h, 2,5 ECTS) (Rémi Sharrock)

Objectifs de formation

Cette UE présentera les technologies de l'informatique répartie et large échelle et illustrera les concepts par une implémentation réelle d'un système large échelle.

Contenu

* Connaître les notions de large échelle, de parallélisation, de virtualisation, d'élasticité, de réseau de recouvrement, d'autonomic computing et leurs applications pour le cloud computing.

* Manipuler les services cloud sur un fournisseur particulier (par exemple Amazon).

* Comprendre les concepts de MapReduce

* Implémenter MapReduce en simulation locale et sur le cloud Amazon

Prérequis : SLR 201. Etre capable de développer des applications réparties en Java.

SLR 208 Architectures de grands systèmes répartis et ouverts (24h, 2,5 ECTS) (Sylvie Vignes)

UE recommandée pour suivre l’option 3ème année SLR Avancés

ou l'option extérieure TelecomSudParis (Evry) en Systèmes d’Information.

Objectifs de formation

Cette UE vise à sensibiliser les étudiants à la transformation numérique. Elle donne un nouvel éclairage aux connaissances et savoir-faire technique déjà acquis dans la filière, en s'appuyant sur des exemples et des cas d'étude.

L'objectif est d'étudier comment:

Inventer un nouveau service et en montrer le potentiel, en comprendre l'impact ...

Concevoir une solution technique et l'exploiter, sécuriser le système ...

Contenu

L’UE SLR208 comporte des cours et des interventions d'acteurs des écosystèmes du numérique. Une pédagogie de découverte est favorisée. Les exemples ou cas d'étude concernent :

  • soit l'organisation des entreprises : en lien avec les Systèmes d'Information, il s'agit de l'impact sur les métiers, le management, la stratégie
  • soit les nouveaux services à impact social: nouveaux usages ou à impact sociétal: données et vie privée, conséquences de l'automatisation.

Prérequis : (SLR201 SLR202 SLR203) SLR205 SLR207. Connaissances conceptuelles et techniques avancées en systèmes répartis.

SLR 209 Séminaire de la filière SLR (24h, 2,5 ECTS) , (Petre Kuznetsov et Patrick Bellot)

UE recommandée pour suivre en 3ème année, le M2 COMASIC

Objectifs de formation

Il est proposé aux élèves d’approfondir les connaissances fondamentales et conceptuelles introduites dans toutes les UEs de la filière SLR. Chaque élève traitera un sujet d’étude fourni par un enseignant et fera un exposé au séminaire organisé en fin d’UE.

Contenu

Les enseignants proposent différents sujets d’étude avec une bibliographie de base. Ces sujets concernent l’informatique répartie à large échelle (liste générique indicative) : modélisation, vérification, algorithmique répartie, architecture, intergiciel, virtualisation, parallélisation, ingénierie des exigences, méthodologie, etc

Chaque élève choisit un sujet d’étude qu’il travaille de façon autonome, écrit un mémoire et prépare son exposé. L’enseignant encadrant et l’élève se rencontreront lors de plusieurs revues d’avancement du travail programmées dans l’UE.

Prérequis : Cette UE est principalement réservée aux élèves inscrits à la filière ou au moins à deux UE parmi SLR201 à SLR207.