Ingegneria del software T1/2006-2007
Indice
Ingegneria del software, anno 2006/2007
Ingegneria del software è un corso complementare per la laurea in comunicazione digitale e altri corsi di laurea e fondamentale per il corso di informatica.
Docenti
Carlo Bellettini
e-mail: carlo.bellettini@unimi.it
Orari delle lezioni
Martedi | Venerdi |
---|---|
11:45-13.15 Aula 202 | 11:45-13.15 Aula V1 |
Oltre alle lezioni di teoria potrenno esserci delle lezioni in laboratorio per vedere nella pratica i concetti presentati a lezione (con cadenza di 1/2 volte al mese).
Orario di ricevimento del docente
Martedi |
---|
10:30-11:30 (probabile cambiamento in futuro) |
Sito del corso
Se andate qui trovate tutto il materiale necessario,il forum e il wiki ufficiale del corso. Per tener separate le cose spiegate quest'anno dagli altri il wiki non ufficiale verrà redatto qui.
Materiale didattico
- primo libro:
- Titolo: "Sofware Engineering",II Edizione
- Autori: Ghezzi,Jazayeri,Mandrioli
- Casa Editrice: Prentice Hall
- Secondo libro:
- Titolo: "A handbook of software and system engineering"
- Autore: Endres,Rombach
- Casa editrice: Addison Wesley
Ricordo che vi sono le lezioni videoregistrate dell'anno passato,i cui argomenti vengono ripresi abbastanza similmente quest'anno. In più ci sono le slides sul sito del corso.
Modalità d'esame
Sono previsti 2/4 compitini e a seconda di come vengono fatti,un tot di minuti all'orale (se la media è sufficiente per tutti e sono ad un livello considerato buono dal prof. l'orale può essere omesso). Verranno messi a disposizione molteplici date di appelli (circa 1 ogni mese).
Editaggio a cura di: Voodoo 17:40, 4 Ott 2006 (CEST)
Diario del corso
Lezione di Martedì 3-10-06
Abbiamo visto le principali definizioni di "ingegneria del software". In generale lo sviluppo di software è un processo che prevede innanzitutto la comprensione ci cosa vogliamo fare e del relativo contesto di utilizzo. Oltre a ciò servono delle metriche oggettive che mi diano la percentuale di raggiungimento dei miei obiettivi. La manutenzione del software occupa spesso il 70% dell'impegno conferito ai progetti.
Oltre a ciò vi sono aspetti manageriali e vincoli (temporali,finanziari,ecc) da rispettare. E' un campo della computer science che ha per oggetto il software. Mentre la scienza tende a confermare la correttezza di teorie attraverso modelli,ipotesi ed esperimenti, l'ingegneria del software attraverso metodologie e relative implementazioni tenta di definire l'utilità di ciò che si sta facendo.
Cenni storici
30/40 anni fa lo sviluppo del software era così caratterizzato:
- processo artigianale;
- richiedeva poche risorse di calcolo;
- solitamente vedeva l'uso di computer da parte di scienziati,fisici per implementazioni di loro teorie;
- problemi ben formalizzati (spesso autoproducevano il software);
- nessuna relzione (e relative problematiche) con i clienti;
- vita breve dei programmi (assolta la loro utilità,il ciclo di vita del software si esauriva);
I computer sono poi diventati economici e da attività di computing stretto si passa alla gestione dell'informazione.
- separazione tra sviluppatore e cliente;
- problemi comunicativi con altre persone (team interni e clienti esterni);
- nascita di team di sviluppo in cui diverse tipologie di esperti lavorano parallelamente ad un problema;