Università degli Studi di Padova WoW: sviluppo di un`interfaccia gra

annuncio pubblicitario
Università degli Studi di Padova
Dipartimento di Matematica
Corso di Laurea in Informatica
WoW: sviluppo di un'interfaccia graca per
la intranet aziendale
Tesi di laurea triennale
Relatore
Laureando
Prof. Massimo Marchiori
Anno Accademico 2015/2016
Nicolò Bissacco
II
Sommario
Questo documento descrive il lavoro svolto durante il periodo
di stage dal laureando Nicolò Bissacco presso l'azienda Wintech
Spa.
L'obbiettivo di tale attività è la realizzazione dell'interfaccia graca del nuovo portale per la intranet aziendale. I moduli realizzati sono relativi alla gestione delle anagrache e dell'archiviatore
documentale.
Note
Al ne di evitare ambiguità e per permettere una maggiore
comprensione dei termini tecnici e degli acronimi utilizzati, questi sono riportati nel glossario presente in appendice. Sono state
adottate le seguenti norme tipograche:
• La prima occorrenza di un termine del glossario viene mar-
cata da una
G in pedice (es. parolaG).
• I termini in lingua straniera compaiono in "corsivo ".
III
IV
Ringraziamenti
Innanzitutto vorrei ringraziare il Prof. Massimo Marchiori, relatore della
mia tesi, per l'aiuto fornitomi durante la stesura del documento.
Desidero ringraziare i miei genitori e i miei fratelli per il sostegno e per
essermi stati vicini in ogni momento durante gli anni di studio, soprattutto nei momenti di dicoltà.
Un ringraziamento speciale a Maura, la mia danzata, che durante gli
anni di studio con è sempre stata al mio anco e mi ha sostenuto nei
periodi di dicoltà .
Rivolgo uno speciale grazie anche ai miei nonni che sono stati, con la
loro integrità e presenza, un esempio solido.
Un ringraziamento va anche ai miei amici che hanno sempre saputo farmi divertire e mi hanno sostenuto durante questi anni di impegni universitari.
Un grazie speciale va rivolto a Luca (in arte Rudy): senza la sua pazienza,
dedizione e conoscenza irriverente della matematica non sarei qui oggi.
Ringrazio anche Enrico Merigliano, tutor aziendale, e tutti i dipendenti
di Wintech Spa che mi hanno permesso di vivere questa esperienza.
Settembre 2016, Padova
Nicolò Bissacco
V
VI
Indice
1
2
Introduzione
L'azienda
1.2
Prodotti e servizi oerti
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
Il progetto di stage
1
3
6
2.1
Descrizione
2.2
Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Tecnologie . . . . . . . . . . . . . . . . . . . . . . . . . .
9
. . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3.1
Frontend
. . . . . . . . . . . . . . . . . . . . . . . .
9
2.3.2
Backend
. . . . . . . . . . . . . . . . . . . . . . . .
11
2.3.3
Servizi RESTFUL . . . . . . . . . . . . . . . . . . .
12
2.3.4
Versionamento . . . . . . . . . . . . . . . . . . . . .
13
2.3.5
Strumenti aziendali
. . . . . . . . . . . . . . . . . .
14
2.4
Pianicazione . . . . . . . . . . . . . . . . . . . . . . . .
17
2.5
Avvicinamento al progetto . . . . . . . . . . . . . . . . .
18
2.6
Analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.7
Progettazione e sviluppo . . . . . . . . . . . . . . . . . .
20
2.7.1
Design pattern . . . . . . . . . . . . . . . . . . . . .
20
2.7.2
Modulo anagrache
22
2.7.2.1
2.7.3
2.8
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
25
Modulo robot mail . . . . . . . . . . . . . . . . . . .
26
2.7.3.1
3
1
1.1
Struttura package
Casi d'uso . . . . . . . . . . . . . . . . . . . . .
28
Verica e validazione . . . . . . . . . . . . . . . . . . . .
52
Conclusioni
53
3.1
Valutazione retrospettiva . . . . . . . . . . . . . . . . . .
53
3.2
Criticità . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.3
Competenze . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.3.1
Considerazioni nali . . . . . . . . . . . . . . . . . .
56
4
Glossario
57
5
Bibliograa
65
VII
Elenco delle gure
1
Logo Wintech Spa
2
Informazioni aziendali
. . . . . . . . . . . . . . . . . . . . .
3
Partnership
4
Con chi lavora Wintech Spa
. . . . . . . . . . . . . . . .
3
5
Esempio struttura JSON . . . . . . . . . . . . . . . . . .
12
6
TCB8
14
7
IBM connections
. . . . . . . . . . . . . . . . . . . . . .
15
8
IBM notes . . . . . . . . . . . . . . . . . . . . . . . . . .
15
9
GeCo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
10
Design pattern MVC
20
11
Esempio lista anagraca
. . . . . . . . . . . . . . . . . .
23
12
Dettaglio anagraca cliente . . . . . . . . . . . . . . . . .
23
13
Esempio form inserimento anagraca
24
14
Funzionamento Robot mail . . . . . . . . . . . . . . . . .
26
15
UC interazione tra utente e robot mail
29
16
UC interazione utente con mail associazione archiviazione
1
. . . . . . . . . . . . . . . . . . . . . . . . .
2
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . .
singola . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
33
UC interazione utente con mail nessuna associazione archiviazione . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1
. . . . . . . . . . . . . . . . . . .
33
UC interazione utente con mail associazione archiviazione
multipla
. . . . . . . . . . . . . . . . . . . . . . . . . . .
34
19
UC interazione utente e pagina accettazione archiviazione
40
20
UC interazione utente e pagina annullamento archiviazione
42
21
UC interazione utente e pagina modica archiviazione . .
44
Elenco delle tabelle
1
Orari di lavoro
. . . . . . . . . . . . . . . . . . . . . . .
17
2
UC inserimento tag nell'oggetto . . . . . . . . . . . . . .
29
3
UC invio della mail al Robot . . . . . . . . . . . . . . . .
30
4
UC il robot riceve la mail
31
5
UC salvataggio dati temporanei
6
UC ricezione mail di risposta dal robot mail
7
UC click su link Se non visualizzi correttamente questa
mail... . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
8
UC nessuna azione sulla mail di risposta
36
9
UC click su bottone Modica archiviazione suggerita
. .
37
10
UC click su bottone Annulla archiviazione suggerita . . .
38
11
UC click su bottone Accetta archiviazione suggerita . . .
39
12
UC salvataggio dati azione . . . . . . . . . . . . . . . . .
40
VIII
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . .
32
34
13
UC visualizzazione messaggio di successo . . . . . . . . .
41
14
UC visualizzazione delle informazioni di archiviazione . .
41
15
UC salvataggio dati azione annullamento . . . . . . . . .
42
16
UC visualizzazione messaggio di annullamento . . . . . .
43
17
UC visualizzazione delle informazioni di archiviazione annullata . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
18
UC visualizzazione form per la modica dell'archiviazione
45
19
UC visualizzazione delle informazioni di archiviazione . .
46
20
UC click su X rossa sulle informazioni di archiviazione
.
47
21
UC click pulsante cerca entità . . . . . . . . . . . . . . .
48
22
UC nessuna azione
. . . . . . . . . . . . . . . . . . . . .
49
23
UC click pulsante salva . . . . . . . . . . . . . . . . . . .
50
24
UC click pulsante annulla
51
. . . . . . . . . . . . . . . . .
IX
X
1 Introduzione
1.1 L'azienda
Figura 1: Logo Wintech Spa
Wintech Spa, fondata nel 1987, è il
System Integrator G
che, grazie
alla propria esperienza, competenza e creatività, trasforma le complessità tecnologiche in soluzioni informatiche innovative, ecienti e dal facile
utilizzo.
G
Wintech Spa fornisce consulenza personalizzata e soluzioni IT , per ottimizzare i processi aziendali e raggiungere gli obiettivi deniti assieme
al cliente.
Figura 2: Informazioni aziendali
Il sistema qualità di Wintech Spa è stato certicato secondo la norma
ISO 9001:2008
•
G
per le attività di:
Progettazione, implementazione e fornitura di sistemi informativi
integrati
•
Progettazione e sviluppo di soluzioni software
•
Erogazione di servizi di assistenza tecnica, sistemistica e applicativa
Wintech Spa nel corso degli anni ha creato delle
G
Partnership
e colla-
borazioni di valore, tra cui IBM .
1
Figura 3: Partnership
2
1.2 Prodotti e servizi oerti
Figura 4: Con chi lavora Wintech Spa
Principalmente Wintech Spa tratta con:
•
Professionisti
•
Aziende moda
•
Imprese
•
Enti
•
Banche e assicurazioni
•
Piccola media impresa
Oltre alle attività di assistenza e sistemistica ore anche i seguenti
servizi:
•
Soluzioni:
System Integrator
signica anche concepire e sviluppa-
re soluzioni su misura per i clienti. La Wintech Spa sostiene che i
sistemi informatici debbano avere un luogo di lavoro prolato se-
Intranet G ed Extranet G rappresentano il
questo percorso; Social Intranet ed Extranet
condo le proprie esigenze.
punto di partenza di
sono una prima tappa per ottimizzare anche gli aspetti legati alla
comunicazione; il
Digital Workplace G
ha un obbiettivo nale: un
luogo di lavoro virtuale accessibile da qualsiasi dispositivo e con
3
tutte le applicazioni e le funzioni operative necessarie allo svolgimento del lavoro di tutti i giorni.
E' per poter garantire ai clienti di raggiungere questi obbiettivi che
si mettono in campo forti competenze nell'ambito dello sviluppo
Custom Web Applications G , nell'ambiente CRMG e di Customer
Services G , Sistemi di eCommerce G , di Software Life Cycle Management G e di Document Management G che sono da considerarsi,
di
anche attraverso l'adozione di logiche e soluzioni di Archiviazione
Sostitutiva a Norma, componenti ormai imprescindibili per le necessità di aziende che traguardano le nuove frontiere della
Trasformation G .
•
Digital
Applicazioni: Le applicazioni sono una parte importante nella
visone del
Digital Workplace.
Seguire i clienti nella scelta e nell'a-
dozione delle applicazioni è da sempre nel
Visto l'impatto che un ERP
G
DNAG
di Wintech Spa.
ha all'interno di organizzazioni com-
plesse, questo approccio diventa imprescindibile. Se ben concepito,
l'
ERP
diventa il fulcro attorno al quale ruotano tutte le necessarie
Applicazioni Dipartimentali e Verticali. I sistemi per l'Analisi dei
Dati (
Business Intelligence G ), per il Cash & Credit Management e
Human Resources G ), devono
per la Gestione delle Risorse Umane (
essere scelti con attenzione, ma sicuramente dovranno interagire in
modo stretto con l'
ERP
aziendale ed è per questo che l'adozione di
Portali Applicativi è ormai una consuetudine.
L'attenzione alle persone e al loro lavoro in azienda è un altro tratto caratteristico del
Digital Worplace.
Mettere quindi a disposi-
zione non solo gli strumenti necessari al lavoro, ma anche quelli
che diano la possibilità di una formazione in continua evoluzione
eLearning G ), può diventare strategico.
(
•
Tecnologie: Le infrastrutture periferiche e centrali sono l'elemento portante delle soluzioni e delle applicazioni. Si accompagnano
quindi i clienti nella trasformazione verso il
Cloud
G
Ibrido , per
garantire:
essibilità e agilità con infrastrutture convergenti e virtualizzate
ottimizzazione dinamica dei carichi di lavoro e riduzione dei
costi
Software-Dened G
essibilità degli investimenti con sistemi basati su standards e
semplicità della gestione con architetture
nuovi modelli di consumo dell'IT.
4
La Wintech Spa aiuta le aziende nel miglioramento della produttività del
Digital Workplace,
aumentandone l'ecienza, rendendo
più semplice ed agevole la comunicazione e la collaborazione, abilitando l'accesso alle applicazioni e ai dati aziendali da qualsiasi
dispositivo. Si protegge l'impresa digitale con:
sistemi integrati e automatizzati di controllo della sicurezza,
in grado di prevenire attacchi di
tools
di
backup
Cybercrime G
mirati alle diverse necessità ed esigenze azien-
dali
soluzioni di
Business Continuity G
e
Disaster Recovery G .
5
2 Il progetto di stage
Il seguente capitolo intende fornire una descrizione dettagliata del
progetto di stage e dei motivi che hanno spinto l'azienda a proporlo oltre
che i beneci derivati dalla sua applicazione. Viene inoltre illustrata la
metodologia utilizzata per l'adempimento degli obiettivi.
2.1 Descrizione
Il progetto di stage, denominato "
G
dell'interfaccia graca
WOW G ",
consiste nello sviluppo
del nuovo sistema web per la
intranet aziendale
system inte-
e ha l'obiettivo di gestire a 360 gradi l'azienda creando un
grator.
I moduli sviluppati nel periodo di stage riguardano le anagrache e il
sistema di archiviazione documentale.
software per gestisoftware emerge
è necessario ricordare molte password,
All'interno della vita aziendale si utilizzano diversi
re vari ussi di informazioni.
Dalla molteplicità dei
un grave problema comunicativo:
memorizzare le funzioni di ciascun programma e non sempre c'è la possibilità di scambio delle informazioni tra i diversi
software.
perdita di tempo e inecienza.
L'obiettivo del progetto consiste quindi nel creare un
Questo implica
CRM
aziendale
che racchiuda la possibilità di accedere a tutte le informazioni delle varie applicazioni e mostrarle in un unico luogo, con un unico
login
e che
permetta la condivisione delle informazioni tra gli utilizzatori.
Il modulo che gestisce tutte le funzionalità
CRUD G (creazione, modica,
lettura ed eliminazione) delle anagrache attinge le informazioni dal database
TDB8 G
ed è stato ampliato con funzionalità aggiuntive presenti
in altri applicativi presi in esame nell'analisi.
Un obiettivo collaterale consiste nella realizzazione di un
Robot
mail, un
nuovo sistema di archiviazione documentale, che sostituirà il preesistente archiviatore interno a
TDB8
aggiungendo ulteriori funzioni.
Robot
mail ore la possibilità, tramite un sosticato algoritmo, di archiviare
G
in maniera intelligente le e-mail. Grazie a tag , scritti con delimitatori
stabiliti per convenzione, contenuti nell'oggetto, Robot mail risponde al
mittente con una proposta di archiviazione ragionata, e il mittente deve
confermare, modicare o annullare, a seconda delle speciche, l'archiviazione. Una volta scelta l'azione da perseguire, l'utente ha accesso ad una
pagina del portale
WOW
che riassume le operazioni svolte. Se l'utente
sceglie di confermare o annullare l'archiviazione proposta, il portale mostra un messaggio di conferma o annullamento. Nel caso in cui, invece,
l'utente decida di modicare l'archiviazione proposta, ha la possibilità
6
di scegliere in autonomia il punto di archiviazione desiderato.
Nel ca-
so in cui Robot mail non riuscisse a evincere un match di archiviazione
del 100%, potrebbe suggerire più punti di archiviazione; in questo caso
l'utente dovrà accedere alla pagina del portale e selezionare il punto di
archiviazione corretto.
Un terzo obiettivo consiste nel creare una
intranet social, dove sarà possi-
bile scrivere messaggi, avere proli dettagliati degli utenti, commentare,
condividere informazioni e avere uno spazio in cui poter parlare anche
di argomenti che esulano dai compiti lavorativi, fondamentali per una
maggior coesione dei membri della
business unit.
L'accesso al portale deve poter avvenire non solo tramite dispositivi
sktop G
o
notebook G
ma anche in mobilità da
smartphone G
e
tablet G .
de-
Come metodo di sviluppo per il progetto l'azienda ha deciso di utilizzare
una metodologia
agile G con incontri frequenti con la commissione che ha
standup meeting G giornalieri per fare un resoconto
assegnato il progetto e
di quanto sviluppato.
7
2.2 Obiettivi
Gli obiettivi sono suddivisi in obiettivi obbligatori e opzionali.
Essi hanno subito delle modiche all'inizio del periodo di stage dettate dalla strategia e dalle priorità aziendali.
Infatti, oltre allo sviluppo
dell'interfaccia graca per le anagrache, l'azienda si è resa conto che
sarebbe stato importante lo sviluppo del sistema di archiviazione documentale.
Gli obiettivi obbligatori iniziali sono:
•
sviluppo interfaccia utente;
•
creazione pagine responsive;
•
creazione pagina anagraca clienti;
•
creazione pagina anagraca fornitori;
•
creazione schede di utilità per anagraca clienti;
•
creazione schede di utilità per anagraca fornitori;
•
creazione pagine del sistema di archiviazione documentale.
Gli obiettivi opzionali aggiuntivi sono:
•
8
creazione di altre pagine speciche del
CRM.
2.3 Tecnologie
Le tecnologie impiegate vengono qui di seguito suddivise in due categorie: la prima comprende le tecnologie utilizzate per lo sviluppo del
front end G , le seconde, invece, le tecnologie impiegate nella realizzazione
del back end G .
2.3.1
•
•
Frontend
Webpack: è un
module bundler,
si occupa di gestire, processa-
re e dividere in moduli i diversi assets di un'applicazione:
javascript G , CSS G /SASS G , immagini e JSON G .
le
Gulp: è uno strumento che ci aiuta ad automatizzare alcune operazioni necessarie durante lo sviluppo web.
processi di ottimizzazione
preprocessori
SASS
É usato per eseguire
CSS, Javascript e immagini, per usare i
browser G automaticamente
e per ricaricare il
quando si salva un le del progetto.
•
Karma: è uno strumento a riga di comando
utilizzato per generare un
web server G
JavaScript
che viene
che carica il codice sorgente
G
dell'applicazione ed esegue i test di unità . É possibile congurarlo
per eseguire i test su un certo numero di
browser, necessario per
browser che si è
essere sicuri che l'applicazione funzioni su tutti i
deciso di supportare.
•
Jasmine: è un
framework G
per testare le applicazioni
JavaScript.
Fornisce funzioni per aiutare a strutturare i test di unità.
•
npm (Node Package Manager ), strumento che consente di installare e gestire i moduli esterni che forniscono funzionalità aggiuntive al progetto.
•
web application framework G JavaScript Open
Source G mantenuto da Google G e da una comunità di sviluppatori
AngularJS: è un
individuali e corporazioni. Si utilizza principalmente per lo svilup-
single-page G . Utilizza i pattern architetturaliG
MVC(model-view-controller) G e MVVM(model-view-viewModel) G .
po di applicazioni web
•
Angular animate: è un componente aggiuntivo per AngularJS
che mette a disposizione delle funzioni per le animazioni.
•
Angular touch: è un componente aggiuntivo per AngularJS che
mette a disposizioni delle funzioni per dispositivi mobile.
9
•
•
Angular ui bootstrap: è una libreria graca basata su
tstrap G che reimplementa le funzionalità attraverso direttive
AngularJS in modo che siano utilizzabili dal framework.
jQuery: è una libreria
Javascript
implementa anche le funzionalità
lodash:
di
per lo sviluppo di applicazioni
web. Mette a disposizioni funzioni avanzate rispetto a
•
Boo-
AJAX G .
Javascript
e
è una libreria Javascript moderna che mette a dispo-
sizione delle funzioni di utilità non presenti in Javascript nativo
aumentandone la modularità e le
•
performance.
SASS: è un'estensione del linguaggio
CSS
che permette di utiliz-
zare variabili, di creare funzioni e di organizzare il foglio di stile in
più le. Deve essere compilato per generare i le
CSS
e permette
di velocizzare lo sviluppo graco e il mantenimento del codice.
•
IDE G
realizzato da Jetbrains G .
•
Html5: è un linguaggio di
Webstorm: è un
le pagine web.
É il
moderno e veloce per lo sviluppo web
markup G per la strutturazione delsucessore di HTMLG ed include nuovi tag e
funzionalità.
•
Javascript: è un linguaggio di
scripting G
G
orientato agli oggetti
agli eventi utilizzato per lo sviluppo web lato
client G .
e
Permette di
creare eetti dinamici e interattivi.
•
CSS3: è un linguaggio per denire la formattazione e la graca
delle pagine
HTML.
Permette di separare i contenuti
HTML
dalla
loro formattazione.
•
Bootstrap: è un framework graco che mette a disposizione strumenti ed eetti graci per applicazioni web. É basato su
CSS e
script.
•
CSS. Mette a difont G permettendo la loro scalabilitàG
Font awesome: è un framework di font iconiciG e
sposizione icone generate dai
e customizzazione.
10
HTML e
Java-
mette a disposizione anche funzionalità grache con
2.3.2
•
Backend
Java 2EE: è una specica
Java G
le cui implementazioni vengono
principalmente sviluppate in linguaggio di programmazione
Java
e
ampiamente utilizzata nella programmazione Web.
•
middleware G open source per lo
Java, attraverso l'appoggio al relativo framework, che fornisce un servizio di Object-relational mapping (ORM) G
ovvero gestisce la persistenza dei dati sul database relazionaleG atHibernate: è una piattaforma
sviluppo di applicazioni
traverso la rappresentazione e il mantenimento di un sistema di
oggetti
•
Java.
JPA: è un framework per il linguaggio di programmazione Java che
DBMS G relazionale nelle applicazioni che usano le piattaforme Java Platform,
Standard Edition e Java Enterprise Edition.
si occupa della gestione della persistenza dei dati di un
•
framework open source per lo sviluppo di servizi web
RESTful G in Java. Serve per semplicare oltre che lo sviluppo,
anche la comunicazione con i client chiamanti.
•
Junit: è un
Jersey: è un
framework
che permette di eseguire test di unità per
il linguaggio di programmazione
•
Jenkins: è uno strumento
Java.
open source
continuous integration G ,
eseguito lato server all'interno
di
Java. Viene
di un server web. I task generalmente vengono automatizzati
vengono fatti partire ad ogni commit G fatto dallo sviluppatore.
scritto in linguaggio
DBMS relazionale
e
•
Microsoft sql server 2014: è un
•
Microsoft sql server management studio: è un ambiente in-
Microsoft G .
prodotto da
tegrato per l'accesso, la congurazione, la gestione, l'amministra-
SQL Server G . Integra
un'ampia gamma di strumenti graci con numerosi editor di script
zione e lo sviluppo di tutti i componenti di
avanzati per consentire a sviluppatori e amministratori di qualsiasi
livello di competenza di accedere a
•
Eclipse rational: è un
IDE
SQL Server.
di sviluppo basato su
Eclipse G ,
svi-
IBM, che supporta molti linguaggi di programmazione
Java e Java2EE. Mette a disposizione strumenti di sviluppo,
design, testing, analisi e deploy G .
luppato da
tra cui
•
Advanced rest client: è un applicazione per
testare servizi
REST G .
Chrome G
utile per
11
2.3.3
Servizi RESTFUL
front-end G e back-end G avviene tramite servizi
RESTful. Questo ha permesso di avere la logica di funzionamento
anche sul front-end alleggerendo il back-end in modo da renderlo più
La comunicazione tra
web
veloce nel calcolo e nella risposta.
La suddetta separazione è garanzia di ecienza, infatti tutta la logica
che riguarda le funzionalità di generazione della pagina
nel
browser G
HTML
risiede
dell'utente, invece, la logica di salvataggio e tutto quello
che riguarda i dati resta nel
back-end
orendo così maggiore sicurezza e
rapidità.
front-end esegue in modo asincrono delle chiamate a funzioni API G rese
pubbliche dal back-end. Il back-end rielabora e restituisce una risposta
tramite JSON che contiene i dati richiesti al front-end e che inne li
Il
visualizza.
Il formato dei
JSON
è stato deciso inizialmente in modo da avere delle
strutture chiare e univoche.
Figura 5: Esempio struttura JSON
12
2.3.4
Versionamento
Come sistema di versionamento Wintech Spa utilizza Subversion G .
SVN G è un sistema opensource di controllo versione per lo sviluppo di
software e non solo. Questo strumento viene utilizzato per mantenere la
versione corrente ed avere tutta la storia delle modiche fatte. Permette
di tornare indietro a versioni precedenti, unire modiche completate, segnalare conitti.
I
repository
sono ospitati su
server G interni all'azienda in modo da avere
più controllo e sicurezza.
13
2.3.5
Strumenti aziendali
La Wintech Spa utilizza le seguenti tecnologie aziendali:
•
TDB8:
IBM
technologies for dynamic business G , è la soluzione CRM di
lotus notes G che consente di amplicare
basata su piattaforma
il controllo dell'attività aziendale, organizza i ussi di informazione
e massimizza il valore di tutte le informazioni vitali che spesso
vengono perdute.
Figura 6: TCB8
•
•
software web opensource usato maggiormente per la
gestione dei bug G ma ha anche funzioni di ticketing e strumenti per
il project management G .
Mantis: è un
Trello: è un'applicazione web per il
essere utilizzato anche come
•
to do list.
project management.
IBM connections: è una piattaforma di
Può
social software G leader
di settore che consente alle aziende di contattare le persone appropriate, di accelerare l'innovazione e di fornire risultati. Questa
piattaforma sicura e integrata permette di comunicare con le reti
di esperti dei processi di business critici.
14
Figura 7: IBM connections
•
IBM notes: è un
software
per la gestione delle email e non solo.
Ore tutte le funzionalità ideali per consentire alle aziende moderne di collaborare. Il programma semplica le attività complesse
degli ambienti attuali, integrando messaggistica, applicazioni di
siness
e collaborazione
social
bu-
in un unico spazio di lavoro facile da
utilizzare.
Figura 8: IBM notes
•
IBM sametime: è uno strumento di comunicazione
social.
Inte-
business, orendo un'esperienza utente unicata tramite messaggistica
gra funzioni di comunicazione in tempo reale nell'ambiente di
istantanea, riunioni online, voce, video e dati. Con un solo clic, è
possibile collegarsi immediatamente con la persona desiderata per
richiedere le informazioni di
•
GeCo: è un
software
business
necessarie.
per la gestione e consuntivazione azienda-
le. Le attività svolte vengono inserite nel calendario e collegate ai
15
progetti sui quali si lavora in modo da permettere ai
ger G
project mana-
di calcolare le tempistiche di progetto e all'amministrazione
di calcolare le ore di lavoro.
Figura 9: GeCo
•
Teamviewer: è un
software
per il supporto remoto, accesso remo-
to, amministrazione remota, ucio in casa, collaborazione e
ting online.
fare presentazioni condividendo il proprio desktop.
16
mee-
Permette di controllare il pc a cui ci si connette e di
2.4 Pianicazione
Le attività sono state pianicate prima dell'inizio dello stage che prevedeva una durata di 320 ore totali, suddivise in 40 ore settimanali per
8 settimane. Ha avuto inizio il giorno 23/09/2015 ed è terminato il giorno 13/11/2015.
Le attività sono state pianicate settimanalmente nel
seguente modo:
• Prima settimana :
Conoscenze generali e studio delle tecnologie;
• Seconda settimana :
• Terza settimana :
Analisi dei requisiti;
Progettazione graca dell'interfaccia;
• Quarta settimana :
Progettazione architetturale e di dettaglio;
• Quinta e sesta settimana :
• Settima settimana :
• Ottava settimana :
Codica e test;
Correzioni e aggiunte alle funzioni sviluppate;
Progettazione, implementazione e test funziona-
lità aggiuntive opzionali.
L'orario di lavoro era così pianicato:
Giorno
Mattina
Pomeriggio
Ore
Lunedì
9:00 - 12:30
14:00 - 18:30
8
Martedì
9:00 - 12:30
14:00 - 18:30
8
Mercoledì
9:00 - 12:30
14:00 - 18:30
8
Giovedì
9:00 - 12:30
14:00 - 18:30
8
Venerdì
9:00 - 12:30
14:00 - 18:30
8
Totale
40
Tabella 1: Orari di lavoro
17
2.5 Avvicinamento al progetto
Durante i primi giorni di stage sono state studiate le tecnologie necessarie per la realizzazione del progetto e degli applicativi utilizzati dall'azienda.
Le mie conoscenze pregresse sui linguaggi di programmazione in uso mi
hanno consentito di focalizzare lo studio principalmente sulle librerie, i
framework
e gli strumenti di
build
automatici.
Grazie alle ottime documentazioni uciali presenti nei relativi siti lo studio è stato semplice.
Ci si è serviti degli ecienti corsi gratuiti messi a disposizione da
larJS
Angu-
nei quali, grazie a dei video didascalici con i relativi test di verica,
si apprende in modo interattivo e rapido.
Terminato lo studio delle tecnologie mi sono stati forniti gli accessi ai
repository
di progetto. Ho quindi utilizzato la documentazione aziendale
per capire le norme di progetto utilizzate per lo sviluppo dei software, le
architetture standard adottate e le funzioni delle principali classi e pattern utilizzati. Sono stati mostrati e spiegati inoltre altri progetti simili
realizzati in precedenza così da comprendere meglio la losoa adottata
frontend.
Ho partecipato ad un corso sull'utilizzo di TdB8, CRM
nella progettazione e sviluppo del codice di
gestionale utiliz-
zato per la gestione delle anagrache, da cui ho potuto capire come sono
gestiti i dati e come vengono manipolati. Mi è stato spiegato il
database
e come accedervi per prelevarne le informazioni da mostrare sul web.
Mi è stata fatta anche una breve panoramica sul portale utilizzato come
contenitore di tutti i siti e portali fatti da Wintech Spa in modo da essere
autonomo nell'integrazione del codice scritto in locale.
Per la parte che riguarda l'archiviatore documentale ho studiato e visto
come funziona, assieme ai colleghi che seguivano queste tecnologie, il
ver IBM Lotus Domino G
Wintech Spa.
18
ser-
e il servizio di posta elettronica in funzione in
2.6 Analisi
Durante l'attività di analisi sono stati redatti dei documenti aziendali
nei quali venivano esposte le macro funzionalità principali e quelle più
dettagliate con diagrammi
UMLG , realizzati con Visual Paradigm G .
L'autenticazione e prolazione utente venivano svolte da agenti in funzione per altri applicativi esterni al progetto, quindi il mio compito consisteva nell'integrare le chiamate a questi servizi e riceverne la risposta. I
single signon G su porWeb Sphere G e venivano usati già come punto comune di accesso per
servizi di prolazione prevedevano autenticazioni
tale
le applicazioni sviluppate negli ultimi tempi.
Nella fase di analisi sono stati studiati alcuni
software e prodotti azienda-
li che presentavano funzioni analoghe a quelle da svolgere e che mi sono
serviti come modello per il progetto da realizzare.
Alcuni dei
•
software web
analizzati sono stati:
Bitrix24: racchiude tutte le funzionalità di
ta di funzioni
social, task manager G , chat
CRM
con l'aggiun-
e video, documenti,
calendario, email, risorse umane.
•
Zoho: presenta funzioni per la gestione delle anagrache di vendita
e marketing, collaborazione, email, processi business ed
•
Kayako:
service G
è un
software
help desk G .
che permette la gestione del
integrando funzioni anagrache e
chat
customer
avanzata.
Dalla fase di analisi è emerso che il progetto da realizzare avrebbe do-
vuto necessariamente avere le seguenti caratteristiche: avere un layout responsive G e un'alta usabilitàG da dispositivi mobile, di vitale importanza
per gli agenti commerciali.
19
2.7 Progettazione e sviluppo
Nel seguente capitolo vengono descritti in modo dettagliato la progettazione e le diverse fasi di realizzazione del progetto.
Per la parte riguardante l'archiviatore documentale ci si riferisce al fron-
TDB Web " così come era stato stabilito dalla
tend del portale web come "
Wintech Spa.
2.7.1
I
Design pattern
design pattern G
utilizzati per lo sviluppo del
layout
graco sono:
Figura 10: Design pattern MVC
•
MVC, Model View Controller
G:
Si tratta di un
design pattern
G usato per lo sviluppo di software che prevede la propattern è implementato lato client,
quindi risiede nel browser dell'utente consentendo l'alleggerimento
del server e una maggiore rapidità nella rielaborazione dei calcoli.
Separa la logica di presentazione dei dati dalla logica di business
architetturale
grammazione ad oggetti. Tale
(applicativa) in tre componenti:
il Model fornisce i metodi per accedere ai dati per l'applicazione
il View visualizza i dati contenuti nel model e si occupa
dell'interazione con l'utente
il Controller riceve i comandi dell'utente e li attua modicando lo stato degli altri due componenti.
20
•
G
Singleton : Si tratta di un
design pattern
creazionale
G
che ha lo
scopo di garantire che di una determinata classe venga creata una
e una sola istanza, e di fornire un punto di accesso globale a tale
istanza.
21
2.7.2
Modulo anagrache
L'architettura dell'applicazione
•
WOW
Front end: strato in cui risiede il portale web che racchiude tutta
la logica graca visualizzata dal
•
è suddivisa in tre strati:
browser
dell'utente
Back end contiene la logica dei servizi interposta tra il
e la base dati.
Interroga il
database,
front end
attinge i dati richiesti, li
rielabora, li sistema e restituisce informazioni spurie in formato
JSON
•
Base dati contiene la raccolta dei dati utilizzati del programma
TDB8.
front end e back end avviene con chiamate
asincrone grazie ai web services G resi disponibili da $http di AngularJS.
Le opportunità che AngularJS ore allo sviluppatore sono:
La comunicazione tra
•
get ovvero lettura dati
•
post cioè la creazione dati
•
put che ne consente la modica
•
delete che autorizza la cancellazione dei dati.
back end, una volta generati i dati, restituisce le informazioni al
front end in formato JSON. Il front end, inne, mostra a video i dati riIl
cevuti e garantisce la gestione di tutti i tipi di messaggio, sia di successo
sia di errore. Il
JSON
scambiato è in un formato scelto per convenzione
nelle fasi iniziali di progettazione per consentire la comunicazione ecace
tra
front end
e
back end.
Le pagine delle anagrache con cui si interfaccia l'utente mostrano una
lista con le informazioni principali e immediate. Ogni elemento della lista
ha il relativo pulsante "azioni" che consente la modica, la creazione e
l'eliminazione dei dati. Ogni elemento è cliccabile per la visualizzazione
dei dettagli. Ogni anagraca compare con il relativo stato che viene evidenziato da un particolare marcatore (ad esempio un cliente non solvibile
viene marcato di rosso oppure il cliente non attivo compare in grigio).
L'anagraca dei clienti contiene dei pulsanti che consentono di espandere
due liste nascoste contenenti le sedi e i contatti relativi al cliente. Anche le due liste citate contengono i pulsanti "azioni" e la possibilità di
vederne i dettagli.
22
Figura 11: Esempio lista anagraca
Le pagine di dettaglio delle anagrache mostrano le informazioni raggruppate per tipologie (dettagli anagraci, di amministrazione, di qualicazione). Ciascun raggruppamento dispone di una barra di progresso
che illustra la percentuale di completamento delle informazioni inserite.
Le pagine di dettaglio dispongono di
dere tutte le operazioni
CRUD.
shortcut
che consente di intrapren-
Le pagine relative ai clienti contengono
una specica aggiuntiva: i dati relativi alle diverse sedi vengono visualizzati in modo dinamico evitando di dover ricaricare la pagina ad ogni
selezione.
Figura 12: Dettaglio anagraca cliente
23
I
form G
di inserimento dati dell'intera applicazione presentano una
simbologia prestabilita per i campi obbligatori (input con sfondo giallo).
La validazione dei campi viene segnalata in tempo reale con una bordatura rossa se contiene degli errori. Soltanto dopo aver cliccato il pulsante
di salvataggio vengono mostrati i messaggi di errore. Un'ulteriore validazione viene eseguita nello strato
back end
per garantire la correttezza
dei dati prima di salvarli nella base dati.
Figura 13: Esempio form inserimento anagraca
24
2.7.2.1
Struttura package
La struttura dei
•
Package G
è stata così denita:
Components: cartella che contiene tutte le librerie usate nello
sviluppo
•
Controller:
•
Model:
package
package
che contiene tutti i
controller
delle pagine
che contiene tutta la logica che si occupa della
ricezione e manipolazione dei dati
•
View:
package
che contiene i le
sottocartelle per i
•
Service:
package
CSS
HTML. Sono presenti anche delle
e le immagini usate nella visualizzazione
che contiene dei servizi
singleton G
trasversali
all'intera applicazione e usabili da tutti i moduli
•
package contenente i componenti scritti come direttiva
di AngularJS. Sono componenti che estendono il linguaggio HTML
o che modicano il comportamento di un elemento HTML standard.
Le direttive di AngularJS sono gli unici componenti autorizzati a
manipolare il DOM G e quindi ad intervenire sull'interfaccia utente
Directive:
25
2.7.3
Modulo robot mail
La funzionalità
Robot mail
è stata ideata per aumentare il livello di
astrazione dell'archiviazione delle informazioni attualmente presente in
TdB, puntando ad avere uno strumento dinamico in grado di frapporsi tra
mittente e destinatario e in grado di interpretare il contenuto dell'email
così da elaborare nel migliore dei modi l'archiviazione dell'informazione.
Il
Robot mail
interagisce con il mittente e gli mette a disposizione uno
strumento con il quale l'utente può modicare i dati di archiviazione nel
caso non dovessero essere univoci o corretti.
Figura 14: Funzionamento Robot mail
Gli attori presenti nell'architettura sono:
•
Utente: persona sica che invia/riceve le mail e interagisce con il
portale
•
Robot mail: sistema che interagisce con l'utente tramite email
e comunica con il
web service
per ricevere le anagrache e salvare
l'archiviazione
•
•
Portale TdB Web: viene utilizzato dall'utente e comunica con il
web service
per ricevere le anagrache e salvare i dati
Web service: sistema che permette di astrarsi dal tipo di struttura
hardware G che si trova nello strato inferiore in modo da permettere
una scalabilità dell'architettura
26
•
Database:
DB TdB Web:
database
interno per il salvataggio dei dati
di archiviazione in fase di elaborazione
DB TdB: database utilizzato dall'attuale sistema di raccolta
dati
Il usso di comunicazione tra gli attori ad alto livello funziona come
segue: l'utente fa la sua richiesta di archiviazione al
mail; il
robot
chiede al
web service
robot
attraverso la
i dati che gli servono per compiere la
sua analisi dopodiché dà una risposta all'utente e nello stesso momento salva il suo calcolo; l'utente esegue un'azione dalla mail ricevuta e
visualizza una pagina del portale web; in base alla pagina in cui si trova l'utente può compiere delle azioni e queste saranno salvate.
service
Il
web
in tutto questo deve fare da interprete tra le richieste ricevute e
le chiamate da fare allo strato inferiore dove sono immagazzinati i dati.
La comunicazione tra
web service
e il
database
che contiene i dati del-
le anagrache deve essere strutturata in maniera indipendente dal tipo
di database utilizzato, in modo che se venisse sostituito, gli attori che
comunicano con il
web service
non vedrebbero nessun cambiamento.
27
2.7.3.1
Casi d'uso
Gli attori sono:
•
•
Utente: attore umano che interagisce con il
Web G
robot mail
e con
TdB
Robot mail: sistema software che analizza le email e ne suggerisce
l'archiviazione
•
DB TdB Web: sistema software che rappresenta il database utilizzato da
28
TdB Web
Interazione tra utente e robot mail
Figura 15: UC interazione tra utente e robot mail
Vengono di seguito esemplicati gli
UC G
riportati nella gura sovra-
stante:
Inserimento tag nell'oggetto
Attori
Utente
L'utente aggiunge nell'oggetto della mail dai tag,
Descrizione
con dei caratteri sentinella specici, che faranno
capire al robot dove l'utente vuole archiviare la
mail
Pre-condizioni
Post-condizioni
Sequenza alternativa
Post-condizioni
L'utente vuole archiviare una mail
I tag sono stati inseriti
L'utente non inserisce nessun tag ma lascia solo
l'oggetto
Nell'oggetto non sono presenti tag
Tabella 2: UC inserimento tag nell'oggetto
29
Invio della mail al Robot
Attori
Utente
L'utente invia o inoltra la mail da archiviare al robot mail. La casella di posta del robot viene messa
Descrizione
tra i destinatari in Cc nel caso di archiviazione diretta o come destinatario dell'inoltro nel caso l'utente volesse archiviare una mail che è già stata
inviata precedentemente
Pre-condizioni
L'utente ha aggiunto nell'oggetto i tag
1. L'utente ha aggiunto i tag nell'oggetto della
mail da archiviare
Sequenza di eventi
2. L'utente aggiunge la casella di posta del robot
in Cc o come destinatario dell'inoltro
3. La mail viene inviata
Post-condizioni
La mail è stata inviata al robot correttamente
Risultati attesi
La mail inviata viene ricevuta dal robot mail
Tabella 3: UC invio della mail al Robot
30
Il robot riceve la mail
Attori
Descrizione
Pre-condizioni
Robot mail
Il robot mail riceve la mail dell'utente, la analizza
e invia una risposta
Il robot mail è sempre in attesa per la ricezione
delle mail
1. Il robot mail è in attesa
2. Il robot mail riceve la mail dell'utente
3. Il robot mail estrae i tag presenti nell'oggetto
e le informazioni della mail
Sequenza di eventi
4. Il
robot
mail
con
un
algoritmo
cerca
di
associare ai tag analizzati un'archiviazione
corretta
5. Il robot mail risponde al mittente con i dati
di archiviazione elaborati
Post-condizioni
Risultati attesi
La mail ricevuta è analizzata. Il robot mail invia
la risposta.
Il robot invia la mail di risposta che viene ricevuta
dall'utente
Tabella 4: UC il robot riceve la mail
31
Salvataggio dati temporanei
Attori
Robot mail, DB TdB Web
Il robot dopo aver analizzato la mail ricevuta elabo-
Descrizione
ra un i dati di archiviazione e li salva nel database
del portale TdB Web
Pre-condizioni
Il
robot
ha
analizzato
la
mail
ed
elaborato
un'archiviazione
1. Il robot mail ha ricevuto la mail dell'utente
Sequenza di eventi
2. Il robot analizza la mail
3. Il
robot
mail
salva
i
dati
elaborati
nel
database
Post-condizioni
Risultati attesi
I dati elaborati sono salvati nel database del portale
TdB Web
I dati elaborati sono salvati nel database del portale
TdB Web
Tabella 5: UC salvataggio dati temporanei
32
Associazione singola, nessuna associazione e associazione multipla
Si denisce "associazione singola" il caso in cui il
robot mail,
durante la
sua analisi dei dati, riesce ad elaborare una sola associazione valida.
Con "nessuna associazione" si intende invece indicare il caso in cui il
robot mail, durante la sua analisi dei dati, non riesce ad elaborare un'associazione con alcuna entità.
Con "associazione multipla" ci si riferisce al caso in cui il
robot mail,
durante la sua analisi dei dati, riesce ad elaborare più di un'associazione
valida.
Figura 16:
UC interazione utente con mail associazione archiviazione
singola
Figura
17:
UC
interazione
utente
con
mail
nessuna
associazione
archiviazione
33
Figura 18:
UC interazione utente con mail associazione archiviazione
multipla
Vengono di seguito esemplicati gli
UC
riportati nelle gure sovra-
stanti:
Ricezione mail di risposta dal robot mail
Attori
Utente
L'utente riceve la mail di risposta dal robot mail e
Descrizione
ha a disposizione varie azioni all'interno di questa
mail
Pre-condizioni
L'utente deve aver inviato la mail al robot mail
1. L'utente invia una mail al robot con una
specica struttura di tag
Sequenza di eventi
2. Il
robot
risponde
a
questa
mail
con
il
dettaglio dell'analisi
3. L'utente riceve la mail di risposta e può
compiere delle azioni su di essa
Post-condizioni
L'utente ha ricevuto la mail con successo
Tabella 6: UC ricezione mail di risposta dal robot mail
34
Click su link Se non visualizzi correttamente questa mail...
Attori
Utente
L'utente può cliccare sul link Se non visualizzi correttamente questa mail... per scatenare l'evento di
apertura della pagina associata. La pagina che si
Descrizione
apre mostra la mail in formato web e quindi non
vincolata al client di posta utilizzato che può, in alcuni casi, alterare la struttura originale della mail
o non mostrare le immagini all'interno di essa
L'utente deve aver inviato la mail al robot mail
Pre-condizioni
e deve aver ricevuto la mail di risposta. L'utente
deve essere connesso ad internet per poter aprire la
pagina web.
1. L'utente invia una mail al robot con una
specica struttura di tag
2. Il
robot
risponde
a
questa
mail
con
il
dettaglio dell'analisi
3. L'utente riceve la mail di risposta
Sequenza di eventi
4. L'utente clicca sul link di apertura della
pagina web
5. Nel browser si apre la pagina e mostra la mail
in formato web
6. L'utente può compiere le stesse azioni che può
fare nella mail ricevuta
Post-condizioni
Sequenza di errore
Il browser si è aperto e mostra la mail in formato
web
Il pc dell'utente non è connesso alla rete e non può
visualizzare la mail in formato web
La
Risultati attesi
mail
sualizzata
di
risposta
nel
risulta
formato
correttamente
voluto
e
con
i
vidati
giusti
Tabella 7:
UC click su link Se non visualizzi correttamente questa
mail...
35
Nessuna azione sulla mail di risposta
Attori
Utente
L'utente può decidere di non eseguire nessuna azio-
Descrizione
ne sulla mail di risposta ricevuta. In questo caso
l'utente ha la necessità di rinviare ad un secondo
momento l'azione sulla mail
Pre-condizioni
L'utente deve aver inviato la mail al robot mail e
deve aver ricevuto la mail di risposta.
1. L'utente invia una mail al robot con una
specica struttura di tag
Sequenza di eventi
2. Il
robot
risponde
a
questa
mail
con
il
dettaglio dell'analisi
3. L'utente riceve la mail di risposta
Post-condizioni
Risultati attesi
Nessuna azione è stata intrapresa
L'archiviazione risulta pendente nel sistema TdB
Web
Tabella 8: UC nessuna azione sulla mail di risposta
36
Click su bottone Modica archiviazione suggerita
Attori
Utente
L'utente può cliccare sul pulsante di modica per
Descrizione
correggere i dati elaborati dal Robot mail o specicare altri dati di archiviazione. Al click si scatena
l'evento di apertura della pagina associata.
L'utente deve aver inviato la mail al robot mail
Pre-condizioni
e deve aver ricevuto la mail di risposta. L'utente
deve essere connesso ad internet per poter aprire la
pagina web.
1. L'utente invia una mail al robot con una
specica struttura di tag
2. Il
robot
risponde
a
questa
mail
con
il
dettaglio dell'analisi
Sequenza di eventi
3. L'utente riceve la mail di risposta
4. L'utente clicca sul pulsante di apertura della
pagina web
5. Nel browser si apre la pagina web
Post-condizioni
Sequenza di errore
Risultati attesi
Il browser si è aperto e mostra la pagina del portale
TdB Web
Il pc dell'utente non è connesso alla rete e non può
visualizzare la pagina
La pagina di modica è visualizzata nel browser
Tabella 9: UC click su bottone Modica archiviazione suggerita
37
Click su bottone Annulla archiviazione suggerita
Attori
Utente
L'utente può cliccare sul pulsante di annullamento
Descrizione
per annullare l'archiviazione elaborata dal Robot
mail. Al click si scatena l'evento di apertura della
pagina associata.
L'utente deve aver inviato la mail al robot mail
Pre-condizioni
e deve aver ricevuto la mail di risposta. L'utente
deve essere connesso ad internet per poter aprire la
pagina web.
1. L'utente invia una mail al robot con una
specica struttura di tag
2. Il
robot
risponde
a
questa
mail
con
il
dettaglio dell'analisi
Sequenza di eventi
3. L'utente riceve la mail di risposta
4. L'utente clicca sul pulsante di apertura della
pagina web
5. Nel browser si apre la pagina web
Post-condizioni
Sequenza di errore
Risultati attesi
Il browser si è aperto e mostra la pagina del portale
TdB Web
Il pc dell'utente non è connesso alla rete e non può
visualizzare la pagina
La
pagina
di
annullamento
è
visualizzata
browser
Tabella 10: UC click su bottone Annulla archiviazione suggerita
38
nel
(Solo per
UC
Associazione singola)
Click su bottone Accetta archi-
viazione suggerita
Attori
Utente
L'utente può cliccare sul pulsante di accettazione
Descrizione
di archiviazione per confermare i dati elaborati dal
Robot mail. Al click si scatena l'evento di apertura
della pagina associata.
L'utente deve aver inviato la mail al robot mail
Pre-condizioni
e deve aver ricevuto la mail di risposta. L'utente
deve essere connesso ad internet per poter aprire la
pagina web.
1. L'utente invia una mail al robot con una
specica struttura di tag
2. Il
robot
risponde
a
questa
mail
con
il
dettaglio dell'analisi
Sequenza di eventi
3. L'utente riceve la mail di risposta
4. L'utente clicca sul pulsante di apertura della
pagina web
5. Nel browser si apre la pagina web
Post-condizioni
Sequenza di errore
Risultati attesi
Il browser si è aperto e mostra la pagina del portale
TdB Web
Il pc dell'utente non è connesso alla rete e non può
visualizzare la pagina
La pagina di accettazione è visualizzata nel browser
Tabella 11: UC click su bottone Accetta archiviazione suggerita
39
Pagina accetta TdB Web
Figura 19: UC interazione utente e pagina accettazione archiviazione
Vengono di seguito esemplicati gli
UC
riportati nella gura sovra-
stante:
Salvataggio dati azione
Attori
DB TdB Web
Il
Descrizione
sa
database
salva
dall'utente,
in
il
tipo
di
questo
azione
caso
intrapre-
l'accettazione
dell'archiviazione suggerita dal robot mail
Pre-condizioni
L'utente ha cliccato sul pulsante accetta presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante accetta nella
mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. Il database aggiorna il record associato con
l'azione di accettazione
Post-condizioni
L'azione di accettazione dell'archiviazione viene
correttamente salvato nel database
L'archiviazione associata non viene trovata nel da-
Sequenza di errore
tabase o perché era già stata fatta un azione o
perché non è presente nel database
Post-condizioni
L'utente visualizza un messaggio di errore
Risultati attesi
I dati sono salvati nel database
Tabella 12: UC salvataggio dati azione
40
Visualizzazione messaggio di successo
Attori
Descrizione
Pre-condizioni
Utente
L'utente visualizza nello schermo un messaggio di
successo che gli comunica l'avvenuta archiviazione
L'utente ha cliccato sul pulsante accetta presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante accetta nella
mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. L'utente visualizza il messaggio di successo
Post-condizioni
L'utente
ha
avuto
la
conferma
dell'avvenuta
archiviazione
Tabella 13: UC visualizzazione messaggio di successo
Visualizzazione delle informazioni di archiviazione
Attori
Descrizione
Pre-condizioni
Utente
L'utente visualizza le informazioni di archiviazione
che ha accettato
L'utente ha cliccato sul pulsante accetta presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante accetta nella
mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. L'utente visualizza le informazioni di archiviazione accettate
L'utente
Risultati attesi
visualizza
archiviazione
e
le
un
riepilogo
informazioni
con
della
i
dati
mail
archiviare
Tabella 14: UC visualizzazione delle informazioni di archiviazione
41
di
da
Pagina annulla TdB Web
Figura 20: UC interazione utente e pagina annullamento archiviazione
Vengono di seguito esemplicati gli
UC
riportati nella gura sovra-
stante:
Salvataggio dati azione
Attori
DB TdB Web
Il
Descrizione
sa
database
salva
dall'utente,
in
il
tipo
questo
di
azione
caso
intrapre-
l'annullamento
dell'archiviazione
Pre-condizioni
L'utente ha cliccato sul pulsante annulla presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante annulla nella
mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. Il
database
rimuove
il
record
associato
all'archiviazione
Post-condizioni
L'azione di annullamento dell'archiviazione viene
correttamente eseguita
L'archiviazione associata non viene trovata nel da-
Sequenza di errore
tabase o perché era già stata fatta un azione o
perché non è presente nel database
Post-condizioni
L'utente visualizza un messaggio di errore
Risultati attesi
I dati sono eliminati correttamente
Tabella 15: UC salvataggio dati azione annullamento
42
Visualizzazione messaggio di annullamento
Attori
Utente
L'utente
Descrizione
visualizza
nello
schermo
un
messag-
gio di annullamento che gli comunica l'avvenuta
eliminazione
Pre-condizioni
L'utente ha cliccato sul pulsante annulla presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante annulla nella
mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. L'utente visualizza il messaggio di conferma
avvenuta eliminazione
Post-condizioni
L'utente
ha
avuto
la
conferma
dell'avvenuto
annullamento dell'archiviazione
Tabella 16: UC visualizzazione messaggio di annullamento
Visualizzazione delle informazioni di archiviazione
Attori
Descrizione
Pre-condizioni
Utente
L'utente visualizza le informazioni di archiviazione
che aveva elaborato il robot mail
L'utente ha cliccato sul pulsante annulla presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante annulla nella
mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. L'utente visualizza le informazioni di archiviazione annullate
Risultati attesi
Tabella
17:
UC
L'utente
visualizza
un
riepilogo
con
i
dati
archiviazione e le informazione della mail
visualizzazione
delle
informazioni
di
archiviazione
annullata
43
di
Pagina modica TdB Web
Figura 21: UC interazione utente e pagina modica archiviazione
44
Vengono di seguito esemplicati gli
UC
riportati nella gura sovra-
stante:
Visualizzazione form per la modica dell'archiviazione
Attori
Descrizione
Pre-condizioni
Utente
L'utente visualizza il form dove potrà agire per
modicare i dati di archiviazione
L'utente ha cliccato sul pulsante modica presente
nella mail
1. L'utente ha cliccato sul pulsante modica
nella mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. L'utente
visualizza
il
form
con
cui
può
interagire
Post-condizioni
L'utente ha visualizzato il form di modica
L'archiviazione associata non viene trovata nel da-
Sequenza di errore
tabase o perché era già stata fatta un azione o
perché non è presente nel database
Post-condizioni
Risultati attesi
L'utente
visualizza
un
messaggio
di
errore
e
interrompe lo script della pagina
L'utente
visualizza
il
form
di
modica
e
può
interagire con esso
Tabella 18: UC visualizzazione form per la modica dell'archiviazione
45
Visualizzazione delle informazioni di archiviazione
Attori
Utente
L'utente visualizza le informazioni di archiviazione. Vede i dati di archiviazione preselezionati con i
Descrizione
dati suggeriti dal robot mail e successivamente aggiornati con i dati selezionati nel form di modica.
Vede il riepilogo della mail da archiviare.
L'utente ha cliccato sul pulsante modica presen-
Pre-condizioni
te nella mail. I dati visualizzati inizialmente sono
quelli suggeriti dal robot mail.
1. L'utente ha cliccato sul pulsante modica
nella mail
2. Il browser apre la pagina del portale TdB
Web
Sequenza di eventi
3. L'utente visualizza le informazioni di archiviazione elaborate dal robot mail
4. Ad ogni selezione dell'utente le informazioni
vengono aggiornate con i dati scelti
Post-condizioni
Risultati attesi
L'utente visualizza i dati di archiviazione che si
aggiornano ad ogni selezione utente
L'utente ha coscienza dei dati di archiviazione con
cui la mail verrà archiviata
Tabella 19: UC visualizzazione delle informazioni di archiviazione
46
Click su X rossa sulle informazioni di archiviazione
Attori
Utente
L'utente clicca sulle X rosse presenti su ogni tipolo-
Descrizione
gia di informazione. Al click vengono rimosse tutte
le associazioni di archiviazione presenti.
Pre-condizioni
L'utente ha cliccato sul pulsante modica presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante modica
nella mail
2. Il browser apre la pagina del portale TdB
Web
Sequenza di eventi
3. L'utente clicca su una delle X rosse presenti
nelle informazioni di archiviazione
4. Tutte le informazioni vengono eliminate
Post-condizioni
Risultati attesi
Le informazioni di archiviazione presenti sono state
tolte
Reset dati di archiviazione
Tabella 20: UC click su X rossa sulle informazioni di archiviazione
47
Click pulsante cerca entità
Attori
Utente
L'utente clicca sul pulsante di ricerca dell'entità. Si
apre un popup modale che permette all'utente di
eettuare una selezione sulla lista dell'anagraca e
di ltrarla in base all'input inserito nel campo di
Descrizione
ricerca. Al click dell'utente su uno degli elementi
della lista il popup si chiude. L'utente può chiudere
il popup cliccando sul pulsante Chiudi o cliccando sulla X di chiusura o cliccando con il mouse
all'esterno dell'area del popup.
Pre-condizioni
L'utente ha cliccato sul pulsante modica presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante modica
nella mail
2. Il browser apre la pagina del portale TdB
Web
3. L'utente
clicca
sul
pulsante
di
ricerca
dell'entità
Sequenza di eventi
4. Si apre il popup
5. L'utente visualizza la lista dell'anagraca
6. L'utente può selezionare un elemento dalla
lista
7. L'utente può ltrare la lista tramite l'input
di ricerca
8. L'utente può chiudere il popup
Post-condizioni
Risultati attesi
L'utente
ha
selezionato
un
nuovo
o
È stata selezionato un elemento dall'anagraca o
lasciato invariato
Tabella 21: UC click pulsante cerca entità
48
elemento
lasciato quello precedente chiudendo il popup
Nessuna azione
Attori
Utente
L'utente può decidere di non eseguire nessuna azio-
Descrizione
ne.
In questo caso l'utente ha la possibilità di
rinviare ad un secondo momento la modica.
Pre-condizioni
L'utente ha cliccato sul pulsante modica presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante modica
nella mail
Sequenza di eventi
2. Il browser apre la pagina del portale TdB
Web
3. L'utente non eettua nessuna azione nella
pagina e la chiude
Post-condizioni
Risultati attesi
Nessuna azione è stata intrapresa
L'archiviazione risulta pendente nel sistema TdB
Web
Tabella 22: UC nessuna azione
49
Click pulsante salva
Attori
Utente
L'utente clicca sul pulsante di salvataggio per consolidare le scelte eettuate.
All'utente viene mo-
strata la pagina di avvenuto salvataggio. Se l'uten-
Descrizione
te ha rimosso tutti i dati di archiviazione e non ne
ha selezionati di nuovi o semplicemente non sono
presenti viene mostrato un messaggio di errore che
invita l'utente a compilare i dati.
Pre-condizioni
L'utente ha cliccato sul pulsante modica presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante modica
nella mail
2. Il browser apre la pagina del portale TdB
Web
Sequenza di eventi
3. L'utente clicca sul pulsante salva
4. Un messaggio di errore appare nel caso di
nessun dato di archiviazione selezionato
5. Se sono presenti i dati di archiviazione viene mostrato all'utente la pagina di avvenuto
salvataggio
Post-condizioni
Sequenza di errore
Post-condizioni
Risultati attesi
L'utente ha salvato le modiche
Nessuna selezione fatta
Lo script della pagina si interrompe mostrando un
messaggio di errore che invita a compilare i dati
Le modiche sono state fatte e salvate
Tabella 23: UC click pulsante salva
50
Click pulsante annulla
Attori
Utente
L'utente clicca sul pulsante di annulla per eliminare
Descrizione
l'archiviazione. All'utente viene mostrata la pagina
di avvenuto annullamento.
Pre-condizioni
L'utente ha cliccato sul pulsante annulla presente
nella mail ricevuta
1. L'utente ha cliccato sul pulsante modica
nella mail
2. Il browser apre la pagina del portale TdB
Sequenza di eventi
Web
3. L'utente clicca sul pulsante annulla
4. Viene
mostrato
all'utente
la
pagina
di
avvenuto annullamento dell'archiviazione
Post-condizioni
Risultati attesi
L'utente
ha
annullato
l'archiviazione
e
viene
mostrata la pagina di avvenuto annullamento
L'archiviazione è stata annullata
Tabella 24: UC click pulsante annulla
51
2.8 Verica e validazione
In questo capitolo vengono descritti i test di verica attuati e le tecnologie coinvolte.
Le attività di verica mirano a testare il corretto funzionamento del prodotto. Per la validazione del
front end
sono stati eettuati due tipologie
di test:
Test statici
Durante lo sviluppo ci si è serviti di un unico strumento di analisi stati-
IDE
ca ovvero l'
warning
di sviluppo
Webstorm G ; esso permette
javascript e HTML.
di visualizzare i
e gli errori del codice
Test dinamici
Durante gli sviluppi ci si è serviti di un unico tipo di test per l'analisi
G
dinamica ovvero i test di unità
unità
software
to autonomo.
AngularJS
che permettono di esaminare le singole
che implementano le funzionalità dotate di funzionamenPer fare questi test è stato utilizzato il componente di
chiamato
Jasmine.
Grazie a questi test si sono vericati i
Javascript. Con i test eettuati si è
Javascript quasi totale. Per
eseguire i test di Jasmine si è utilizzato lo strumento Karma con il quale
controller, le direttive e i servizi
cercato di avere una copertura del codice
si possono lanciare i test da riga di comando. Per rendere tale processo
automatico si è creato uno script
Gulp
avviabile dalla
console
e capace
di eseguire tutti i test e visualizzarne i relativi risultati.
Inne sono stati eettuati dei test di validazione
Testing) G .
L'analista
software G
UAT (User Acceptance
è stato coinvolto nell'utilizzo dell'appli-
cazione per vericare che i requisiti iniziali fossero stati implementati
correttamente e che il
software
non generasse errori.
In caso di fallimento di uno dei test si genera una segnalazione di
che viene corretto e quindi ritestato.
52
bug G
3 Conclusioni
In questo capitolo viene fatto un resoconto delle attività svolte, e
vengono analizzate le problematiche rilevate durante lo stage.
3.1 Valutazione retrospettiva
Gli obiettivi pattuiti prima dell'inizio dello stage hanno subito delle
modiche in itinere a causa di strategie aziendali e di nuove esigenze
che sopraggiungevano con l'avanzare del progetto.
Il focus prioritario
della Wintech Spa si è spostato dal modulo anagrache all'archiviatore
documentale non lasciando spazio allo sviluppo delle funzionalità social,
messe in secondo piano da esigenze di programma.
Gli obiettivi obbligatori iniziali sono stati realizzati con successo con
la creazione delle pagine anagrache e dell'archiviatore documentale in
linea con le richieste avanzatemi. Anche gli obiettivi opzionali aggiuntivi
hanno dato esito positivo grazie alla creazione di altre pagine a corredo
delle funzionalità principali.
G
Il committente
del progetto ha sempre
dato parere positivo nei confronti delle presentazioni dei diversi prototipi
che venivano esposti durante i
meeting G
periodici.
53
3.2 Criticità
L'esperienza di stage è stata per me estremamente positiva poiché mi
ha consentito di confrontarmi in maniera equa e rispettosa con colleghi
con
background
diversi e anni di anzianità variabili. Lo scambio recipro-
co ha fatto emergere una netta demarcazione tra collaboratori giovani e
collaboratori esperti. La mia non vuole essere una critica ingrata nei confronti di chi, forte di anni di esperienza, può essere considerato un depositario prezioso di conoscenze, ma semplicemente una critica costruttiva
nei confronti del mondo universitario capace di inserire nel mercato del
lavoro gente plasmabile e duttile.
Una problematica con cui mi sono dovuto scontrare durante la realizzazione del progetto consiste nella documentazione
avviso, risulta essere pericolosamente scarsa.
software G
che, a mio
Oserei dire che, l'unico
esempio di documentazione sia stato quello prodotto durante lo stage in
questione.
Tale mancanza comporta un rallentamento nell'inserimento
di nuovi protagonisti all'interno di un progetto in atto. Senza contare la
ridondanza nei lavori di revisione di precedenti progetti non conclusi.
Non avere una documentazione dettagliata delle funzionalità sviluppate
mette in dicoltà il dipendente anche nell'eventualità, piuttosto frequente, in cui gli venga chiesto di modicare codice pregresso; in questo caso
il tempo impiegato nel rispolverare il lavoro precedente per poter nalmente iniziare a scrivere nuovo codice, viene sprecato e rende la macchina
ineciente.
Sostituire la documentazione con i soli commenti del codice rappresenta
la quotidianità alla Wintech Spa.
Questa usanza, retaggio di un vec-
chio modo di interpretare il lavoro come produttività in senso stretto,
svaluta la documentazione declassandola a "perdita di tempo inutile" e
rappresenta un atteggiamento obsoleto che andrebbe svecchiato.
54
3.3 Competenze
Durante l'evento
Stage-IT
ho potuto constatare la distanza tra le
competenze fornite dalla laurea triennale e quelle richieste dal mondo del
lavoro. Uno dei capisaldi trasmessi dal corso di
Ingegneria del Software
è l'importanza rivestita dalla progettazione che, in Wintech Spa, risulta essere marginale. Un altro importante insegnamento che
del Software
Ingegneria
mi ha lasciato consiste nella capacità di lavorare in gruppo,
modalità preponderante alla Wintech Spa.
Durante lo stage sono stato artece della realizzazione di alcuni prototipi graci poichè mancava un'idea iniziale solida. Considero il metodo
deduttivo più produttivo di quello induttivo: è indispensabile la continua
rivisitazione del concetto iniziale durante la fase di realizzazione mentre,
è frustrante e inutile cercare di estrapolare un'idea partendo da continue
bozze.
Il bagaglio nozionistico con cui mi sono presentato allo stage mi ha consentito di arontare senza dicoltà gli incarichi attribuitemi. Tuttavia
l'esperienza di Stage mi ha oerto la possibilità di imparare l'utilizzo di
nuovi strumenti tra cui il
framework AngularJS
e
SASS.
La Wintech Spa ha dimostrato il suo riconoscimento nelle mie capacità
orendomi, nell'ultimo periodo di stage, incarichi anche nella parte di
backend.
Questo mi ha consentito di sviluppare in
Java
alcuni compo-
nenti e servizi. La graticazione di un ambiente sicuramente imperfetto
ma stimolante mi ha spinto a continuare la collaborazione presso l'azienda anche a stage concluso.
Considero inne lo stage un'esperienza indispensabile nel mondo universitario ed è una fortuna che il Corso di Informatica lo proponga.
55
3.3.1
Considerazioni nali
Alcuni moduli universitari hanno visto una concreta applicazione di
quanto insegnato, in particolar modo il corso di
Ingegneria del Software,
come già accennato sopra, mi ha aiutato durante le varie attività dello
stage, riutilizzando metodi e principi che avevo messo in pratica durante
il progetto didattico. La progettazione architetturale non sarebbe stata
così agile se non avessi avuto almeno un'infarinatura sugli strumenti e le
metodologie da utilizzare.
Un altro corso di fondamentale importanza è stato quello di
Programma-
zione ad Oggetti, che mi ha introdotto nel mondo della programmazione
object-oriented G , attraverso un insegnamento mirato ed approfondito che
consente di riapplicare i concetti appresi in vari linguaggi di programma-
Programmazione concorrente e distribuita mi ha impartito
OO G e sull'uso del
linguaggio Java.
Credo che il corso di Programmazione, pur rappresentando inizialmente
zione. Anche
insegnamenti importanti su come scrivere il codice
uno scoglio per la sua dicoltà, fornisca il metodo giusto per approcciarsi
alla programmazione e, col senno di poi, molti dei miei colleghi universitari hanno convenuto nel dire che aiuta nella logica che sta dietro ad una
corretta codica.
Il corso di
Algoritmi e Strutture Dati
mi ha fornito un prezioso inse-
gnamento su quali algoritmi utilizzare nella programmazione e su come
strutturare il codice per crearne senza perdere ecienza.
Tecnologie Web per avermi insegnato gli
linguaggio Javascript e il concetto impre-
Sono debitore anche al corso di
HTML5, il
scindibile di accessibilità G .
standard web di
Grazie alle conoscenze apprese durante il corso di
guaggio
SQL
Basi di Dati
sono riuscito a rapportarmi senza dicoltà con il
lizzato nel progetto di stage.
Fondamentale è stato il corso di
Tecnologie Web 2
sul lin-
DB
uti-
poiché mi ha trasmesso
l'importanza della creazione di un'interfaccia ad alta
usabilità G , requisito
permeante il mio intero progetto.
Mi posso, come già accennato, ritenere uno studente soddisfatto. Il bagaglio teorico che il corso di laurea ci ha fornito è stato estremamente
prezioso per arontare con consapevolezza il mondo lavorativo.
Il progetto di stage è stato per me un trampolino di lancio verso il mondo del lavoro, un'opportunità che deve, a mio avviso, continuare ad essere proposta e imposta perché tassello fondamentale per la carriera di
ciascuno studente.
56
4 Glossario
Accessibilità: Un contenuto è accessibile quando può essere usato da
qualcuno con una disabilità. Serve a garantire l'accesso universale alle
risorse del web.
AJAX (Asynchronous JavaScript and XML): è una tecnica di sviluppo software per la realizzazione di applicazioni web interattive. Permette di fare richieste asincrone al server così da fare i caricamenti in
background senza interferire con il comportamento della pagina.
API (application programming interface): si indica ogni insieme di
procedure disponibili al programmatore messe a disposizione da servizi
web o librerie.
Back-end: è un programma con il quale l'utente interagisce indirettamente, in generale attraverso l'utilizzo di una applicazione front-end. In
una struttura client/server il back-end è il server. Viene spesso utilizzato
in contrapposizione con Front End.
Bootstrap: è una raccolta di strumenti liberi per la creazione di siti e
applicazioni per il Web. Essa contiene modelli di progettazione basati su
HTML e CSS, sia per la tipograa, che per le varie componenti dell'interfaccia, come moduli, pulsanti e navigazione, così come alcune estensioni
opzionali di JavaScript.
Browser: è un'applicazione per il recupero, la presentazione e la navigazione di risorse sul web.
Bug: identica un errore nella scrittura del codice sorgente di un programma software.
Business Continuity: si intende la capacità dell'azienda di continuare
ad esercitare il proprio business a fronte di eventi avversi che possono
colpirla.
È composta dall'insieme di attività rivolte a minimizzare gli
eetti distruttivi, o comunque dannosi, a seguito di un evento che ha
colpito un'organizzazione o parte di essa.
Business Intelligence: un insieme di processi aziendali per raccogliere
dati ed analizzare informazioni strategiche; la tecnologia utilizzata per
realizzare questi processi; le informazioni ottenute come risultato di questi processi.
Chrome: è un browser web sviluppato da Google.
Client: componente che accede ai servizi o alle risorse di un'altra componente detta server.
Cloud Ibrido: è un modello di cloud computing: i servizi sono costruiti su infrastrutture ibride che utilizzano la modalità privata per alcuni
aspetti (ad esempio la conservazione dei dati) e la modalità pubblica per
altri (ad esempio le interfacce di accesso).
Committente: è la gura che commissiona un lavoro, indipendentemente dall'entità o dall'importo.
57
Continuous integration: è una pratica che si applica in contesti in
cui lo sviluppo del software avviene attraverso un sistema di versioning.
Consiste nell'allineamento frequente dagli ambienti di lavoro degli sviluppatori verso l'ambiente condiviso. Negli ambienti di integrazione sono
predisposti test automatici che gli sviluppatori possono eseguire immediatamente prima di rilasciare i loro contributi verso l'ambiente condiviso,
in modo da garantire che le modiche non introducano errori nel software
esistente.
CRUD: acronimo per le funzioni di creazione, lettura, modica ed eliminazione.
CSS (Cascading Style Sheets): è un linguaggio usato per denire la
formattazione di documenti HTML, XHTML e XML ad esempio i siti
web e relative pagine web.
Customer service: è la fornitura di servizi ai clienti prima, durante e
dopo l'acquisto di un prodotto o di una prestazione.
Custom Web Applications: progetto realizzato su misura in base alle
necessità del committente e della funzione specica che è destinato ad
assolvere.
Cybercrime: è un fenomeno criminale che si caratterizza nell'abuso della tecnologia informatica sia hardware che software, per la commissione
di uno o più crimini.
Database relazionale: è un modello logico di rappresentazione o strutturazione dei dati di un database implementato su sistemi di gestione
di basi di dati (DBMS), detti perciò sistemi di gestione di basi di dati
relazionali (RDBMS).
DBMS (Database Management System): è un sistema software
progettato per consentire la creazione, la manipolazione e l'interrogazione eciente di database e ospitato su architettura hardware dedicata
(server) oppure su semplice computer.
Deploy: è la consegna o rilascio al cliente, con relativa installazione e
messa in funzione o esercizio, di una applicazione o di un sistema software tipicamente all'interno di un sistema informatico aziendale.
Design pattern: è un concetto che può essere denito "una soluzione
progettuale generale ad un problema ricorrente".
Si tratta di una de-
scrizione o modello logico da applicare per la risoluzione di un problema
che può presentarsi in diverse situazioni durante le fasi di progettazione
e sviluppo del software, ancor prima della denizione dell'algoritmo risolutivo della parte computazionale. È un approccio spesso ecace nel
contenere o ridurre il debito tecnico.
Design pattern architetturale: operano ad un livello diverso (e più
ampio) rispetto ai design pattern, ed esprimono schemi di base per impostare l'organizzazione strutturale di un sistema software.
In questi
schemi si descrivono sottosistemi predeniti insieme con i ruoli che essi
58
assumono e le relazioni reciproche.
Design pattern creazionale: nascondono i costruttori delle classi e
mettono dei metodi al loro posto creando un'interfaccia. In questo modo
si possono utilizzare oggetti senza sapere come sono implementati.
Digital Trasformation: si indica un insieme di cambiamenti prevalentemente tecnologici, culturali, organizzativi, sociali, creativi e manageriali.
Digital Workplace: rappresenta la naturale evoluzione della Intranet:
da `semplice' portale operativo o di comunicazione interna a spazio digitale aziendale dove tutte le applicazioni e i processi chiave (comunicazione,
collaborazione, conoscenza, processi operativi e di business, etc.)
sono
gestiti attraverso nuove modalità interattive e pratiche di social networking tra i partecipanti.
Disaster Recovery: si intende l'insieme delle misure tecnologiche e
logistico/organizzative atte a ripristinare sistemi, dati e infrastrutture
necessarie all'erogazione di servizi di business per imprese, associazioni o
enti, a fronte di gravi emergenze che ne intacchino la regolare attività.
Dispositivi desktop: sono computer ssi che non possono essere usati
senza il collegamento alla rete elettrica.
Documentazione software: è un testo scritto che accompagna un software, con lo scopo di spiegare quali funzionalità assolve il software, come
è strutturato e implementato e come lo si utilizza.
DOM (Document Object Model): è una forma di rappresentazione
dei documenti strutturati come modello orientato agli oggetti.
Eclipse: è un ambiente di sviluppo integrato multi-linguaggio e multipiattaforma. Ideato da un consorzio di grandi società quali Ericsson, HP,
IBM, Intel, MontaVista Software, QNX, SAP e Serena Software, chiamato Eclipse Foundation.
eLearning: s'intende l'uso delle tecnologie multimediali e di Internet per
migliorare la qualità dell'apprendimento facilitando l'accesso alle risorse
e ai servizi, così come anche agli scambi in remoto e alla collaborazione
a distanza.
Extranet: è una estensione di una LAN che permette anche a soggetti
non operanti all'interno della suddetta rete di accedere a informazioni,
servizi e consultare o immettere dati.
Font: è un insieme di caratteri tipograci caratterizzati e accomunati da
un certo stile graco o intesi per svolgere una data funzione.
Font iconici: permettono di utilizzare immagini semplici, come appunto
icone, ma a livello di font, quindi con tutti i loro vantaggi in termini di
web design: facilmente scalabili, cambio colore, ombre, transizioni più
semplici, molto più leggeri di un'immagine.
Form: è un termine usato per indicare l'interfaccia di un'applicazione
che consente all'utente client di inserire e inviare al web server uno o più
59
dati liberamente digitati dallo stesso.
Framework: è un'architettura logica di supporto (spesso un'implementazione logica di un particolare design pattern) su cui un software può
essere progettato e realizzato, spesso facilitandone lo sviluppo da parte
del programmatore.
Front-end: è responsabile dell'acquisizione dei dati di ingresso e della
loro elaborazione con modalità conformi a speciche predenite e invarianti, tali da renderli utilizzabili dal back end.
Google: è un'azienda statunitense che ore servizi online, con quartier
generale a Mountain View in California, nel cosiddetto Googleplex.
Hardware: parte sica di un computer, ovvero tutte quelle parti elettroniche, elettriche, meccaniche, magnetiche, ottiche che ne consentono
il funzionamento.
Help desk: è un servizio aziendale che fornisce informazioni ed assistenza a clienti/utenti, interni o esterni, che hanno problemi nella gestione di
un prodotto o servizio, cercando di risolvere il problema stesso attraverso
una forma di troubleshooting diretto o da remoto da parte di personale
addetto.
HTML (HyperText Markup Language), HTML5: è il linguaggio
di markup solitamente usato per la formattazione e impaginazione di
documenti ipertestuali disponibili nel World Wide Web sotto forma di
pagine web.
Human Resources: personale che presta la propria attività lavorativa
in ente - sia esso pubblico o privato - e in particolar modo i lavoratori
dipendenti con il loro capitale umano ovvero la forza lavoro.
IBM (International Business Machines Corporation): è un'azienda statunitense, tra le maggiori al mondo nel settore informatico.
IDE (integrated development environment): è un software che, in
fase di programmazione, aiuta i programmatori nello sviluppo del codice
sorgente di un programma. Spesso l'IDE aiuta lo sviluppatore segnalando errori di sintassi del codice direttamente in fase di scrittura, oltre a
tutta una serie di strumenti e funzionalità di supporto alla fase di sviluppo e debugging.
Interfaccia graca: è un tipo di interfaccia utente che consente all'utente di interagire con la macchina controllando oggetti graci convenzionali.
Intranet: è una rete aziendale privata che utilizza il protocollo TCP/IP
ma può estendersi anche con collegamenti WAN.
ISO 9001:2008: Sistemi di gestione per la qualità - Requisiti: la norma
denisce i requisiti di un sistema di gestione per la qualità per una organizzazione.
IT (information technology): indica l'utilizzo di elaboratori e attrezzature di telecomunicazione per memorizzare, recuperare, trasmettere
e manipolare dati, spesso nel contesto di un'attività commerciale o di
60
un'altra impresa.
Java: è un linguaggio di programmazione orientato agli oggetti a tipizzazione statica, specicatamente progettato per essere il più possibile
indipendente dalla piattaforma di esecuzione.
Jetbrains: è un'azienda di sviluppo software ceca nata nel 2000 i cui
strumenti hanno come mercato gli sviluppatori software e i project manager.
JSON (JavaScript Object Notation): è un formato adatto all'interscambio di dati fra applicazioni client-server.
Layout responsive: indica una tecnica di web design per la realizzazione di siti in grado di adattarsi gracamente in modo automatico
al dispositivo coi quali vengono visualizzati (computer con diverse risoluzioni, tablet, smartphone, cellulari, web tv), riducendo al minimo la
necessità dell'utente di ridimensionare e scorrere i contenuti.
Linguaggio di markup: è un insieme di regole che descrivono i meccanismi di rappresentazione (strutturali, semantici o presentazionali) di
un testo che, utilizzando convenzioni standardizzate, sono utilizzabili su
più supporti.
Linguaggio di scripting: è un linguaggio di programmazione interpretato destinato in genere a compiti di automazione del sistema operativo
(batch) o delle applicazioni (macro), o a essere usato nella programmazione web all'interno delle pagine web.
Lotus notes: è il client applicativo ed e-mail di Domino, un software
collaborativo client/server prodotto dalla divisione Lotus, di IBM.
Meeting: riunione.
Metodologia agile: insieme di metodi di sviluppo del software emersi
a partire dai primi anni 2000 e fondati su insieme di principi comuni,
direttamente o indirettamente derivati dai princìpi del "Manifesto per lo
sviluppo agile del software".
Fra le pratiche promosse dai metodi agi-
li ci sono la formazione di team di sviluppo piccoli, cross-funzionali e
auto-organizzati, lo sviluppo iterativo e incrementale, la pianicazione
adattiva, e il coinvolgimento diretto e continuo del cliente nel processo
di sviluppo.
Microsoft: è una delle più importanti aziende d'informatica del mondo.
Middleware: insieme di programmi informatici che fungono da intermediari tra diverse applicazioni e componenti software.
MVC, Model View Controller: è un pattern architetturale molto
diuso nello sviluppo di sistemi software, in particolare nell'ambito della
programmazione orientata agli oggetti, in grado di separare la logica di
presentazione dei dati dalla logica di business.
MVVM(model-view-viewModel): è un pattern software architetturale o schema di progettazione software.
Notebook: è una tipologia di personal computer che si contraddistingue
61
per essere predisposta al trasporto a mano da parte di una sola persona.
Object-oriented (OO): è un paradigma di programmazione che permette di denire oggetti software in grado di interagire gli uni con gli altri
attraverso lo scambio di messaggi. È particolarmente adatta nei contesti
in cui si possono denire delle relazioni di interdipendenza tra i concetti
da modellare (contenimento, uso, specializzazione).
Object-relational mapping (ORM): è una tecnica di programmazione che favorisce l'integrazione di sistemi software aderenti al paradigma
della programmazione orientata agli oggetti con sistemi RDBMS.
Open Source: un software di cui gli autori (più precisamente, i detentori dei diritti) rendono pubblico il codice sorgente, favorendone il libero
studio e permettendo a programmatori indipendenti di apportarvi modiche ed estensioni.
Package: è una collezione di classi e interfacce correlate.
Project management: l'insieme di attività di back oce e front ofce aziendale, svolte tipicamente da una gura dedicata e specializzata
detta project manager, volte all'analisi, progettazione, pianicazione e
realizzazione degli obiettivi di un progetto, gestendolo in tutte le sue caratteristiche e fasi evolutive, nel rispetto di precisi vincoli (tempi, costi,
risorse, scopi, qualità).
Project manager: è un ruolo di gestione operativa. Tale gura è il responsabile unico dell'avvio, pianicazione, svolgimento, controllo e chiusura di un progetto facendo ricorso a tecniche di project management.
REST (Representational State Transfer): è un tipo di architettura
software per i sistemi di ipertesto distribuiti come il World Wide Web. I
sistemi che seguono i principi REST sono spesso deniti "RESTful".
SASS (Syntactically Awesome Stylesheets): è un'estensione del linguaggio CSS che permette di utilizzare variabili, di creare funzioni e di
organizzare il foglio di stile in più le.
Scalabilità: capacità di un sistema di "crescere" o diminuire di scala
in funzione delle necessità e delle disponibilità. Un sistema che gode di
questa proprietà viene detto scalabile.
Server: è un componente o sottosistema informatico di elaborazione e
gestione del traco di informazioni che fornisce, a livello logico e sico,
un qualunque tipo di servizio ad altre componenti che ne fanno richiesta
attraverso una rete di computer, all'interno di un sistema informatico o
anche direttamente in locale su un computer.
Server IBM Lotus Domino: è un prodotto server di IBM che fornisce
strumenti enterprise per email, strumenti collaborativi e una piattaforma
applicativa.
Single-page: applicazione web o un sito web che può essere usato o consultato su una singola pagina web con l'obiettivo di fornire una esperienza
utente più uida e simile alle applicazioni Desktop dei sistemi operativi
62
tradizionali.
Single signon: è la proprietà di un sistema di controllo d'accesso che
consente ad un utente di eettuare un'unica autenticazione valida per
più sistemi software o risorse informatiche alle quali è abilitato.
Singleton: è un design pattern creazionale che ha lo scopo di garantire
che di una determinata classe venga creata una e una sola istanza, e di
fornire un punto di accesso globale a tale istanza.
Smartphone: è un telefono cellulare con capacità di calcolo, di memoria e di connessione dati molto più avanzate rispetto ai normali telefoni
cellulari, basato su un sistema operativo per dispositivi mobili.
Social software: riguarda tutte quelle applicazioni software che consentono agli individui di incontrarsi, interagire e collaborare in rete ed, in
particolare, di creare comunità on-line.
Software: è l'informazione o le informazioni utilizzate da uno o più sistemi informatici e memorizzate su uno o più supporti informatici. Tali
informazioni possono essere quindi rappresentate da uno o più programmi, da uno o più dati, oppure da una combinazione delle due.
Software-Dened: tecnologie in grado di denire in modo logico le
principali componenti di un Data Center: i Server per l'elaborazione dei
dati, lo Storage per la conservazione dei dati, le reti di comunicazione. A
questi va poi aggiunto il software di gestione dell'insieme dell'infrastruttura.
SQL Server: è un DBMS relazionale prodotto da Microsoft.
Standup meeting: è un incontro in cui i partecipanti in genere partecipano in piedi. Il disagio di stare in piedi per lunghi periodi ha lo scopo di
tenere gli incontri brevi. Viene usato negli incontri giornalieri dei team
di sviluppo.
Subversion (SVN): è un sistema di controllo versione per software.
System Integrator: azienda (o uno specialista) che si occupa dell'integrazione di sistemi.
Tablet: è un dispositivo elettronico che sostituisce in pieno o in parte
un computer, adatto per lavorare, studiare o giocare.
Tag: è una parola chiave o un termine associato a un'informazione, che
descrive l'oggetto rendendo possibile la classicazione e la ricerca di informazioni basata su parole chiave.
Task manager: è un'applicazione di un sistema operativo che permette
di monitorare tutti i processi in esecuzione su un computer, sia quelli
visibili ovvero direttamente utilizzati dall'utente sia quelli che vengono
eseguiti in background.
TDB8 (Technologies for dynamic business): è la soluzione CRM,
basata su piattaforma Lotus Notes, che consente di amplicare il controllo dell' attività aziendale, organizzando i ussi di informazione presenti
nell' azienda e massimizzando il valore di tutte le informazioni vitali, che
63
spesso vengono perdute o non gestite all' interno delle organizzazioni.
TdB Web: Usato nel progetto di stage per riferirsi alle pagine dedicate
all'archiviatore documentale, il quale fa parte di WOW.
Test di unità: si intende l'attività di testing (prova, collaudo) di singole
unità software.
UAT (User Acceptance Testing): test di accettazione utente, una
fase di verica dello sviluppo software in cui l'utente nale valida la corrispondenza con i requisiti inizialmente espressi.
UC (uses case): è una tecnica usata nei processi di ingegneria del software per eettuare in maniera esaustiva e non ambigua, la raccolta dei
requisiti al ne di produrre software di qualità.
UML (unied modeling language): è un linguaggio di modellizzazione e specica basato sul paradigma orientato agli oggetti.
Usabilità: l'ecacia, l'ecienza e la soddisfazione con le quali determinati utenti raggiungono determinati obiettivi in determinati contesti.
In pratica denisce il grado di facilità e soddisfazione con cui si compie
l'interazione tra l'uomo e uno strumento.
Visual Paradigm: uno strumento di progettazione di software per progetti software agili.
Web application framework: è un framework software progettato
per supportare lo sviluppo di siti web dinamici, applicazioni web e servizi web.
Web server: è un'applicazione software che, in esecuzione su un server,
è in grado di gestire le richieste di trasferimento di pagine web di un
client, tipicamente un web browser.
Web services: è un sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su di una medesima rete ovvero in un
contesto distribuito.
Web Sphere: denisce la categoria di software middleware (application
server) ed è progettato per denire, operare ed integrare applicazioni
e-business attraverso multiple piattaforme di elaborazione che usano tecnologia web.
Webstorm: è un IDE per la programmazione Javascript.
WOW: acronimo utilizzato dall'azienda Wintech Spa per riferirsi al
progetto World of Wintech.
64
5 Bibliograa
Descrizione azienda Wintech Spa:
Gamma.
Design patterns.
http://www.wintech.it/
Pearson, 2002.
Documentazione Bootstrap:
http://getbootstrap.com/components/
Documentazione AngularJS:
https://docs.angularjs.org/api
Documentazione Angular-touch:
https://docs.angularjs.org/api/ngTouch
Documentazione Angular-animate:
ngAnimate
https://docs.angularjs.org/api/
Documentazione Angular-bootstrap-ui:
io/bootstrap/
https://angular-ui.github.
https://lodash.com/docs/
Documentazione Lodash:
Documentazione Webpack:
http://webpack.github.io/docs/
https://github.com/gulpjs/gulp/blob/master/
docs/getting-started.md
Documentazione Gulp:
Documentazione Jasmine:
html
Documentazione Karma:
html
Documentazione SASS:
SASS_REFERENCE.html
http://jasmine.github.io/2.5/introduction.
http://karma-runner.github.io/1.0/index.
http://sass-lang.com/documentation/file.
Documentazione Font Awesome:
Documentazione Hibernate:
5.2/
Documentazione Junit:
Getting-started
http://fontawesome.io/icons/
http://hibernate.org/orm/documentation/
https://github.com/junit-team/junit4/wiki/
65
66
Scarica