Come prima cosa, vediamo di dare una visione d'insieme su come tutte le classi e le loro relazioni, compongono e rendono operativo il sistema. Il diagramma sotto, è il risultato di una lavorazione progessiva sui caso d'uso. Tutte le classi create, e il motivo che le hanno rese indispensabili per raggiungere l'obbiettivo saranno spiegate dettagliatamente.
DettaglioDocente: fornisce informazioni sull'identità del docente.
Corso: fornisce informazioni sul corso del docente
GestoreDocente: fornisce tutti i servizi, fa da ponte tra il docente e il resto del sistema.
DettaglioStudente: fornisce informazioni sull'identità dello studente.
Carriera: contiene informazioni sul corso di studi dello studente, e quindi gli esami che deve sostenere e che ha sostenuto.
GestoreStudente: fornisce i servizi agli studenti
GestoreListe: è il cuore del sistema, gestisce direttamente le liste di iscrizione, prendendosi carico delle richieste di GestoreDocente e GestoreStudente
ListaEsame: è la struttura dati che memorizza la lista degli studenti iscritti a un determinato esame
InformazioniLista: contiene le informazioni riguardanti una lista di iscrizione esame.
Scheduler: Modella il tempo. Si occupa di chiudere una lista nel momento stabilito
Descrizione del flusso:
L'attore Docente, invia il messaggio visualizzaListeDisponibili a GestoreDocente con parametro il suo codiceDocente.
GestoreDocente invia un messaggio listaCorsi a Corso con parametro il codiceDocente ricevuto. L'operazione consente di sapere quali corsi il docente sta tenendo.
GestoreDocente manda a docente un messaggio contenente la lista degli esami per i quali l'attore Docente può creare una lista di iscrizione.
Il Docente sceglie, dalla lista ricevuta, l' esame per il quale intende creare una lista di iscrizione esame. Aggiunge le informazioni necessarie quali data, ora, aula, obbligo di frequenza e la manda come parametro di creaLista a GestoreDocente.
GestoreDocente invia un messaggio anonimo con stereotipo "crea". Questo messaggio crea un nuovo oggetto informazioniLista
GestoreDocente invia il messaggio creaLista a GestoreListe con parametro informazioniLista
GestoreListe crea l'oggetto ListaEsame
L'attore Docente invia il messaggio visualizzaListeCreate (codiceDocente) a GestoreDocente
GestoreDocente chiama listeAttive su GestoreListe, per conoscere quali liste di iscrizione esame, sono state create.
GestoreDocente effettua una elaborazione interna per selezionare quali, tra le liste attive ricevute, appartengono all'attore Docente (match con codiceDocente).
GestoreDocente comunica il risultato della elaborazione a Docente.
L'attore Docente sceglie un esame appartenente alla lista ricevuta, ne cambia le informazioni, e comunica a GestoreDocente le modifiche apportate attraverso modificaLista(InformazioniLista)
GestoreDocente manda un messaggio modificaParametri con parametro tutte le informazioni della lista a InformazioniLista
GestoreDocente comunica a GestoreListe un messaggio modificaLista con parametro InformazioniLista.
GestoreListe manda un messaggio modificaInformazioni(InformazioniLista) a ListaEsame
ListaEsame provvede, tramite elaborazione interna, a notificare i cambiamenti agli studenti attualmente iscritti a quella lista.
Esegue una serie di operazioni molto simili a quelle di Modifica Lista Iscrizione Esame.
L'attore Docente invia il messaggio visualizzaListeCreate (codiceDocente) a GestoreDocente
GestoreDocente chiama listeAttive su GestoreListe, per conoscere quali liste di iscrizione esame, sono state create.
GestoreDocente effettua una elaborazione interna per selezionare quali, tra le liste attive ricevute, appartengono all'attore Docente (match con codiceDocente).
GestoreDocente comunica il risultato della elaborazione a Docente.
L'attore Docente sceglie un esame appartenente alla lista ricevuta e comunica a GestoreDocente un messaggio cancellaLista con parametro il codice della lista che intende eliminare
GestoreDocente comunica a GestoreListe un messaggio cancellaLista con parametro il codice della lista che va eliminata
GestoreListe manda un messaggio modificaInformazioni(InformazioniLista) a ListaEsame
ListaEsame aggiorna le proprie informazioni con quelle ricevute e provvede, tramite elaborazione interna, a notificare i cambiamenti agli studenti attualmente iscritti a quella lista.
L'attore Docente invia un messaggio visualizzaListeCreate a GestoreDocente con parametro il suo codice docente.
GestoreDocente riceve le liste attive da GestoreListe con la chiamata all'operazione listeAttivie()
GestoreDocente riconosce con una elaborazione interna quali tra le liste attive sono state create dal professore. Manda il risultato al docente
Il docente sceglie un esame dalla lista degli esami ricevuti e invia un messaggio visualizzaIscrittiLista con parametro le informazioni sul quella lista di iscrizione
GestoreDocente richiede a GestoreListe di la necessità di visualizzare gli iscritti appartenenti a quella lista di iscrizione
GestoreListe invia un messaggio VisualizzaIscrittiLista a ListaEsame. L'elenco degli iscritti alla lista d'esame, viene mandato indietro fino al professore
L'attore studente richiede di visualizzare la lista degli esami ai quali si può iscrivere mandando un messaggio visualizzaEsamiDisponibili a GestoreStudente
GestoreStudente si collega alla carriera dello studente ed inviando un messaggio elencoEsami, ottiene la lista degli esami che lo studente non ha ancora sostenuto
GestoreStudente invia un messaggio listeAttive a GestoreListe per sapere quali liste di iscrizioni esame sono state create.
GestoreStudente effettua una elaborazione interna per identificare quali esami, tra le liste di iscrizione esame presenti, lo studente non ha sostenuto. Comunica la lista all'attore studente
Lo studente sceglie un esame tra quelli ricevuti da GestoreStudente e notifica la sua intenzione di iscrizione a GestoreStudente inviando un messaggio iscriviStudente con parametro il suo codice di matricola e il codice della lista a cui intende iscriversi
GestoreStudente comunica a GestoreListe l'intenzione dello studente di iscriversi. Invia un messaggio inserisciStudente con parametro il codice di matricola e il codice della lista
GestoreListe invia un messaggio inserisciStudente col codice di matricola dello studente, alla lista che possiede quel codiceLista. Lo studente risulta ora iscritto
L'attore studente richiede di visualizzare la lista degli esami ai quali è iscritto mandando un messaggio visualizzaEsamiIscritto a GestoreStudente
GestoreStudente invia un messaggio trovaEsamiIscritto a GestoreListe per sapere a quali liste di iscrizioni esame è iscritto.
GestoreListe invia un messaggio trovaStudente, con parametro matricola, a tutte le ListaEsame per sapere a quale esame lo studente è iscritto. Il risultato viene rimandato fino allo studente
Lo studente sceglie un esame tra quelli ricevuti da GestoreStudente e notifica la sua intenzione di cancellarsi dalla lista di iscrizione a GestoreStudente inviando un messaggio cancellaStudente
GestoreStudente comunica a GestoreListe l'intenzione dello studente di cancellarsi. Invia un messaggio cancellaStudente con parametro il codice di matricola alla lista da cui si deve cancellare. Lo studente ha cancellato la sua iscrizione