Syllabus du M1 Sciences Du Logiciel

UI/UX et applications frontales

S7, 6 ECTS

Objectifs :

La partie du module dédiée à l’UI/UX a pour objectif de permettre aux étudiants de maîtriser les principes de conception, programmation et évaluation d’interfaces utilisateur et techniques d’interaction avec pour objectif la production de systèmes informatiques utilisables.

La partie du module dédiée aux applications frontales vise à étudier les langages côté client (front end) et à savoir mettre en œuvre un framework dans le cadre d'une application web dynamique de type "Single Page Application".

Compétences :

Contenu :

Partie “UI/UX” :

  1. Conception centrée utilisateur (UCD) selon le standard ISO 9241-210, règles et standards Introduction à l’analyse des utilisateurs (personas, modélisation des tâches)
  2. Etude et mise en oeuvre de techniques de conception: prototypage basse, moyenne et haute-fidélité
  3. Etude et mise en oeuvre de techniques d’évaluation analytiques (cheminement centré tâches, évaluation heuristique, prédictions à base de modèles) et empiriques (tests d’utilisabilité)
  4. Retour sur investissement de l’UCD
  5. UX et ses différentes dimensions

Partie “Front” :

  1. Rudiments d’un langage côté client (Javascript ou typescript) : syntaxe du langage, utilisation dans le navigateur, les principales structures de données, etc
  2. Spécificités d’un langage côté client (Javascript ou typescript) : le modèle objet du langage, la puissance des fonctions, …
  3. Etude d’un framework de type front end (Angular, React ou Vue.js)
  4. Manipulation du DOM et notion de DOM virtuel
  5. Gestion des événements et des formulaires
  6. Routage et application “Single Page Application”

Techno utilisées en TP : outils de prototypage et de modélisation des tâches, Javascript ou typescript et framework de type front end, node.js

Pré-requis :

Références bibliographiques :

Mots-clés :

Modalités d’évaluation :


Ingénierie des Systèmes Interactifs et des Applications Web Dynamiques

S8, 6 ECTS

Objectifs :

La partie “ingénierie des applications web dynamiques” se positionne côté "back office" et est dédiée à des aspects de conception (archi. multi-couches, rôle d'un "framework") et technologiques (J2EE : servlet, JSP, ORM, etc).

Compétences :

La partie “Ingénierie des Systèmes Interactifs” (ISI) vise la maîtrise de la modélisation et de la programmation des systèmes interactifs (SI).

Compétences:

Contenu :

Partie “Applications web dynamiques” :

1. Eléments d'architecture répartie

2. Le rôle d'un framework

3. La plateforme J2EE

Techno utilisées en TP : Spring Boot; Hibernate; Thymeleaf

Partie “Systèmes interactifs” :

  1. Principes architecturaux des systèmes interactifs (modèles de Seeheim et ARCH)
  2. Design pattern MVC, de sa mise en oeuvre en Java et de son intégration dans ARCH
  3. Principes de modélisation des systèmes interactifs à base d’automates à états finis étendus.
  4. Implémentation à base de modèle dans un environnement de programmation par événement
  5. Description de propriétés de systèmes interactifs et vérification sur modèles. Comment gérer utilisabilité, modifiabilité  et fiabilité dans un même cadre méthodologique
  6. Mise en œuvre des principes de validation : expression et vérification de propriétés, définition et mise en œuvre de tests sur des systèmes interactifs

Techno utilisées en TP : NetBeans, Java Swing

Pré-requis :

Connaissances requises : programmation orientée objet (notamment Java), modélisation UML, éléments du langage HTML, modèle relationnel pour les données, bibliothèque Java SWING et programmation par événement, modélisation par automates

Références bibliographiques :

Mots-clés :

Modalités d’évaluation :

Modèles et Architectures des Applications Réparties (MARA)

S8, 6 ECTS

Objectifs :

Ce cours présente les méthodes et outils permettant de concevoir et de gérer les applications informatiques distribuées et hétérogènes.

La première partie du cours est consacrée à la représentation de données structurées et l'interopérabilité, avec un focus particulier sur les langages XML (modélisation via différents types de grammaires, langages de transformation et d'interrogation), et sur l'approche orientée services (aspects architecturaux, conception, développement et publication).

