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).