AA 2007-2008 Progetto di Ingegneria del Software (e Informatica 3)
Corso di Laurea in Ingegneria Informatica
- Prof. Elisabetta Di Nitto
- dinitto@elet.polimi.it
- www.elet.polimi.it/~di nitto
- Dipartimento di Elettronica e Informazione, Via Golgi 40
- Interno 3663
- Orario di ricevimento per il periodo del corso: giovedi dalle 10.30
alle 12.00 in ufficio oppure
su appuntamento in Bovisa.
- Gli incontri di laboratorio si terranno nel mio uffico il venerdi dalle 12.15 alle 16.15 con il seguente calendario: 5/10/07, 12/10/07, 19/10/07, 26/10/07, 9/11/07, 16/11/07, 23/11/07, 30/11/07, 14/12/07, 21/12/07, 11/01/08, 18/01/08, 25/01/08, 01/02/08. Sara` possibile anche fissare appuntamento con il docente in altri giorni.
Indice di questo sito
Obiettivo principale del corso è consentire agli studenti di applicare nella pratica le metodologie e le tecniche apprese durante i corsi di Ingegneria del Software. Allo scopo, gli studenti svolgeranno un progetto software, su specifiche tipicamente fornite dal docente. Tali specifiche verranno definite e discusse nei primi incontri di laboratorio.
Il lavoro dovrà essere svolto in gruppo, e comprenderà le fasi di analisi, progettazione, sviluppo, testing. Tutte le fasi progettuali dovranno essere documentate, avvalendosi delle notazioni più opportune per ciascuna di esse. Gli studenti dovranno avvalersi di opportuni tool software per supportare ed automatizzare attività quali configuration management, testing, produzione della documentazione, generazione di codice.
I docenti saranno disponibili, durante l'orario ufficiale indicato sopra e pubblicato dall'ateneo, per assistere gli studenti nell'elaborazione del progetto.
Note sul progetto
Il progetto deve essere svolto sotto la guida di un project manager, nominato dal docente.
Il project manager può essere un docente o anche uno studente di laurea specialistica.
Il tema e il periodo di svolgimento devono essere concordati preliminarmente col docente e il project manager.
Il progetto simulera' lo sviluppo di software a livello industriale.
Saranno quindi assegnate deadline e milestones, da verificare assieme al project manager. La documentazione da produrre dovra' seguire uno schema, che sara' presentato in uno o due incontri e messo a disposizione dal docente.
Ogni gruppo dovra' anche svolgere una verifica del progetto svolto da un altro gruppo.
Durante lo svolgimento del progetto, a scadenze concordate con il docente, saranno prodotti i seguenti documenti:
- Analisi e Specifica dei Requisiti: descrive il dominio applicativo in cui il software deve collocarsi e le funzioni principali che quest’ultimo dovrà avere.
- Progetto del Sistema: descrive la struttura del software in termini dei suoi componenti principali (sottosistemi e classi). Fornisce inoltre una descrizione della dinamica di funzionamento del sistema.
- Definizione dei casi di test: descrive gli input con cui si andrà a verificare il funzionamento del sistema e gli output che ci si aspetta di ottenere. Può contenere la descrizione delle classi JUnit utilizzate per il testing.
- Manuale di istallazione ed uso: descrive i passi da compiere per istallare ed utilizzare il sistema software.
- Rapporto sull’esecuzione dei casi di test: descrive l’esecuzione dei casi di test evidenziando i casi in cui il test ha rilevato un fallimento del sistema.
Nel seguito viene definita la struttura di ciascuno dei documenti elencati.
Durante lo svolgimento del progetto verranno individuate fasi progettuali al termine delle quali verranno rilasciati i corrispondenti documenti. Nelle fasi seguenti sarà sempre possibile apportare modifiche alla documentazione prodotta nella fase precedente.
Struttura della documentazione: parti comuni a tutti i documenti
Ogni documento dovrà essere presentato in formato pdf e dovrà contenere:
- Una pagina di intestazione con le seguenti informazioni: titolo del progetto, nomi degli autori, riferimento al corso per il quale viene prodotto il progetto.
- Un indice delle sezioni seguenti.
Analisi e Specifica dei Requisiti
Dovrà contenere:
- Una descrizione generale del problema da affrontare (in linguaggio naturale).
- Un glossario dei termini utilizzati: per ogni termine si definirà il corrispondente significato (in linguaggio naturale).
- Una definizione degli attori del sistema.
- Le ipotesi di base
- Una descrizione dei casi d’uso del sistema (la struttura di questa parte verrà descritta in dettaglio più avanti).
- Un diagramma delle classi che definisce gli elementi principali del dominio del problema e le relazioni tra questi elementi.
Casi d’uso
I casi d’uso possono essere descritti in linguaggio naturale e possono essere strutturati nel modo seguente:
- Nome del caso d’uso
- Pre-condizioni che devono essere verificare all’inizio del caso d’uso (in genere sono legate allo stato iniziale del sistema e/o del dominio applicativo)
- Flusso di azioni normale
- Flusso di azioni eccezionale (non obbligatorio)
- Post-condizioni: stato del dominio applicativo e del sistema al termine del caso d’uso.
La descrizione in linguaggio naturale può essere complementata da diagrammi UML “use case” che descrivono le relazioni tra casi d’uso e tra questi e gli attori. Sequence diagram possono essere utilizzati per sintetizzare la descrizione dei flussi di azioni.
Progetto del sistema
Il documento di progetto dovrà contenere:
- Una descrizione dell’architettura del sistema in termini dei suoi componenti e delle relazioni tra questi. Questa descrizione potrà essere fornita in termini di component diagram o class diagram. Il livello di granularità di queste rappresentazioni dipende dalla complessità del progetto. È opportuno descrivere l’architettura del sistema a vari livelli di astrazione, fino ad arrivare al livello delle classi che verranno effettivamente sviluppate.
- Una descrizione della dinamica di funzionamento del sistema. Questa potrà essere ottenuta mediante sequenze diagram definiti in modo coerente con la definizione dei component/class diagram.
Definizione dei casi di test
Il documento sarà strutturato nel modo seguente:
- Obiettivi
- Criteri
- Ambienti utilizzati per il test
- Descrizione dei casi di test. Per ogni caso di test si indicherà:
- Nome
- Scopo
- Input
- Output atteso
Manuale di istallazione ed uso
Il documento sarà composto di due parti:
- Istallazione che conterrà:
- Prerequisiti hardware e software
- Descrizione del contenuto del pacchetto da istallare
- Istruzioni per l’istallazione
- Uso che conterrà:
- Passi per l’esecuzione del sistema
- Descrizione delle operazioni da compiere per l’esecuzione delle funzioni offerte dal sistema
Rapporto sull’esecuzione dei casi di test
Questo documento richiama i casi di test definiti nel documento di definizione dei casi di test. Per ogni caso di test ripete nome, input ed output atteso. Inoltre indica se il test ha avuto successo (il sistema di è comportato come ci si aspettava) oppure è fallito.