Course materials for ESIR2 students
ESIR2-SI-S7-VV
Lectures
Professor: Benoit Combemale
Except the introduction, all lectures will rely on pre-recorded videos* that you can watch asynchronously, at the latest during the slot scheduled in your agenda. The last 30 minutes of each lecture slot will be dedicated to office hours (on the Teams' group dedicated to the course), where we can discuss on questions you have on the lecture.
If you need reminders on object-oriented programming, please, go through the videos of chapters #1, #2 and #3.
Date | Lecture | Material | Comment |
---|---|---|---|
Dec. 10th, 2020 (8h-10h) | Introduction | welcome and introduction to modeling | synchronous introduction on Teams (team VV2020) |
Dec. 10th, 2020 (10h-12h) | SOLID | videos (chapter #4) | asynchronous videos and office hours on Teams (11h00-12h) |
Dec. 14th, 2020 (8h-10h) | GRASP | videos (chapter #5) | asynchronous videos and office hours on Teams (9h00-10h) |
Dec. 14th, 2020 (10h-12h) | Design patterns | videos (chapters #6 and #7) | asynchronous videos and office hours on Teams (11h00-12h) |
Jan. 6th, 2021 (10h-12h) | Design patterns | videos (chapters #6 and #7) | asynchronous videos and office hours on Teams (11h00-12h) |
Jan. 11th, 2021 (14h-16h) | Métriques, Visualisation and Refactoring | videos (chapter #8) | asynchronous videos and office hours on Teams (15h00-16h) |
* For this part of the course, we will use the pre-recorded videos provided by Prof. Sébastien Mosser at UQAM.
Labs
Professors: Benoit Combemale and Stéphanie Challita
Date | Labs | Material | Comment |
---|---|---|---|
Dec. 17th, 2020 (10h-12h) | Médiathèque | sujet | |
Jan. 4th, 2021 (14h-16h) | Médiathèque | correction | deadline: 08/01/21 |
Jan. 4th, 2021 (16h-18h) | Mini-editeur | sujet | |
Jan. 6th, 2021 (14h-18h) | Mini- editeur | ||
Jan. 11th, 2021 (16h-18h) | Mini-editeur | correction | deadline: 29/01/21 |
Your professors will be online during the labs. Interact with them through the team VV2020 on Teams.
Further material
- Slides on the UML language
- The Refcardz UML cheetsheet and the UML Diagrams website
- The Refcardz on Design Patterns
- Catalog of design pattern implementations: by Refactoring.Guru and S. Mosser
- Looking for good books? You may have a look to the textbooks Introduction to Software Design with Java, and UML@Classroom ( website). Here is also a currated list of must-read professional books.
ESIR2-SI-S8-MDI (part 1, incl. SI+IN)
Lectures
Professor: Benoit Combemale
Except the introduction during the first lecture, all lectures will rely on pre-recorded videos* that you can watch asynchronously, at the latest during the slots scheduled in your agenda.
Date | Lecture | Material | Comment |
---|---|---|---|
Feb. 1st, 2021 (10h-12h) | Tools for (Java) Development Industrialization | slides | synchronous introduction on Teams (team MDI2020) |
– | Gestion de dépendance et build | video, et démo Maven | asynchronous videos and office hours on Teams |
– | Gestion de version | video, avec Subversion et Git, et démo Git | asynchronous videos and office hours on Teams |
– | Intégration continue | video, et démo Jenkins | asynchronous videos and office hours |
– | Méthodes agiles | video | asynchronous videos and office hours on Teams |
* For this part of the course, we will use pre-recorded videos provided by Prof. Olivier Barais and Prof. Johann Bourcier.
Labs
Professors: Benoit Combemale and Stéphanie Challita
The labs will consist in implementing the proposed tutorial, and the evaluation will consist in a final demonstration with Q&A (~10min, during the last lecture on Feb. 23rd, 2021, 10h15-12h15). We will be online during the labs. Interact with us through the team MDI2020 on Teams.
Tentative timeline for the tutorial:
- [Part 1-4] Maven ~4h (requires lecture on Gestion de dépendance et build)
- [Part 5] Git ~2h (requires lecture on Gestion de version)
- [Part 6] Sonar ~1h (requires lecture on Intégration continue)
- [Part 7] Jenkins ~2h (requires lecture on Intégration continue)
- [Part 8] Gitlab ~3h (requires lecture on Intégration continue)
Further material
- GIT cheat sheet by GitHub
- The Refcardz on Git, Maven and Jenkins
ESIR2-SI-S8-MDI (part 2)
Lectures
Professor: Benoit Combemale
Date | Lecture | Material | Comment |
---|---|---|---|
Feb. 24th, 2021 (10h-12h) | Introduction | slides | synchronous introduction on Teams (team MDI2020) |
Feb. 24th, 2021 (10h-12h), cond. | Software testing at glance | slides | synchronous on Teams (team MDI2020) |
Mar. 08th, 2021 (08h-10h) | Static analysis | slides | on campus |
Mar. 08th, 2021 (10h-12h) | Dynamic testing | slides | on campus |
Mar. 16th, 2021 (10h-12h) | Integration testing | slides | synchronous on Teams (team MDI2020) |
Mar. 16th, 2021 (10h-12h), cond. | Test qualification and main criteria | slides | synchronous on Teams (team MDI2020) |
Mar. 16th, 2021 (10h-12h), cond. | Mutation testing, and Test automation | slides | synchronous on Teams (team MDI2020) |
Conferences
Date | Title | Material | Comment |
---|---|---|---|
Mar. 23rd, 2021 (10h-12h) | Model-Based Testing | slides | synchronous on Teams (team MDI2020) |
Mar. 26th, 2021 (08h-10h) | GUI Testing | slides | synchronous on Teams (team MDI2020) |
Apr. 02nd, 2021 (08h-10h) | Security Testing | slides | synchronous on Teams (team MDI2020) |
Apr. 07th, 2021 (14h-16h) | Performance Testing | slides | synchronous on Teams (team MDI2020) |
Labs
Professors: Benoit Combemale and Gwendal Jouneaux
- Practical Session #1 (4h)
- Practical Session #2 (4h)
- Practical Session #3 (4h)
Optional labs: if you want to experiment property-based testing and GUI testing, you may optionally have a look to Lab #4 and Lab #5, respectively.
Evaluation
Date | Lecture | Material | Comment |
---|---|---|---|
Apr. 08th, 2021 (10h-12h) | Evaluation | n/a | synchronous on Teams (team MDI2020) |
Further material
- The textbook of the course
- Refcardz on Junit & Easymock, Mockito and Selenium.
ESIR2-SI-S8-AL: Software Architecture
Professors: Johann Bourcier and Benoit Combemale
Lectures
Except the introduction, all lectures will rely on pre-recorded videos that you can watch asynchronously.
Lecture #1, Apr. 01st, 2021 (08h-10h):
Lecture #2, Apr. 01st, 2021 (10h-12h):
- Approche orientée Service - les concepts
- Approche orientée Service - Les technologies
- Architecture orientée Message : MOM - principes
Lecture #3, Apr. 07th, 2021 (08h-10h):
- Introduction to cloud computing
- Introduction to cloud-native applications
- Introduction to micro-services
Lecture #4, Apr. 12th, 2021 (14h-16h):
Lectures #5 and #6 (conferences), Apr. 12th, 2021 (16h-18h) and Apr. 20th, 2021 (08h-10h):
- De Java à un exécutable natif : GraalVM et Quarkus changent la donne (Emmanuel Bernard)
- Quarkus: Comment faire une appli Java Cloud Native avec Graal VM (E. Bernard, C. Escoffier)
Labs
Based on the aforementioned lectures, you might train yourself (individually) on Docker and Quarkus using the following tutorials:
Then, you have to constitute a project team of 5 people. Each team has to select a monolith application (to be validated with your professors) and to propose a microservicization of this application. For this purpose, you have to investigate the various tradeoffs (modularization, stateless vs stateful, orchestration vs. choreography, etc.), and to propose the new architecture of the application.
As a possible application, you might check-out the Remote meetings planning project, understand the application code and its underlying architecture (cf. the videos available on the readme), and make sure it works in development settings (i.e. on localhost).
For the evaluation, you will have to present your proposed architecture, and to discuss the various tradeoffs. You are not ask to provide any implementation that will be realized during the following project.
Evaluation
Date | Lecture | Material | Comment |
---|---|---|---|
May 07th, 2021 (08h-10h) | Evaluation | n/a | synchronous on Teams (team AL2020) |
Further material
ESIR2-SI-S8-Projet: Software Development Project
Professors: Johann Bourcier, Stéphanie Challita and Benoit Combemale
todo…