Svolgimento del progetto
2.3. ANALISI DEI REQUISITI 33
• Precondizione: l’utente accede all’applicazione tramite dispositivo mobile supportato e si è autenticato.
• Postcondizione: il sistema ha fornito le funzioni richieste.
UC2.1.1 Avvio sessione di ispezione
• Attori: Utente autenticato.
• Scenario principale:
1. Terminare ispezione (UC2.1.1.1);
2. Annullare ispezione (UC2.1.1.2).
• Descrizione: l’utente autenticato deve poter avviare una sessione di ispezione.
• Precondizione: l’utente autenticato ha richiesto di voler avviare una sessione di ispezione.
• Postcondizione: il sistema ha avviato una sessione di ispezione.
Figura 2.25: UC2.1.1 avvio sessione di ispezione
34 CAPITOLO 2. SVOLGIMENTO DEL PROGETTO UC2.1.1.3 Visualizzazione modello
Figura 2.26: UC2.1.1.3 visualizzazione modello
• Attori: Utente autenticato.
• Scenario principale:
1. Rotazione del modello (UC2.1.1.3.1);
2. Zoom del modello (UC2.1.1.3.2);
3. Salvataggio del modello (UC2.1.1.3.3);
4. Uscita dall’ispezione (UC2.1.1.3.4);
2.3. ANALISI DEI REQUISITI 35 5. Condivisione del modello tramite link (UC2.1.1.3.5);
6. Operazioni di misurazione(UC2.1.1.3.6);
7. Operazioni di confronto(UC2.1.1.3.7).
• Descrizione: l’utente autenticato deve poter visualizzare il modello 3D otte-nuto.
• Precondizione: l’utente autenticato ha terminato una sessione di ispezione.
• Postcondizione: il sistema elabora il modello ispezionato e ne permette la visualizzazione.
UC2.2 Accesso alla lista dei modelli salvati
• Attori: Utente autenticato.
• Scenario principale:
1. Visualizzazione titolo modello (UC2.2.1);
2. Modifica titolo modello (UC2.2.2);
3. Visualizzazione immagine modello (UC2.2.3);
4. Visualizzazione descrizione modello (UC2.2.4);
5. Modifica descrizione modello (UC2.2.5);
6. Caricare modello (UC2.2.6);
7. Caricare modello tramite link (UC2.2.7);
8. Eliminare modello (UC2.2.8).
• Descrizione: l’utente autenticato deve poter accedere alla lista dei modelli salvati.
• Precondizione: l’utente autenticato ha richiesto di voler accedere alla lista dei modelli salvati.
• Postcondizione: il sistema fornisce una schermata dove saranno visualizza-ti tutvisualizza-ti i modelli dell’utente autenvisualizza-ticato con visualizza-titolo, descrizione e immagine.
Saranno inoltre visualizzati i pulsanti per caricare o eliminare il modello.
36 CAPITOLO 2. SVOLGIMENTO DEL PROGETTO
2.3.3 Tracciamento dei requisiti
Da un’attenta analisi dei requisiti e dei casi d’uso effettuata sul progetto ho stilato la tabella che traccia i requisiti in rapporto ai casi d’uso. Sono stati individuati diversi tipi di requisiti e ho quindi fatto utilizzo di un codice identificativo per distinguerli.
Ho differenziato i requisiti per categoria del requisito a seconda della sua finalità, definendo inoltre il grado di priorità del requisito.
Tra le categorie dei requisiti sono stati effettuate le seguenti classificazioni:
• requisito funzionale: definisce le funzionalità principali che l’applicazione deve soddisfare;
• requisito qualitativo: definisce i vincoli qualitativi riguardanti l’interfaccia grafica o legati all’esperienza dell’utente. Si noti che per la presente applica-zione non sono stati previsti requisiti qualitativi poiché questi aspetti non erano richiesti tra gli obiettivi dello stage e data la natura puramente innovativa del progetto essi non sono stati ritenuti necessari;
• requisito di vincolo: definisce i vincoli di carattere tecnologico dell’applica-zione.
I gradi di priorità dei requisiti sono invece stati distinti in:
• obbligatori: definisce i requisiti ritenuti fondamentali ai fini del raggiungi-mento dello scopo dello stage;
• desiderabili: definisce i requisiti non ritenuti fondamentali, ma che portereb-bero comunque valore aggiunto al prodotto.
• opzionali: definisce quei requisiti di cui ci si occuperà solo dopo aver comple-tato i precedenti e se le risorse a disposizione lo permetteranno.
2.4. PROGETTAZIONE 37
2.4 Progettazione
2.4.1 Tecnologie utilizzabili
In questa sezione vengono presentate le tecnologie scelte per sviluppare il progetto e quelle che potrebbero fornire un aiuto in alcuni ambiti dello sviluppo dell’applica-zione. Per ognuna di esse verrà fornita una breve descrizione ed eventuali punti a favore e sfavore.
- Java
Java verrà utilizzato per la maggior parte dello sviluppo del progetto attraverso l’IDE[g]Android Studio. La scelta di Java comporterà l’uso dell’API di Java per Project Tango e qualora fosse necessario il suo framework UX in Java per la gestio-ne delle eccezioni e il miglioramento dell’esperienza dell’utente.
Vantaggi:
• semplicità, flessibilità e portabilità;
• buona fornitura di librerie compatibili;
• linguaggio di programmazione molto simile ad Android;
• velocità di sviluppo e ottima compatibilità.
Svantaggi:
• minor controllo del codice e prestazioni minori rispetto a C++.
- OpenGL ES
OpenGL ES è un motore 3D pensato per dispositivi mobile e fornito dal framework Android.
Vantaggi:
• ottimizzato per il rendering 3D;
• interfacciabile con Java e Project Tango;
• compatibilità con molte librerie (nella versione 2.0).
- Rajawali
Basato su OpenGl ES, questo motore grafico offre semplici funzionalità che si adat-tano molto bene sia con Android che Project Tango per la visualizzazione grafica delle attività.
38 CAPITOLO 2. SVOLGIMENTO DEL PROGETTO Vantaggi:
• buon adattamento con Android e Project Tango;
• semplicità di utilizzo e buone funzionalità.
Svantaggi:
• caratteristiche limitate.
- PCL
PCL è una libreria utile per l’elaborazione 2D e 3D dei point clouds.
Vantaggi:
• libreria più completa e adatta all’elaborazione dei point cloud;
• documentazione dettagliata.
Svantaggi:
• sviluppata esclusivamente per C++;
• non utilizzabile in ambiente mobile.
- VTK
VTK è un software di elaborazione e visualizzazione immagini 3D che consiste in una libreria di classi C++ e interfaccia per Java.
Vantaggi:
• ottima elaborazione 3D;
Svantaggi:
• modulo di rendering non compatibile con OpenGL.
- VES
VES è una libreria di rendering e visualizzazione integrabile con VTK.
Vantaggi:
• basato su OpenGL 2.0;
• garantisce funzionalità di visualizzazione su dispositivi mobile integrandosi con VTK.
Svantaggi:
• documentazione quasi assente.
2.4. PROGETTAZIONE 39
- Kiwi
Kiwi è una libreria applicativa che fornisce la struttura per lo sviluppo di applica-zioni avanzate di visualizzazione mobile.
Vantaggi:
• lega insieme le librerie PCL e VTK;
• offre widget 3D per touch screens;
• permette la scrittura del codice in Java.
Svantaggi:
• documentazione quasi assente.
- QuickHull3D
QuickHull3D è una libreria che fornisce un algoritmo per la creazione di un involucro convesso a partire da un input di punti 3D.
Vantaggi:
• si adatta bene allo scopo del progetto elaborando punti in tre dimensioni;
• realizza un involucro dal quale poter raccogliere vertici e superfici da rappre-sentare.
Svantaggi:
• funzionalità limitate da poche classi e non semplicissimo da adattare e far coesistere con altre librerie;
• realizza soltanto involucri convessi.
- Jzy3d
Jzy3d è una libreria per disegnare in modo semplice grafici, superfici e primitive 3D poco complesse.
Vantaggi:
• offre strumenti di quadratura e misurazione;
Svantaggi:
• non adatta all’elaborazione di nuvole di punti o modelli complessi.
40 CAPITOLO 2. SVOLGIMENTO DEL PROGETTO
- Poly2tri
Poly2tri è una libreria per lo sviluppo e triangolazione di modelli 2D basati su input di insiemi di punti.
Vantaggi:
• permette un’elaborazione molto semplice basata sulle coordinate dei punti;
• offre la triangolazione delle superfici 2D.
Svantaggi:
• modellazione solo 2D;
• libreria limitata e con poche funzionalità.
- Clipper
Clipper è una libreria che permette di effettuare operazioni booleane tra linee e po-ligoni 2D.
Vantaggi:
• offre un buon supporto per operazioni booleane sui modelli 2D;
Svantaggi:
• calcoli offerti solo su linee e oggetti in due dimensioni;
• funzionalità ridotte per Java.
- 3D Utilities by ISDA
3D Utilities è una libreria utile a caricare, salvare, visualizzare, manipolare e com-parare entità 3D.
Vantaggi:
• interamente sviluppata in Java;
• basata su OpenGL;
• supporto per diversi formati;
2.4. PROGETTAZIONE 41