Ingegneria del software T1/2006-2007

Da WikiDsy.
Versione del 4 ott 2006 alle 15:56 di Voodoo (discussione | contributi) (Categorie di qualità del prodotto finale e del processo di sviluppo)

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;

Categorie di qualità del prodotto finale e del processo di sviluppo