SOFTWARE ARCHITECTURES
- Anno accademico
- 2025/2026 Programmi anni precedenti
- Titolo corso in inglese
- SOFTWARE ARCHITECTURES
- Codice insegnamento
- CM0639 (AF:576795 AR:323799)
- Lingua di insegnamento
- Inglese
- Modalità
- Blended (in presenza e online)
- Crediti formativi universitari
- 6 su 12 di SOFTWARE ARCHITECTURES AND DEVELOPMENT METHODOLOGY
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- INF/01
- Periodo
- I Semestre
- Anno corso
- 1
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
Risultati di apprendimento attesi
- Discernere le diverse tipologie di architetture software esistenti rispetto alle loro caratteristiche
- Scegliere un'architettura software appropriata (o una combinazione di più architetture) durante la progettazione di un sistema software
Prerequisiti
Contenuti
- Modularità e accoppiamento
- Caratteristiche operative: disponibilità, prestazioni, scalabilità, recuperabilità
- Caratteristiche strutturali: installabilita', configurabilità, estensibilità, aggiornabilità
- Misurazione delle caratteristiche
Pattern architetturali:
- Architetture monolitiche vs. distribuite
- A strati
- A pipeline
- Microkernel
- Basate su eventi
- Basato sullo spazio
- Microservizi
Scelta dell'architettura migliore per un progetto software considerando gli aspetti economici (in particolare il costo di sviluppo, operation e mantenimento) del sistema.
Sviluppo di architetture software utilizzando una moderna tecnologia (come Spring) e diverse sue tecnologie (come Spring Boot, Spring REST, Spring for Apache Kafka, Spring Web).
Testi di riferimento
Modalità di verifica dell'apprendimento
Modalità di esame
Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.
Graduazione dei voti
A. i punteggi nell'intervallo 18-22 saranno assegnati in presenza di:
- sufficiente comprensione dei requisiti architettonici e dei diversi modelli architettonici
- sufficienti competenze nella scelta dell'architettura giusta durante la progettazione di un sistema software
- sufficienti competenze nello sviluppo di sistemi software distribuiti
B. i punteggi nell'intervallo 23-26 saranno assegnati in presenza di:
- discreta o buona comprensione dei requisiti architettonici e dei diversi modelli architettonici
- discreta o buona competenza nella scelta dell'architettura giusta durante la progettazione di un sistema software
- discreta o buona competenza nello sviluppo di sistemi software distribuiti
C. i punteggi nell'intervallo 27-30 saranno assegnati in presenza di:
- eccellente comprensione dei requisiti architettonici e dei diversi modelli architettonici
- eccellenti competenze nella scelta dell'architettura giusta durante la progettazione di un sistema software
- eccellenti competenze nello sviluppo di sistemi software distribuiti
Metodi didattici
Per la parte online del corso, come attivita' sincrone viene predisposto un forum all'interno della piattaforma Moodle che puo' essere utilizzato dagli studenti per interagire con il docente. Inoltre, viene predisposta una chat in cui gli studenti possono chiedere spiegazioni, approfondimenti e delucidazioni su quanto visto a lezione e sul materiale online.
Per quanto concerne le attivita' asincrone, ogni settimana inoltre vengono caricati materiali online che introducono le basi di diverse tecnologie che permettono di sviluppare architetture software complesse.