Course Content
This course is structured into three main parts:
-
Introduction to the development environment and tools that will be used in this course
- VSCode Extensions for JEE, Maven: Presenting the main Visual Studio Code (VSCode) extensions that will be used and recalling the principles of Maven.
- Git and Git Flow: Covering Git, a crucial decentralized version control system for efficient software development project management. We also delve into Git Flow, an extension of Git, to understand its branching standards and workflows for improved collaboration and parallel development.
- CI/CD Pipeline with GitLab: Diving into the world of Continuous Integration (CI) and Continuous Deployment (CD) using GitLab. This part focuses on creating and managing CI/CD pipelines, enabling faster and more reliable software development with automated testing and deployment.
Web Application Development using JEE (Jakarta EE)
- JEE Concepts: Introduction to foundational concepts like Servlets, MVC, JSP, JSTL. Development of a complete JEE application.
- Spring & Spring Boot: Exploration of Spring Boot and JPA frameworks with hands-on development.
- Microservices with Spring: In-depth exploration of building microservices using Spring Boot, focusing on creating independently deployable, scalable services. Hands-on development includes creating RESTful services, configuring Spring Cloud, and implementing service discovery.
- Deployment with Docker and Docker Compose: Introduction to containerization concepts using Docker. This section covers the basics of creating Docker images, managing containers, and using Docker Compose for orchestrating multi-container applications. Practical exercises include deploying a microservices architecture with Docker and Docker Compose.
- Introduction to Software Product Line Engineering: Understanding Software Product Lines (SPL), Feature Models, and software variability.
- Migrating individual applications to SPL: Introduction the approach for migrating web applications into SPL.
Project 1: Creating a complete web application using Spring Boot and JPA.
Project 2:: Migrating the developed web application into an SPL.
Throughout the course, emphasis is placed on hands-on practical work, supplemented by instructional slides. This year, we have exclusively adopted #Vscode for its advanced capabilities and impressive range of extensions for Java and Spring Boot.
All resources related to this course (slides, projects, etc.) are available on the official Moodle Page at Sorbonne University.
Examples of Student Projects
The project involves developing a Software Product Line for a simplified web application of an E-shop type system (online store) that will allow you to browse products, add them to your cart, and place orders.Here are some demos showcasing the student projects.
Student: Umut Gultekin
Slides: PDF File
Project 2: Implementing the E-Shop SPL using Mobioos Forge.
Students: Théo AUVRAY & Janethe FERHOUNE
Project 2: Implementing the E-Shop SPL using Mobioos Forge.
Student: Changrui Zhang
Project 2: Implementing the E-Shop SPL.
Student: Haron Dauvet
Project 2: Implementing the E-Shop SPL.
Students: Adel RACHI & Manelle BERRICHI
Project 2: Implementing the E-Shop SPL.
Student: Volodymyr Patuta
Project 2: Implementing the E-Shop SPL using Mobioos Forge.
More videos from other students will be uploaded shortly!