ECTS
5 crédits
Composante
UFR de mathématiques et informatique (UFR27)
Volume horaire
40h
Période de l'année
Automne
Description
Learning Objectives
This graduate course aims at presenting technical software architecture concepts of modern frameworks and components of layered systems.
It develops necessary skills to understand, develop, reason and criticize technical architectures and integration patterns.
Prerequisites
- Strong background and practice of Java Standard Edition (L3 MIAGE INF2)
- Proficiency in development tools : Eclipse IDE, Git, Maven (L3 MIAGE DEVTOOL)
- Knowledge of the main Object-Oriented Design patterns (L3 MIAGE ISI5)
- Knowledge in Relational Databases and Database structure (L3 MIAGE INF9)
- Understanding of XML and JSON
Content
- Introduction — What are the roles of a software architect ?
- Software Architecture : a Framework-based approach
- Basics of Software Architecture
- Inversion of Control with Jakarta EE8 – CDI
- Data format Binding with Jakarta EE8 – JAXB
- Rest Architectures and Implementation with Jakarta EE8 — JAXRS
- Persistence with Jakarta EE8 — JPA
- Message-based communication with Jakarta EE8 — JMS
- Business Logic with Jakarta EE8 — EJB
- Software Architecture Design: Enterprise Application Patterns
- Architecture Integration : Enterprise Integration Pattern
Pedagogical Methods
All the content of the course is provided in the EPIs and selected Github repositories. After an introductory session on the general principles of software architecture, and the role of the architect, we will dedicate a course to each main component of the Jakarta EE8 Platform. We’ll use a reversed-class approach letting students present a different integration pattern at the beginning of each session from selected textbooks
A long-haul project building up from notions seen in each session
Calendar (initial & apprenticeship)
13 Sessions of 3h
Session |
Content |
Application |
Evaluations |
1 |
Introduction to software architecture Presentation of the project |
Presentation of the project |
- |
2 |
CDI1 |
Lab sessions |
|
3 |
JAXB |
Lab sessions |
|
4 |
- |
JAXB for the project |
|
5 |
JPA |
Lab sessions |
Pattern presentations |
6 |
- |
JPA for the project |
Pattern presentations |
7 |
JAXRS |
Lab Sessions |
Pattern presentations |
8 |
- |
JAXRS for the project |
Pattern presentations |
9 |
JMS |
Lab Sessions |
Pattern presentations |
10 |
- |
JMS for the project |
Pattern presentations |
11 |
EJB |
Lab Sessions |
Pattern presentations |
12 |
|
Project Integration |
Pattern presentations |
13 |
|
Project Integration |
Pattern presentations |
+14days |
Project Deadline |
|
|
|
|
|
|
Skills
- Understand and implement Software Architecture Patterns
- Understand and implement Software Integration Patterns
- Proficiency in Jakarta EE 8 development.