Ingegneria Del Software Schedule, Progetto

66
P P ROGETTO ROGETTO DI DI S S ISTEMA ISTEMA Ingegneria del Software a.a. 2007-2008 Corso di Laurea: Informatica e TPS

Transcript of Ingegneria Del Software Schedule, Progetto

Page 1: Ingegneria Del Software   Schedule, Progetto

PPROGETTOROGETTO DIDI S SISTEMAISTEMAIngegneria del Software a.a. 2007-2008

Corso di Laurea: Informatica e TPS

Page 2: Ingegneria Del Software   Schedule, Progetto

Sommario

1. ARCHITETTURA....................................................................3

1.1. LIVELLI ARCHITETTURALI..................................................................3 1.2. DIAGRAMMA DELLE COMPONENTI......................................................3 1.3. DIAGRAMMA DI CONFIGURAZIONE.....................................................4 1.4. MODELLO DI DECISIONE...................................................................4

2. PROGETTO DI DETTAGLIO......................................................6

2.1. DIAGRAMMA DELLE CLASSI...............................................................6 2.2. SPECIFICHE DELLE CLASSI................................................................6 2.3. DIAGRAMMI DI SEQUENZA..............................................................43 2.4. MODELLO DI DECISIONE.................................................................43

3. PROGETTO DEI DATI...........................................................47

3.1. DATABASE.....................................................................................47 3.1.1. DIAGRAMMA DELLE DIPENDENZE DEI DATI...................................47 3.1.2. MODELLO DEL DATABASE...........................................................48 3.1.3. DETTAGLIO DEI DATI..................................................................49 3.2. FILE SYSTEM.................................................................................51 3.2.1. GRAMMATICHE FILE XML............................................................51 3.2.2. ALTRI FILE.................................................................................52

4. APPENDICE.......................................................................53

4.1. PATTERN UTILIZZATI......................................................................53 4.2. ALTRO...............................................................................................

54

2

Page 3: Ingegneria Del Software   Schedule, Progetto

1. A1. ARCHITETTURARCHITETTURA

1.1. Livelli Architetturali1.1. Livelli ArchitetturaliL’architettura del sistema in esame è costituito dai seguenti 3 livelli:

Livello di Presentazione: In questo livello vi sarà la gestione delle interfacce grafiche utente e della logica di navigazione dell'applicazione. E' in comunicazione con il livello di dominio sottostante.

Livello di Dominio:questo livello comprende la logica di business delle funzionalità di dominio. Ed è in diretta comunicazione sia con il livello superiore(livello di Presentazione) sia con il livello sottostante(livello delle sorgenti di dati).

Livello di Sorgente Dati:questo livello gestisce le componenti necessarie a interfacciare il sistema con il database; sono consentite operazioni quali: modifica, creazione, lettura e cancellazione. Comunica direttamente con il livello di dominio.

Page 4: Ingegneria Del Software   Schedule, Progetto

1.2. Diagramma delle Componenti1.2. Diagramma delle ComponentiIl diagramma delle componenti consente di individuare le componenti che costituiscono il sistema Schedule consentendone una buona modularizzazione, individuandone le interfacce.

Nel nostro diagramma possiamo individuare le componenti di DB Schedule e Gestione Interfacce che sono delle eccezioni rispetto alle linee di prodotto.

Descrizione delle componenti:

Gestore Interfacce:Gestisce le iterazioni dell’utente con le funzionalità del sistema.

Reportistica:Gestisce le funzionalità di reportistica quali stampa e produzione documenti HTML e PDF.

Modulo Consigliato:Gestisce le funzionalità di download del modulo consigliato in formato DOC.

Gestione Docente:Gestisce le funzionalità relative alla gestione del docente.

Gestione Insegnamenti:Gestisce le funzionalità relative alla gestione degli insegnamenti.

Gestione Programmi Didattici:Gestisce le funzionalità relative alla gestione dei Programmi Didattici.

Gestione Prenotazioni:Gestisce le funzionalità relative alla gestione delle prenotazioni.

Gestione Aule: Gestisce le funzionalità relative alla gestione delle aule.

Gestione Amministratore:Gestisce le funzionalità relative alla gestione dell’amministratore.

Gestione Ricevimento:Gestisce le funzionalità relative alla gestione degli orari di ricevimento.

DB Schedule:Gestisce le funzionalità di interfacciamento con il DB dello schedule.

Page 5: Ingegneria Del Software   Schedule, Progetto

1.3. Diagramma di Configurazione1.3. Diagramma di Configurazione

Page 6: Ingegneria Del Software   Schedule, Progetto

1.4. Modello di Decisione1.4. Modello di Decisione

Invarianti Varianti

C1 C2 C3 C4 C5 C6 C7 C8

DBSchedule

Gestione Amministratore

Gestione Aule

Gestione Docente

Gestione Insegnamenti

Gestione Programmi

Didattici

Gestione Ricevimento

Reportistica

Modulo Consigliato

Gestione Prenotazioni

Gestione Interfacce

Page 7: Ingegneria Del Software   Schedule, Progetto

2. P2. PROGETTOROGETTO DIDI D DETTAGLIOETTAGLIO

2.1. Diagramma delle Classi2.1. Diagramma delle ClassiIl diagramma delle classi con relativi metodi e attributi aggiunti possono essere visualizzati nel file diagram_14 della progettazione sotto la sezione “Livello di presentazione”,”Livello di Dominio”,”Livello di sorgente dati”.

2.2. Specifiche delle Classi2.2. Specifiche delle ClassiSono riportate qui di seguito le specifiche delle classi a livello di presentazione.

Nome Classe: Front Controller

Livello Architetturale: Presentazione

Istanzia: Tutte le interfacce

Metodi Pubblici: apriFinestraAutentificazioneUtente ()

apriFinestraEffettuaPrenotazione (Default tablemodel, int row, int column, Date giorno)

apriFinestraEliminaPrenotazione (Default tablemodel, int row, int column, Date giorno)

apriFinestraEliminazione ()

apriFinestraEsportaHTML (ArrayList<String> dati)

apriFinestraEsportaPDF(ArrayList<String> dati)

apriFinestraGestioneAmministratore ()

apriFinestraGestioneAule ()

apriFinestraGestioneDati ()

apriFinestraGestioneDatiPersonaliDocentePerAmministratore ()

apriFinestraGestioneDocente ()

apriFinestraGestioneInsegnamento ()

apriFinestraGestioneRicevimentoPerAmministratore ()

apriFinestraGestionePrenotazione ()

apriFinestraGestioneProgrammiDidattici ()

apriFinestraGestioneSistema ()

apriFinestraInserimentoDatiAula ()

apriFinestraInserimentoDatiPersonali ()

Page 8: Ingegneria Del Software   Schedule, Progetto

apriFinestraInserimentoNuovoUtente ()

apriFinestraInserimentoOrarioRicevimento (String nomeIns, String CDL)

apriFinestraInserimentoProgrammaDidattico ()

apriFinestraInserisciDatiInsegnamento ()

apriFinestraInsVecchiDati ()

apriFinestraModificaDatiAula (int idAula)

apriFinestraModificaOrarioRicevimento (String nomeIns, String CDL)

