Progetto di Ingegneria del software Il Sistema CALENDAR

Progetto di Ingegneria del software
a.a. 2005/2006
Prof. E. Damiani
Il Sistema CALENDAR
Introduzione .................................................................................................................... 2
Requisiti informali .......................................................................................................... 2
Cosa Consegnare............................................................................................................. 4
Esempio........................................................................................................................... 4
Introduzione
Il progetto consiste in un’agenda che gestisce gli eventi e di una rubrica che gestisce i contatti dei membri
di un gruppo di lavoro. A titolo puramente esemplificativo, la figura che segue riporta alcuni casi d’uso:
Figura 1: Casi d’uso del sistema Calendar (esempio PARZIALE)
Eventi e contatti sono memorizzati su database condivisi tra tutti gli utenti del sistema CALENDAR.
L’interfaccia di accesso deve essere via Web.
Gli eventi possono essere di due tipi:
• Riunione (con oggetto, luogo, nome persone da incontrare, note varie)
• Memo (con oggetto, priorità da 1 a 5, note varie)
Tutti gli eventi sono relativi ad una certa data.
Anche i contatti sono di due tipi:
• Persone (con nome, cognome, mail, indirizzo di casa, telefono di casa, indirizzo dell’ufficio,
telefono dell’ufficio, telefono cellulare, note).
• Aziende (con ragione sociale, P.Iva, indirizzo sede, mail, telefono centralino, Persona di
riferimento)
Alcuni campi possono non essere specificati.
Requisiti informali
Sia gli eventi dell’agenda sia i contatti della rubrica devono essere letti da un database unitario per tutto il
gruppo di lavoro. Se le tabelle di database che contengono i dati di agenda o rubrica non sono presenti deve
essere mostrato un messaggio di avvertimento, e l’esecuzione deve continuare.
Le tabelle verranno comunque (ri)create alla chiusura del programma CALENDAR, sulla base dei nuovi
dati immessi. Il programma deve essere composto da un menu principale in cui compaiono l’elenco delle
operazioni d’inserimento/cancellazione/visualizzazione di eventi e contatti su agenda e rubrica.
Deve essere permesso di uscire dal programma senza salvare le modifiche effettuati. Ecco alcuni esempi di
operazioni sugli eventi che devono essere supportate dall’agenda di CALENDAR:
•
•
•
•
•
•
•
•
•
Inserimento evento: dopo aver inserito la data e scelto il tipo d’evento, s’inseriscono i vari campi
richiesti a seconda che sia Riunione, o Memo generico.
Accettazione evento: all’arrivo di un invito a un evento si puo’ accettare o rifiutare. In entrambi I
casi la scelta e’ notificata a a chi lo ha inserito.
Invito contatto: si possono invitare persone tra i propri contatti a partecipare a un evento che si e’
inserito. Il sistema avvisa preliminarmente se qualcuno dei contatti ha gia’ un impegno per quel
giorno, senza specificare di che impegno si tratti, ma chiarendo se e’ promotore o invitato.
Visualizzazione dello stato di un evento: si puo’ vedere se i contatti invitati hanno confermato o
rifiutato l’invito; e’ quindi possibile confermare o disdire l’evento (opportune comunicazione
arriva a tutti gli invitati)
Visualizzazione eventi d’oggi, domani o ad una certa data immessa: verranno stampati di tutti gli
eventi relativi alla data scelta (ogni tipo di evento ha una sua visualizzazione che mostra di che
tipo è e stampa in modo ben leggibile tutti i suoi campi).
Visualizzazione eventi in un intervallo temporale specificato (intervallo di date o prossimi giorni):
verranno stampati gli eventi per ogni data compresa nell’intervallo (cioè le date in ordine
temporale con gli eventi relativi a ciascuna data).
Visualizzazione delle scadenze delle prossime settimane: dopo aver inserito il n. di settimane
vengono visualizzate in ordine temporale le scadenze, ognuna con data e numero di giorni rimasti
a partire dalla data corrente.
Cancellazione evento: dopo aver immesso la data vengono visualizzati gli eventi in tal data
numerati in modo crescente. Poi viene richiesto il numero dell’evento da eliminare che verrà
cancellato (cioè cancellato dalla memoria e quindi non salvato su file alla chiusura).
Cancellazione eventi scaduti: dopo un conferma da parte dell’utente, gli eventi che hanno una data
inferiore a quella corrente vengono eliminati. Al termine viene visualizzato il numero di eventi
cancellati.
Ecco alcuni esempi di operazioni sui contatti che devono essere supportate dalla rubrica di CALENDAR:
•
•
•
•
•
Visualizza contatti, in ordine alfabetico (anche un intervallo)
Visualizza un contatto specifico, precisando il cognome e altre combinazioni di campi
Inserisci nuovo contatto
Cancella contatto specifico, precisando il numero del contatto da eliminare, il cognome e altre
combinazioni di campi. Deve essere richiesta conferma.
Il programma si compone di tre gruppi di classi principali:
o
o
o
Classi relative alla rubrica
Classi relative all’agenda
Classi di servizio condivise
La progettazione deve avvenire seguendo i principi di modularità, indipendenza funzionale, coesione,
information hiding. Per quanto riguarda l’implementazione, si suppone che il software sara’ sviluppato in
linguaggio Java, a norma delle regole riguardanti la OOP.
Cosa Consegnare
Ogni gruppo di lavoro (max 3 persone) deve consegnare ai docenti in sede di demo:
1.
2.
3.
4.
5.
6.
Lessico e interfacce mock-up (sotto forma di pagine Web) queste ultime sia per AGENDA sia per
RUBRICA
Requisiti formalizzati, con priorita’ e dipendenze; per i requisiti funzionali, anche i test case (tenendo
conto dei vincoli sui dati, punto 4).
(Opzionale) Diagrammi UML di fase d’analisi
Dizionario dei dati elementari, specificando i vincoli (vedi esempio) per ciascun tipo di dati menzionato
in una classe
Casi d’uso (SVILUPPANDO e NON COPIANDO l’esempio)
I diagrammi UML di progettazione principali (sequenze/collaborazioni, classi, componenti,
deployment); ove se ne avverta la necessita’, si eseguano anche diagrammi ausiliari (e.g., stati finiti)
Esempio
A titolo di esempio dei vincoli di validita’ sui dati che bisogna specificare nel progetto, si riporta una
specifica dei vincoli sul tipo DATA.
Tutte le date inserite nel sistema CALENDAR (giorno, mese, anno separati da ‘-’) devono essere
controllate e formattate allo stesso modo.
Il numero del mese deve essere compreso fra 1 e 12, quello del giorno in base al mese, l’anno compreso fra
1950 e 2400. L’anno può essere inserito nei formati:
o numero completo. Es :2005
o ultime due cifre . Es: 05
o ultima cifra. Es: 5
Gli eventuali zeri prima del campo (giorno, mese, anno ) vanno tralasciati. (01-02-2006 == 1-2-2006)
Esempi:
1-1-1 = 1-1-2001 =01-01-2001 =001-0001-0000001 = 1 gennaio 2001
30-2-05 NON VALIDA (febbraio ha 28 giorni)
32-13-2405 NON VALIDA (giorno, mese, anno fuori dall’intervallo valido).
0-0-1940 NON VALIDA (giorno, mese, anno fuori dall’intervallo valido).