Architetture software

Anno accademico 2014-2015

Prof. Luca Cabibbo



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.


Introduzione al corso

Introduzione al corso.

Architetture software

In breve, la disciplina delle architetture software – o architettura del software

Obiettivo formativo

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à.

Prerequisiti

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

Programma definitivo del corso di Architetture software relativo all'anno accademico 2014-2015.


Lezioni

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
   


Materiale didattico

Materiale didattico di riferimento

Il materiale didattico di riferimento per il corso, disponibile su questo sito web, è costituito da:

Articoli e presentazioni (in programma) 

Articoli e presentazioni (letture consigliate, ma non in programma)

Altro materiale didattico, di consultazione

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. 

Libri su architetture software

[SAP]
Len Bass, Paul Clements, Rick Kazman
Software architecture in practice (third edition)
Pearson, Addison Wesley, 2013
[POSA1]
Frank Buchmann, Regine Meunier, Peter Sommerlad, Michael Stal
Pattern-oriented software architecture – a system of patterns
John Wiley & Sons, 1996
[POSA4]
Frank Buchmann, Kevlin Henney, Douglas C. Schmidt
Pattern-oriented software architecture – a pattern language for distributed computing
John Wiley & Sons, 2007
[SSA]
Nick Rozanski e Eoin Woods
Software Systems Architecture (second edition)
Addison Wesley, 2012
[DSA]
Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford
Documenting software architecture, views and beyond
Addison Wesley, 2003
[ESA]
Paul Clements, Rick Kazman, Mark Klein
Evaluating software architectures - methods and case studies
Addison Wesley, 2002
[TMD]
Richard N. Taylor, Nenad Medvidovic, Eric M. Dashofy
Software architecture - foundations, theory, and practice
John Wiley and Sons, 2010
[Gorton]
Ian Gorton
Essential software architecture
Springer, 2006
 
[Cheesman&Daniels]
J. Cheesman, J. Daniels
UML Components - un semplice processo per la specifica di software basato su componenti
Addison-Wesley, 2002
[Papazoglou]
Michael P. Papazoglou
Web services: Principles and Technology
Pearson Education, 2008
[ACKM]
Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju
Web Services, concepts, architectures and applications
Springer-Verlag, 2004

Libri e tutorial su sistemi distribuiti e tecnologie enterprise

[CDK/4e]
George Coulouris, Jean Dollimore, Tim Kindberg
Distributed systems, concepts and design (4th edition)
Pearson, Addison Wesley, 2005
[EIP]
Gregor Hohpe, Bobby Woolf
Enterprise Integration Patterns - Designing, Building, and Deploying Messaging Solutions
Addison-Wesley, 2004
[Liu]
M. L. Liu
Distributed Computing - Principles and Applications
Pearson Education, 2004
[Java RMI]
The Java Tutorials: RMI
[Java EE]
The Java EE 7 Tutorial

Libri sulla progettazione orientata agli oggetti 

[GoF]
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Design Pattern - Elements of Reusable Object-oriented Software
Addison-Wesley, 1995
[GoF] in italiano
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Design Pattern - Elementi per il riuso di software a oggetti
Addison-Wesley, 2002
[Larm/3e]
Craig Larman
Applicare UML e i pattern - Analisi e progettazione orientata agli oggetti
Terza edizione
Pearson Education Italia, 2005

Sito web del corso


Esami

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:

Testi di prove d'esame di appelli conclusi

Non sono disponibili testi d'esame di appelli conclusi.


Informazioni per gli studenti del corso di Ingegneria del software (ord. 509/99)

Informazioni per gli studenti del corso spento di Ingegneria del software (della Laurea Specialistica in Ingegneria informatica secondo l'ordinamento 509/99):