Ingegneria del software Turno 2/2005-2006
Indice
News
07/03/06: L'orario delle lezioni viene modificato in 17:45 - 19:15 28/03/06: La lezione del 27/04/2006 sarà in preparazione al compitino, che si svolgerà la settimana seguente in data da destinarsi.
Lezioni cancellate/spostate
Appelli
- 20/4/2006
- 22/6/2006
- 18/7/2006
- 21/9/2006
- 19/10/2006
- 25/1/2007
Anni precedenti
Informazioni generali
Docenti
Corsi di laurea
Modalità d'esame
- Compitini e, per chi non ha fatto o superato i compitini, orale tradizionale
- Orale:
- per chi ha fatto i compitini: verbalizzazione del voto dei compitini, con eventuali brevi domande nel caso di incertezze;
- per chi non ha fatto i compitini o non è soddisfatto del voto dei compitini orale dettagliato; il voto sarà determinato dall’orale.
Prerequisiti al corso
Orari e luogo delle lezioni
- Martedì 17:45-19:15 Aula Beta (218 posti, via Comelico 39)
- Giovedì 17:45-19:15 Aula Beta (218 posti, via Comelico 39)
- link al corso su DSI
Orario di ricevimento studenti
Informazioni specifiche
Siti del corso
Forum del corso, e affini
- Forum sul Dsy di Ingegneria del Software (in comune con turno 1)
- http://www.dsy.it/forum/forumdisplay.php?s=&forumid=85 (hosted forum del professor Ornaghi)
NOTA: per avere la password del Forum chiedere in questo thread
Materiale didattico
Programma del corso
- Parte I. Generalità e Progettazione
- Introduzione all’ingegneria del software;
- Ciclo di vita del Software
- Qualità e Principi
- Cenni su Requisiti ed Analisi
- Progettazione ed Architetture
- Parte II. Analisi, Specifica e Verifica
- Analisi, specifica e verifica nel ciclo di vita
- Specifica
- Operazionale vs dichiarativa
- formale vs informale
- Verifica
- Testing
- Analisi
- Tools
- Parte III. Analisi, Progettazione e programmazione OO (Object Oriented)
- Sarà interfogliata alle parti I e II, specializzandole al caso OO
- In particolare, Principi di OOA&P: patterns
- Introdurrà e userà UML
- Sarà interfogliata alle parti I e II, specializzandole al caso OO
Testi
- Ghezzi, Jazayeri, Mandrioli: Ingegneria del Software - fondamenti e principi, 2° ed., Prentice Hall
- per la parte UML
C. Larman: Applicare UML e i pattern – 3° ed., Pearson 2005
- per la parte UML
Altro materiale consigliato
- Gamma et al: Design Patterns. Prima edizione italiana. Addison-Wesley Italia, 2002
- M. Fowler. UML distilled. Prima edizione italiana. Addison Wesley Italia, 2000
Video delle lezioni
Appunti
(si possono scaricare solo 'dopo aver eseguito il login come utente Dsy e aver inserito la password)
Altro materiale in Internet
Si consiglia l'utilizzo del software free ARGO, scaricabile gratuitamente da http://argouml.tigris.org
Esami passati, tesine, compiti ..
Diario del corso
Lezione del 07/03/2006
- Introduzione al corso
(slide disponibili qui)
Lezione del 09/03/2006
- Nascita dell'ingegneria del software
- Ingegneria del software
- definizioni
- Ciclo di vita del software
- modello a cascata: analisi dei requisiti, disegno e specifica del sistema, codifica e verifica dei moduli, integrazione e verifica del sistema, rilascio e manutenzione
- Altri processi di sviluppo
(slide disponibili qui)
Lezione del 14/03/2006
- Qualità del software
- Classificazione delle qualità
- Le principali qualità
- Qualità comportamentali (robustezza, affidabilità, completezza, usabilità)
- Prestazioni
- Manutenibilità
- Utilizzabilità del software (riusabilità)
(slide disponibili qui)
Lezione del 16/03/2006
- Qualità del software
- Utilizzabilità
- Riusabilità
- Portabilità
= capacità di un sistema software di essere adattato a piattaforme HDW e sistemi operativi o SFTW diversi - Interoperabilità
= capacità di un sistema di cooperare con altri sistemi
- Utilizzabilità
- Qualità del disegno e del codice
- Verificabilità
= misura l’effettività (ai fini della verifica) di documentazione e moduli di verifica - Comprensibilità
= misura della chiarezza di codice, disegno, specifiche, a parità di difficoltà intrinseca dell’ambito di problema
- Verificabilità
- Qualità del processo
- Produttività
= misura la produttività di un processo di produzione del software - Tempestività
= capacità del processo di rispettare i tempi previsti - Visibilità
- Produttività
- I Principi
- Sono orientati, in particolare, alle qualità affidabilità e modificabilità
Sono:
rigore e formalità
seguire un procedimento disciplinato e rigoroso; usare metodi formali dove appropriato; formalizzare il problema - separazione (separation of concerns)
trattare separatamente problematiche diverse
- Sono orientati, in particolare, alle qualità affidabilità e modificabilità
Lezione del 21/03/2006
- I Principi
- modularità
decomporre un sistema in parti coese e con basso accoppiamento, dette moduli- alta coesione
- basso accoppiamento
- astrazione
astrarre dai dettagli non rilevanti rispetto allo scopo - anticipazione dei cambiamenti
prevedere le possibili modifiche adattive, perfettive, di riuso - generalità
chiedersi sempre se un problema può essere risolto come caso particolare di un problema più generale. - incrementalità
procedere per incrementi
- modularità
(slide disponibili qui)
Lezione del 23/03/2006
- La fase di disegno o progetto
Da inserire slide 5 fino a pagina 16
(slide disponibili qui e qui)
Lezione del 28/03/2006
Prima raccolta firme per il compitino, il foglio girerà ancora settimana prossima
Da inserire slide 5 da pagina 16