Syllabus du M2 Sciences Du Logiciel

Ingénierie des systèmes et des modèles (ISM)

S9, 6 ECTS

Objectifs :

           Ce module fournit une initiation à la modélisation système (MBSE) dans le contexte de la conception dirigée par les modèles de systèmes hétérogènes comportant du logiciel et des composants mécaniques, capteurs, actionneurs, … et faisant intervenir des spécialistes de différents domaines.  Seront évoqués l’ingénierie des exigences, la notion de ligne de produits, la modélisation SysML et l’étude des méthodes et outils de métamodélisation, d’édition, de vérification et de transformation de modèles.

         Les compétences attestées seront la capacité de modéliser des exigences système en SysML et de définir des langages dédiés outillés.

        Les étudiants auront aussi acquis la capacité de s’intégrer dans des équipes d’ingénierie système et seront familiarisés avec les notions de lignes de produits.

Contenu :

Cours / TD :

  1. Introduction à l’ingénierie système
  2. Ingénierie des exigences

TD : Étude d’un cahier des charges

  1. Lignes de produits
  2. Modélisation système en SysML
  3. Langages dédiés et méta-modélisation
  4. Expression et vérification de propriétés statiques
  5. Génération d’éditeurs arborescents, textuels et graphiques
  6. Scénario d’exécution et simulation de modèles
  7. Transformation de modèles

TPs:

  1. Prise en main d’un environnement SysML
  2. Etude de cas SysML
  3. Méta-modélisation d’un langage dédié
  4. Génération d’un éditeur arborescent et textuel
  5. Expression et vérification de propriétés statiques
  6. Définition d’un langage cible et expression d’une transformation de modèle

Pré-requis :

Références bibliographiques :

  1. OMG SYSML
  2. Ingénierie dirigée par les modèles. Des concepts à la pratique. JM Jezequel, B. Combemale, D. Vojtisek, Ellipses, 2012
  3. Model-Driven Software Engineering in Practice. M. Brambilla, J. Cabot, Morgan & Claypool Publishers 2012
  4. https://www.eclipse.org/Xtext/
  5. https://www.uml-sysml.org/sysml/

Mots-clés :

Modalités d’évaluation :


Développement Orienté Plateforme

S9, 6 ECTS

Objectifs :

Ce module a pour objectif de renforcer les connaissances dans le développement de plateformes applicatives. Il se compose de trois parties : la première vise à acquérir une connaissance générale sur la mise en œuvre des architectures multicouches dans le cadre de la plateforme .NET ; la deuxième a pour objectif le développement d'applications natives Android ; la troisième concerne le développement cross-plateforme d'applications mobiles.

Connaissances :

Compétences :

Contenu :

Développement orienté .NET 10hC, 10hTP

Développement d'applications mobiles natives pour Android 4hC, 20hTP

Développement d'applications cross-plateformes 4hC, 8hTP

Pré-requis :

Références bibliographiques :

Mots-clés :

Modalités d’évaluation :


Sécurité, Test et Optimisation des Applications Web (SécuTOAW)

S9, 6 ECTS

Objectifs :

        Cette UE comporte deux matières dédiées aux applications Web : Sécurité et Test et Optimisation

Compétences :

Contenu :

Partie Sécurité :

  1. Contexte technique et juridique de la sécurité informatique
  1. Risques, taxonomie d’incidents, exemples
  1. Mise en place de la sécurité  informatique

Partie TOAW :

  1. Test des applications objet :
  1. Développement avancé côté backoffice :

Technos : JUnit, Mockito, Cucumber, Spring Boot

Pré-requis :

Références bibliographiques :

Mots-clés :

Modalités d’évaluation :


Vérification et validation, analyse formelle (VVAF)

S9, 6 ECTS

Objectifs :

        Ce module fournit une initiation à l’application de méthodes formelles pour la spécification et la vérification de systèmes dits critiques pour lesquels une défaillance peut avoir des conséquences graves. Après une présentation de langages d’expression de propriétés et de comportements, on s’interessera à trois méthodes: la construction correcte de spécification par raffinements, la vérification de comportements temporels puis temporisés par model checking et l’interprétation abstraite.

        Les compétences attestées seront la capacité d’exprimer des propriétés ou des comportements dans des formalismes permettant leur vérification.

        Les compétences acquises comprendront aussi la connaissance des principes sur lesquels reposent les outils de model checking et d’interprétation abstraite.

Contenu :

Cours/TD:

  1. Introduction
  1. Systèmes réactifs, temps réel et critiques
  2. Model Checking, Preuve, Raffinement
  1. Spécification de propriétés
  1. Logique classique et théorie des ensembles
  2. Logique temporelle linéaire et arborescente
  3. Logiques temporisées
  1. Spécification et vérification de comportements
  1. Automates finis et symboliques (Event-B)
  2. Langages pour l’algorithmique distribuée, espace d’état
  3. Automates de Büchi et logique temporelle linéaire
  4. Automates temporisés
  1. Développement par raffinements (Event-B)
  2. Vérification par interprétation abstraite

          TPs:

  1. Modélisation d’algorithmes distribués, expression et vérification de propriétés
  2. Développement par raffinements
  3. Modélisation et vérification de systèmes temps-réel
  4. Vérification par interprétation abstraite

Pré-requis :

logique classique, automates, algorithmique

