SERVICE ARCHITECTURE DESIGN

Teaching in italian
PROGETTAZIONE DI ARCHITETTURE DI SERVIZI
Teaching
SERVICE ARCHITECTURE DESIGN
Subject area
IINF-05/A
Reference degree course
COMPUTER ENGINEERING
Course type
Master's Degree
Credits
6.0
Teaching hours
Frontal Hours: 54.0
Academic year
2026/2027
Year taught
2026/2027
Course year
1
Language
ITALIAN
Curriculum
PERCORSO COMUNE
Location
Lecce

Teaching description

Teaching program is provisional and may be subject to changes

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

Il corso approfondisce i principi, le metodologie e gli strumenti dell’ingegneria del software moderna, con particolare attenzione alla progettazione, allo sviluppo e alla gestione di sistemi complessi e distribuiti. Gli studenti imparano ad applicare pratiche professionali di sviluppo seguendo standard industriali e processi strutturati, con un’attenzione costante alla qualità del software e al suo controllo mediante strumenti e metriche consolidate.

Attraverso attività pratiche e di progetto, il corso guida alla realizzazione di applicazioni web avanzate basate su architetture a microservizi, utilizzando tecnologie diffuse come Spring, React e RabbitMQ. Viene inoltre introdotto l’impiego di strumenti e piattaforme di Cloud Computing, quali Docker, Kubernetes e AWS, fondamentali per lo sviluppo, la distribuzione e la scalabilità di applicazioni moderne.

Completano il percorso l’approfondimento di design pattern avanzati, le tecniche per la costruzione di sistemi distribuiti e l’esplorazione delle opportunità offerte dall’intelligenza artificiale nei processi di produzione e nelle architetture software.

Al termine del corso, lo studente sarà in grado di applicare i principali principi dell’ingegneria del software e di controllare la qualità dei programmi sviluppati. Sarà capace di progettare e realizzare applicazioni seguendo gli standard industriali e i processi strutturati di produzione del software. Imparerà inoltre a verificare il corretto funzionamento del software utilizzando strumenti standard e metriche riconosciute. Il corso fornirà le competenze necessarie per sviluppare applicazioni web complesse basati su architettura a microservizi, impiegando tecnologie come Spring, React, RabbitMQ, e altre simili. Verranno affrontati anche i fondamenti del Cloud Computing moderno, con l’uso di strumenti come Docker, Kubernetes e AWS. Infine, lo studente acquisirà familiarità con pattern di progettazione avanzati e tecniche per la realizzazione di sistemi complessi e distribuiti, e imparerà a integrare l’intelligenza artificiale nei processi e nelle architetture di produzione del software.

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.

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

Semester
First Semester (from 14/09/2026 to 18/12/2026)

Exam type
Optional

Type of assessment
Oral - Final grade

Download teaching card (Opens New Window)(Opens New Window)