Esame di Ingegneria dei Sistemi Software A.A. 2019/2020
Il manager di una sala da the (tearoom) vorrebbe regolare l'accesso al servizio impiegando un DDR robot (waiter).
La tearoom è una stanza rettangolare che include:
- una porta di entrata (entrancedoor) per entrare nella stanza ed una di uscita (exitdoor) per uscire;
- un numero
N (N=2)
di tavoli (teatable); - una servicearea che include a sua volta un servicedesk al quale lavora un barman;
- una hall provvista di un presencedetector, ad esempio un dispositivo (come un sonar) che può rilevare la presenza di una persona (o di qualche altra entità) davanti a se.
Il waiter può muoversi liberamente lungo i bordi della stanza, poichè lungo il perimetro non ci sono ostacoli.
Il manager deve poter visualizzare lo stato corrente (current state) della tearoom usando un browser connesso ad un server web associato all'applicazione.
MBot | Custom Robot |
---|---|
-
Scaricare il deployment.zip più recente al link releases
-
Estrarre la cartella
deployment
-
Entrare nella cartella
deployment
-
Controllare il seguente file di configurazione:
- All'interno di
it.unibo.trc19.sprint4.tearoom-1.0/bin/tearoom.pl
sostituire la seconda riga con la rigacontext(ctxbasicrobot, "localhost", "TCP", "PORT").
, dovePORT
è la porta del basicrobot (default = 8020)
-
Aprire un terminale all'interno della cartella
deployment
-
Digitare nel terminale ed inviare i seguenti comandi (Avvio del robot virtuale)
cd it.unibo.virtualRobot2020/node/WEnv/server/src node main 8999
-
Aprire un secondo terminale all'interno della cartella
deployment
, digitare nel terminale ed inviare il seguente comando (Avvio della pagina web con Spring)./robotWeb2020-boot-1.0/bin/robotWeb2020
-
Aprire un terzo terminale all'interno della cartella
deployment
, digitare nel terminale ed inviare il seguente comando (Avvio del basicrobot)./it.unibo.qak20.basicrobot-1.0/bin/it.unibo.qak20.basicrobot
-
Aprire un quarto terminale all'interno della cartella
deployment
, digitare nel terminale ed inviare il seguente comando (Avvio della tearoom)
./it.unibo.trc19.sprint4.tearoom-1.0/bin/it.unibo.trc19.sprint4.tearoom
- Buon divertimento!
-
Scaricare il deployment.zip più recente al link releases su PC
-
Estrarre la cartella
deployment
su PC -
Entrare nella cartella
deployment
su PC -
Cambiare i seguenti file di configurazione:
- All'interno di
it.unibo.qak20.basicrobot-1.0/bin/basicrobotConfig.json
, sostituire la prima riga con la riga{"type":"realmbot", "port":"/dev/ttyUSB0", "host":"localhost"}
se si sta usando MBOT - All'interno di
it.unibo.qak20.basicrobot-1.0/bin/basicrobotConfig.json
, sostituire la prima riga con la riga{"type":"realnano", "port":"", "host":"localhost"}
se si sta usando invece un robot di tipo "nanoBot" - All'interno di
it.unibo.trc19.sprint4.tearoom-1.0/bin/tearoom.pl
sostituire la seconda riga con la rigacontext(ctxbasicrobot, "IP", "TCP", "PORT").
, doveIP
è l'IP del RaspberryPi in uso ePORT
è la porta del basicrobot (default = 8020)
- All'interno di
-
Copiare la cartella
it.unibo.qak20.basicrobot-1.0
nel filesystem del Raspberry che controlla il robot fisico -
Aprire un terminale all'interno della cartella
deployment
su PC -
Digitare nel terminale ed inviare il seguente comando (Avvio della pagina web con Spring)
./robotWeb2020-boot-1.0/bin/robotWeb2020
-
Aprire un terminale all'interno della cartella
it.unibo.qak20.basicrobot-1.0
su Raspberry -
Digitare nel terminale ed inviare il seguente comando (Avvio del basicrobot)
./it.unibo.qak20.basicrobot-1.0/bin/it.unibo.qak20.basicrobot
-
Aprire un secondo terminale all'interno della cartella
deployment
su PC, digitare nel terminale ed inviare il seguente comando (Avvio della tearoom)./it.unibo.trc19.sprint4.tearoom-1.0/bin/it.unibo.trc19.sprint4.tearoom
-
Buon divertimento!
Dalla analisi preliminare del sistema risulta necessario pianificare un piano di lavoro architettato in sprint, di seguito riportati.
NOME | DESCRIZIONE | MOTIVAZIONE |
---|---|---|
SPRINT 1 | Si occupa della modellazione del sistema nell'ipotesi in cui operi un solo client e che compia unicamente le azioni previste dal suo comportamento standard, senza interferenze di alcun genere. | La scelta di questo primo sprint è motivata dalla volontà di simulare un primo scenario di base che preveda una interazione "controllata" e "prevista" del sistema, in modo da aggiungere nei successivi sprint i casi imprevisti. |
SPRINT 2 | Si occupa della definizione dello stato della stanza. Questo sprint aggiunge al primo sprint una descrizione degli elementi della stanza, introducendo il concetto di architettura esagonale. Inoltre in questo sprint si inizia a costruire il pannello di controllo da fornire al manager. | Dopo aver verificato le funzionalità base del sistema è necessario iniziare a dare una forma a quella che sarà l'architettura finale. |
SPRINT 3 | Si occupa della concorrenza fra client, ossia la presenza di più client nella tearoom contemporaneamente. e della gestione del tempo (maxstaytime e waitingtime). | Dopo aver costruito una prima versione dell'architettura finale, aggiungiamo al sistema ulteriori casi d'uso con lo scopo di avvicinarlo sempre più al prodotto finale richiesto. |
SPRINT 4 | Deployment del sistema e impiego di robot fisici oltre che del virtual robot fornito. Possibilità di interrompere alcuni task per riprenderli in seguito. | Questo sprint finale rende il sistema pronto per essere consegnato al cliente e ne dimostra il funzionamento su dei DDR reali. |
Ugo Leone Cavalcanti ( ugoleone.cavalcanti@studio.unibo.it )
Amir Al Sadi ( amir.alsadi@studio.unibo.it )
Nicolò Romandini ( nicolo.romandini@studio.unibo.it )