apriFinestraModificaDatiInsegnamento (String nomeIns, String CDL

apriFinestraModificaDatiPersonali ()

apriFinestraModificaPrenotazione (Default tableModel, int row, int column, Date giorno)

apriFinestraModificaProgrammaDidattico (String nomePD)

apriFinestraModificaUtente ()

apriFinestraScaricamentoModuloConsigliato ()

apriFinestraStampaDatiDocente ()

apriFinestraStampaDocentiSelezionati (ArrayList<String> idDoc)

apriFinestraStampaInsegnamentiDocente (String idDocente)

apriFinestraStampaOrarioRicevimento ()

apriFinestraStampaOrarioRicevimentoSingoloDocente (String idDoc)

apriFinestraStampaInsegnamentiSelezionati (ArrayList<String> nomeIns, ArrayList<String> CDL)

apriFinestraStampaPrenotazioniAulePerAmministratore ()

apriFinestraStampaPrenotazioniGenerali ()

apriFinestraStampaProgrammaDidattico ()

apriFinestraStampaProgrammiDidatticiPerAmminstratore ()

apriFinestraStampaPropriInsegnamenti ()

apriFinestraStampaRicevimentiSelezionati (ArrayList<String> nomeIns, ArrayList<String> CDL)

apriFinestraStampaSingoloDocente (String idDoc)

Page 9: Ingegneria Del Software   Schedule, Progetto

apriFinestraStampaTuttiDocenti ()

apriFinestraStampaTuttiInsegnamenti ()

apriFinestraStampaTuttiOrarioRicevimento ()

apriFinestraVisualizzazioneDatiSingolaAula (int idAula)

apriFinestraVisualizzaElencoAule ()

apriFinestraVisualizzaProgrammaDidattico (String nomePD)

apriFinestraVisualizzaSingoloInsegnamento (String nomeIns, String CDL)

apriFinestraVisualizzazionePrenotazioni ()

autentificazione (String username, String password, String tipologia)

avvio ()

confermaDatiEliminazione (String username, String password, String tipologia)

confermaDatiInserimentoNuovoUtente (String codice Fiscale, String username, String password, String tipologia)

confermaDatiInseriti (String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoTelefonico, String emailDocente, String tipologiaDocente)

confermaDatiInseritiInsegnamento (String nomeIns, String CDL, String CFU)

confermaDatiInseritiProgrammaDidattico (String nomeProgDidattico, String descrizioneProgDidattico, String nomeIns, String CDL)

confermaDatiInseritiOrarioRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento. String giorno, String nomeIns, String CDL)

confermaDatiModificati (String username, String password, String tipologia)

confermaDatiModificatiOrarioRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento, String giorno, String nomeIns, String CDL)

confermaModificheAula (boolean risultato)

confermaModificaDatiPersonali (String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoDocente, String emailDocente, String

Page 10: Ingegneria Del Software   Schedule, Progetto

tipologiaDocente)

confermaModificheInsegnamento (boolean risultato)

confermaModificheProgrammaDidattico/boolean risultato)

confermaPercorsoSalvataggioHTML (String nome, ArrayList<String> dati)

confermaPercorsoSalvataggioPDF (String nome, ArrayList<String> dati)

confermaVecchiDati (String username, String password, String tipologia)

effettuaPrenotazione (String columnName, Date giorno, Time orarioInizio, Time orarioFine, String note)

eliminaPrenotazione (String columnName, Date giorno, Time orarioInizio, Time orarioFine)

listaAule ()

memorizzaAssegnazione (String ID, String CDL, String Nome)

memorizzaAula (String nomeAula, int capienza, String tipologia, int piano, String locazione)

memorizza ModificheAula (int ID, String nomeAula, int capienza, String tipologia, int piano, String locazione)

memorizzaModificheInsegnamento (int ID, String CDL, String Nome, int CFU)

memorizzaModificheProgrammaDidattico (int ID, String Descrizione, String Nome)

modificaPrenotazione (String columnName, Date giorno, Time orarioiniziale, Time orariofinale, String note)

notePrenotazioni (String columnName, Date giorno, Time orarioiniziale, Time orariofinale)

numeroPrenotazioni (Date giornoinizio, Date giornofine)

richiediDocenteAmministratore ()

richiediModuloConsigliato (String PercorsoS)

stampaPrenotazioniPerAula (String selectedItem)

stampaPrenotazioniPerDocente ()

stampaPrenotazioniPerDocenti (String Id)

stampaPrenotazioniPerIntervallo (Date giornoinizio, Date giornofine)

Page 11: Ingegneria Del Software   Schedule, Progetto

verificaAssegnazione (String IDDoc, String NomeIns, String CDL)

