Dettaglio insegnamento

PROGETTAZIONE E IMPLEMENTAZIONE DI SISTEMI SOFTWARE IN RETE

MF0243

Insegnamento
PROGETTAZIONE E IMPLEMENTAZIONE DI SISTEMI SOFTWARE IN RETE
Codice
MF0243
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
9
Ore di lezione
72
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB - Obbligatoria
Anno
3
Periodo
Annuale
Sede
ALESSANDRIA
Lingua insegnamento
Italiano
Contenuti
- Architettura delle reti informatiche locali, incluse reti wireless
- Servizi multimediali in rete
- Principi di base sull’architettura delle applicazioni distribuite basate su microservizi
- Internet of Things
- Sviluppo di un’applicazione distribuita basata su microservizi
Testi di riferimento
Autori: James F. Kurose, Keith W. Ross Titolo: RETI DI CALCOLATORI E INTERNET - Un approccio top-down 8/ed, Casa editrice: Addison Wesley (2022), ISBN 9788891916013.
Autori: Chris Richardson Titolo: MICROSERVICES PATTERS, wth examples in Java. Casa editrice: Manning, Shelter Island.
Obiettivi formativi
Conoscere le principali tecniche e protocolli alla base del funzionamento delle reti locali con e senza fili.
Conoscere le principali caratteristiche e i protocolli specifici delle applicazioni multimediali in rete.
Acquisire le competenze necessarie a progettare un'applicazione distribuita basata su microservizi, dalla specifica dei requisiti, alla progettazione, alla implementazione e collaudo dell’applicazione.
Sviluppare la capacità di lavorare in gruppo per lo svolgimento del progetto, utilizzando strumenti di lavoro collaborativo in rete per interagire e organizzare il lavoro in team.
Prerequisiti
I prerequisiti riguardano l'acquisizione delle nozioni base relative alle reti informatiche (corso di Reti -I), della progettazione del software (Ingegneria del Software e Programmazione ad Oggetti), della programmazione WEB (Metodologie di Programmazione per il Web) e della Sicurezza (Cybersecurity I).
Metodi didattici
l corso si avvale di: - Lezioni frontali (per un totale di 32 ore, 4 crediti). - Fasi di lavoro guidato in laboratorio (per un totale di 40 ore, 5 crediti). - Fasi di lavoro laboratoriale, individuali o in gruppo, gestite in autonomia con il supporto del docente.
Altre informazioni
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e
consultando la pagina dedicata del sito di Ateneo:

https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa

Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Modalità di verifica dell'apprendimento
La verifica dell'apprendimento di conoscenze e competenze si articola in due fasi:
1- Un esame scritto sulla parte del programma di teoria, suddiviso in tre parti (una per ogni parte del corso: reti cablate, reti wireless e protocolli multimediali). Ogni parte è a sua volta suddivisa in domande ed esercizi.
2- Dimostrazione del funzionamento del progetto sviluppato con colloquio di gruppo che include la verifica delle competenze acquisite a livello individuale.

Il voto finale tiene conto del risultato raggiunto in ciascuna fase di verifica. E’ necessario raggiungere la sufficienza su entrambi gli aspetti: teoria e progetto.
Programma esteso
Il programma si ariticola in due moduli corredati di una fase di sviluppo guidato in laboratorio.

Modulo 1 (teoria, lezioni frontali): Datalink, Ethernet, ARP, switch. Introduzione alle reti wireless: trasmissione dei segnali via radio, wi-fi, bluetooth, ... Trasmissione multimediale su rete Internet. Applicazioni distribuite: comunicazione attraverso reti private e pubbliche. Message brokers. Mosquitto, RabbitMQ. API Rest: principi generali, scoperta degli URI, gestione delle versioni. Sicurezza e autenticazione: a. Autenticazione e sicurezza in Mosquitto. b. Autenticazione e sicurezza in RabbitMQ. OAuth 2.0: autenticazione, token, utilizzo del token.
Modulo 2 (design e sviluppo del progetto: lezioni frontali e sessioni di lavoro in laboratorio): Architetture a Microservices, server stateless. approccio RPC, approccio Event-driven. Architetture IoT+Microservices. Tecniche di progettazione: a. Domain driven Design, b. Event Sourcing Design. Accesso ai Servizi tramite Gateway REST. Laboratorio: Illustrazione progetti. Progettazione di Un gateway. Progettazione di un microservizio (DDD). Sviluppo di un'applicazione distribuita seguendo lo schema proposto negli esempi forniti dal docente.
Risultati di apprendimento attesi
- Conoscenza e capacità di comprensione: principali architetture e caratteristiche delle reti informatiche locali con e senza fili; servizi offerti dal livello data-link ed loro interfacciamento con il livello di rete; caratteristiche e requisiti della trasmissione di dati multimediali; principi base e tecniche usate per realizzare applicazioni distribuite a microservizi.
- Capacità di applicare conoscenza e comprensione: applicare le conoscenze acquisite per sviluppare un’applicazione basata su microservizi che si interfacci con dispositivi IoT connessi ad una rete locale. Nella progettazione dell’applicazione si dovranno adottare le tecniche/ metodologie acquisite durante il corso di ingegneria del software.
- Autonomia di giudizio: nello sviluppo dell’applicazione bisognerà essere in grado in modo autonomo di analizzare differenti soluzioni architetturali e scelte implementative, identificarne i vantaggi e svantaggi e selezionare le soluzioni più appropriate.
- Abilità comunicative: si dovrà essere in grado di esporre in modo sintetico le caratteristiche della propria applicazione e le scelte architetturali o implementative fatte argomentandone la loro efficacia.
- Capacità di apprendere: si dovrà essere in grado di interagire con diversi dispositivi e piattaforme sviluppati in accordo ai principi generali acquisiti durante il corso, ma che offrono interfacce specifiche differenti, apprendendendo in modo autonomo le caratteristiche peculiari dei servizi offerti per sviluppare un’applicazione capace di interagire con essi.
Ultimo aggiornamento:09-09-2026 00:14:31