SOFTWARE ARCHITECTURES
- Anno accademico
- 2024/2025 Programmi anni precedenti
- Titolo corso in inglese
- SOFTWARE ARCHITECTURES
- Codice insegnamento
- CM0633 (AF:513761 AR:286783)
- Lingua di insegnamento
- Inglese
- Modalità
- Blended (in presenza e online)
- Crediti formativi universitari
- 6
- 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
- Comprendere quali sono le principali caratteristiche di un'architettura software di cui tenere conto nella progettazione di un sistema software
- Discernere le diverse tipologie di architetture software esistenti rispetto alle loro caratteristiche
Capacità di applicare conoscenza e comprensione
- 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
Per quanto riguarda la valutazione del voto:
A. i punteggi nell'intervallo 18-22 saranno assegnati in presenza di:
- sufficiente conoscenza delle architetture software più comuni
- sufficienti competenze nello sviluppo di architetture software comuni
B. i punteggi nell'intervallo 23-26 saranno assegnati in presenza di:
- discreta o buona conoscenza delle architetture software più comuni
- discreta o buona competenza nello sviluppo di architetture software comuni
funzionamento economico dei servizi pubblici;
C. i punteggi nell'intervallo 27-30 saranno assegnati in presenza di:
- ottima conoscenza delle architetture software più comuni
- ottima competenza nello sviluppo di architetture software comuni
Modalità di esame
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.