Università di Camerino Programmazione + Laboratorio AA 2011

Transcript

Università di Camerino Programmazione + Laboratorio AA 2011
Corso di Laurea in Informatica – Università di Camerino
Programmazione + Laboratorio A.A. 2011/2012
Progetto di Laboratorio 2011/2012
Docente: Luca Tesei
Descrizione del codice da scrivere
Modellare il dominio del discorso “Automi a stati finiti” e implementare alcuni degli algoritmi
principali.
Viene data in allegato una bozza delle classi da realizzare. La bozza contiene un pacchetto
it.unicam.cs.prlab.automi dove è specificata l'interfaccia pubblica delle classi da
implementare (interamente documentate nel codice), le variabili istanza, alcuni costruttori e
l'implementazione di alcuni metodi.
Ogni gruppo (composto da minimo 2 persona e massimo 4 persone) deve completare le classi
fornite (le parti mancanti sono sono contrassegnate dal marcatore TODO) e aggiungere eventuali
altri metodi/variabili istanza pubblici o privati.
Alternativamente il gruppo può fornire una modellazione personale preservando però tutte le
funzionalità indicate nella classe Automa fornita.
Ogni gruppo deve inoltre realizzare diverse classi di test (quante se ne ritengono necessarie) che
usano diversi esempi di automi (utilizzare i file xml descritti nel seguito per scrivere automi di
esempio) per dare evidenza che le funzionalità implementate funzionano correttamente.
Input e Output
Nella classe it.unicam.cs.prlab.automi.IOAutoma sono definiti dei metodi statici per
poter leggere un automa da un file XML e poter salvare un automa in un file XML. Il formato xml è
molto semplice ed è desumibile leggendo il file di esempio formito: automaFig2.1.xml (il
primo automa di esempio delle dispense di sintassi di Programmazione).
Per poter compilare ed eseguire questi metodi bisogna utilizzare le librerie JDOM fornite nel file
jdom.jar. In un IDE (eclipse o NetBeans) è sufficiente inserire esplicitamente questo file come
libreria del progetto. Da linea di comando basta aggiungere al compilatore (javac) o al lancio
della jvm (java) l'opzione:
-cp <percorso e nome del file jar>
Ad esempio
linux> javac -cp “/home/luca/progetto/jdom.jar” *.java
windows> javac -cp “C:\Documenti\Progetto\jdom.jar” *.java
Modalità di realizzazione e di consegna
Questo progetto va realizzato in gruppo. Un gruppo è formato da minimo 2 persone e da massimo
4 persone. Codice “troppo” simile scritto da diversi gruppi potrà essere soggetto a una valutazione
più bassa.
Si deve creare un pacchetto it.unicam.cs.prlab.automi contenente tutte le classi definite per il
progetto. Si deve poi creare una cartella prlab201112RossiBianchiNeri (si inseriscano i cognomi dei
componenti del gruppo) contentente:
•
la gerarchia di cartelle it/unicam/cs/prlab2/automi/ contententi tutte le classi .java
•
un cartella doc/ contente le api del progetto generate con javadoc
•
una cartella xml/ contentente eventuali files xml di esempio/test
•
un file Relazione.txt in formato testo utf8 che indica chi sono i membri del gruppo e in cui
ogni membro dichiara in che cosa ha contribuito nel progetto. Per esempio, in un
gruppo di 3 persone i componenti potrebbero dichiarare che hanno lavorato insieme per
definire le classi e le api, poi si sono divisi il compito di implementare i diversi pezzi:
Mario Rossi i metodi x y e z, Carlo Bianchi tutti i metodi della classe A e Marco Neri i
metodi restanti e la scrittura dei commenti per generazione del doc con javadoc.
Tale cartella va poi compressa nel file prlab201112RossiBianchiNeri.zip. Per la consegna solo uno
dei componenti del gruppo deve mandare una email con le seguenti caratteristiche:
•
from: [email protected]
•
to: [email protected]
•
oggetto: Consegna Progetto Appello X (esempio Appello I, Appello IV, ...)
•
allegato: prlab201112RossiBianchiNeri.zip
•
testo: Nome1 Cognome1, Nome2 Cognome2, ecc.. (ad esempio Mario Rossi, Carlo Bianchi,
Marco Neri)
Errori nel formato della consegna comporteranno un abbassamento del voto.
L'email va spedita entro e non oltre le ore 23.59 di del giorno successivo alla prova scritta
dell'appello scelto. Farà fede la data e l'ora della email. Email arrivate oltre la scadenza non
saranno considerate. I componenti del gruppo che passeranno lo scritto nell'appello considerato
verranno convocati per l'orale nei giorni successivi.
ECCEZIONE: solo per i primi due appelli (7 Febbraio e 21 Febbraio 2012) è possibile presentare e
discutere il progetto in un appello diverso da quello in cui si è superata la prova scritta. In ogni caso
entro la fine di Febbraio dovranno essere state superate tutte le prove e aver ottenuto il voto finale;
in caso contrario nell'appello successivo bisognerà rifare tutte le prove.