Dans la deuxième partie, on poursuivra l’étude des Design Patterns du GoF initiée en S7 au tronc commun. Cette partie présentera aussi des patterns de programmation concurrente et répartie. En outre, on étudiera les bases de la programmation concurrente en Java et de la programmation répartie avec Java RMI.

Contenu :

Partie I : Interopérabilité des données et approches orientées services

  1. Gestion de build et des dépendances dans un projet Java
  1. Représentations de données structurées
  1. Approches orientée services

Partie II : Design patterns (compléments), Programmation concurrente et répartie en Java

  1. Compléments sur les design patterns  du GoF

  1. Programmation concurrente en Java et multithreading

  1. Programmation répartie en Java

Pré-requis :

Programmation orientée objet (notamment Java), connaissances élémentaires en bases de données et en programmation répartie (modèle client-serveur)

Références bibliographiques :

Mots-clés :

Interopérabilité, données structurées, services web, design patterns, concurrence, répartition, middleware, Java

Modalités d’évaluation :

Gestion de Projets de Recherche, Industriels et Agiles

S8, 9 ECTS

Objectifs :

L'objectif de l'UE est d'initier les étudiants au monde de la recherche et de les former à la production d'un état de l'art, à celle de la gestion de projet industriel ou de recherche en focalisant sur les aspects méthodologiques selon le PMBoK(1) ou les valeurs de l'agilité(2).

Compétences :

Faire une recherche bibliographique sur un sujet de recherche ou industriel.

Planifier, coordonner, mesurer, surveiller, contrôler et analyser les activités d'un processus outillé de développement logiciel selon le PMBoK

Travailler en équipe.

Appliquer la méthode SCRUM pour la conduite d'un projet tout en respectant les valeurs de l'agilité.

Présenter la réalisation d'un livrable sous forme écrite ou orale.

Contenu :

Le contenu est divisé en trois parties :

1 - Initiation à la recherche et la production d'état de l'art :

2 - Gestion de projet selon le PMBoK

3 - Méthodes agiles et pratique SCRUM

La production de l'état de l'art est mise en pratique à travers un projet en groupe de 4 pour un volume de 50h/étudiant.

La gestion de projet est analysée en TD d'après l'expérience pratique des étudiants selon les domaines de connaissances, les groupes de processus et la pratique de la méthode Scrum.

Pré-requis :

Références bibliographiques :

(1) Project Management Book of Knowledge - Project Management Institute - https://www.pmi.org/pmbok-guide-standards 

(2) Manifeste Agile - https://agilemanifesto.org 

(3) Le métier de chercheur. Regard d'un anthropologue. Bruno Latour. INRA Editions, 2001

(4) SCRUM - Scrum Guide - https://www.scrum.org 

Mots-clés :

Recherche scientifique, état de l'art, rédaction d'articles, gestion de projet, PMBoK, cycles de vie, processus, domaines de connaissances, agilité, SCRUM.

Modalités d’évaluation :

Evaluation de livrables :

Liste de références, résumés d'articles, article de synthèse, poster

Plan de management de projet

Contrôle de connaissances des définitions du PMBoK et de SCRUM

Artefacts SCRUM

Présentations orales de livrables


Professionnalisation en Sciences Du Logiciel
(partie 1)

S8, 6 ECTS

Objectifs :

Le stage ou l'alternance ont pour but de mettre les étudiants en situation réelle, en entreprise ou en laboratoire, pour connaître et approfondir le monde professionnel orienté industrie ou recherche; de mettre en application les connaissances acquises au cours de leur cursus; de les préparer au stage long de Master2 et de favoriser la future insertion professionnelle en apportant une expérience aux étudiants.

Compétences :

Contenu :

Cours magistral :

Travaux dirigés :

Stage ou alternance (12 semaines ETP minimum) :

Pré-requis :

Expérience de développement logiciel académique

Mots-clés :

Stage, alternance, CV, lettre de motivation, rapport, soutenance

Modalités d’évaluation :

Évaluation des productions suivantes : CV, lettre de motivation, travail en situation professionnelle, rapport de stage, soutenance de fin d'activité, respect des échéances.