Course materials for ESIR2 students
ESIR2-SI-S7-VV
This course provides an introduction to Software Modeling.
Lectures
Professor: Benoit Combemale
Date | Lecture | Material | Comment |
---|---|---|---|
Oct. 27th, 2021 (8h-10h) | Introduction | welcome and introduction to modeling | |
Oct. 28th, 2021 (10h-12h) | UML | UML overview | |
Oct. 29th, 2021 (08h-10h) | UML | UML overview | |
Oct. 29th, 2021 (10h-12h) | UML | UML overview | |
Nov. 8th, 2021 (8h-10h) | Design Pattern | Design Pattern | |
Nov. 16th, 2021 (10h-12h) | SOLID | Implementation Pattern |
Labs
Professor: Hélène Feuillâtre
Further material
- 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)
This course provides an introduction to software development tools: source code management, build management, software delivery and continuous integration.
Lectures
Professor: Benoit Combemale
Date | Lecture | Material | Comment |
---|---|---|---|
01/17/22 | Tools for Software Development Industrialization | slides | on campus |
01/17/22 | Tools for Software Development Industrialization, cond. | on campus | |
01/18/22 | Tools for Software Development Industrialization, cond. | on campus | |
02/11/22 | Introduction to agile methods | video 1 & 2 | virtual |
02/21/22 | Continuous deployment and Containerization | slides | on campus |
Labs
Professors: Benoit Combemale, Hélène Feuillâtre and Elyes Cherfa
The labs will consist in implementing individually the proposed tutorial. The tentative timeline is the following:
- [Part 1-4] Maven ~4h
- [Part 5] Git ~2h
- [Part 6] Sonar ~1h
- [Part 7] Jenkins ~2h
- [Part 8] GitlabCI ~3h
You must continuously demonstrate your progresses to your professor that will lead to a mark for your labs.
Evaluation
Date | Lecture | Material | Comment |
---|---|---|---|
02/25/22 | Evaluation | n/a | on campus |
Further material
- GIT cheat sheet by GitHub
- The Refcardz on Git, Maven and Jenkins
ESIR2-SI-S8-MDI (part 2)
This course provides an extended overview of the software testing techniques.
Lectures
Professor: Benoit Combemale
Date | Lecture | Material | Comment |
---|---|---|---|
Mar. 4th, 2022 | Introduction | slides | on campus |
Mar. 4th, 2022, cond. | Software testing at glance | slides | on campus |
Mar. 7th, 2022 | Static analysis | slides | on campus |
Mar. 11th, 2022 | Dynamic testing | slides | on campus |
Mar. 21st, 2022 | Integration testing | slides | on campus |
Mar. 21st, 2022, cond. | Test qualification and main criteria | slides | on campus |
Mar. 22nd, 2022 | Mutation testing | slides | on campus |
A textbook (by Oscar Luis Vera-Pérez) complements the lectures.
Conferences
Date | Lecture | Material | Comment |
---|---|---|---|
May 11th, 2022 | TBA. | slides | on campus |
May 13th, 2022 | TBA. | slides | on campus |
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. 4th, 2022 | Evaluation | n/a | on campus |
Further material, information and references
- Some tools: PMD, JavaParser, EclEmma/JaCoCo, Mockito, EasyMock, Pitest, jqwik, Selenium, and DbUnit.
- Refcard about JUnit & EasyMock, Mockito, and Selenium.
ESIR2-SI-S8-AL: Software Architecture
This course provides an overview of the modern software architectures, with an indepth discussion about the underlying rationales and benefits.
Professors: Johann Bourcier and Benoit Combemale
Lectures
Lecture #1:
Lecture #2:
- Approche orientée Service - les concepts
- Approche orientée Service - Les technologies
- Architecture orientée Message : MOM - principes
Lecture #3 and #4:
- Introduction to cloud computing
- Introduction to cloud-native applications
- Introduction to micro-services
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 06th, 2022 (14h-16h) | Evaluation | n/a | on campus |
Further material
- Refcardz on Quarkus and Docker.
- Conferences:
- 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)
ESIR2-SI-S8-Projet: Software Development Project
This course consists in realizing an agile software development project, leveraging all the previous courses.
Professors: Johann Bourcier, Helene Feuillatre and Benoit Combemale
Material
Evaluation
Date | Lecture | Material | Comment |
---|---|---|---|
May 25th, 2022 (09h-12h) | Evaluation | n/a | on campus |