verificaAula (String nomeAula, int capienza, String tipologia, int piano, String locazione

visualizzaPrenotazioni (Date giornoinizio, Date giornofine)

visualizzazioneGenerale (Object[ ][ ] contenuto, ArrayList<String> listaaule, Date giorno)

Descrizione: Gestisce le chiamate a tutte le interfacce grafiche del sistema

Nome Classe: InserimentoDatiPersonali

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InserimentoDatiPersonali ()

InserimentoDatiPersonaliFrame ()

inserimentoDatiPersonaliPanel (jFrame frame)

Descrizione: Gestisce l'interfaccia grafica che si occupa di catturare i dati relativi all Docente

Nome Classe: InterfacciaGestioneAula

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneAule (ArrayList<String> datiAula)

InterfacciaGestioneAuleFrame (ArrayList<String> datiAula)

InterfacciaGestioneAulePanel (jFrame frame, ArrayList<String> datiAula)

Descrizione: Gestisce l'interfaccia grafica e alcune operazioni relative alla gestione delle Aule.

Nome Classe: InterfacciaGestioneInsegnamento

Page 12: Ingegneria Del Software   Schedule, Progetto

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneInsegnamento (ArrayList<String> datiInsegnamento, ArrayList<String> datiDocente)

InterfacciaGestioneInsegnamentoPanel (ArrayList<String> datiInsegnamento, ArrayList<String> datiDocente, jFrame frame)

InterfacciaGestioneInsegnamentoFrame (ArrayList<String> datiInsegnamento, ArrayList<String> datiDocente)

Descrizione: Gestisce l'interfaccia grafica e alcune operazioni relative alla gestione degli Insegnamenti

Nome Classe: InterfacciaAutentificazione

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaAutenticazione ()

InterfacciaAutentificazioneFrame ()

InterfacciaAutentificazionePanel (jFrame frame)

Descrizione: Gestisce l'interfaccia grafica relativa all'autentificazione di un utente

Nome Classe: InterfacciaEffettuaPrenotazione

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaEffettuaPrenotazione (DefaultTableModel tabellaprenotazioni, int row, int column, Date giorno)

InterfacciaEffettuaPrenotazionePanel (jFrame frame)

InterfacciaEffettuaPrenotazioneFrame ()

Page 13: Ingegneria Del Software   Schedule, Progetto

Descrizione: Gestisce l'interfaccia grafica per la memorizzazione di una prenotazione

Nome Classe: InterfacciaEliminaPrenotazione

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaEliminaPrenotazione /(DefaultTableModel tabellaprenotazioni, int row, int column, Date giorno)

InterfacciaEliminaPrenotazionePanel (jFrame frame)

InterfacciaEliminaPrenotazioneFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa all'eliminazione di una prenotazione

Nome Classe: InterfacciaEliminazioni

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaEliminazione ()

InterfacciaEliminazionePanel (jFrame frame)

InterfacciaEliminazioneFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa all eliminazione di un Docente/Amministratore

Nome Classe: InterfacciaEsportaHTML

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaEsportaHTML (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa all' esportazione in HTML.

Page 14: Ingegneria Del Software   Schedule, Progetto

Nome Classe: InterfacciaEsportaPDF

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaEsportaPDF (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa all' esportazione in PDF

Nome Classe: InterfacciaGestioneAmministratore

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneAmministratore ()

InterfacciaGestioneAmministratorePanel (jFrame frame)

InterfacciaGestioneAmministratoreFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione dell'amministratore

Nome Classe: InterfacciaGestioneDati

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneDati (ArrayList<String>datiUtente)

InterfacciaGestioneDatiPanel (ArrayList<String>datiUtente, jFrame frame)

InterfacciaGestioneDatiFrame (ArrayList<String>datiUtente)

Descrizione: Gestisce l'interfaccia grafica relativa ai dati di a

Nome Classe: InterfacciaGestioneDatiPersonalideiDocentiperAmministratore

Livello Architetturale: Presentazione

Istanzia: Front Controller

Page 15: Ingegneria Del Software   Schedule, Progetto

Metodi Pubblici: InterfacciaGestioneDatiPersonalideiDocentiperAmministratore (ArrayList<String> datiDocenti)

InterfacciaGestioneDatiPersonalideiDocentiperAmministratorepanel (ArrayList<String> datiDocenti, jFrame frame)

InterfacciaGestioneDatiPersonalideiDocentiperAmministratoreFrame (ArrayList<String> datiDocenti)

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione dei docenti da parte dell'amministratore

Nome Classe: InterfacciaGestioneDocente

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: interfacciaGestioneDocente (ArrayList<String> datiDoc)

InterfacciaGestioneDocentePanel (ArrayList<String> datiDoc, jFrame frame)

InterfacciaGestioneDocenteFrame (ArrayList<String> datiDoc)

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione del docente

Nome Classe: InterfacciaGestioneInserimentoProgrammaDidattico

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneInserimentoProgrammaDidattico (ArrayList<String> nomiIns)

InterfacciaGestioneInserimentoProgrammaDidatticoPanel (ArrayList<String> nomiIns, jFrame frame)

interfacciaGestioneInserimentoProgrammaDidatticoFrame (ArrayList<String> nomiIns)

Descrizione: Gestisce l'interfaccia grafica relativa all'

Page 16: Ingegneria Del Software   Schedule, Progetto

inserimento di un nuovo programma Didattico

Nome Classe: InterfacciaGestionePrenotazione

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestionePrenotazione ()

InterfacciaGestionePrenotazioneFrame ()

InterfacciaGestionePrenotazionePanel (jFrame frame)

InterfacciaGestionePrenotazioneTablePanel ()

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione delle prenotazioni da parte del docente

Nome Classe: InterfacciaGestioneProgrammiDidattici

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneProgrammiDidattici (ArrayList<String> datiProgrammaDidattico)

InterfacciaGestioneProgrammiDidatticiPanel (ArrayList<String> datiProgrammaDidattico, jFrame frame)

InterfacciaGestioneProgrammiDidatticiFrame (ArrayList<String> datiProgrammaDidattico)

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione dei programmi didattici del docente

Nome Classe: InterfacciaGestioneRicevimento

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneRicevimento (ArrayList<String> insegnamenti)

InterfacciaGestioneRicevimentoPanel (ArrayList<String> insegnamenti, jFrame

Page 17: Ingegneria Del Software   Schedule, Progetto

frame)

InterfacciaGestioneRicevimentoFrame (ArrayList<String> insegnamenti)

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione dell' orario di riceviemento del docente

Nome Classe: InterfacciaGestioneRicevimentoPerAmministratore

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaGestioneRiceviementoperAmministratore (ArrayList<String> datiIns, ArrayList<String> datiDocente)

InterfacciaGestioneRicevimentoperAmministratorePanel (ArrayList<String> datiIns, ArrayList<String> datiDocente, jFrame frame)

InterfacciaGestioneRicevimentoperAmministratoreframe (ArrayList<String> datiIns, ArrayList<String> datiDocente)

Descrizione: Gestisce l'interfaccia grafica relativa alla gestione dell'orario di ricevimento dei docenti da parte

dell'amministratore

Nome Classe: InterfacciaInsVecchiDati

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: interfacciaInsVecchiDati ()

InterfacciaInsVecchiDatiPanel (jFrame frame)

InterfacciaInsVecchiDatiFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa al inserimento dei vecchi dati del docente e

dell'amministratore

Nome Classe: InterfacciaInserimentoDatiAula

Livello Architetturale: Presentazione

Page 18: Ingegneria Del Software   Schedule, Progetto

Istanzia: Front Controller

Metodi Pubblici: interfacciaInserimentoDatiAula ()

InterfacciaInserimentoDatiAulaPanel (jFrame frame)

InterfacciaInserimentoDatiAulaFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa all' inserimento dei dati delle aule

Nome Classe: InterfacciaInserimentoNuovoUtente

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaInserimentoNuovoUtente ()

InterfacciainserimentoNuovoUtentePanel (jFrame frame)

InterfacciaInserimentoNuovoUtenteFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa all'inserimento di un nuovo Docente/Amministratore.

Nome Classe: InterfacciaInserimentoOrarioRicevimento

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaInserimentoOrarioRicevimento (String nomeIns, String CDL)

InterfacciaInserimentoOrarioRicevimentoPanel (String nomeIns, String CDL, jFrame frame)

InterfacciaInserimentoOrarioRicevimentoFrame (String nomeIns, String CDL)

Descrizione: Gestisce l'interfaccia grafica relativa all' inserimento di un orario di ricevimento del docente

Nome Classe: InterfacciaInserisciDatiInsegnamento

Page 19: Ingegneria Del Software   Schedule, Progetto

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaInserimentoDatiInsegnamento ()

InterfacciaInserimentoDatiInsegnamentoPanel (jFrame frame)

InterfacciaInserimentoDatiInsegnamentoFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa all'inserimento dei dati relatavi al insegnamento

da parte dell' amministratore.

Nome Classe: InterfacciaModificaDati

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaDati ()

InterfacciaModificaDatiPanel (jFrame frame)

InterfacciaModificaDatiFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa alla Modifica dei dati del docente/amministratore

Nome Classe: InterfacciaModificaDatiAula

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaDatiAula (ArrayList<String> datiAula)

InterfacciaModificaDatiAulaFrame (ArrayList<String> datiAula)

InterfacciaModificaDatiAulaPanel (ArrayList<String> datiAula, jFrame frame)

Descrizione: Gestisce l'interfaccia grafica relativa alla modifica del dati relativi all'aula da parte

dell'amministratore

Page 20: Ingegneria Del Software   Schedule, Progetto

Nome Classe: InterfacciaModificaDatiInsegnamento

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaDatiInsegnamento (ArrayList<String> datiProgrammaDidattico)

InterfacciaModificaDatiInsegnamentoFrame (ArrayList<String> datiProgrammaDidattico)

InterfacciaModificaDatiInsegnamentoPanel (ArrayList<String> datiProgrammaDidattico, jFrame frame)

Descrizione: Gestisce l'interfaccia grafica relativa alla modifica dei dati relativi all'insegnamento da parte

dell'amministratore

Nome Classe: InterfacciaModificaDatiPersonali

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaDatiPersonali (ArrayList<String> datiUtente)

InterfacciaModificaDatiPersonaliPanel (ArrayList<String> datiUtente, jFrame frame)

InterfacciaModificaDatiPersonaliFrame (ArrayList<String> datiUtente)

Descrizione: Gestisce l'interfaccia grafica relativa alla modifica dei dati personali del docente

Nome Classe: InterfacciaModificaPrenotazione

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaPrenotazione (DefaultTableModel tabellaprenotazioni, int row, int column, Date giorno)

InterfacciaModificaPrenotazionePanel (jFrame frame)

InterfacciaModificaPrenotazioneFrame ()

Page 21: Ingegneria Del Software   Schedule, Progetto

Descrizione: Gestisce l'interfaccia grafica relativa alla modifica dei dati relativi alla prenotazione da parte del

docente

Nome Classe: InterfacciaModificaProgrammaDidattico

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaProgrammaDidattico (ArrayList<String> datiProgrammaDidattico)

InterfacciaModificaProgrammaDidatticoPanel (ArrayList<String> datiProgrammaDidattico, jFrame frame)

InterfacciaModificaProgrammaDidatticoFrame (ArrayList<String> datiProgrammaDidattico)

Descrizione: Gestisce l'interfaccia grafica relativa alla modifica del programma didattico da parte del docente

Nome Classe: InterfacciaModificaRicevimento

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaModificaRicevimento (String nomeIns, String CDL)

InterfacciaModificaRicevimentoPanel (String nomeIns, String CDL, jFrame frame)

InterfacciaModificaRicevimentoFrame (String nomeIns, String CDL)

Descrizione: Gestisce l'interfaccia grafica relativa alla modifica dell'orario di ricevimento da parte del docente

Nome Classe: InterfacciaScaricamentoModuloConsigliato

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaScaricamnetoModuloConsigliato ()

InterfacciaScaricamentoModuloConsigliatoPanel (jFrame frame)

Page 22: Ingegneria Del Software   Schedule, Progetto

InterfacciaScaricamentoModuloConsigliatoFrame ()

Descrizione: Gestisce l'interfaccia grafica relativa allo scaricamento del modulo consigliato da parte del

docente.

Nome Classe: InterfacciaStampaDatiDocente

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaDatiDocente (ArrayList<String> dati)

InterfacciaStampaDatiDocentePanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaDatiDocenteFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla Stampa dei dati relativi al docente da parte del docente

Nome Classe: InterfacciaStampaDocentiSelezionati

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaDocentiSelezionati (ArrayList<String> dati)

InterfacciaStampaDocentiSelezionatiPanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaDocentiSelezionatiFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei docenti selezionati da parte

dell'amministratore

Nome Classe: InterfacciaStampaInsegnamentiDocente

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaInsegnamentiDocente

Page 23: Ingegneria Del Software   Schedule, Progetto

(ArrayList<String> dati)

InterfacciaStampaInsegnamentiDocentePanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaInsegnamentiDocenteFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa degli insegnamenti tenuti da un docente da parte

dell'amministratore

Nome Classe: InterfacciaStampaInsegnamentoSelezionato

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: interfacciaStampaInsegnamentoSelezionato (ArrayList<String> dati)

interfacciaStampaInsegnamentoSelezionatoPanel (ArrayList<String> dati, jFrame frame)

interfacciaStampaInsegnamentoSelezionatoFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei dati relativi all' insegnamento selezionato da

parte dell'amministratore

Nome Classe: InterfacciaStampaOrarioRicevimento

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaOrarioRicevimento (ArrayList<String> dati)

InterfacciaStampaOrarioRicevimentoPanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaOrarioRicevimentoFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa degli orari di ricevimento del docente

Nome Classe: InterfacciaStampaOrariRicevimentiSelezionati

Page 24: Ingegneria Del Software   Schedule, Progetto

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaOrarioRicevimentiSelezionati (ArrayList<String> dati)

InterfacciaStampaOrarioRicevimentiSelezionatiFrame (ArrayList<String> dati)

InterfacciaStampaOrarioRicevimentiSelezionatiPanel (ArrayList<String> dati, jFrame frame)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa degli orari di ricevimento selezionati da parte

dell'amministratore

Nome Classe: InterfacciaStampaOrarioRicevimentoSingoloDocente

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaOrarioRicevimentoSingoloDocente (ArrayList<String> dati)

InterfacciaStampaOrarioRicevimentoSingoloDocentePanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaOrarioRicevimentoSingoloDocenteFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa degli orari di ricevimento di un docente selezionato da parte dell'amministratore

Nome Classe: InterfacciaStampaPrenotazioniAulePer Amministratore

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaPrenotazioniAulePer Amministratore ()

InterfacciaStampaPrenotazioniAulePer AmministratorePanel (jFrame frame)

InterfacciaStampaPrenotazioniAulePer

Page 25: Ingegneria Del Software   Schedule, Progetto

AmministratoreFrame ()

InterfacciaStampaIntervalloDiTempo ()

InterfacciaStampaPrenotazioniPerAula ()

InterfacciaStampaPrenotazioniPerDocente ()

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa delle prenotazioni delle aule da parte

dell'amministratore

Nome Classe: InterfacciaStampaPrenotazioniGenerali

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaPrenotazioniGenerali ()

InterfacciaStampaPrenotazioniGeneralipanel (jFrame frame)

InterfacciaStampaPrenotazioniGeneraliFrame ()

InterfacciaStampaIntervalloditempo ()

InterfacciaStampaPrenotazioniPerAula ()

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa delle prenotazioni delle aule da parte del docente

Nome Classe: InterfacciaStampaProgrammiDidattici

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaProgrammiDidattici (ArrayList<String> dati)

InterfacciaStampaProgrammiDidatticiPanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaProgrammiDidatticiFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei programmi didattici da parte dell'docente

Nome Classe: InterfacciaStampaProgrammiDidatticiperAmministr

Page 26: Ingegneria Del Software   Schedule, Progetto

atore

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaProgrammiDidatticiperAmministratore (ArrayList<String> dati)

InterfacciaStampaProgrammiDidatticiperAmministratorePanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaProgrammiDidatticiperAmministratoreFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei programmi didattici da parte

dell'amministratore

Nome Classe: InterfacciaStampaPropriInsegnamenti

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaPropriInsegnamenti (ArrayList<String> dati)

InterfacciaStampaPropriInsegnamentiPanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaPropriInsegnamentiFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei propri insegnamenti da parte del docente

Nome Classe: InterfacciaStampaSingoloDocente

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaSingoloDocente (ArrayList<String> dati)

InterfacciaStampaSingoloDocentePanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaSingoloDocenteFrame (ArrayList<String> dati)

Page 27: Ingegneria Del Software   Schedule, Progetto

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei dati di un docente selezionato da parte del

amministratore

Nome Classe: InterfacciaStampaTuttiDocenti

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaTuttiDocenti (ArrayList<String> dati)

InterfacciaStampaTuttiDocentiPanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaTuttiDocentiFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei dati di tutti i docenti da parte del

amministratore

Nome Classe: InterfacciaStampaTuttiInsegnamenti

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaStampaTuttiInsegnamenti (ArrayList<String> dati)

InterfacciaStampaTuttiInsegnamentiPanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaTuttiInsegnamentiFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei dati di tutti gli Insegnamenti da parte del

amministratore

Nome Classe: InterfacciaStampaTuttiOrariRicevimentoAmministratore

Livello Architetturale: Presentazione

Istanzia: Front Controller

Page 28: Ingegneria Del Software   Schedule, Progetto

Metodi Pubblici: InterfacciaStampaTuttiOrariRicevimentoAmministratore (ArrayList<String> dati)

InterfacciaStampaTuttiOrariRicevimentoAmministratorePanel (ArrayList<String> dati, jFrame frame)

InterfacciaStampaTuttiOrariRicevimentoAmministratoreFrame (ArrayList<String> dati)

Descrizione: Gestisce l'interfaccia grafica relativa alla stampa dei dati di tutti gli orari di ricevimento da parte del

amministratore

Nome Classe: InterfacciaVisualizzazioneDatiSingolaAula

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaVisualizzazioneDatiAula (ArrayList<String> datiAula)

InterfacciaVisualizzazioneDatiAulapanel (ArrayList<String> datiAula, jFrame frame)

InterfacciaVisualizzazioneDatiAulaFrame (ArrayList<String> datiAula)

Descrizione: Gestisce l'interfaccia grafica relativa alla visualizzazione dei dati di un aula selezionata da

parte del Amministratore

Nome Classe: InterfacciaVisualizzazioneProgrammaDidattico

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaVisualizzazioneProgrammaDidattico (ArrayList<String> datiProgrammaDidattico)

InterfacciaVisualizzazioneProgrammaDidatticoPanel (ArrayList<String> datiProgrammaDidattico, jFrame frame)

InterfacciaVisualizzazioneProgrammaDidatticoFrame (ArrayList<String> datiProgrammaDidattico)

Descrizione: Gestisce l'interfaccia grafica relativa alla visualizzazione di un programma didattico

Page 29: Ingegneria Del Software   Schedule, Progetto

selezionato dal docente

Nome Classe: InterfacciaVisualizzazioneSingoloInsegnamento

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaVisualizzazioneSingoloInsegnamento (ArrayList<String> datiInsegnamento)

InterfacciaVisualizzazioneSingoloInsegnamentoFrame (ArrayList<String> datiInsegnamento)

InterfacciaVisualizzazioneSingoloInsegnamentoPanel (ArrayList<String> datiInsegnamento, jFrame frame)

Descrizione: Gestisce l'interfaccia grafica relativa alla visualizzazione di un singolo insegnamento

selezionato da parte del amministratore.

Nome Classe: InterfacciaVisualizzaPrenotazioni

Livello Architetturale: Presentazione

Istanzia: Front Controller

Metodi Pubblici: InterfacciaVisualizzaPrenotazioni ()

InterfacciaVisualizzaPrenotazioniFrame ()

InterfacciaVisualizzazioneGenerale (jFrame frame)

InterfacciaVisualizzazioneIntervalloDiTempo ()

InterfacciaVisualizzazioneMese ()

InterfacciaVisualizzazioneSettimana ()

InterfacciaVisualizzazioneTabella ()

Descrizione: Gestisce l'interfaccia grafica relativa alla visualizzazione delle Prenotazioni

Sono riportate qui di seguito le specifiche delle classi a livello di dominio.

Nome Classe: BusinessDelegate

Page 30: Ingegneria Del Software   Schedule, Progetto

Livello Architetturale: Dominio

Istanzia: Tutti i gestori

Metodi Pubblici: confermaModificaDatiPersonali (String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoDocente, String emailDocente, String tipologiaDocente)

datiOrarioRicevimeto ()

datiProgrammaDidatticoStampa ()

downloadModuloConsigliato (String PercorsoS)

effettuaPrenotazione (String columnName, Date giorno, Time orarioIniziale, Time orariofinale, String note)

eliminaAmministratore (String username, String password)

eliminaDocente (String username, String password)

eliminaPrenotazione (String columnName, Date giorno, Time orarioIniziale, Time orariofinale)

inserimentoDatiPersonaliDocente (String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoDocente, String emailDocente, String tipologiaDocente)

inserisciDatiUtenteAmministratore (String codiceFiscale, String username, String password)

inserisciDatiUtenteDocente String codiceFiscale, String username, String password)

listaAule ()

memorizzaAssegnazione (String ID, String CDL, String Nome)

memorizzaAula (String nomeAula, int capienza, String tipologia, int piano, String locazione)

memorizzaDatiNuovoInsegnamento (String nomeIns, String CDL, int CFU)

memorizzaModificaAula (int ID, String nomeAula, int capienza, String tipologia, int piano, String locazione)

memorizzaModificheInsegnamento (int Id, String CDL, String nome, int CFU)

memorizzaModificaProgrammaDidattico (int

Page 31: Ingegneria Del Software   Schedule, Progetto

ID, String Descrizione, String Nome)

memorizzaModificaRicevimento (Time orarioInzio, Time orariofine, String luogoRicevimento, String giorno, String nomeIns, String cdl)

memorizzaProgrammaDidattico (String nomeProgDidattico. String descrizioneProgDidattico, String nomeIns, String CDL)

memorizzaRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento, String giorno, String nomeIns, String CDL)

modificaPrenotazione (String columnName, Date giorno, Time orarioIniziale, Time orariofinale, String note)

notePrenotazione (String columnName, Date giorno, Time orarioiniziale, Time orariofinale)

numeroPrenotazioni (Date giornoinizio, Date giornofine)

prelevaIDDocente ()

richiediDatiSingoloDocente (String idDoc)

richiediAula ()

richiediDatiDocente ()

richiediDatiDocenteModifica ()

richiediDatiDocenteStampa ()

richiediDatiDocenti (ArrayList<String> idDoc)

richiediDatiTuttiDocenti ()

richiediDocenteBenvenuto ()

richiediDocentiAmministratore ()

richiediInsegnamentiSelezionatiStampa (ArrayList<String> nomeIns, ArrayList<String> CDL)

richiediInsegnamentoAmministratore (String nomeIns, String CDL)

richiediInsegnamentoDocenteSelezionatoPerAssociazioneProgrammaDidattico ()

richiediNomeInsegnamento ()

richiediNomiProgrammaDidattico ()

richiediProgrammaDidattico (String nomePD)

richiediProgrammaDidatticoVisualizzazione (String nomePD)

richiediProgrammaDidatticiAmministratore ()

richiediPropriInsegnamenti ()

Page 32: Ingegneria Del Software   Schedule, Progetto

richiediRicevimentiSelezionati (ArrayList<String> nomeIns, ArrayList<String> CDL)

richiediRicevimentoDocenteSelezionato (String idDoc)

richiediTuttiRicevimenti ()

richiestaAula (int idAula)

richiestaInsegnamentiDocenteSelezionato (String idDocente)

richiestaInsegnamentiStampaTutti ()

richirstaPropriInsegnamentiStampa ()

salvaDatiModificatiDocente (String username, String password)

salvaDatiModificatiAmministratore (String username, String password)

stampaPrenotazioniPerAula (String selectedItem)

stampaPrenotazionePerDocente ()

stampaPrenotazioniPerDocenti (String ID)

stampaPrenotazioniPerIntervallo (Date giornoInizio, Date giornoFine)

verificaAssegnazione (String nomeIns, String CDL)

verificaAula (String nomeAula, int piano, String locazione)

verificaDatiAmministratoreAutentificazione (String username, String password)

verificaDatiDocenteAutentificazione (String username, String password)

verificaDatiAmministratoreEliminazione (String username, String password)

verificaDatiDocenteEliminazione (String username, String password)

verificaDatiPersonali (String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoTelefonico, String emailDocente, String tipologiaDocente)

verificaInsegnamento (String nomeIns, String CDL)

verificaPresenzaDatiAmministratore (String codiceFiscale, String username, String password)

verificaPresenzaDatiDocente (String codiceFiscale, String username, String

Page 33: Ingegneria Del Software   Schedule, Progetto

password)

verificaPresenzaDatiModificatiDocente (String username, String password)

verificaPresenzaDatiModificatiAmministratore (String username, String password)

verificaProgrammaDidattico (String nomeProgDidattico, String nomeIns, String CDL)

verificaRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento, String giorno, String nomeIns, String CDL)

