Architetture software

Anno accademico 2009-2010

Prof. Luca Cabibbo



Avvisi

(È disponibile anche un elenco completo degli avvisi.)


Alcune informazioni circa lo svolgimento degli esami di Architetture software e Ingegneria del software nel mese di febbraio 2010:


Alcune informazioni circa lo svolgimento del corso di Architetture software nei prossimi giorni


Le lezioni del corso di Architetture software si svolgeranno


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 e le architetture orientate ai servizi.

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 è 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 e Sicurezza dei sistemi informatici e delle reti.

Per questo motivo, la partecipazione al corso:

È inoltre utile una buona conoscenza della lingua inglese.


Programma

Programma del corso di Architetture software relativo all'anno accademico 2009-2010.


Lezioni

Le lezioni del corso di Architetture software si svolgeranno

Argomenti delle lezioni

Data Argomento Materiale didattico
5 ottobre 2009 Introduzione al corso asw010
Introduzione alle architetture software asw110
7 ottobre 2009 Architetture software: concetti asw120
opzionale: [IEEE 1471-2000]
9 ottobre 2009 Punti di vista e viste asw140
[Kruchten 1995]
     
12 ottobre 2009 Ottenere qualità: tattiche, stili e prospettive architetturali asw160
  Introduzione ai connettori e al middleware asw810
esempi: workspace Eclipse
14 ottobre 2009 Processi software (cenni) asw210
opzionale: [Bohem 1988]
  Processo di definizione dell'architettura asw220
  Requisiti e scenari: requisiti asw250
16 ottobre 2009 Comunicazione interprocesso e socket asw820
esempi: workspace Eclipse
     
19 ottobre 2009 Requisiti e scenari: scenari asw250
  Tattiche architetturali: introduzione, tattiche per le prestazioni asw310
[Bachmann, 2007] sezioni 1-6
opzionale: [Scott, 2009]
opzionale: [Kim, 2009]
21 ottobre 2009 Tattiche architetturali: tattiche per le prestazioni, tattiche per la modificabilità asw310
23 ottobre 2003 Oggetti distribuiti e invocazione remota asw830
esempi: workspace Eclipse
     
26 ottobre 2009 Tattiche architetturali: tattiche per la disponibilità asw310
  Oggetti distribuiti e invocazione remota: legame dei parametri  
28 ottobre 2009 Tattiche architetturali: tattiche per la sicurezza (cenni) asw310
  Stili architetturali e pattern asw350
30 ottobre 2009 POSA: Un catalogo di pattern architetturali (prima parte): Domain Model, Layers, Domain Object asw361
     
2 novembre 2009 POSA: Un catalogo di pattern architetturali (prima parte): Pipes and Filters asw361
4 novembre 2009 POSA: Un catalogo di pattern architetturali (seconda parte): MVC, Shared Repository, database Access Layer (cenni), Microkernel asw362
6 novembre 2009 Messaging asw840
esempi: workspace Eclipse
     
9 novembre 2009 POSA: Un catalogo di pattern architetturali (seconda parte): Reflection asw362
  Architetture dei sistemi distribuiti: introduzione, architetture client/server asw410
13 novembre 2009 Architetture dei sistemi distribuiti - architetture a oggetti distribuiti; Proxy; Broker asw410
     
     
     
7 gennaio 2010 Mini tutorial: modellazione di attività e processi asw910
8 gennaio 2010 Messaging (e integrazione di applicazioni) asw430
     
11 gennaio 2010 Introduzione a Java EE - introduzione alla piattaforma Java EE; Enterprise Bean; session bean; message-driven bean asw850
esempi: workspace Eclipse
12 gennaio 2010 Architetture basate su componenti asw450
14 gennaio 2010 Mini tutorial: UML components asw920
     
     
18 gennaio 2010 Un catalogo di punti di vista asw510
  Punto di vista funzionale - introduzione al punto di vista funzionale; interessi; modelli asw520
19 gennaio 2010 Punto di vista funzionale - attività; problemi e insidie  
  Mini tutorial: Validazione dell'architettura asw950
21 gennaio 2010 Web Services asw860
esempi: workspace Eclipse
     
25 gennaio 2010 Service Oriented Architecture asw470
26 gennaio 2010 Service Oriented Architecture  
  Mini tutorial: Web Services development lifecycle asw930
  Punto di vista delle informazioni (cenni) asw530
28 gennaio 2010 Seminario su Cloud computing - svolto nell'ambito del corso di Sistemi informativi cc_si
  Seminario su Cloud computing - svolto nell'ambito del corso di Architetture software cc_asw
   


Homework

Gli homework, scritti a mano, vanno fatti pervenire al docente durante le lezioni del corso o il ricevimento studenti, nei tempi indicati nella seguente tabella.

Homework Argomento Riferimenti Data pubblicazione Data consegna
1 Criteri per la decomposizione in moduli Parnas, 1972 7 ottobre 2009 21 ottobre 2009
2 Architettura a plug-in Eclipse Platform Technical Overview
Notes on the Eclipse Plug-in Architecture
21 ottobre 2009 4 novembre 2009
3 Tattiche per la modificabilità Eclipse Platform Technical Overview
dispensa asw310
Rapporto tecnico su tattiche per la modificabilità
4 novembre 2009 18 novembre 2009
1 dicembre 2009
4 Realizzazione di una semplice applicazione di chat basata su JMS 1 dicembre 2009 22 dicembre 2009
5 Analisi e progettazione a componenti Tutorial su UML Components 14 gennaio 2010 28 gennaio 2010
         

 


Materiale didattico

Materiale didattico di riferimento

Il materiale didattico di riferimento per il corso, che sarà 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. 

Altri articoli e presentazioni - in corso di aggiornamento

Altro materiale didattico sarà predisposto facendo riferimento, tra l'altro, anche ai seguenti libri:

Libri su architetture software
[SAP]
Len Bass, Paul Clements, Rick Kazman
Software architecture in practice (2nd edition)
Pearson, Addison Wesley, 2003
[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
Addison Wesley, 2005
[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
[DEA/2e]
Inderjeet Singh, Beth Stearns, Mark Johnson and the Enterprise Team
Designing Enterprise Applications with the J2EE Platform (second edition)
Addison-Wesley, 2002
Libri 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
[Mastering EJB/4ed]
Rima Patel Sriganesh, Gerald Brose, Micah Silverman
Mastering Enterprise JavaBeans 3.0 (4th edition)
Wiley, 2006
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

Newsgroup del corso


Esami

L'esame di Architetture software consiste (la modalità d'esame potrebbe cambiare) 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. (Sul sito prenota.uniroma3.it per gli studenti di Ingegneria del software). 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 (o sul sito prenota.uniroma3.it, per gli studenti di Ingegneria del software) che non contatteranno il docente entro 24 ore dall'esame non saranno ammessi all'esame stesso.

Testi di prove d'esame di appelli conclusi

Non sono disponibili testi d'esame di appelli conclusi.