Corso di Ingegneria del Software @ UniVE 2004/2005
Torna in cima alla pagina.
Salta alla modalità d'esame
Gli argomenti svolti a lezione sono trattati in questi libri
di testo:
- Roger S. Pressman, Principi di Ingegneria del Software,
4 ed., McGraw-Hill, 2004, ISBN 88-386-6216-9.
- Ian Sommerville, Software Enginnering. 7th ed., Addison Wesley. 2004, ISBN 0-321-21026-3.
È anche consigliato un testo su UML, come ad esempio:
- Martin Fowler,
UML Distilled (Terza Edizione). Addison-Wesley, 2004, ISBN 88-7192-207-7.
Infine, un libro interessante, suggerito a coloro che desiderano
approfondire gli argomenti del corso:
- Frederick P. Brooks, The Mythical Man-Month: Essays on
Software Engineering (2nd Edition), Addison-Wesley 1999
Torna in cima alla pagina.
Salta all'orario delle lezioni
L'esame può essere superato in uno dei due modi seguenti:
- Sostenendo una prova scritta durante le sessioni d'esame regolari.
La prova scritta è, di norma, composta da una serie di domande
a risposta aperta e/o semplici esercizi. Gli studenti che superano la
prova scritta con almeno 18/30 possono registrare direttamente il
voto, o sostenere una prova orale opzionale con cui possono
migliorare (o peggiorare) il voto dello scritto.
- Svolgendo una serie di esercitazioni che verranno proposte a
lezione. Gli studenti che consegneranno tutte le esercitazioni entro
le scadenze fissate, e che otterranno una valutazione finale di almeno
18/30, possono registrare direttamente il voto senza sostenere
la prova orale.
Modalità di svolgimento dei progetti
- Il progetto deve essere svolto da gruppi di 3 persone. Tutti i
membri del gruppo riceveranno la stessa valutazione del progetto.
- Il voto conclusivo del corso sarà basato sulla media
aritmetica dei voti dei progetti. In sede di valutazione finale, il
docente si riserva la facoltà di chiedere chiarimenti agli
studenti in merito al contenuto dei progetti da loro consegnati. Viene
assunto che tutti i membri di ciascun gruppo abbiano
contribuito fattivamente allo svolgimento dell'intero progetto. Il
voto finale potrà subire delle leggere variazioni in più
o in meno in base alle risposte date a seguito delle richieste di
chiarimento.
- Ciascun progetto deve essere consegnato entro la data indicata di
volta in volta. Gli studenti hanno a disposizione complessivamente un
bonus di 5 giorni di ritardo. Ogni giorno di ritardo nella
consegna di uno qualsiasi dei progetti verrà decurtato dal
bonus complessivo. Una volta esaurito il bonus, ogni eventuale
consegna ritardata viene penalizzata con una diminuzione di 6
punti nella valutazione del progetto ritardato. In nessun caso
verrà accettato un progetto consegnato oltre 7 giorni dalla
data di consegna fissata.
- Ogni eventuale problema non contemplato dal presente regolamento
verrà risolto a insindacabile giudizio del docente del
corso.
- La documentazione dei progetti deve essere consegnata in formato
cartaceo, oppure in formato elettronico (PDF oppure
Postscript zippato) via mail al docente
(marzolla@dsi.unive.it). Ricordatevi
di indicare sempre nella documentazione i nomi e numeri di
matricola dei componenti del gruppo, nonché la dicitura
"Corso di Ingegneria del Software, Università di
Venezia".
La generazione di file in formato PDF è possibile
utilizzando GhostScript (liberamente
disponibile in rete) seguendo queste istruzioni. In
alternativa è possibile consegnare il progetto in formato
PostScript (eventualmente compresso) stampando su file utilizzando
come driver una qualunque stampante PostScript (ad esempio sotto
Windows si può utilizzare il driver per Apple LaserWriter II
NT). Tutte le stampanti laser del Dipartimento dovrebbero essere
PostScript, per cui è possibile selezionarne una e stampare su
file.
- Progetto 1, 19 ottobre 2004
- Scrivere il piano di un progetto per lo sviluppo di un sistema di
home banking, che consente ai clienti di una banca l'accesso alle
informazioni del proprio conto corrente tramite un browser web; i
clienti possono anche effettuare alcune operazioni (bonifici,
ricariche telefoniche) sempre via web.
Consegna: venerdì 29 ottobre 2004
- Progetto 2, 2 novembre 2004
- Scrivere il documento di definizione e di
specifica dei requisiti per il sistema di home banking di cui
al Progetto 1. Limitatevi a considerare un sottoinsieme significativo
e sufficientemente ampio di tutti i requisiti di un sistema del
genere. È richiesto di considerare sia requisiti
funzionali che requisiti non funzionali, scegliendoli
tra quelli che ritenete più importanti e/o significativi. Se lo
volete, aiutatevi con la metodologia VORD per individuare i requisiti.
Il progetto richiede la consegna di un unico documento che contenga,
in due sezioni distinte, la definizione dei requisiti e la conseguente
specifica.
Consegna: venerdì 12 novembre 2004
- Progetto 3, 18 novembre 2004
- Dare la specifica del progetto per una parte significativa del
sistema di Home Banking di cui ai task 1 e 2. La specifica del
progetto deve contenere i seguenti elementi:
- Descrizione architetturale del sistema, utilizzando uno o
più stili di architettura visti a lezione (client-server,
macchina astratta, pipe and filter ecc.) oppure stili di architettura
sviluppati ad hoc; l'architettura proposta deve essere accompagnata da
una descrizione in linguaggio naturale che aiuti a capirne il
funzionamento, giustifichi le scelte fatte, nonché illustri eventuali
vantaggi e svantaggi dell'architettura proposta.
- Definizione dei moduli e loro rappresentazione gerarchica (per
rappresentazione gerarchica si intende la gerarchia di controllo, o
gerarchia call-and-return, non i diagrammi di ereditarietà o
simili). Ricordate che la gerarchia di controllo serve a rappresentare
in che modo i moduli comunicano tra di loro; non è detto che i
moduli debbano tassativamente essere procedure o funzioni di un
programma sequenziale monolitico.
- Descrizione procedurale in linguaggio naturale che indichi il
comportamento e le funzionalità dei moduli.
- Descrizione delle interfacce dei moduli.
- Un dizionario dei dati che descriva, molto sinteticamente, almeno
parte dei nomi utilizzati nei punti precedenti.
NB: Non bisogna utilizzare UML nella definizione degli schemi o
diagrammi.
Consegna: lunedì 6 dicembre 2004. È possibile
consegnare via mail il documento in formato PDF o PostScript zippato
(sono state aggiunte alcune informazioni su come generare il file PDF sotto
Windows). In alternativa è possibile consegnare il progetto
cartaceo in portineria.
- Progetto 4, 30 novembre 2004
- Descrivere un sottoinsieme significativo del sistema di home
banking utilizzando diagrammi UML. È richiesto l'uso dei
diagrammi di Caso d'Uso (Use Case Diagram); inoltre è richiesta
la descrizione sia di aspetti statici che dinamici del sistema in
esame, facendo uso dei diagrammi che ritenete più
indicati. Ciascun diagramma deve essere accompagnato da una
descrizione testuale che lo illustri.
Consegna: venerdì 17 dicembre 2004
Torna in cima alla pagina.
Salta ai lucidi delle lezioni
Orario AA 2004/2005
Lunedí |
11:00—13:00, Aula B |
Martedí |
11:00—13:00, Aula B |
Il ricevimento studenti si svolge di norma il lunedì dalle
15:00 alle 17:00, oppure previo accordo via mail.
Torna in cima alla pagina.
Salta agli esami
N.B. I lucidi non sono da considerare come sostitutivi
né dei testi di riferimento né della frequenza alle lezioni,
che costituiscono importanti elementi per una buona preparazione dell'esame;
i lucidi messi a disposizione costituiscono soltanto uno schema di parte
delle lezioni.
- Lezione 1, 20/09/2004
- Introduzione all'Ingegneria del Software (Sommerville, Cap. 1 - Pressman, Cap. 1)
[SXI] [PDF 4up]
- Lezione 2, 21/09/2004
- Ingegneria di Sistema (Sommerville, Cap. 2 - Pressman copre l'argomento solo in parte in 10.1, 10.2, 10.3)
[SXI] [PDF 4up]
- Lezione 3, 05/10/2004
- Modelli di Processo (Sommerville, Cap. 4 - Pressman, Cap. 3)
[SXI] [PDF 4up]
- Lezione 4, 18/10/2004, 19/10/2004
- Pianificazione temporale (Sommerville, Cap. 5 - Pressman, Cap. 5 - Brooks)
[SXI] [PDF 4up]
Approfondimenti
- F. T. Backer, "Chief Programmer Team Management of Production Programming", IBM Systems Journal, 1 (jan, 1972), pp. 56--73
- Cusumano, M. and Selby, R, "How Microsoft Builds Software", Commun. ACM 40, 6 (June 1997), 53-61
- "Software Development Teams", Commun, ACM 47, 12 (December 2004), 95--99
- Amrit Tiwana, Mark Keil, The one-minute risk assessment tool, ACM Queue, Vol. 2, No. 9 - Dec/Jan 2004-2005
- Lezione 5, 25/10/2004
- Ingegneria dei requisiti (Sommerville, Cap. 6 - Pressman, Cap. 7)
[SXI] [PDF 4up]
- Lezione 6, 26/10/2004
- Analisi e Definizione dei requisiti (Sommerville, Cap. 7)
[SXI] [PDF 4up]
- Lezione 7, 02/11/2004
- Modelli di sistema (Sommerville, Cap. 6 - Pressman, Cap. 8)
[SXI] [PDF 4up]
- Lezione 8, 08/11/2004, 09/11/2004
- Progettazione (Pressman, Cap. 9)
[SXI] [PDF 4up]
Approfondimenti
- D. L. Parnas, "On the criteria to be
used in decomposing systems into modules", Communications of the
ACM, Volume 15, Issue 12 (December 1972), pp 1053-1058.
- W. P. Stevens, G. J. Myers, L. L. Constantine, Structured
design, IBM Systems Journal, Vol. 38, N. 2-3, 1999, pp
231-256. Una copia cartacea verrà distribuita a lezione.
- Lezione 9, 15/11/2004, 17/11/2004
- Progettazione architetturale (Pressman, Cap 10)
[SXI] [PDF 4up]
- Lezione 10, 22/11/2004
- Progettazione di interfacce utente (Pressman, Cap 15)
[SXI] [PDF 4up]
- Lezione 11, 23/11/2004, 29/11/2004
- UML
[SXI] [PDF 4up]
Approfondimenti
- Introduzione a UML di Mattia Grosso,
Dipartimento di Informatica, Università Ca' Foscari di Venezia
- ArgoUML, un
tool open-source scritto in Java per disegnare diagrammi UML
- UML Tutorial (in inglese)
- Lezione 12, 30/11/2004, 6/12/2004, 7/12/2004
- Verifica e Validazione (Pressman, Cap. 17 e 18)
[SXI] [PDF 4up]
Approfondimenti
- Daily build and smoke test
- Linus' law, Wikipedia
- Thomas J. McCabe, "A Complexity Measure", IEEE Trans. Software
Engineering, vol. SE-2 n. 4, dec 1976 [pdf, 1.7M]; introduce il concetto di complessità ciclotomica
- Thomas J. McCabe, Charles W. Butler, Design Complexity Measurement and Testing,
Comm. ACM, vol. 32 n. 12 (dec 1989), pp. 1415 - 1425
- Arthur H. Watson, Thomas J. McCabe, Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric, NIST Special Publication 500-235
- Lezione 13, 9/12/2004, 13/12/2004, 14/12/2004
- Affidabilità (Sommerville, Cap 18 e 19)
[SXI] [PDF 4up]
- Lezione 14, 15/12/2004
- Gestione delle persone (Sommerville)
[SXI] [PDF 4up]
- Esercizi
- [SXI] [PDF 4up]
Torna in cima alla pagina.
Appelli d'esame AA 2004/2005
|
Prima Sessione |
|
Scritto |
Orale |
I |
17 gennaio 2005 ore 14:00-16:00, Aula A
[Testo.pdf]
|
19 gennaio 2005 ore 14:00-16:00, Aula C
|
II |
7 febbraio 2005 ore 14:00-16:00, Aula A
[Testo.pdf]
|
9 febbraio 2005 ore 14:00-16:00, Aula C
|
|
Seconda Sessione |
|
Scritto |
Orale |
I |
6 giugno 2005 ore 10:30-12:30 |
|
II |
27 giugno 2005 ore 10:30-12:30 |
|
|
Terza Sessione |
|
Scritto |
Orale |
I |
5 settembre 2005 ore 10:30-12:30 |
|
Torna in cima alla pagina.