verificaRicevimentoModifica (String nomeIns, String CDL(

verificaVecchiDatiAmministratore (String username, String password)

verificaVecchiDatiDocente (String username, String password)

visualizzaPrenotazioni (Date giornoInizio, Date giornoFine)

visualizzazione Generale (Object[ ][ ] contenuto, ArrayList<String> listaAule, Date giorno)

esportaHTML (String name, ArrayList<String> dati)

esportaPDF (String name, ArrayList<String> dati)

Descrizione: Gestisce i veri gestori di tutte le entità e risponde a tutte le richieste provenienti dal front controller.

Nome Classe: Gestore Docente

Livello Architetturale: Dominio

Istanzia: Docente

Metodi Pubblici: ConfermamodificaDatiPersonali (String usernamev, String passwordv, String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoDocente, String emailDocente, String tipologiaDocente)

EliminaDocente (String username, String password)

InserimentodatiPersonaliDocente (String usernamev, String passwordv, String nome,

Page 34: Ingegneria Del Software   Schedule, Progetto

String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoDocente, String emailDocente, String tipologiaDocente)

InseriscidatinuovoutenteDocente (String codiceFiscale, String username, String password)

PrelievaCognomeDocente (String idDocente)

PrelievoIDdocente (String username, String password)

PrelievoNomeDocente (String idDocente)

RichiediDatiDocente (String username, String password)

RichiediDatiDocenteBenvenuto (String username, String password)

richiediDatidocenteModifica (String usernamev, String passwordv)

richiediDatidocenteStampa (String usernamev, String passwordv)

richiediDatidocenti (ArrayList<String> idDoc)

richiedidatiSingoloDocente (String idDoc)

RichiediDatiTuttiDocenti ()

RichiediDocenteAmministratore ()

SalvadatiModificatiDocente (String usernamev, String passwordv, String username, String password)

verificaDatiDocenteAutentificazione (String user, String pass)

verificaDatiDocenteEliminazione (String username, String password)

verificaDatiPersonali (String usernamev, String passwordv, String nome, String cognome, String dataNascita, String luogoNascita, String dipartimentoDocente, String recapitoDocente, String emailDocente, String tipologiaDocente)

verificaPresenzaDatiDocente (String codiceFiscale, String user, String pass)

verificaPresenzaDatiModificatiDocente (String usernamev, String passwordv, String username, String password)

verificaVecchiDatiDocente (String username, String password)

Descrizione: Si occupa di gestire i dati relativi al docente

Page 35: Ingegneria Del Software   Schedule, Progetto

Nome Classe: Gestore Amministratore

Livello Architetturale: Dominio

Istanzia: Amministratore

Metodi Pubblici: eliminaAmministratore (String username, String password)

inseriscaDatiNuovoUtenteAmministratore (String codiceFiscale, String username, String password)

salvaDatiModificatiAmministratore (String usernamev, String passwordv, String username, String password)

verificaDatiAmministratoreAutentificazione (String user, String pass)

verificaDatiAmministratoreEliminazione (String username, String password)

verificapresenzaDatiAmministratore (String codiceFiscale, String user, String pass)

VerificapresenzadatimodificatiAmministratore (String usernamev, String passwordv, String username, String password)

verificavecchidatiAmministratore (String username, String password)

Descrizione: Si occupa di gestire i dati relativi all’amministratore

Nome Classe: Gestore Aule

Livello Architetturale: Dominio

Istanzia: Aule

Metodi Pubblici: ListaAule ()

memorizzaAula (String nomeAula, int capienza, String tipologia, int piano, String locazione)

memorizzaModifica (int ID, String nomeAula, int capienza, String tipologia, int piano, String locazione)

prelevaIDAula (String nome)

prelievoNomeAula (int IDAula)

richiediAula ()

richiestaAula (int idAula)

Page 36: Ingegneria Del Software   Schedule, Progetto

verificaAula (String nomeAula, int piano, String locazione)

Descrizione: Si occupa di gestire i dati relativi alle aule

Nome Classe: Gestore Insegnamento

Livello Architetturale: Dominio

Istanzia: Insegnamento

Metodi Pubblici: eliminaInsegnamento (String idDoc)

MemorizzaAssegnazione (String idDoc, String CDL, String nomeIns)

memorizzaDatiNuovoInsegnamento (String nomeIns, String CDL, int CFU)

memorizzaModificheInsegnamento (int ID, String corso, String nome, int CFU)

richiediInsegnamentiSelezionatiStampa (ArrayList<String> nomeIns, ArrayList<String> CDL)

richiediInsegnamentiStampaTutti ()

richiediInsegnamentoAmministratore (String nomeIns, String CDL)

richiediInsegnamentoDocenteSelezionato (String idDocente)

richiediInsegnamentoDocenteSelezionatoperAssociazioneProgrammaDidattico (String idDocente)

richiediNomiInsegnamenti ()

richiediPropriInsegnamenti (String idDocente)

richiediPropriInsegnamentiStampa (String idDocente)

verifica Assegnazione (String nomeIns, String CDL)

verificaInsegnamento (String nomeIns, String CDL)

Descrizione: Si occupa di gestire i dati relativi agli insegnamenti

Nome Classe: Gestore Prenotazione

Page 37: Ingegneria Del Software   Schedule, Progetto

Livello Architetturale: Dominio

Istanzia: Prenotazione

Metodi Pubblici: effettuaPrenotazione (String idDocente, int IdAula, Date giorno, Time orarioIniziale, Time orarioFinale, String note)

eliminaPrenotazione (String idDocente)

eliminaPrenotazione (String idDocente, int IdAula, Date giorno, Time orarioIniziale, Time orarioFinale)

ModificaPrenotazione (String idDocente, int IdAula, Date giorno, Time orarioIniziale, Time orarioFinale, String note)

NotePrenotazione (String Docente, int IdAula, Date giorno, Time orarioIniziale, Time orarioFinale)

NumeroPrenotazioni (Date giornoInizio, Date giornoFine)

StampaPrenotazioniPerAula (int Aula)

stampaPrenotazioniperdocente (String Docente)

stampaPrenotazioniPerintervallo (Date giornoInizio, Date giornoFine)

VerificaPrenotazioniDocente (String idDocente, int idAula, Time orarioAttuale, Time orarioFinale, Date giorno)

verificaPresenzaPrenotazione (int IdAula, Time orarioAttuale, Time orarioFinale, Date giorno)

visualizzaPrenotazione (Date giornoInizio, Date giornoFine)

Descrizione: Si occupa di gestire i dati relativi alle prenotazioni

Nome Classe: Gestore Programma Didattico

Livello Architetturale: Dominio

Istanzia: Programma Didattico

Metodi Pubblici: datiProgrammaDidatticoStampa (String idDoc)

memorizzaAssociazioneProgrammaDidattico (String nomeIns, String CDL, int IDPD)

eliminaProgrammaDidattico (String idDoc)

memorizzaModificheProgrammaDidattico (int

Page 38: Ingegneria Del Software   Schedule, Progetto

id, String descrizione, String nome)

memorizzaProgrammaDidattico (String nomeProgDidattico, String descrizioneProgDidattico, String idDocente)

richiediNomiProgrammaDidattico (String idDocente)

richiediProgrammaDidattico (String progDidattico)

richiediProgrammaDidatticoVisualizzazione (String progDidattico)

richiediProgrammiDidatticiAmministratore ()

verificaInsegnamentoPerProgrammaDidattico (String nomeIns, String CDL)

verificaProgrammaDidattico (String nomeProgDidattico)

Descrizione: Si occupa di gestire i dati relativi ai Programmi Didattici

Nome Classe: Gestore Ricevimento

Livello Architetturale: Dominio

Istanzia: Ricevimento

Metodi Pubblici: DatiOrarioRicevimento (String usernamev, String passwordv)

IDriceviementoperAssegnamento (String nomeIns, String CDL)

elimina Ricevimento (String idDoc)

memorizzaAssociazioneRicevimento (int IDRicevimento, String nomeIns, String CDL)

memorizzaModificaRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento, String giorno, int IdRic)

memorizzaRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento, String giorno, String idDoc)

