Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Strumenti utilizzati

Per la realizzazione del progetto sono stati utilizzati differenti tool a supporto del processo di sviluppo. Tali strumenti, hanno come obiettivo quello di agevolare gli sviluppatori durante tutta la realizzazione del progetto, cercando di automatizzarne i diversi aspetti.

Notion

Notion è lo strumento che è stato utilizzato per gestire e organizzare i lavori necessari per la realizzazione del progetto, è un tool multi piattaforma (web, Mac, Windows, iOS, Android) che permette di organizzare attività, prendere note, creare calendari, eventi, wiki, CRM e tanto altro in un unica area di lavoro, in maniera modulare e collaborativa.

Ci ha consentito di organizzare le attività per i diversi sprint e di raccogliere in un unico punto tutti i documenti ed elementi utili, necessari per il progetto.

icona notion

[Fig 1] Notion

Egon

Egon.io è un lightweight tool di supporto al Domain storytelling che dà la possibilità di rappresentare attraverso un linguaggio pittografico le storie raccontate dagli esperti del dominio, durante il processo di knowledge crunching.

icona egon

[Fig 2] Egon.io

Arduino Cloud

Arduino Cloud è una piattaforma online pensata per rendere semplice la creazione, lo sviluppo e il monitoraggio di progetti IoT. È una piattaforma che permette a chiunque di creare progetti IoT, con un’interfaccia user friendly e una soluzione all-in-one per: la configurazione, la scrittura di codice, il caricamento e la visualizzazione dei dati.

icona egon

[Fig 3] Arduino Cloud

GitHub

GitHub è un servizio di hosting per lo sviluppo del software e gestione del version-control basato su Git. Fornisce: il distributed version control di Git più l’access control, il tracciamento dei bug, le richieste di funzionalità software, la gestione delle attività, l’integrazione continua e wiki per ogni progetto.

Per il nostro progetto abbiamo utilizzato: GitHub come servizio di hosting per il codice sorgente, le GitHub actions per promuovere il processo di continuous integration e le GitHub pages per la documentazione e spiegazione del sistema realizzato.

icona github

[Fig 3] GitHub

Gradle

Gradle è un build automation tool open-source, JVM-based, che consente di automatizzare la costruzione dei progetti Java; esso rende semplice anche l’impostazione di diverse librerie, che possono essere utilizzate all’interno del progetto, senza la necessità di includere i .jar, ma specificando direttamente delle dipendenze da un repository remoto. Gradle consente anche la gestione di un progetto costituito da diversi moduli e delle diverse dipendenze che vi possono essere fra questi.

icona gradle

[Fig 4] Gradle

UnitTest

Per il progetto si è deciso di utilizzare il framework JUnit 5 per la realizzazione di test automatizzati sul codice Java.

JUnit è un framework open-source che può essere utilizzato per la realizzazione di test per il linguaggio Java, fornisce asserzioni per testare i risultati attesi, annotazioni per identificare i metodi e test runner grafici e testuali; inoltre, mette a disposizione una suite per organizzare e permette la condivisone dei risultati.

icona junit

[Fig 5] JUnit 5

MongoDB

MongoDB è un database non relazionale open source, in grado di elaborare dati strutturati, semi-strutturati e non strutturati. Si tratta di un database orientato ai documenti che sfrutta un linguaggio di query non strutturato.

MongoDB, quindi, si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON, rendendo l’integrazione di alcuni tipi di dati più facile e veloce.

icona gmongodb

[Fig 6] MongoDB

Vertx

Vertx è un framework, per la realizzazione di applicazioni reattive in Java. Offre un modello di programmazione event driven e tutte le sue API sono progettate per lavorare principalmente in modo asincrono.

icona vertx

[Fig 7] Vertx

Docker

Docker è una piattaforma open-source per lo sviluppo, il rilascio e l’esecuzione di applicazioni. Esso consente di separare le applicazioni dall’infrastruttura dell’host, in modo da poter fornire il software rapidamente.

Docker consente di racchiudere un’applicazione in un ambiente isolato chiamato container. È possibile eseguire più container isolati all’interno di uno stesso host. I Container sono lightweight e pensati per fornire solo il necessario ad eseguire l’applicazione che essi contengono.

icona docker

[Fig 8] Docker

Android Espresso

Android Espresso è un framework di test automatizzato per le app Android sviluppate da Google. Ha l’obiettivo di rendere più facile e efficiente la scrittura di unit test e integrazione per le app Android. Questo framework, permette agli sviluppatori di scrivere codice di test, che interagiscano con l’applicazione allo stesso modo in cui lo farebbe un utente reale. Espresso è anche noto per essere veloce nell’esecuzione dei test, poiché utilizza direttamente l’emulatore o il dispositivo Android.

icona android espresso

[Fig 9] Android Espresso