Team Working

Per quanto riguarda il lavoro di gruppo abbiamo utilizzato varie tecnologie, integrandole tra loro.
Per la condivisione del codice sorgente abbiamo usato il popolare sistema di versioning, git.
In particolare con gli sviluppatori siamo presto passato a sistemi più avanzati per un controllo efficiente e dinamico dei repository in essere.
La nostra scelta è ricaduta su GitKraken come piattaforma.
Task Board

Sempre all’interno di GitKraken abbiamo attivato varie Board per l’assegnazione e gestione dei task di lavoro. Da qui i task vengono assegnati dai capi team, o proposti dai singoli sviluppatori, e poi approvati e spostati nelle relative colonne, contrassegnando i cambiamenti di stato.
Infine dopo una revisione attenta dei progressi vengono poi chiusi e resi effettivamente pubblici. Abbiamo attivato una board per la gestione dei task dei team dedicati a Watson, al Sito Web e relativi testing che è visionabile pubblicamente da qui.
Linguaggio di programmazione e Strumenti di Sviluppo
Il Core del progetto si basa su un server leggero che espone funzionalità di messaggistica in tempo reale, connettendo tutti i vari dispositivi. Il server è scritto nel linguaggio Java, per i quali tutti gli sviluppatori hanno seguito un corso professionalizzante, impartito dal dott. Luca Coraci durante la seconda fase del primo PCTO di questo progetto.
I ragazzi provenienti da quel corso sono oggi gli sviluppatori senior e che ora contribuiscono a sviluppare su piattaforma android e vari task avanzati sul server. A questo team si si sono poi uniti altri ragazzi, costituendo il team degli sviluppatori Junior, che invece si dedicano allo sviluppo dei mindgames. Come detto sopra, la comunicazione tra i vari team avviene attraverso il framework GitKraken per quanto riguarda l’assegnazione dei task e la condivisione dei sorgenti. Inoltre ogni tanto sono state, e verrano impartite lezioni di approfondimento su temi tecnici specifici. L’IDE di sviluppo scelto è NetBeans. Nonostante non sia forse il migliore sul mercato, possiede però l’ottimo celebre design grafico per le librerie swing. Permette quindi agievolmente di creare semplici GUI di supporto laddove serve.

Watson Assistant
Per quanto riguarda l’implementazione delle chatbot ci siamo serviti del servizio IBM Watson Assistant nel quale abbiamo costruito tre skill, gestite dal nostro account, che ci permettono di sviluppare tutti i nodi di dialogo per l’interazione con l’utente.
Queste tre skill sono divise in: – master, – sito, – test.
Il primo si interfaccia con l’applicazione ed è quello che gestisce tutti i dialoghi riguardanti i laboratori di televita, i giochi cognitivi, l’interazione con l’anziano ed i movimenti del robot. Il secondo è per la gestione della chatbot di questo sito web nella quale forniamo una demo del funzionamento di una conversazione con un’ Intelligenza Artificiale. Nella terza skill invece è dove i nostri Chatbot Designer progettano i nuovi nodi di dialogo che poi verranno integrati una volta definiti stabili e completamente funzionanti.

JUnit

Lo sviluppo del progetto è eseguito secondo la pratica TDD (Test Driven Development). Attraverso la celebre libreria JUnit, tutti i sorgenti vengono sottoposti a rigorosi test automatici, così che ogni nuovo progresso software è garantito dalla validità del superamento dei test. A questo scopo abbiamo dedicato un team interamente a questo scopo.