richiediDatiRicevimentoperDocente (String idDoc)

RichiediRiceviementiSelezionati (ArrayList<String> idRic)

richiediTuttiRicevimenti ()

richiediTuttiRicevimenti (ArrayList<String> idRic)

richiediRicevimentiSelezionati

Page 39: Ingegneria Del Software   Schedule, Progetto

(ArrayList<String> nomeIns, ArrayList<String> CDL)

verificaAssociazioneperRicevimento (String nomeIns, String CDL)

verificaRicevimento (Time orarioInizio, Time orarioFine, String luogoRicevimento, String giorno)

Descrizione: Si occupa di gestire i dati relativi ai Ricevimenti

Nome Classe: Modulo consigliato

Livello Architetturale: Dominio

Metodi Pubblici: ScaricamentoModuloConsigliato (String PercorsoS)

Descrizione: Si occupa di gestire il download del modulo consigliato

Nome Classe: EsportaHTML

Livello Architetturale: Dominio

Metodi Pubblici: stampaHTML (String nome, ArrayList<String> dati)

Descrizione: Si occupa di gestire la stampa dei dati in formato HTML

Nome Classe: EsportaPDF

Livello Architetturale: Dominio

Metodi Pubblici: stampaPDF (String nome, ArrayList<String> dati)

