MODELLO ARCHITETTURALE

Dopo un'attenta fase di analisi, possiamo ora fare delle scelte motivate per quanto riguarda l'architettura del sistema.




E' possibile articolare il sistema secondo una comoda architettura a tre livelli (Three Tier):
1. Offrire un'interfaccia grafica chiara e semplice da utilizzare che permetta di ettuare tutte le operazioni necessarie.
2. Realizzazione e gestione di un archivio dati in cui sono presenti tutte le informazioni.
3. Realizzazione di un modulo di controllo/elaborazione che si occuperà di interpretare le richieste degli utenti, di fornire tutte le informazioni desiderate e di aggiornare nel modo opportuno l'archivio dati. In altre parole dovrà interagire con l'interfaccia grafica e l'archivio dati.

SCELTA DELLE TECNOLOGIE

Nel nostro caso il modulo di controllo/elaborazione non è stato da noi implementato ma è il risolutore CPLEX stesso (terze parti), che attraverso l'integrazione in MPL è in grado di recuperare i dati dal database e risolvere il nostro modello.

Come database è stato utilizzato Microsoft Access 2000, con il quale MPL riesce completamente ad interagire. Sempre attraverso questo software è stata realizzata la gradevole interfaccia grafica, utilizzando le maschere messe a disposizione dal programma.

Dall'interfaccia grafica di Access, vengono inseriti i dati necessari alla compilazione dell'orario, e viene lanciato il modello MPL. Parte dunnque la risoluzione attraverso MPL/CPLEX che a sua volta accede ai dati memorizzati precedentemente nel database, e vi scrive la soluzione trovata.

DATI

Nella realizzazione di questo semplice modello bisogna tener presenti le seguenti considerazioni:
  1. Non ci può essere uno stesso corso insegnato per più classi (anno/indirizzo) in periodi diversi
  2. Uno stesso corso per anni diversi ha nome diverso
  3. Uno stesso insegnante può svolgere più di un corso
  4. Una lezione può essere svolta solo in due determinati periodi all'interno di un giorno (mattina/pomeriggio)
  5. Non sono state tenute in considerazione le diverse aule (il numero di variabili e vincoli sarebbero stati troppo elevato)
  6. L'assegnazione delle aule viene fatta manualmente dalla segreteria (per ora...)
  7. Se un corso prevede lezioni di laboratorio, tali lezioni sono un corso a parte, con un numero di periodi assegnati
    (da togliere alle lezioni normali del corso)
  8. Non sono previste ulteriori modifiche al modello dopo il calcolo finale.





DATABASE

Analizzati i dati che ci occorrono, utilizziamo le seguenti tabelle di Access per registrarli nel database: