• Non ci sono risultati.

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

Documenti correlati