\chapter{Conclusioni}\label{chapConclusioni}

La pianificazione dell'orario si è rivelata un problema complesso da affrontare per la varietà di vincoli presenti. Si sono dovuti gestire i vincoli strutturali, quali aule e laboratori disponibili in quantità limitata e con capienze note, le dipendenze date dal piano di studio, come ad esempio l'impossibilità di sovrapporre insegnamenti obbligatori per un dato orientamento, i vincoli dettati dalla disponibilità dei docenti che possono essere coinvolti in più insegnamenti, anche esterni ai collegi ICM ed ETF o dovuti ad altri impegni istituzionali. Si è infine tenuto conto delle necessità degli studenti di non avere troppe lezioni consecutive e di avere un limite giornaliero di lezioni definito.\\


I primi passi per affrontare il problema sono stati l'indivuazione delle due classi di vincoli hard e soft constraint ed uno studio della letteratura informatica per scoprire i modelli di ottimizzazione e le tecnologie allo stato dell'arte andando ad individuare i due problemi presi in esame nello svolgimento della Tesi: {MaxSMT} e {ILP}.

\`E seguita un'analisi dei requisiti conclusa dalla progettazione di alto livello di due modelli UML: il primo in grado di descrivere globalmente il problema ed il secondo specifico dei TemplateOrario, la principale sorgente di dati per il software. Si sono inoltre generati gli schemi di validazione di tutte le sorgenti di dato del software.

Durante la modellazione di basso livello si sono implementati il Modello a Matrice ed il Modello a Slot andando ad evidenziare prima in ambiente matematico e successivamente in ambiente di sviluppo i pregi e i difetti di entrambi. Dalle conclusioni tratte sui modelli implementati si è scelto il Modello a Slot implementato tramite il software CPLEX.

La successiva fase di testing e validazione ha racchiuso molte difficoltà dovute alla reperibilità e alla correttezza dei dati, sia nel momento in cui erano necessari dati per testare la bontà del software che successivamente per ottenere l'allocazione vera e propria dell'orario. Tra le soluzioni adottate in questa fase si menzionano i vari script per un caricamento semi automatico dei dati sorgente, partendo da tutte le sorgenti, locali e remote, menzionate nel Capitolo \ref{chapTesting} e l'applicazione web per una rapida visualizzazione dell'orario mirata a mostrare eventuali violazioni.

La conclusione della Tesi sono state la ricerca e successiva correzione delle incongruenze nei dati sorgente, mediante l'ausilio di log creati appositamente, e la successiva estrazione di un piano di allocazione dell'orario dai risultati del software in esecuzione in modalità ottimizzazione.

I miglioramenti futuri potrebbero includere un nuovo modello di basso livello, in quando il Modello a Slot è stato in grado di modellare correttamente tutti i vincoli emersi dai requisiti ad eccezione dell'allocazione fisica delle differenti aule ai diversi slot di lezione al fine di minimizzare i tempi di spostamento al cambio d'ora. Altri miglioramenti possono riguardare il processo di raccolta dei dati sorgente del problema rendendolo automatizzato ed in grado di garantire dati esaustivi e corretti senza interventi manuali o quasi; discorso valido anche per l'esportazione dei dati, seppure in questo ambito degli script di estrazione dei dati da database siano già presenti. Infine per una maggior immediatezza d'uso la creazione di un'interfaccia grafica in grado di supportare l'utente in tutte le fasi di utilizzo del software potrebbe essere un ulteriore evolutiva del software.