Descrizione: Si occupa di gestire la stampa dei dati in formato PDF

Nome Classe: Docente

Livello Architetturale: Dominio

Attributi: Id

Cognome

DatadiNascita

Page 40: Ingegneria Del Software   Schedule, Progetto

DipDiAppartenenza

E-mail

LuogoDiNascita

Nome

Password

RecapitoTelefonico

TipologiaDocente

Username

Metodi Pubblici: SetID (String id)

setCognome (String cogn)

setNome (String nom)

setDatadiNascita (Date date)

setDipDiAppartenenza (String dip)

setEMail (String mail)

setLuogoDiNascita (String luogo)

setPassword (String pass)

setUsername (String user)

setRecapitoTelefonico (String recap)

setTipologiaDocente (string tipologia)

getID ()

getCognome ()

getNome ()

getDatadiNascita ()

getDipDiAppartenenza ()

getEMail ()

getLuogoDiNascita ()

getpassword ()

getUsername ()

getNome ()

getRecapitoTelefonico ()

getTipologiaDocente ()

Descrizione: Si occupa di gestire i dati relativi al docente

Nome Classe: Amministratre

Livello Architetturale: Dominio

Page 41: Ingegneria Del Software   Schedule, Progetto

Attributi: Id

Password

Username

Metodi Pubblici: setID (String id)

