1 INTRODUZIONE
Questa tesi riguarda un progetto svolto con l’azienda Visionest Srl
di Padova, la quale ha la necessità di espandere il proprio business
nell’ambito dello sviluppo di applicazioni cross-platform per dispo-
sitivi mobili, rendendosi così disponibile a soddisfare questa nuova
tipologia di richieste.
L’obiettivo principale riguarda la selezione di un framework
1
di
sviluppo che sia di supporto agli sviluppatori dell’azienda, al fine di
semplificare e velocizzarelarealizzazioneditaletipologiadiapplica-
zioni. Lasceltadellostrumentoprendeinconsiderazionesialequali-
tàefunzionalitàmesseadisposizionechelespecifichecaratteristiche
ed esigenze della realtà aziendale coinvolta.
Il progetto ha anche l’obiettivo di valutare la possibilità di riutiliz-
zare i servizi Web già disponibili ed utilizzati negli attuali prodotti
Visionest allo scopo di poterli integrare nelle applicazioni mobili.
Infine, in relazione alle necessità di un’azienda cliente Visionest, è
stato richiesto l’utilizzo del framework selezionato per lo sviluppo di
un prototipo che costituirà la base per la realizzazione dell’applica-
zione mobile cross-platform da rilasciare al committente.
.
Ilproblemaacuiilprogettofornisceunapossibilesoluzioneèstato
sollevatodaVisionest,aziendachesioccupadiconsulenzarelativaal
campo dell’Information Technology (IT) e, in maggior misura, dello
sviluppo di software gestionale oltre alla fornitura di soluzioni e ser-
vizistrettamentelegatiall’ambitodelBusinessProcessManagement
2
(BPM).
Il progetto riguarda un vasto lavoro di studio ed analisi il cui sco-
po è permettere a Visionest di capire come ed in quale misura le
tecnologie Web client-side possono essere d’aiuto nello sviluppo di
applicazioni per Smart Mobile Device, cioè dispositivi mobili le cui
funzionalità vanno oltre la sola esigenza di telefonare e che si avvici-
1
È una struttura di supporto (dall’inglese intelaiatura) su cui sviluppare un si-
stemasoftware, favorendoilriusodelcodicealfinedievitarediaffrontarepiùvolte
gli stessi problemi.
2
Il BPM è una disciplina organizzativa che si occupa di definire, ottimizzare,
monitorare ed integrare i processi aziendali al fine di renderli efficienti ed efficaci
per il business aziendale. Per maggiori informazioni si veda [49, 140].
1
. 2
nano sempre più al mondo dei computer: accesso al Web, ricezione
e risposta alle email, redazione di documenti, telefonate VoIP, multi-
medialità attraverso audio, video, giochi ecc. Più comunemente tali
dispositivi sono identificabili attraverso smartphone e tablet, la cui
diffusione e crescita attuale sembra non conoscere ostacolo
3
.
Oltre alla fase di analisi il progetto prevede la collaborazione con
Visionest per la realizzazione di un prototipo che rappresenterà la
base di partenza per l’implementazione di un’applicazione mobile
da rilasciare ad un’azienda cliente.
L’input di tale lavoro è dovuto alle necessità di Visionest di poter
espandere il proprio business e per farlo ha pensato di realizzare
applicazioni nell’ambito mobile. Perciò, i risultati di questo lavoro
sono particolarmente importanti in quanto, se l’esito sarà positivo,
potrà aumentare l’offerta di servizi e prodotti disponibili aprendosi
verso nuovi clienti e mercati, sfida che in tempi difficili come quelli
attuali risulta ancora più importante.
Il know-how degli sviluppatori di Visionest, del quale questo pro-
getto deve tener conto per conseguire i propri obiettivi, è partico-
larmente solido ed esteso sulle tecnologie Web sia client-side che
server-side.
Un’altra esigenza dell’azienda, collegata alla realizzazione di ap-
plicazioni mobili, è quella di sviluppare applicazioni cross-platform,
ossia applicazioni facilmente portabili ed eseguibili su differenti piat-
taforme. Ciò significa che non si dovrà fare affidamento sulle pe-
culiarità della specifica piattaforma di sviluppo, ma solamente alle
caratteristiche comuni dei diversi sistemi operativi. La possibilità di
realizzare applicazioni cross-platform consente di:
• creareunasingolaapplicazioneeportarlasudifferentipiattafor-
me in maniera semplice e veloce, o comunque più velocemente
rispetto a realizzarla ad-hoc per un’altra piattaforma;
• effettuare minori interventi di manutenzione con benefici sulle
diverse piattaforme supportate;
• ridurre i tempi ed i costi di sviluppo;
• avere un solo team focalizzato nello sviluppo dell’applicazio-
ne evitando la ridondanza e la dispersione di know-how, tipici
dello sviluppo di applicazioni native per differenti piattaforme.
Nelprogettovienerichiestoilsupportoallepiattaformemobiliche
detengono la maggior quota di mercato, allo scopo di raggiungere il
3
Atalpropositosivedailcapitolo3perapprofondimentisulladiffusioneattuale
efuturadellepiattaformedisviluppoe,comequestevengonoconsiderateaifinidel
progetto.
. ’ 3
più ampio bacino di utenti nel minor tempo possibile, ovvero: An-
droid e Apple iOS. Queste coprono nel complesso più dell’80% del
mercato degli smartphone ed il 96% del mercato tablet. Microsoft
Windows Phone, vista la sua quota di mercato ridotta, non verrà for-
zatamente escluso ma considerato secondariamente. Lo stesso tratta-
mento verrà riservato anche ad altri sistemi operativi, proprio per la
loro ridotta diffusione nel mercato.
Inconclusione,larealizzazionediapplicazionimobilicross-platform
sarà uno degli obiettivi principali che dovranno essere valutati nell’a-
nalisi e nello studio di questo progetto.
. ’
Le necessità di Visionest, descritte precedentemente, rappresenta-
no la possibilità di creare applicazioni mobili cross-platform al fine
disoddisfare, inmanieraefficaceeveloce, lefuturerichiestedaparte
di potenziali clienti. Visto il bisogno di realizzare applicazioni cross-
platform e dato il solido know-how che il team di sviluppatori Vi-
sionest possiede sulle tecnologie Web, sia client-side che server-side,
la soluzione migliore è quella di implementare le applicazioni mobili
attraverso questo tipo di tecnologie, interoperabili e standard
4
.
La scelta di utilizzare le tecnologie Web
5
è apparsa evidente sola-
mente dopo aver approfondito e discusso, anche con l’aiuto di Vi-
sionest, queste tematiche. In quanto l’acquisizione, il mantenimen-
to e l’aggiornamento di competenze e conoscenze nell’ambito dello
sviluppo di applicazioni mobili native, richiede uno sforzo ecces-
sivo, prolungato e costoso per l’azienda, con risultati visibili solo
nel medio-lungo periodo. Inoltre, tutto ciò diverrebbe più compli-
cato ed oneroso se l’azienda dovrebbe acquisire know-how per ogni
piattaforma mobile di sviluppo che intende supportare.
.
La gestione del progetto ha richiesto incontri periodici, dalla ca-
denza settimanale o bisettimanale, con il team di sviluppo aziendale.
Perciò, visto il carattere esplorativo della tesi relativo all’analisi delle
4
InrealtàsonoraccomandazionidelWorldWideWebConsortium(W3C),un’or-
ganizzazione non governativa internazionale che sviluppa e promuove tecnologie
che garantiscono l’interoperabilità (specifiche, guidelines, software e applicazioni)
per portare il World Wide Web al massimo del suo potenziale. Si veda [133] per
maggiori dettagli.
5
Per approfondire il confronto tra lo sviluppo mobile attraverso l’utilizzo delle
tecnologie Web e di quelle native si veda la sezione 3.3.
. 4
migliori tecnologie ad oggi disponibili e la loro valutazione al fine
di poter realizzare applicazioni mobili cross-platform, si è optato per
una metodologia di sviluppo agile
6
in modo da facilitare il coinvolgi-
mento dell’azienda ed i rapidi cambiamenti di rotta in base a ciò che
via via emergeva dalle fasi di studio ed analisi.
Inizialmentesonostatifissatialcuniincontriperdeciderecomepro-
cederenelprogettoedefinireobiettivipiùspecificisullabasediquel-
li iniziali. Confrontandosi con il team è stato possibile valutare quali
tecnologieutilizzare, definendoicasidistudioutiliallaselezionedel
framework di sviluppo, al fine di realizzare un prototipo il cui scopo
è provare che il framework selezionato sia all’altezza delle aspetta-
tive per implementare l’applicazione mobile secondo le richieste del
cliente.
Il confronto con il team di Visionest ha permesso non solo di avere
feedback sulla strada intrapresa, correggendo via via il progetto lad-
dove necessario e secondo le loro esigenze, ma anche di coinvolgerli
in decisioni delicate come ad esempio i requisiti per la selezione del
framework di sviluppo o i casi di studio da realizzare.
Il relatore è sempre stato disponibile a discutere dell’avanzamento
del progetto oltre a fornire utili consigli e spunti al fine di renderlo
migliore.
In definitiva il supporto dell’azienda e del relatore sono stati fon-
damentali per la realizzazione del progetto. Senza questi il proget-
to avrebbe potuto prendere una piega diversa e fornire risultati non
ottimali e non congeniali rispetto a quanto preventivato.
.
Scopo del progetto è stato quello di capire come sfruttare le tecno-
logie Web per lo sviluppo di applicazioni cross-platform per Smart
Mobile Device, ossia dispositivi mobili quali tablet e smartphone ad
oggi sempre più diffusi ed utilizzati sia in ambito aziendale che nel
privato.
Il lavoro è focalizzato sulla scelta del framework di supporto allo
sviluppo. Basta effettuare una ricerca sul Web per rendersi conto del-
la moltitudine e varietà di tali strumenti, ognuno con i propri pregi
e difetti. Perciò, è stata effettuata una selezione iniziale di quelli ad
oggi ritenuti idonei allo scopo e sulla base di alcuni criteri generali,
ovvero senza focalizzarsi sulla specifica azienda, sono stati analizzati
e confrontati. Da ciò sono emersi i 3 migliori framework disponibi-
li, i quali sono stati ulteriormente messi alla prova per valutarne le
capacità di fornire soluzioni a problemi reali e ricorrenti nello svi-
6
Per informazioni sulla metodologia di sviluppo agile si veda la sezione 4.1.
. 5
luppo di applicazioni mobili. Infine, il più adatto è stato selezionato
per implementare un prototipo che sarà la base da cui sviluppare
l’applicazione richiesta da un’azienda cliente.
Sono state esaminate le funzionalità rese disponibili da HTML5 e
CSS3 al fine di trarne beneficio dall’impiego nelle applicazioni, oltre
alla valutazione sul riutilizzo dei servizi Web messi a disposizione
dall’azienda. Ilprototipoimplementatohabeneficiatoditaliconside-
razioni, le quali saranno utili all’azienda per lo sviluppo di ulteriori
applicazioni mobili.
I risultati di questo lavoro hanno contribuito ad aumentare in ma-
niera semplice ed efficace l’offerta di servizi e prodotti messi a di-
sposizione da Visionest al fine di soddisfare le nuove richieste di
mercato.
La tesi fornisce un documento unico nel suo genere che analizza e
valuta i miglioriframeworkdisupportoadoggidisponibiliedelinea
una possibile metodologia di confronto e selezione basata sull’utiliz-
zodicriteriecasidistudio. Siprecisachequestaesigenzadisviluppo
può essere vista in un’ottica più generale e, di conseguenza, adattar-
si non solo alla specifica azienda con la quale si è collaborato, ma
anche ad altre aziende che guardano con interesse allo sviluppo di
applicazioni mobili cross-platform.
Per maggiori informazioni sugli obiettivi affrontati nel progetto si
veda la sezione 2.2.
.
Il resto del documento è strutturato secondo i seguenti capitoli:
: delinea gli obiettivi del progetto, i requisiti per la sele-
zione del framework di sviluppo, i casi di studio reali da rea-
lizzare per approfondire le capacità dei framework, infine, lo
scenario d’utilizzo del prototipo ed i requisiti la cui implemen-
tazione dovrà soddisfare;
: definiscelacategoriadegliSmartMobileDeviceanaliz-
zandone le caratteristiche e le limitazioni, discute dell’attuale
diffusione dei sistemi operativi mobili, presenta le diverse tipo-
logie di applicazioni realizzabili per tali dispositivi, infine, for-
nisce le considerazioni per l’utilizzo della tipologia ibrida e dei
tablet nello sviluppo del prototipo;
: presentaletecnicheeletecnologieapprofonditeeduti-
lizzateduranteilprogetto,focalizzateinparticolaresull’ambito
di sviluppo Web, sia client-side che server-side;
. 6
: individuaadoggiimiglioriframeworkdisupportoallo
sviluppoanalizzandolisullabasediopportunicriteriacarattere
generale,infine,dalconfrontoeffettuatonevengonoselezionati
3 per il passo successivo;
: studia la capacità dei framework di risolvere problemi
reali molto frequenti nell’ambito dello sviluppo mobile e sulla
base dei requisiti di selezione viene individuato il più adatto
agli scopi del progetto;
: analizza l’utilizzo delle funzionalità di HTML5 e CSS3
nello sviluppo di applicazioni mobili, valuta il riutilizzo e l’in-
tegrazionedelprototipoconiserviziWebdiVisionestedinfine
presenta l’applicazione prototipale sviluppata;
: esponeleconsiderazionifinalisulprogettoedirisultati
ottenuti.
2 ANALISI DEI REQUISITI
Viene ora descritta la fase di analisi e di studio che ha permesso di
determinare gli obiettivi che Visionest voleva raggiungere attraverso
questo progetto, i requisiti utilizzati per la selezione del framework
di sviluppo, i casi di studio richiesti per confrontare con maggior
dettaglio i framework ed, infine, i requisiti che il prototipo dovrebbe
soddisfare secondo le aspettative dell’azienda cliente.
.
Laqualitàfinalediunprodottoodiunservizioèdatadall’insieme
delle caratteristiche che gli conferiscono la capacità di soddisfare le
esigenze, implicite ed esplicite, richieste dal committente. Al fine di
garantire la buona riuscita del progetto ed il livello di qualità atteso,
il processo di analisi e definizione dei requisiti risulta particolarmen-
te critico. La figura 2.1 mostra in maniera schematica le fasi per la
gestione dei requisiti.
Il requisito è una caratteristica o una particolare capacità che il
sistema deve sapere garantire in quanto richiesta dal committente
e necessaria al raggiungimento dei propri obiettivi. Nel complesso,
l’insieme dei requisiti permette di descrivere i servizi ed i vincoli che
il sistema deve soddisfare tra cui: il comportamento, la sicurezza, le
performance, l’operatività, l’affidabilità, la conformità alle politiche
aziendali, provinciali, regionali e/o nazionali ecc.
Molto importante è la tracciabilità, ossia la possibilità di seguire
il percorso che dal requisito porta alla sua realizzazione tecnica. In
questo modo è possibile individuare più facilmente le modifiche da
apportare al sistema, permettendo così di:
• valutare l’impatto di un problema;
• valutare l’impatto di una modifica;
• controllare che l’obiettivo del progetto rimanga quello stabilito
inizialmente;
• verificarechetuttiirequisitidisistemasianosoddisfattidall’im-
plementazione;
• gestire efficacemente i cambiamenti.
7
. 8
Figura 2.1: Fasi per la gestione dei requisiti.
Legate al processo di analisi, ci sono le attività di verifica e vali-
dazione del prodotto con lo scopo di limitare i costi aggiuntivi di
modifica e manutenzione attuati per risolvere i problemi rilevati solo
dopo la definitiva messa in esercizio del prodotto. L’assenza o la su-
perficialità dei controlli di qualità ha lo svantaggio, nel medio-lungo
periodo, di incrementare i costi da sostenere per la fase di manuten-
zione correttiva, ovvero le modifiche da attuare sul prodotto per la
rimozione degli errori.
Per garantire la qualità del prodotto ed il controllo dei costi, è ne-
cessario intervenire con molta attenzione nelle attività di definizione
e gestione dei requisiti. Questo, consente di verificare la corrispon-
denza fra quanto realizzato e quanto richiesto.
I benefici che si possono raggiungere sono:
• aumentodellaqualitàdelprodottoe,diconseguenza,delgrado
di soddisfazione del committente;
• riduzione del numero di cicli di sviluppo;
• riduzionedelnumerodianomalieequindidelcostoperlaloro
correzione;
• efficacia ed efficienza delle attività di verifica e validazione;
• controllo e riduzione del rischio.
La definizione dei requisiti richiede capacità di gestione e di comu-
nicazione in quanto rappresenta la fase meno tecnica dello svilup-
po di un sistema e, se non accuratamente svolta, avrà conseguen-
. 9
ze negative nelle fasi successive. I costi da sostenere per gestire re-
quisiti omessi o non correttamente interpretati possono diventare, a
prodotto ultimato, molto alti.
Inizialmentesiraccolgonotutteleinformazionichesiritengonoat-
tinenti al problema mediante lo studio del dominio, le domande al
committenteelaricercadiproblemianaloghinelcasofosserogiàsta-
tirisolti. Lasuccessivaelaborazionepermettedicontrollarelaqualità
dei requisiti e di conseguenza la qualità del prodotto finale. L’utiliz-
zo di standard e strumenti a supporto di tale attività, permette di
raggiungere il livello di efficacia necessaria per esprimere i requisiti,
in modo che siano il più possibile comprensibili alle parti interessate:
utenti finali, fornitori e committente.
Si veda [120] per maggiori dettagli sul processo di analisi dei re-
quisiti mentre per quanto riguarda lo standard ISO/IEC 12207, rela-
tivo alla gestione del ciclo di vita per lo sviluppo software, si veda
[6]. Infine, in merito alla struttura che un documento di Software Re-
quirements Specification (SRS) dovrebbe avere si consiglia di seguire
i suggerimenti dello standard IEEE/ANSI 830-1998 Recommended
PracticeforSoftwareRequirementsSpecification[53]. Esistonoanche
altri modi per scrivere documenti di analisi dei requisiti di qualità,
tuttavia lo Standard 830 è attualmente quello più diffuso.
.. Formalismo utilizzato per la definizione dei requisiti
Un requisito, cioè una particolare capacità richiesta dal progetto
o dal sistema, può essere presentato sia attraverso una descrizione
in linguaggio naturale, che mediante una precisa codifica per quanto
riguardal’identificativounivoco. Ilmotivodiquestodifferentelivello
di dettaglio è dovuto al fatto che i requisiti devono essere chiari e
comprensibili alle parti coinvolte, oltre che facilitare il processo di
tracciabilità come descritto precedentemente in 2.1.
La categorizzazione dei requisiti per la selezione dei framework di
sviluppo (2.4) e per il prototipo (2.6.2) ha seguito precisi formalismi
al fine di evitare ambiguità nella loro comprensione ed implementa-
zione. L’identificativo di ogni requisito:
• inizia con la lettera R;
• deve esprimere informazioni sulla tipologia dello stesso:
– SF: per i requisiti relativi alla selezione del framework;
– PR: per i requisiti che individuano le capacità richieste al
prototipo;
. 10
• associa un numero ordinale al requisito in base alla tipologia
in esame (SF, PR) secondo la relazione d’ordine definita per i
numeri interi positivi (es. 1, 2, 3 ecc.);
• deve esprimerne la necessità mediante:
– O: il requisito è obbligatorio, quindi di primaria importan-
za ai fini del progetto;
– D: il requisito è desiderabile, perciò non di primaria im-
portanza, ma che se implementato porta beneficio e valore
aggiunto al progetto;
– Z:ilrequisitoèopzionale,cioènondiprimariaimportanza
e il cui valore è non rilevante ai fini del progetto.
.
Per quanto riguarda il progetto in esame, l’analisi dei requisiti è
stata realizzata attraverso diverse iterazioni mediante un approccio
evolutivo. Questo perché il progetto è particolarmente innovativo
per Visionest e perciò ha richiesto una certa dose di investigazione
e ricerca in quanto all’inizio non era disponibile alcun tipo di docu-
mentazione che esprimesse i bisogni dell’azienda. Di conseguenza,
l’analisi dei requisiti ha richiesto diversi incontri con Visionest ed un
tempo particolarmente lungo per essere portata a termine.
In relazione al problema presentato in sezione 1.1, che richiede la
selezione di un framework Web per lo sviluppo di applicazioni mo-
bili cross-platform e l’utilizzo dello stesso per la realizzazione di un
prototipo, vengono ora definiti gli obiettivi del progetto, tenendo in
dovuta considerazione anche quanto descritto in sezione 1.2:
• focalizzazione iniziale sull’utilizzo dei tablet, senza escludere
l’uso e quindi il supporto agli smartphone in un successivo
momento;
• individuazione dei requisiti utili alla selezione del framework
Web di sviluppo;
• individuazionedeicasidistudiopiùinteressantiacuisottopor-
re i framework di sviluppo più idonei per un confronto utile
alla fase di selezione;
• individuazioneedanalisideimiglioriframeworkWebdisvilup-
po ad oggi disponibili ed utili alla realizzazione di applicazioni
mobili;
• implementazioneedanalisidettagliatadeicasidistudiorelativi
allarealizzazionediapplicazionimobilisuimiglioriframework;
. 11
• selezione del framework Web per lo sviluppo di applicazio-
ni mobili, con particolare riferimento ai requisiti individuati
oltre che alla separazione dei componenti secondo il pattern
architetturale Model-View-Controller (MVC). Si veda 4.2.3 per
maggiori informazioni su MVC;
• analisiedutilizzodellatecnologiaHTML5eCSS3,inparticolare
delle funzionalità disponibili e sfruttabili ai fini del progetto e
dacuilarealizzazionepotrebbetrarrevantaggioperl’ambiente
mobile:
– comunicazione bidirezionale attraverso i Web Socket;
– memorizzazione di informazioni direttamente sul client
attraverso Web Storage;
– realizzazione di applicazioni Web offline;
– usodinuovielementistrutturaliesemanticicheapportano
maggiori informazioni tra cui: header, footer, section, nav
e article;
– nuovi attributi e tipi di input per i form;
– esecuzione di codice client-side asincrono attraverso i Web
Workers;
– presentazionedelcontenutoedeffettigraficiattraversoCSS3;
– gestione dei dati multimediali attraverso i tag audio e vi-
deo;
– Drag & Drop per il trascinamento ed il rilascio di oggetti
in una pagina Web;
– Canvas per disegnare immagini attraverso il Web.
• analisi e determinazione del modo più appropriato per rein-
gegnerizzare
1
le attuali interfacce Web dei prodotti desktop di
Visionest, con il fine di portarle su dispositivi mobile dotati di
interfaccia a tocco;
• analisi sull’opportunità di riutilizzo dei servizi di backend già
presenti ed utilizzati nella attuali applicazioni di Visionest;
• realizzazionediunprototipochedimostrilafattibilitàedilgra-
do di difficoltà con cui è possibile realizzare applicazioni mo-
bili attraverso il framework Web selezionato. Tale prototipo co-
stituirà la base da cui sviluppare un’applicazione mobile per
un’azienda cliente.
1
Ilprocessodireingegnerizzazioneèlarivisitazionediunsistemainformatico,o
partediesso,apartiredallasuaprogettazioneconilfinedimigliorarlooaggiunger-
vifunzionalitàe/ol’utilizzodinuovetecnologiealpostodiquelleprecedentemente
utilizzate.