Paolo Boldi

1 - Descrizione

Il progetto consiste nel realizzare un programma per gestire il log di un rudimentale sistema di eCommerce. Per log si intende in genere un file di testo contenente informazioni generate in modo incrementale da un sistema hardware e/o software. Ogni volta che una nuova informazione viene generata, questa viene anche aggiunta al log secondo una qualche regola. Noi adotteremo le seguenti semplificazioni:

2 - Il formato del log

I contenuti di una generica riga del devono essere separati dal carattere di barra verticale.

Ogni riga che si riferisce a un evento cliente deve contenere i seguenti dati (nell'ordine specificato), tutti in formato testuale:

La seguente riga riporta un esempio di evento cliente:

2|22 Dec 2003 15:20:21 GMT|CL:descrizione1|pippo|500.0

Ogni riga che si riferisce a un evento web deve contenere i seguenti dati (nell'ordine specificato), tutti in formato testuale:

La seguente riga riporta un esempio di evento web:

8|22 Dec 2003 15:20:21 GMT|WE:descrizione2|http://www.dsi.unimi.it|159.149.181.6

Nel sito di sottoposizione del progetto (cfr. la sezione 5) è disponibile un log di esempio in formato elettronico.

Attenzione! I formati per indicare date ed ore sono indicativi: è pertanto possibile fare riferimento ad altri tipi di formati, purchè questi siano adeguati a indicare in modo equivalente a quello richiesto una data e un'ora. Qualora si scelga di utilizzare un formato alternativo, il progetto dovrà essere sviluppato in modo coerente. Ovviamente in quest'ultimo caso il log di esempio descritto nel paragrafo precedente potrebbe non risultare utilizzabile.

3 - Le classi da realizzare

E' obbligatorio realizzare in JAVA il programma descritto nella sezione precedente utilizzando le seguenti classi:

A parte quanto espressamente richiesto, è lasciata piena libertà sull'implementazione delle singole classi e sull'eventuale introduzione di altre classi, a patto di seguire le regole del paradigma ad oggetti ed i principi di buona programmazione.

Non è richiesto l'utilizzo di particolari modalità grafiche di visualizzazione: è sufficiente una qualunque modalità di visualizzazione basata sull'uso dei caratteri.

E' invece espressamente richiesto di non utilizzare package non standard di Java (si possono quindi utilizzare java.util, java.io e così via), con l'unica eccezione package prog.io incluso nel libro di testo per gestire l'input da tastiera e l'output a video.

4 - Gestione delle date

In vari punti del progetto è espressamente richiesto di gestire delle date. In questo testo è stato fatto riferimento alla classe java.util.Date, vista a lezione. Nella documentazione delle API di Java è possibile trovare informazioni dettagliate su questa classe che permettono di realizzare alcuni dei metodi di cui è richiesta l'implementazione. In alternativa è possibile utilizzare anche la classe java.text.DateFormat.

5 - Modalità di consegna

Il progetto può essere svolto al massimo da tre persone che intendono sostenere l'intero esame di Informatica Generale e Laboratorio negli appelli di Febbraio o Aprile 2004, e deve essere consegnato entro mezzanotte di venerdì 6 febbraio 2004, utilizzando il sito di sottoposizione delle esercitazioni (all'indirizzo http://infogen.dsi.unimi.it). Per poter effettuare la sottoposizione è necessario autenticarsi utilizzando un nome di login e una password. Nella pagina principale del sito stesso è spiegato come ottenere questi dati. Nel caso il progetto venga svolto da più di una persona, dovrà essere fatta in ogni caso una sola sottoposizione, indicando chiaramente in un commento all'inizio dei sorgenti consegnati nome, cognome e matricola dei vari componenti del gruppo

Dovranno essere consegnati tutti i sorgenti Java che permettano al programma di essere eseguito correttamente, compressi in un archivio di tipo ZIP che estragga i file nella directory in cui si trova l'archivio stesso (altri tipi di sottoposizioni verranno automaticamente rifiutate dal sito). Nell'archivio dovrà anche essere accluso un breve documento in formato txt o rtf in cui

E' inoltre richiesto di consegnare una copia cartacea della stampa del codice sorgente prodotto in portineria del DSI indicando chiaramente nome, cognome e numero di matricola di tutti i componenti del gruppo, nonchè il turno e il docente di riferimento.

6 - Valutazione

Durante la prova orale con i singoli studenti saranno discusse le modalità implementative adottate e la padronanza di alcuni dei concetti necessari per preparare il progetto e/o spiegati a lezione. La valutazione del progetto sarà fatta in base alla

Dario Malchiodi
Dipartimento di Scienze dell'Informazione
Via Comelico 39/41 20135 Milano
Stanza T304 – Tel. +39 02 503 16338
eMail malchiodi@dsi.unimi.it
Walter Cazzola
Dipartimento di Informatica e Comunicazione
Via Comelico 39/41 20135 Milano
Stanza S233 – Tel. +39 0103536637
eMail cazzola@disi.unige.it