ConwayLife Sprint3

Introduction

Goal: Procediamo ad una evoluzione del sistema GAME OF LIFE DI CONWAY con i requisiti spiegati in seguito.

Requirements

R1  Dotare il gioco Life di Conway di una pagina HTML come dispositivo I/O.
    Il gioco consiste nell’introdurre una Griglia di Celle il cui stato (cella ‘viva’ o cella ‘morta’) 
    evolve come stabilito dallle regole di ConwayLife

R2  La pagina deve costituire un componente esterno alla applicazione secondo la architettura riportata in IoJavalin
    esterno alla applicazione
  
R3  Il gestore del gioco sarà l’utente che ha aperto per primo (owner) una pagina HTML collegata al gioco. In altre
    parole, solo la pagina dell’owner avrà pulsanti di comando START/STOP/CLEAN/EXIT attivi
  
R4  La pagina HTML deve essere aggiornata in modo automatico man mano il gioco procede
  
R5  Un utente non owner che si collega mentre il gioco è in corso, dovrebbe vedere lo stato attuale della griglia in
    modo corretto
  
R6  In maniera opzionale la pagina HTML deve indicare se il gioco continua anche nel caso di griglia vuota o di configurazione tabile

R7  Il deployment del gioco deve avvenire mediante Docker.

Requirement analysis

A partire dal requisito R1 si individuano le entità logiche che compongono il dominio del problema quali Cell, Grid e Life. Ci poniamo una domanda fondamentale: Cosa intende il committente per Cell, Grid e Life?
Cosa intende il committente per Cell?
Per l'entità Cell formalizzo il seguente modello.
Cell è atomica, ha un proprio stato interno (viva o morta) e ha la possibilità di modificarlo (da viva a morta e viceversa). Per definire, invece, il comportamento attesso da una cella realizzo il seguente TestPlan.
Cosa intende il committente per Grid?
Per Grid formalizzo il seguente modello. modello.
L'entità Grid è composta da Cell. E' un'entitò a due dimensioni, quali colonne e righe.
Quindi, l'entità Grid ha la possibilità di restituire le proprie dimensioni e una cella che la compone. Inoltre può settare lo stato di una cella, ottere il suo valore e resettare la Grid impostando tutte le celle di cui è composto a morte.
Per esprimere i requisiti che le interfacce non sono in grado di esprimere, sviluppo il seguente TestPlan.
Cosa intende il committente per Life?
Il committente non ha idea di cosa sia Life, ma mi informa che è la logica del gioca (contiene le regole). Per Life, quindi, formalizzo il seguente modello.
Per esprimere i requisiti che le interfacce non sono in grado di esprimere, sviluppo il seguente TestPlan.

Problem analysis

Test plans

Project

Testing

Deployment

Maintenance



By Meriem Laaouaj email: meriem.laaouaj@studio.unibo.it, img GIT repo: https://github.com/merilaaouaj/IngegneriaSistemiSoftware