Design architetturale
In questa sezione riportiamo come abbiamo scelto di strutturare l’architettura del nostro sistema e i vari componenti.
Architettura complessiva
In seguito al completamento dell’analisi dei requisiti, il gruppo si è concentrato sulla progettazione del design architetturale del sistema.
Nell’immagine seguente è possibile osservare la struttura architetturale adottata.

In particolare, i componenti sono stati suddivisi secondo il pattern MVC (Model-View-Controller):
- Model: Contiene tutti i componenti che rappresentano la logica del gioco.
- MiniGameLogic trait base che definisce il contratto comune per la logica dei mini-giochi.
- AgeCalculator gestisce la logica relativa alla stima dell’età cerebrale.
- FastCalcLogic, CountWordsLogic, RightDirectionsLogic , ColoredCountLogic and WordMemoryLogic classi che
- implementano la logica dei diversi mini-giochi.
- Question trait che rappresenta la tipologia di domanda.
- QuestionResult classe che contiene i risultati della risposta dell’utente.
- Controller: Contiene i componenti che coordinano la comunicazione tra la logica e l’interfaccia grafica,
gestendo il flusso del gioco.
- GameController gestisce l’esecuzione dei mini-giochi, orchestrando il passaggio delle informazioni dal Model
alla View e viceversa.
- GameViewCallback interfaccia di callback utilizzata per aggiornare la View in base agli eventi generati dalla
logica di gioco.
- View: Contiene tutti i componenti che si occupano della rappresentazione grafica e dell’interazione con l’utente.
- MenuView schermata principale del gioco che viene mostrata all’avvio.
- AgeTest rappresenta la vista dedicata al test dell’età cerebrale.
- Training gestisce la fase di allenamento, dove vengono proposti i mini-giochi.
- ResultsPanelFactory produce i pannelli per la visualizzazione dei risultati.
- GamePanelFactory produce i pannelli per la visualizzazione dei mini giochi.
- SimpleQuestionAnswerGamePanel trait che gestisce la parte comune ai vari pannelli di gioco.
- FastCalcPanel, CountWordsPanel, RightDirectionsPanel, ColoredCountPanel, WordMemoryPanel definiscono i pannelli di gioco.
Questa struttura architetturale ha permesso di mantenere un’elevata separazione delle responsabilità, migliorando la
manutenibilità e l’estensibilità del sistema.
Descrizione di pattern architetturali usati
E’ stato scelto di utilizzare il pattern architetturale MVC (Model View Controller) per strutturare l’applicazione in modo modulare e manutenibile.
Il funzionamento di tale pattern è il seguente:
- Model: Si occupa della gestione del dato e contiene tutta la logica del gioco. Può comunicare con la view solo attraverso il controller, non ha alcun collegamento diretto con essa.
- View: E’ responsabile della rappresentazione grafica dei dati e dell’interfaccia utente. Comunica con il controller per ottenere dati dal model.
- Controller: E’ il componente che fa da ponte tra il Model e la View. Riceve l’input dall’utente attraverso la View, elabora queste informazioni comunicando con il Model e aggiorna la View per riflettere il cambiamento di stato.
Torna all’indice