Vista statica del sistema

Figura 3.2. Progettazione - Main

Progettazione - Main

Gestore Docente

La classe GestoreDocente si pone fra l'interfaccia grafica e il GestoreListe per fornire un livello intermedio di accesso per la gestione delle richieste che vengono dal docente; questo per separare la parte presentazionale dalla parte logica del sistema. I metodi della classe sono specificati in seguito:

  • rimuoviLista: Cancella una lista di esame. Gli viene passato come paramentro il codice della lista da cancellare.

  • creaLista: Apre una nuova lista. Gli viene passato come parametro un oggetto di tipo InformazioniLista che contiene tutte le informazioni utili per creare una lista.

  • trovaListe: Restituisce attraverso un array di oggetti di tipo InformazioniLista le informazioni relative alle liste create dal docente. Gli viene passato come parametro il codice del docente.

  • trovaListaStudenti:Restituisce un array contenente le matricole degli studenti iscritti a una lista. Gli viene passato come paramentro il codice della lista della quale si vuole sapere gli iscritti.

Gestore Studente

La classe GestoreStudente gioca un ruolo simile alla classe GestoreDocente, cioè si pone fra l'interfaccia grafica e il GestoreListe per fornire un livello intermedio di accesso per la gestione delle richieste da parte dello studente.

  • rimuoviStudente: Cancella uno studente da una lista di esame. Prende come parametri la matricola dello studente da cancellare e la lista dalla quale cancellarlo.

  • aggiungiStudente: Aggiunge uno studente ad una lista di esame. Prende come parametri la matricola dello studente da aggiungere e il codice della lista nella quale deve essere inserito.

  • trovaEsamiDisponibili:Restituisce un vettore di oggetti di tipo InformazioniLista che rappresenta un insieme di liste alle quali uno studente puo' iscriversi. Prende come parametri la matricola dello studente.

Gestore Liste

La classe GestoreListe si occupa di gestire tutte le liste di esame attive. Praticamente una classe contenitore per gli oggetti di tipo ListaEsame e fornisce tutti i metodi per accedere alle liste presenti nel sistema. Quindi si occupa anche di gestire un'eventuale concorrenza.

  • rimuoviLista: Rimuove una lista di esame. Gli viene passato come paramentro il codice della lista da cancellare

  • creaLista: Apre una nuova lista. Gli viene passato come parametro un oggetto di tipo InformazioniLista che contiene tutte le informazioni utili per creare una lista.

  • aggiungiStudente: Aggiunge uno studente ad una lista di esame. Prende come parametri la matricola dello studente da aggiungere e il codice della lista nella quale deve essere inserito.

  • rimuoviStudente: Cancella uno studente da una lista di esame. Prende come parametri la matricola dello studente da cancellare e la lista dalla quale cancellarlo.

  • trovaEsamiIscritto: Restituisce un vettore di oggetti di tipo InformazioniLista che rappresenta l' insieme di liste alle quali lo studente è iscritto. Prende come parametri la matricola dello studente.

  • trovaListeAttive:Restituisce un vettore di oggetti di tipo InformazioniLista che rappresenta l'insieme di tutte le liste attive. Non prende nessun paramentro.

  • trovaStudentiLista: Restituisce un array contenente le matricole degli studenti iscritti a una lista. Gli viene passato come paramentro il codice della lista della quale si vuole sapere gli iscritti.

  • chiudiLista: Chiude una lista di esame, impedendo nuove modifiche. Prende come paramatri il codice della lista da chiudere.

Lista Esame

La classe ListaEsame viene usata come contenitore delle informazioni riguardanti una lista di esame e gli eventuali iscritti. Contiene gli attributi "Attiva" che indica se la lista e ancora attiva o è stata chiusa e "iscritti" che è un array di integer che contiene le matricole degli studenti iscritti a quella lista.

  • aggiungiStudente:Aggiunge uno studente alla lista di esame. Prende come parametro la matricola dello studente da aggiungere.

  • rimuoviStudente: Cancella uno studente dalla lista di esame. Prende come parametri la matricola dello studente da cancellare.

  • trovaStudenti: Restituisce l'array delle matricole degli studenti iscritti alla lista.

  • notifica: Notifica agli studenti interessati eventuali variazioni della lista. La notifica avviene se è possibile rintracciare lo studente via e-mail o altro mezzo comunicativo.

  • eAttiva: Restituisce un valore booleano che indica se una lista è attiva o meno.

Informazioni Lista

Questa classe è stata creata per contenere le informazioni relative alla lista e fornire quindi una separazione dalla classe ListaEsame, dove sono contenute le informazioni sugli iscritti. Contiene gli attributi "dataDiChiusura" che indica la data in cui la lista verrà chiusa e dopo la quale nessuno studente potrà iscriversi all'esame (Inoltre il docente non può cancellare una lista chiusa) . Contiene inoltre gli attributi "codiceMateria" e "codiceDocente" per identificare in modo univoco il corso di studi per il quale è stata creata la lista.

La classe "InformazioniLista" ad un primo esame del modello può risultare ridondante e suggerire una fusione con la classe "ListaEsame". Abbiamo optato per tale scelta in quanto, tutti i dati relativi ad una determinata lista (ad eccezioni degli iscritti) sono oggetto di frequente consultazione e devono quindi essere raggiungibili nel miglior modo. Infatti gli oggetti di tipo "InformazioniLista" sono passati come parametro tra le classi all'interno del sistema. Così facendo, abbiamo evitato che, per ricevere le informazioni su una determinata lista, non ci sia la necessità di dover muovere l'intera classe "listaEsame" con tutte le informazioni relative agli iscritti.

  • impostaCodiceLista: é un'operazione che viene chiamata al momento della creazione di una nuova lista per impostare il codice univoco di una lista.

  • eNuovaLista: questo metodo viene utilizzato per informare il sistema che le informazioni devono entrare a far parte di una nuova lista esame.

Scheduler

Lo scheduler viene attivato ad intervalli di tempo predefiniti e si occupa del controllo della data di chiusura delle liste, inoltre, al momento della chiusura avviene la notifica agli interessati. Ad ogni lista vi è quindi associata una data di chiusura, dopo la quale nessuno studente potrà iscriversi od eliminare la propria iscrizione dall'esame.

  • controlloScadenzeListe: interagisce con "GestoreListe" per ottenere una array di "informazioni Lista" poi effettuerà i controlli sulla data di chiusura ed eventualmente interagendo con gli altri metodi della classe effettua la chiusura di una o più liste.

  • chiudiLista: chiude una determinata lista. Chiama il metodo "chiudiLista" di "GestoreListe" ed imposta il valore dell'attributo attiva, presente all'interno di una ListaEsame a false.

  • controllaLista: Effetua un confronto fra la data di sistema e quella presente all'interno delle informazioni di una lista. Nel caso in cui la data di chiusura di una lista sia antecedente alla data di sistema, chiama il metodo "chiudiLista" per effettuarne la chiusura.