Ingegneria del Software

CLEI triennale. 5 CFU.

A.A. 2007/2008

docente: Gianluca Amato


Descrizione: Questo corso costituisce una introduzione a livello elementare alla progettazione orientata agli oggetti e ai design pattern. È quindi la naturale prosecuzione dei corsi di Laboratorio di Programmazione 1 e 2. Rispetto a questi ultimi, l'accento non è più sull'apprendimento delle caratteristiche del linguaggio Java, ma sull'acquisizione delle capacità progettuali che consentono di scrivere software robusto, documentato e facilmente mantenibile. Nell'illustrare le pratiche di progettazione orientata agli oggetti si farà ampio ricorso ai concetti derivati dalla programmazione di interfacce grafiche in Swing. Il corso prevede una parte in laboratorio, in cui si utilizzerà il sistema operativo Linux e l'ambiente di sviluppo Eclipse.

Programma: Il programma svolto si basa essenzialmente sui capitoli da 1 a 6 del libro di testo (esclusa la sezione 4.10), più una introduzione iniziale al sistema Linux. Clicca qui per il programma dettagliato.

Compiti degli appelli precedenti:

Prerequisiti:

Materiale Didattico:

Software utilizzato durante il corso:

Tutte queste applicazioni costituiscono parte integrate della Ubuntu 6.06 (e successive). Qualora si voglia utilizzare un'altra distribuzione, accertarsi che disponga di questi software, o prepararsi a installarli a mano.

Testi di riferimento

Per una introduzione ad argomenti più classici dell'ingegneria del software, si consiglia:

A. Fuggetta, C. Ghezzi, S. Morasca, A. Morzenti, M. Pezzè
Ingegneria del software
Mondadori Informatica

Modalità d'esame:

L'esame finale consiste in un progetto e in una prova teorico/pratica in laboratorio. A discrezione del docente, è anche possibile che venga effettuata una prova orale. Tutte le prove sono strettamente individuali: i progetti o i compiti che dovessero risultare in tutto o in parte copiati da quelli di un altro studente verranno annullati.

Le prove in laboratorio avvengono nei giorni e alle ore fissate nel calendario degli esami. La votazione è in trentesimi. Accertatevi di avere a disposizione la password per l'accesso ai computer dell'aula informatizzata (da richiedere eventualmente al GASL). Durante la prova è possibile consultare qualunque tipo di materiale cartaceo o elettronico desideriate, ma non è possibile utilizzare Internet.

Per partecipare ad una prova in laboratorio bisogna aver consegnato il progetto almeno una settimana prima, e il progetto deve aver avuto una valutazione positiva. Il progetto si può consegnare, sotto forma di unico file compresso, tramite posta elettronica.

Il progetto verrà valutato con un voto da 0 a 3, che si sommerà al voto della prova in laboratorio. La votazione 0 è da considerare insufficiente, e non consente di accedere alla prova in laboratorio. Tutti gli altri voti sono invece sufficienti.

Lo studente può partecipare a più prove pratiche con lo stesso progetto (qualora non passi la prima), o può decidere di ripresentare il progetto tra una prova e l'altra, qualora voglia apportare delle migliorie.

Per gli studenti che hanno seguito il corso di Ingegneria del Software con la prof.ssa Suriani, e che hanno già superato il progetto, saranno previsti dei testi d'esame secondo il programma dell'A.A. 2006/2007. Non è detto, tuttavia, che siano strutturati allo stesso modo di quelli della prof.ssa Suriani. In questo caso, il progetto non da titolo a nessun punteggio aggiuntivo.

Progetto:

Scrivete un programma che apra due frame: uno con una colonna di campi di testo contenenti numeri, e un altro che presenta gli stessi numeri sotto forma di grafico a barre. Quando l'utente modifica uno dei numeri, il grafico deve essere ridisegnato. Analogamente, quando l'utente clicca su un punto del grafico, occorre muovere la barra più vicina sul punto dove è avvenuto il click, e modificare il frame con i numeri. Deve essere possibile aumentare o diminuire il numero di campi di input (e quindi di barre), tramite appositi pulsanti.

Utilizzare il pattern OBSERVER. Memorizzare i dati in un modello, e rendere sia la vista numerica che quella grafica degli ascoltatori. Quando un numero è modificato, la vista numerica deve aggiornare il modello, che a sua volta chiederà alle viste di ridisegnarsi. Analogamente quando si clicca su un pulsante del mouse all'interno del grafico a barre.

Valid XHTML 1.0 Strict Valid CSS!