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.