Fireflysynch SprintA

Introduction

Goal: Costruzione di un sistema composoto da 3 lucciole, che si devono sincronizzare dopo 10 secondi.

Requirements

Costruire il simulatore di un sistema costituito da 3 lucciole. Inizialmente, le lucciole lampeggiamo ciascuna con una frequenza (costante) propria.
  1. Dopo 10 secondi le lucciole devono lampeggiare in modo sincronizzato

Requirement analysis

Quali sono le entità del sistema?
Ho almeno tre entità, ovvero le lucciole (entità indipendenti che non condividono memoria).
Cosa devono fare le entità appena nate?
Ciascuna deve lampeggiare ad una sua frequenza.
Nel nostro sistema le lucciole saranno dei QActor.

System fireflysinch 
/*
 * fireflysynch.qak
 */

 //contesto del sistema
Context ctxfirefly ip [ host="localhost"      port=8040 ] 
Context ctxgrid    ip [ host="127.0.0.1"  port=8050 ]

//definiamo 4 Attori: un orchestratore e 3 lucciole.
QActor cordinator context ctxfirefly {
}
 
 QActor firefly1 context ctxfirefly  {     
 
	
}

QActor firefly2 context ctxfirefly  {  

}

QActor firefly3 context ctxfirefly  {  
}
 	 

Problem analysis

Alcune opzioni di sincronizzazione potrebbero essere le seguenti:

  1. con un orchestratore: lucciola regina che dopo dieci secondi dice quale frequenza usare
  2. con un orchestratore: lucciola regina che emette degli impulsi con la propria frequenza
  3. le lucciole dopo 10 secondi commutano su una frequenza concordata
  4. le lucciole modificano dopo 10 secondi la loro frequenza su quella dei vicini (per poi scegliere la più alta o la più bassa o una media)

Per scegliere quale strategia adottare tra quelle proposte in fase di analisi dei requisiti, è necessario andare ad analizzare i costi di realizzazione e le risorse necessarie in ciascun caso. In questo modo si va a scegliere la soluzione più semplice da realizzare.
In questo sistema è stata adottata la prima soluzione proposta: un orchestratore che attraverso un evento invia una frequenza a cui le lucciole si devono sincronizzare. Prototipo.

Test plans

Project

Testing

Deployment

Maintenance



By Marilena Rugiero email: marilena.rugiero@studio.unibo.it, foto GIT repo: https://github.com/marilena-uni/softwareEngineering