Specifiche per la produzione dei progetti per il modulo
"Programmazione Modulare" del corso di Sistemi
informativi
Anno Accademico 1998/1999
I progetti hanno l'obiettivo di realizzare una (piccola) applicazione
in C++. I progetti debbono essere svolti in gruppi, preferibilmente di
tre persone. L'argomento del progetto deve essere proposto dal gruppo e
approvato dal docente,
che può essere contattato nell'orario di ricevimento. E' consigliato
utilizzare, eventualmente con modifiche locali, lo stesso dominio applicativo
del progetto relativo al primo modulo del corso. E' disponibile in visione
presso il docente documentazione di progetti svolti negli anni scorsi.
E' a disposizione degli studenti, presso i laboratori
del Dipartimento
di Informatica e Automazione, l'ambiente di sviluppo Borland
C++ 5.0. Studenti che dispongano di altri sistemi possono utilizzarli,
previa autorizzazione del docente.
Lo svolgimento dei progetti deve essere articolato in fasi, ognuna delle
quali deve portare alla produzione di un documento; l'insieme dei documenti
porta al fascicolo da consegnare. Si propone una decomposizione unificata
per tutti progetti, articolata in quattro fasi come appresso illustrato.
Gli studenti che intendono sostenere la prova parziale prevista per il
10 giugno, debbono consegnare una prima parte del progetto (fasi 1-2) entro
il 10 giugno stesso e il progetto completo in sede di esame orale,
entro l'appello di luglio. Gli altri studenti debbono consegnarlo prima
(anche il giorno stesso) dello svolgimento della prova scritta.
Fasi del progetto
-
Raccolta delle specifiche della realtà di interesse espresse in
linguaggio naturale, documentata con:
-
una descrizione sintetica (massimo mezza pagina) della realtà di
interesse;
-
le specifiche complete che descrivano in modo compiuto la realtà
di interesse (di solito alcune pagine).
-
Progettazione concettuale del sistema con la produzione di uno schema,
che modelli la realtà di interesse evidenziando i moduli necessari.
È richiesto documentare:
-
uno schema concettuale, indicando: i moduli necessari alla realizzazione
del sistema e le relative relazioni di dipendenza (is-a) di appartenenza
(has-a, has-many), di utilizzo (usa), e di interazione di informazioni.
-
una specifica dettagliata delle classi C++ necessarie alla implementazione
di ciascun modulo. In particolare vanno espressi:
-
descrizione e dominio di ogni campo elemento (quando necessario);
-
la segnatura di ogni funzione elemento, dei costruttori, e degli eventuali
operatori ridefiniti;
-
la tecnica realizzativa (quando necessario), motivandone la scelta;
-
Realizzazione dell'applicazione in C++. La documentazione di questa parte
consiste nei sorgenti C++ dell'implementazione.
-
Test dell'applicazione. La documentazione di questa parte consiste nella
definizione della configurazione di test del sistema e nella stampa di
alcune schermate illustrative.
Ultimo aggiornamento: 28 maggio 1999, Paolo
Atzeni e Paolo Merialdo