SERVICE ARCHITECTURE DESIGN

Teaching in italian
PROGETTAZIONE DI ARCHITETTURE DI SERVIZI
Teaching
SERVICE ARCHITECTURE DESIGN
Subject area
ING-INF/05
Reference degree course
COMPUTER ENGINEERING
Course type
Master's Degree
Credits
6.0
Teaching hours
Frontal Hours: 54.0
Academic year
2025/2026
Year taught
2025/2026
Course year
1
Language
ITALIAN
Curriculum
PERCORSO COMUNE
Reference professors for teaching
MAINETTI LUCA
fachechi alessio
Location
Lecce

Teaching description

Conoscenza approfondita di linguaggi di programmazione strutturata (Java), principi di ingegneria del software, conoscenza dei protocolli web.

Al termine del corso, lo studente sarà in grado di: a. applicare i principali principi dell’ingegneria del software e controllare le qualità del software, sia interne che esterne; b. progettare e implementare software secondo gli standard industriali (UML) e seguendo processi strutturati e agili di produzione del software; c. gestire l’ingegneria del software, ovvero svolgere attività di pianificazione, organizzazione, gestione del personale, controllo ed esecuzione stime (in termini di costi e dimensioni del software); d. progettare il software adottando architetture standard; e. selezionare e applicare i design pattern software (pattern creazionali, strutturali e comportamentali); f. verificare il software utilizzando strumenti standard e adottando metriche riconosciute; g. sviluppare sistemi software complessi web e mobile basati sul modello Model-View-Controller, utilizzando il framework Spring Boot, Spring Cloud, Spring Security per il back-end e il framework React Native per il front-end, integrandoli tramite servizi web REST/JSON; h. gestire i fondamenti del cloud computing moderno e del deployment di servizi in ambienti cloud, incluse le pratiche di CI/CD; i. utilizzare i principali strumenti open source per il testing, il refactoring e la gestione della configurazione del software.

L’obiettivo principale del corso è approfondire le conoscenze degli studenti sulle tecniche moderne di progettazione e sviluppo di sistemi software interattivi. In particolare, il corso si concentra su metodi e strumenti per il testing automatico del software, le pratiche DevOps e i design pattern per architetture a microservizi. Tutti i concetti sono applicati dagli studenti attraverso la progettazione, lo sviluppo e il collaudo di un prototipo software di un'applicazione web basata su servizi, con estensione mobile. Il prototipo è realizzato utilizzando framework moderni, quali Spring Boot, Spring Cloud, Spring Security per il back-end e React Native per il front-end.

Lezioni in aula, esercitazioni in aula, utilizzo di strumenti di sviluppo e repository online, project work.

La verifica delle conoscenze e delle competenze  consiste nella realizzazione di un prototipo software, finalizzato a valutare l’applicazione pratica delle architetture a microservizi e delle tecniche di testing, che sarà oggetto di discussione durante un esame orale. Il sistema software dovrà essere progettato utilizzando UML e adottando design pattern standard. Lo sviluppo dovrà avvenire a partire da framework basati su MVC che sono illustrati in modo dettagliato durante le lezioni e le esercitazioni. Il prototipo software dovrà essere testato in modo sistematico, con la raccolta di metriche significative. Il prototipo software dovrà essere sviluppato seguendo un processo agile e corredato da adeguata documentazione. Un mese dopo l’inizio del corso, il docente pubblicherà i requisiti generali del prototipo software, che varieranno di anno in anno. I requisiti resteranno validi fino alla pubblicazione di una nuova specifica.

www.dii.unisalento.it

Il corso tratta approfonditamente i seguenti argomenti:

Architetture a microservizi.
Design pattern per architetture a microservizi.
Gestione della qualità del software.
Tecniche di stima dei costi.
Spring data MongoDB.
Spring Security.
JWT e chiamate sincrone.
Applicazioni cloud con Amazon AWS: EC2.
Applicazioni cloud con Amazon AWS: API Gateway, Lambda.
Introduzione alla piattaforma Docker + Kubernetes.
GIT + CI/CD.
Introduzione allo sviluppo di applicazioni mobili.
Sviluppo di applicazioni front-end con React.
React native.

Ian Sommerville - Engineering Software Products: An Introduction to Modern Software Engineering - Pearson, 2020.

Semester
First Semester (dal 16/09/2025 al 19/12/2025)

Exam type
Optional

Type of assessment
Oral - Final grade

Course timetable
https://easyroom.unisalento.it/Orario

Download teaching card (Apre una nuova finestra)(Apre una nuova finestra)