Questo sito contiene il materiale didattico del corso di Architetture software erogato nell'anno accademico 2014-2015, ovvero all'ultima edizione "autonoma" di questo corso.
Nell'anno accademico 2015-2016 il corso di Architetture software sarà invece mutuato dal nuovo corso di Architettura dei sistemi software.
Dopo di che, il corso di Architetture software verrà spento.
Per ulteriori informazioni, gli studenti sono invitati a consultare il sito del corso del corso di Architettura dei sistemi software.
In breve, la disciplina delle architetture software – o architettura del software
Il corso di Architetture software ha l’obiettivo di presentare gli aspetti sia metodologici che tecnologici relativi alle architetture software, che hanno un ruolo fondamentale nel raggiungimento degli obiettivi di qualità (requisiti non funzionali) dei sistemi software.
Specificamente, ha l’obiettivo di presentare metodologie e strumenti per la progettazione e la valutazione di architetture software e, in particolare, di architetture per sistemi software distribuiti e di tipo enterprise, incluse le architetture basate su componenti, le architetture orientate ai servizi e i sistemi software sul cloud.
Alla fine del corso lo studente dovrebbe sapere impostare un progetto di un’architettura software, analizzandone dettagli e problematiche tecnologiche e metodologiche, e valutare l’architettura in termini di raggiungimento di obiettivi di qualità.
Il corso non prevede specifici prerequisiti: tutto ciò che è stato studiato
sarà utile - ma niente indispensabile.
Un prerequisito importante è certamente il corso di
Analisi e progettazione del software.
Altri prerequisiti molto utili sono i corsi di Sistemi informativi su web
e
Sistemi operativi. Utile Basi di dati II, così come Programmazione concorrente,
Sicurezza dei sistemi informatici e delle reti e Big data.
Per questo motivo, la partecipazione al corso:
È inoltre utile una buona conoscenza della lingua inglese.
Programma definitivo del corso di Architetture software relativo all'anno accademico 2014-2015.
Data | Argomento | Materiale didattico |
2 ottobre 2014 | Introduzione al corso | asw010 |
Introduzione alle architetture software | asw110 | |
6 ottobre 2014 | Architetture software: concetti |
asw120
opzionale: [ISO 42010] |
9 ottobre 2014 | Introduzione ai connettori |
asw810
esempi: workspace Eclipse |
13 ottobre 2014 | Descrizioni architetturali, punti di vista e viste |
asw140
opzionale: [Kruchten 1995] |
16 ottobre 2014 | Ottenere qualità: stili, tattiche e prospettive architetturali | asw160 |
Processo di definizione dell'architettura | asw220 | |
20 ottobre 2014 | Comunicazione interprocesso e socket: comunicazione interprocesso; un'applicazione client/server UDP; un'applicazione client/server TCP; messaggi da scambiare |
asw820
esempi: workspace Eclipse |
23 ottobre 2014 | Tattiche architetturali: introduzione, tattiche per le prestazioni (cenni) |
asw310
opzionale: [Kim, 2009] |
Requisiti, interessi e scenari: scenari, applicare gli scenari | asw250 | |
27 ottobre 2014 | Tattiche architetturali: Tattiche per la modificabilità |
asw310
opzionale: [Bachmann, 2007] sezioni 1-6 |
30 ottobre 2014 | Oggetti distribuiti e invocazione remota: RPC; RMI; Java RMI; semantica dell'invocazione remota |
asw830 esempi: workspace Eclipse |
3 novembre 2014 | Tattiche architetturali: tattiche per la modificabilità: tattiche per defer binding time | asw310 |
Oggetti distribuiti e invocazione remota: concorrenza, servizi remoti con stato oppure con stato della sessione; legame dei parametri | asw830 | |
6 novembre 2014 | non c'è lezione causa maltempo | |
10 novembre 2014 | Pattern software | asw350 |
POSA: Un catalogo di pattern architetturali (prima parte): Introduzione; Domain Model; Domain Object | asw360 | |
13 novembre 2014 | POSA: Un catalogo di pattern architetturali (prima parte): Layers | asw360 |
Tattiche architetturali: tattiche per la disponibilità |
asw311
opzionale: [Scott, 2009] sezione 2 |
|
17 novembre 2014 | Tattiche architetturali: tattiche per la disponibilità | asw311 |
20 novembre 2014 | Tattiche architetturali: ancora su tattiche per la disponibilità | asw311 |
POSA: Un catalogo di pattern architetturali (prima parte): Pipes and Filters | asw360 | |
24 novembre 2014 | Messaging (middleware): messaging, JMS |
asw840 esempi: workspace Eclipse |
27 novembre 2014 | Messaging (middleware): JMS | asw840 |
POSA: Un catalogo di pattern architetturali (prima parte): ancora su Pipes and Filters | asw360 | |
POSA: Un catalogo di pattern architetturali (seconda parte): Shared Repository | asw361 | |
1 dicembre 2014 | POSA: Un catalogo di pattern architetturali (seconda parte): MVC; Database Access Layer (cenni); Microkernel; Reflection | asw361 |
4 dicembre 2014 | Architetture dei sistemi distribuiti: introduzione; middleware; un po' di storia; stile client/server | asw410 |
8 dicembre 2014 | festa, non c'è lezione | |
11 dicembre 2014 | Architetture dei sistemi distribuiti: stile peer-to-peer | asw410 |
Architetture a oggetti distribuiti: architettura a oggetti distribuiti; Broker | asw420 | |
15 dicembre 2014 | Messaging (stile architetturale) e integrazione di applicazioni: messaging; pattern per il messaging; integrazione di applicazioni | asw430 |
18 dicembre 2014 | Componenti (middleware) |
asw850
esempi: workspace Eclipse |
Interruzione natalizia | ||
8 gennaio 2015 | Architetture basate su componenti | asw440 |
12 gennaio 2015 | Architetture basate su componenti: discussione | asw440 |
Cluster per architetture a componenti | asw442 | |
Una metodologia per la specifica di software basato su componenti (cenni) | asw445 | |
15 gennaio 2015 | Web Services | asw450 |
19 gennaio 2015 | Web Services | asw450 |
Programmazione di Web Services |
asw860
esempi (ws): workspace Eclipse esempi (rest): workspace Eclipse |
|
21 gennaio 2015 | Service-Oriented Architecture | asw455 |
22 gennaio 2015 | Cloud Computing |
asw470
[Above the Clouds, 2009] opzionale: Overview of Amazon Web Services |
Il materiale didattico di riferimento per il corso, disponibile su questo sito web, è costituito da:
Il corso ed il relativo materiale didattico è ispirato ad un certo numero di libri sulle architetture software, che sono pertanto utili per la consultazione (dovrebbero essere quasi tutti disponibili nella biblioteca di ateneo) ma non necessari, soprattutto in caso di regolare frequenza alle lezioni del corso.
L'esame di Architetture software consiste di:
Le date previste per le prove scritte dell'esame di Architetture software sono:
Per partecipare all'esame è necessario prenotarsi all'esame presso il Portale dello studente. La prenotazione va fatta entro quattro giorni lavorativi (che corrispondono a circa una settimana effettiva) prima della data dell'appello (vedi date indicate sopra).
Chi avesse problemi a prenotarsi presso il sito delle prenotazioni è invitato caldamente a contattare il docente per posta elettronica entro gli stessi termini.
Per motivi organizzativi, gli studenti non prenotati sul Portale dello studente che non contatteranno il docente entro 24 ore dall'esame non saranno ammessi all'esame stesso.
In particolare, si ricorda che, dalla sessione d’esame di giugno/luglio 2012, le prenotazioni agli esami, sia per i corsi appartenenti all’Ordinamento 509/99 che 270/04, dovranno essere effettuate obbligatoriamente attraverso il Portale dello studente.
In particolare, gli studenti che non sono prenotati ad un esame non potranno sostenere l'esame stesso, in quanto il verbale d’esame verranno stampati in automatico in base alla prenotazione sul portale: né il docente né la segreteria didattica possono aggiungere nominativi di studenti che non risultano prenotati.
Fonti:
Non sono disponibili testi d'esame di appelli conclusi.
Informazioni per gli studenti del corso spento di Ingegneria del software (della Laurea Specialistica in Ingegneria informatica secondo l'ordinamento 509/99):