set Password (String pass)

set Username (String user)

getID ()

getUsername ()

getPassword ()

Descrizione: Si occupa di gestire i dati relativi al amministratore

Nome Classe: Insegnamento

Livello Architetturale: Dominio

Attributi: NomeInsegnamento

CorsoDiLaurea

CFU

ID

Metodi Pubblici: setID (int ID)

setNomeInsegnamento (String nome)

setCFU (int CF)

setCorsoDiLaurea (String corso)

getID ()

getNomeInsegnamento ()

getCFU ()

getCorsoDiLaurea ()

Descrizione: Si occupa di gestire i dati relativi al Insegnamento

Nome Classe: Aula

Livello Architetturale: Dominio

Attributi: NomeAula

Capienza

TipologiaAula

Page 42: Ingegneria Del Software   Schedule, Progetto

Locazione

PianoAula

ID

Metodi Pubblici: setID (int ID)

setNome (String Nom)

setCapacità (int cap)

setTipologiaAula (String tip)

setLocazione (String loc)

setPiano (int pian)

getID ()

getNome ()

getCapacità ()

getTipologiaAula ()

getLocazione ()

getPiano ()

Descrizione: Si occupa di gestire i dati relativi al Aula

Nome Classe: Prenotazione

Livello Architetturale: Dominio

Attributi: Id

OraInizio

OraFine

Giorno

Note

Metodi Pubblici: setID (int ID)

setOraInizio (Time OInizio)

setOraFine (Time OFine)

setGiorno (Date G)

setNote (String n)

getID ()

getOraInizio ()

getOraFine ()

getGiorno ()

getNote ()

Page 43: Ingegneria Del Software   Schedule, Progetto

Descrizione: Si occupa di gestire i dati relativi alle prenotazioni

Nome Classe: ProgrammaDidattico

Livello Architetturale: Dominio

Attributi: Id

descrizioneProgramma

ProgrammaDidattico

nomeProgrammaDidattico

Metodi Pubblici: setID (int ID)

setdescrizioneProgrammaDidattico (String Descrizione)

setProgrammaDidattico (String Programma)

setNomeProgrammaDidattico (String NomeProgramma)

getID ()

getdescrizioneProgrammaDidattico ()

getProgrammaDidattico ()

getNomeProgrammaDidattico ()

Descrizione: Si occupa di gestire i dati relativi ai Programmi Didattici

Nome Classe: Ricevimento

Livello Architetturale: Dominio

Attributi: Id

OraInizio

OraFine

LuogoRicevimento

Giorno

Metodi Pubblici: setID (int idRicevimento)

setOraInizio (Time Inizio)

setOraFine (Time Fine)

setLuogoRicevimento (String Luogo)

setGiorno (String Gior)

Page 44: Ingegneria Del Software   Schedule, Progetto

getID ()

getOraInizio ()

getOraFine ()

getLuogoRicevimento ()

getGiorno ()

Descrizione: Si occupa di gestire i dati relativi al Ricevimento

Sono riportate qui di seguito le specifiche delle classi a livello di sorgente dati.

Nome Classe: DataMapper

Livello Architetturale: SorgenteDati

Attributi: connesso

db

nomeDB

nome Utente

pwdUtente

Metodi Pubblici: connetti ()

disconnetti ()

eseguiAggiornamento (String query)

eseguiCancellazione (String query)

eseguiInserimento (String query)

eseguiquery (String query)

Descrizione: Si occupa di gestire i dati presenti nel DataBase

2.3. Diagrammi di Sequenza2.3. Diagrammi di SequenzaI diagrammi di sequenza relativi alla progettazione posso essere visualizzati nel file diagram_14 della progettazione nella sezione “Diagrammi di sequenza”.

2.4. Modello di Decisione2.4. Modello di DecisioneNel seguente modello di decisione verranno elencate tutte le classi dei vari livelli architetturali per definire in quali capacità questi rientrano.

LIVELLO PRESENTAZIONE

Invarianti Varianti

C1 C2 C3 C4 C5 C6 C7 C8

Page 45: Ingegneria Del Software   Schedule, Progetto

Front Controller

InterfacciaAutenticazione

InterfacciaEffettuaPrenotazione

InterfacciaEliminaPrenotazione

InterfacciaEliminazione

InterfacciaEsportaHTML

InterfacciaEsportaPDF

InterfacciaGestioneAmministratore

InterfacciaGestioneAule

InterfacciaGestioneDati

InterfacciaGestioneDatiPersonaliDocenteperAmministratore

InterfacciaGestioneDocente

InterfacciaGestioneInsegnamenti

InterfacciaGestioneInserimentoProgrammaDidattico

InterfacciaGestionePrenotazione

InterfacciaGestioneProgrammiDidattici

InterfacciaGestioneRicevimento

InterfacciaGestioneRicevimentoperAmministratore

InterfacciaInsVecchiDati

InterfacciaInserimentoDatiAula

InterfacciaInserimentoDatiPersonali

InterfacciaInserimentoNuovoUtente

InterfacciaInserimentoOraridiRicevimento

InterfacciaInserisciDatiInsegnamento

InterfacciaModificaDati

InterfacciaModificaDatiAula

InterfacciaModificaDatiInsegnamento

InterfacciaModificaDatiPersonali

InterfacciaModificaPrenotazione

InterfacciaModificaProgrammaDidattico

InterfacciaModificaRicevimento

InterfacciaScaricamentoModuloConsigliato

Page 46: Ingegneria Del Software   Schedule, Progetto

InterfacciaStampaDatiDocente

InterfacciaStampaDocenteSelezionati

InterfacciaStampaInsegnamentiDocente

InterfacciaStampaInsegnamentoSelezionato

InterfacciaStampaOrariodiRicevimentoSelezionati

InterfacciaStampaOrarioRicevimento

InterfacciaStampaOrarioRicevimentoSingoloDocente

InterfacciaStampaPrenotazioneAuleper Amministratore

InterfacciaStampaPrenotazionigenerali

InterfacciaStampaProgrammiDidattici

InterfacciaStampaProgrammiDidatticiperAmministratore

InterfacciaStampaPropriInsegnamenti

InterfacciaStampaSingoloDocente

InterfacciaStampaTuttiDocenti

InterfacciaStampatuttiInsegnamenti

InterfacciaStampaTuttiOrariRicevimento

InterfacciaVisualizzazioneDatiSingolaAula

InterfacciaVisualizzazioneProgrammaDidattico

InterfacciaVisualizzaPrenotazioni

InterfacciaVisualizzazioneSingolo insegnamento

BusinessDelegate

EsportaHTML

EsportaPDF

GestoreDocente

GestorePrenotazioni

GestoreRicevimento

GestoreProgrammiDidattici

Page 47: Ingegneria Del Software   Schedule, Progetto

GestoreInsegnamento

GestoreAule

ModuloConsigliato

DataMapper

GestoreAmministratore

Page 48: Ingegneria Del Software   Schedule, Progetto

3. P3. PROGETTOROGETTO DEIDEI D DATIATI

3.1. Database3.1. Database

3.1.1. Diagramma delle Dipendenze dei Dati3.1.1. Diagramma delle Dipendenze dei DatiLa modulazione dei dati tramite il diagramma delle dipendenze dei dati permette di ricavare da un insieme di dati non strutturati un modello logico in quinta forma normale.

3.1.2. Modello del Database3.1.2. Modello del Database

