Skip to the content.

Capitolo 3: Design Architetturale

3.1 Pattern Architetturale: MVC

Il software è stato progettato utilizzando il pattern architetturale Model-View-Controller (MVC), come rappresentato dallo schema in figura 3.1.

Diagramma dei Package

Figura 3.1: Diagramma dei package

Il Model contiene al suo interno tutti gli elementi cardine del dominio applicativo esplorato in precedenza, come ad esempio il mondo di gioco e le regioni, il virus, il vaccino, i potenziamenti e i DNA Points. La progettazione e implementazione di tutti gli elementi precedentemente citati verranno descritti e approfonditi nei successivi capitoli.

La View ha l’obbiettivo di fornire all’utente un’interfaccia grafica tramite la quale sia possibile effettuare delle partite e di conseguenza interagire con il sistema.

Il Controller ha infine il compito di legare assieme Model e View in modo da aggiornare le entità presenti nel Model a seguito di interazioni effettuate dall’utente con il sistema e viceversa aggiornare la View a seguito dei cambiamenti che si verificano con l’avanzare del gioco.

Inoltre si è deciso di evolvere l’architettura precedentemente descritta realizzando tre Controller differenti per mantenere una corretta suddivisione delle responsabilità. In particolare sono stati ideati i Controller seguenti:

Architettura nel dettaglio

Figura 3.2: Architettura nel dettaglio

Facendo riferimento alla figura 3.2 si noti che il GameModel viene quindi utilizzato da tutti e tre controller presenti che interagiscono inoltre con le rispettive View.

3.2 Comportamento dell’architettura

Comportamento dell'architettura all'avvio del gioco

Figura 3.3: Comportamento dell'architettura all'avvio del gioco

In figura 3.3 viene mostrato tramite un diagramma di sequenza il comportamento dell’architettura realizzata, all’avvio di PlagueDotScala. L’utente inizialmente interagisce con la LauncherView inserendo i dati richiesti per l’inizio di una nuova partita, in questo modo tramite il LauncherController è possibile istanziare la GameView che si occuperà della visualizzazione degli elementi di gioco principali e il GameEngine che regolerà la progressione del gioco.

Comportamento dell'architettura all'apertura del menu di gioco

Figura 3.4: Comportamento dell'architettura all'apertura del menu di gioco

Infine in figura 3.4, sempre utilizzando un diagramma di sequenza, viene mostrato il comportamento dell’architettura all’apertura del menu. L’utente interagisce inizialmente con la GameView per avviare la procedura di apertura del Menu di gioco, in questo caso è responsabilità del GameEngine avviare un’istanza del MenuController e della MenuView tramite il quale vengono abilitate le interazioni dell’utente con esso.

Vai a Requisiti Torna alla Home Vai a Design di Dettaglio