Références bibliographiques :

Mots-clés :

spécification, vérification, model checking, interprétation abstraite

Modalités d’évaluation :


Professionnalisation en Sciences Du Logiciel
(partie 2)

S9, 6 ECTS

Objectifs :

La mise en situation professionnelle, dans le cadre d’un contrat d'apprentissage ou professionnalisation, ou sous convention de stage, est répartie sur les deux semestres. Elle s’effectue en alternance avec les cours (3 jours par semaine en entreprise ou en laboratoire - 2 jours en formation). Elle permet aux étudiants de contribuer à un projet dans un contexte professionnel sur une longue période (début entre septembre et novembre, fin en juillet) et de participer à différentes phases. L’objectif est de compléter la formation des étudiants au métier d’ingénieur ou de chercheur, et de faciliter ainsi leur insertion et leur devenir professionnel.

Contenu :

Il n’y pas d’enseignement “traditionnel” dans le cadre de cette UE. Cependant, les étudiants sont accompagnés individuellement dans leur recherche d’un poste (préparation de CV, LM, et entretiens de recrutement). Par ailleurs, les étudiants sont suivis par un enseignant.

Pré-requis :

Mots-clés :

Professionnalisation, Expérience, Compétences, Candidature, Communication orale

Modalités d’évaluation :

Présentation orale : description du contexte de la mission, des objectifs de l'étudiant et de l'entreprise, de l'environnement méthodologique, technique et humain, et du planning prévisionnel de la période de professionnalisation.

CT: 100% (présentation orale) en session 1 et 2


Agilité à l'échelle et relation MOA-MOE (AGIREMm)

S10, 6 ECTS

Objectifs :

L'objectif de l'UE est d'approfondir les connaissances et compétences des étudiants pour les pratiques agiles dans des dimensions différentes (taille de l'équipe, dépendances et synchronisation dans les grands projets, gestion des flux...) ainsi que pour les formes de collaboration impliquant le triangle MOA-AMO-MOE (Maître d'ouvrage - assistant à maîtrise d'ouvrage et maître d'oeuvre).

Contenu :

Pré-requis :

Références bibliographiques :

Mots-clés :

Lean, Kanban, SaFE, Spotify, MOA-AMO-MOE

Modalités d’évaluation :

    Evaluation de livrables :

Plan de management de projet

Contrôle de connaissances

Artefacts SCRUM

Gestion des réunions


Architecture Logicielle et Composants Logiciels (ALCoL)

S10, 6 ECTS

Objectifs :

Cette UE a pour objectif :

Contenu :

1. ARCHITECTURE LOGICIELLE (2 ECTS) :

 Introduction à l'architecture logicielle : problématique, définitions

2. CONCEPTION ET PROGRAMMATION PAR COMPOSANTS (2 ECTS)

Problématiques de la réutilisation et de la flexibilité logicielles

3. CONCEPTION ET PROGRAMMATION CONCURRENTE PAR ACTEURS (2 ECTS)

4. OUVERTURE VERS LES SYSTEMES MULTI-AGENTS ET L’INTELLIGENCE ARTIFICIELLE DISTRIBUEE (décentralisation, autonomie, interaction, émergence)

Pré-requis :

Références bibliographiques :

Mots-clés :

Modalités d’évaluation :


DevOps et architectures micro-services

S10, 3 ECTS

Objectifs :

Cette UE porte sur les problèmes et les méthodes, techniques et outils intervenant dans la vie d'un logiciel complexe, en particulier dans le développement d'une application distribuée en micro-services.

Compétences visées :

Connaissances acquises :

Contenu :

Le cours se découpe en trois parties complémentaires, et les éléments du cours de chaque partie sont mis en pratique à plusieurs niveaux (application directe du cours par un TP en monôme ou binôme et/ou mise en œuvre des méthodologies sur un cas d'étude réalisé en séance de TD dans un contexte agile) :

  1. Vérification, validation et intégration continue
  2. Virtualisation applicative, orchestration de conteneurs et déploiement continu
  3. Architectures micro-services

Pré-requis :

Programmation orientée objet (Java), Développement web (Jakarta EE, JavaScript), Architecture REST, Tests unitaires et d'intégration, Gestion de version (git), Environnement de développement linux (shell)

Références bibliographiques :

Mots-clés :

Modalités d’évaluation :


Professionnalisation en Sciences Du Logiciel
(partie 3)

S10, 12 ECTS

Objectifs :

La mise en situation professionnelle, dans le cadre d’un contrat d'apprentissage ou professionnalisation, ou sous convention de stage, est répartie sur les deux semestres. Elle s’effectue en alternance avec les cours (3 jours par semaine en entreprise ou en laboratoire - 2 jours en formation). Elle permet aux étudiants de contribuer à un projet dans un contexte professionnel sur une longue période (début entre septembre et novembre, fin en juillet) et de participer à différentes phases. L’objectif est de compléter la formation des étudiants au métier d’ingénieur ou de chercheur, et de faciliter ainsi leur insertion et leur devenir professionnel.

Contenu :

Il n’y pas d’enseignement “traditionnel” dans le cadre de cette UE. Les étudiants sont néanmoins suivi par un enseignant.

Pré-requis :

Mots-clés :

Professionnalisation, Expérience, Compétences, Communication

Modalités d’évaluation :