Dalla modellazione del diagramma delle dipendenze dei dati, si ottiene il seguente modello del database in 5 forma normale.

#Amministratore Username Password

#Prenotazione

#Docente #Aula

#Insegnamento

Capienza

Locazione

Nome Aula

Piano Aula

Tipologia Aula

Ora Inizio

Ora Fine

Giorno

Note

NomeCognomeData di NascitaLuogo di NascitaE-MailRecapito TelefonicoUsernamePasswordTipologia DocenteDipDiAppartenenza

CFUCorsoDiLaureaNomeInsegnamento

#Ricevimento

#Programma Didattico

#Amministratore

LuogoRicevimentoOraInizioOraFine

Descrizione ProgrammaDidattico

NomeProgrammaDidattico

UsernamePassword

Page 49: Ingegneria Del Software   Schedule, Progetto

#Aula NomeAula Capienza TipologiaAula PianoAula PosizioneAula

#Prenotazione #Aula Giorno OraInizio OraFine Note

#Docente #Prenotazione

#Docente Username

Nome Cognome DataDiNascita

DipDiAppartenenza

Email LuogoDiNascita

RecapitoTelefonico

TipologiaDocente

#Docente #ProgrammaDidattico

#ProgrammaDidattico DescrizioneProgrammaDidattico

NomeProgrammaDidattico

#Ricevimento

LuogoRicevimento Giorno OraInizio OraFine

#Docente #Ricevimento

#Insegnamento

#Ricevimento #ProgrammaDidattico

CFU NomeInsegnamento

CorsoDiLaurea

#Docente #Insegnamento

3.1.3. Dettaglio dei Dati3.1.3. Dettaglio dei DatiDocente

Identificatore Campo

Tipo chiave Tipo Descrizione

#Docente Primaria String Identifica univocamente un docente

Nome String Nome del docente

Cognome String Cognome del docente

RecapitoTelefonico

String Numero di telefono del docente

TipologiaDocente String Tipologia del docente

Password String Password di accesso al sistema

Username String Username di accesso al

Page 50: Ingegneria Del Software   Schedule, Progetto

sistema

DataDiNascita Data Data di nascita del docente

DipDiAppartenenza

String Dipartimento di appartenenza del docente

E-mail String E-mail del docente

Amministratore

Identificatore Campo

Tipo chiave Tipo Descrizione

#Amministratore Primaria String Identifica univocamente un amministratore

Password String Password di accesso al sistema

Username String Username di accesso al sistema

Aula

Identificatore Campo

Tipo chiave Tipo Descrizione

#Aula Primaria Intero Identifica univocamente un’ aula

NomeAula String Nome dell’aula

Capienza Intero Numero dei posti dell’aula

TipologiaAula String Tipo di Aula

PianoAula Intero Piano dove si trova l’aula

PosizioneAula String Indica la posizione dell’aula

Locazione String Indica la locazione dell’aula

Prenotazioni

Identificatore Campo

Tipo chiave Tipo Descrizione

#Prenotazione Primaria Intero Identifica univocamente una prenotazione

#Aula Esterna Intero Identifica univocamente un’aula

Giorno Data Indica il Giorno della Prenotazione

OraInizio Data Indica l’ora di inizio della prenotazione di un’aula

OraFine Data Indica l’ora di fine della prenotazione di un’aula

Page 51: Ingegneria Del Software   Schedule, Progetto

Programma Didattico

Identificatore Campo

Tipo chiave Tipo Descrizione

#ProgrammaDidattico

Primaria Intero Identifica univocamente un programma didattico

DescrizioneProgrammaDidattico

String Descrive il programma didattico

Ricevimento

Identificatore Campo

Tipo chiave Tipo Descrizione

#Ricevimento Primaria Intero Identifica univocamente un’orario di ricevimento

OraInizio Data Ora inizio dell’ora di ricevimento

OraFine Data Orario di fine ricevimento

Giorno String Giorno settimanale del ricevimento

Insegnamento

Identificatore Campo

Tipo chiave Tipo Descrizione

#Insegnamento Primaria Intero Identifica univocamente un insegnamento

#Ricevimento Esterna Intero Identifica univocamente un Ricevimento

#ProgrammaDidattico

Esterna Intero Identifica Univocamente un programma didattico

CFU Intero Numero crediti formativi per l’esame

CorsoDiLaurea String Corso a cui appartiene l’insegnamento

NomeInsegnamento

String Nome dell’insegnamento

Page 52: Ingegneria Del Software   Schedule, Progetto

3.2. File System3.2. File System

3.2.1. Grammatiche File XML3.2.1. Grammatiche File XMLIndicare, se presenti, le grammatiche XML

3.2.2. Altri File3.2.2. Altri File ModuloConsigliato.Doc

Documento Word che contiene al suo interno un pre-impostato modulo per la creazione di un programma didattico rispondendo a tutti i requisiti del docente e dell’insegnamento tenuto dal docente.

Il seguente documento word deve essere presente o modificato nel percorso ”Schedule/moduloconsigliato.doc”.

Parameters.doc

In questo file devono essere salvati tutti dati dall’utente tra cui:

1. Username dell’utente mySql avente accesso al database dello scheduleDB;

2. Password dell’utente mySql avente accesso al database dello scheduleDB;

3. Nome del database che è fissato di default con il valore di “scheduleDB”.

Page 53: Ingegneria Del Software   Schedule, Progetto

4. A4. APPENDICEPPENDICE

4.1. Pattern utilizzati4.1. Pattern utilizzatiCONTESTO:

L’applicazione deve fornire una interfaccia grafica costituita da più schermate, che mostrano vari dati o richiedono dati all’utente(Docente/Amministratore).

Inoltre le informazioni che devono essere visualizzate devono essere sempre quelle aggiornate.

PROBLEMA

L’ applicazione deve avere una natura modulare e basata sulla divisione per compiti ,in modo tale da ottenere un’applicazione basata su componenti. Questo è conveniente per poter facilmente gestire la manutenzione dell’applicazione.

Per tale motivo si è pensato di utilizzare un’architettura che permetta la separazione netta tra i componenti software che gestiscono il modo di presentare i dati ,e i componenti che gestiscono i dati stessi.

SOLUZIONE E STRUTTURA

L’applicazione deve separare i componenti software che implementano il modello delle funzionalità di business, dai componenti che implementano la logica di presentazione d di controllo che utilizzano tali funzionalità. Si definiscono quindi tre tipologie di componenti che soddisfano tali requisiti:

- Front Controller

Il Front Controller è implementato nella classe Front controller del livello di Presentazione. Esso centralizza tutte le richieste delle classi di Presentazione da implementare. In questo modo si garantisce un maggiore livello di manutenzione e una minore ridondanza del codice, in quanto tutto viene gestito da un' unica classe.

- Business Delegate

Il compito del Business Delegate è di disaccoppiare l'accesso ai servizi di business dai client, nascondendo e centralizzando le operazioni di localizzazione e utilizzo del servizio di business.

- Facade

Si occupa di prelevare le richieste provenienti dal’Business Delegate e di prelevare i dati dal Database per manipolarli e rispondere alle richieste in maniera adeguata.

VANTAGGI

Le Classi che formano l’applicazione possono essere facilmente riutilizzate.

L’applicazione è organizzata in più parti più semplici e comprensibili.

La modifica di una parte non coinvolge e non interferisce con le altre parti.

Page 54: Ingegneria Del Software   Schedule, Progetto

4.2. Altro4.2. Altro Driver MySQL JDBC

JDBC (Java Database Connectivity) è un driver per database che consente l’accesso alla basi di dati da qualsiasi programma scritto in Java, indipendentemente dai tipi di dati di DBMS Utilizzati.

iText

iText è una libreria che si Open Source per la realizzazione di reportistica da un’applicazione Java che permette di effettuare la stampa di documento in formato HTML,PDF.

Per la reportistica dell’amministratore e del docente viene utilizzata tale libreria.