SOFTWARE ARCHITECTURES

Anno accademico
2022/2023 Programmi anni precedenti
Titolo corso in inglese
SOFTWARE ARCHITECTURES
Codice insegnamento
CM0639 (AF:398320 AR:215018)
Modalità
In presenza
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
L'obiettivo principale di questo corso è insegnare i fondamenti delle architetture software (e in particolare quali aspetti dovrebbero essere presi in considerazione quando si valuta quale architettura scegliere per sviluppare un sistema software) e i più importanti modelli architetturali che vengono oggi adottati in sistemi software moderni.
- 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
- Scegliere un'architettura software appropriata (o una combinazione di più architetture) durante la progettazione di un sistema software
Conoscenza approfondita dei linguaggi di programmazione imperativi e orientati agli oggetti. Conoscenza di alto livello dei principali pattern orientati agli oggetti e delle applicazioni Web e/o cloud.
Caratteristiche dell'architettura del software:
- 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
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).
Mark Richards, Neal Ford: “Fundamentals of Software Architecture”,O'Reilly Media, January 2020
Esame scritto e progetto di gruppo o sessioni di esercizi settimanali.
Lezioni frontali con slide ed esempi di sviluppo software. Esercitazioni di programmazione, svolti anche in aula.
Inglese
scritto
Programma definitivo.
Data ultima modifica programma: 20/06/2022