Università degli Studi di Padova - SIAGAS
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli Studi di Padova Dipartimento di Matematica "Tullio Levi-Civita" Corso di Laurea in Informatica Sviluppo di Chatbot che fornisca informazioni legate alla vita aziendale, provenienti da Customer Relationship Management o Enterprise Resource Planning Tesi di laurea triennale Relatore Prof. Mauro Conti Laureando Giovanni Sanna Anno Accademico 2017-2018
Giovanni Sanna: Sviluppo di Chatbot che fornisca informazioni legate alla vita aziendale, provenienti da Customer Relationship Management o Enterprise Resource Planning, Tesi di laurea triennale, c Luglio 2018.
Sommario Il presente documento descrive il lavoro svolto durante il periodo di stage, della durata di circa trecento ore, dal laureando Giovanni Sanna presso l’azienda Soluzioni Software S.R.L. Gli obbiettivi da raggiungere erano molteplici. In primo luogo era richiesto la ricerca e descrizione delle più diffuse piattaforme di messaggistica che supportano l’utilizzo di chatbot e comparazione delle potenziali funzionalità offerte da tali piattaforme, tenendo conto anche degli strumenti e tec- nologie necessarie allo sviluppo del chatbot; alla conclusione dell’analisi, individuare la piattaforma di messaggistica e l’insieme delle tecnologie con cui sviluppare il prototipo di chatbot. In secondo luogo era richiesta l’analisi, progettazione, test e sviluppo di un proto- tipo di chatbot che reperisse informazioni legate alla vita aziendale, in seguito a richieste di utenti autorizzati ad accedere a tali informazioni. Un altro obbiettivo fondamentale riguardava la capacità del chatbot di notificare, ad una lista di utenti definita, il verificarsi di eventi associati alla realtà aziendale, legati a Customer Relationship Management o Enterprise Resource Planning. iii
Ringraziamenti Innanzitutto, vorrei esprimere la mia gratitudine al Prof. Mauro Conti, relatore della mia tesi, ed alla Dott.ssa Losiouk per l’aiuto e il sostegno fornitomi durante la stesura del lavoro. Desidero ringraziare con affetto mia madre per il sostegno, il grande aiuto e per essermi stata vicino in ogni momento durante gli anni di studio. Ho desiderio di ringraziare poi i miei amici per tutti i bellissimi anni passati insieme e le mille avventure vissute. Padova, Luglio 2018 Giovanni Sanna v
Indice 1 Introduzione 1 1.1 Chatbot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 L’azienda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 L’idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Organizzazione del testo . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Descrizione dello stage 5 2.1 Introduzione al progetto . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Analisi preventiva dei rischi . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Requisiti e obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Pianificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Analisi dei requisiti 17 3.1 Casi d’uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Tracciamento dei requisiti . . . . . . . . . . . . . . . . . . . . . . . 31 4 Progettazione 37 4.1 Tecnologie e strumenti . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2 Progettazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.1 Architettura di alto livello . . . . . . . . . . . . . . . . . . . 39 4.2.2 Architettura di dettaglio . . . . . . . . . . . . . . . . . . . . 40 5 Risultati 47 5.1 Autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2 Nuovo Comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.3 Comando Generico . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.4 Ottieni fatturato . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6 Verifica e validazione 53 6.1 Verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.2 Validazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7 Conclusioni 55 7.1 Consuntivo finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.2 Raggiungimento degli obiettivi . . . . . . . . . . . . . . . . . . . . . 57 7.3 Conoscenze acquisite . . . . . . . . . . . . . . . . . . . . . . . . . . 59 7.4 Valutazione personale . . . . . . . . . . . . . . . . . . . . . . . . . . 59 vii
viii INDICE 8 Glossario 61
Elenco delle figure 2.1 Pianificazione settimana 13/11/2017 - 17/11/2017 . . . . . . . . . . 9 2.2 Pianificazione settimana 20/11/2017 - 24/11/2017 . . . . . . . . . . 10 2.3 Pianificazione settimana 27/11/2017 - 01/12/2017 . . . . . . . . . . 11 2.4 Pianificazione settimana 04/12/2017 - 08/12/2017 . . . . . . . . . . 12 2.5 Pianificazione settimana 11/12/2017 - 15/12/2017 . . . . . . . . . . 13 2.6 Pianificazione settimana 18/12/2017 - 22/12/2017 . . . . . . . . . . 14 2.7 Pianificazione settimana 08/01/2018 - 12/01/2018 . . . . . . . . . . 15 2.8 Pianificazione settimana 15/01/2018 - 17/01/2018 . . . . . . . . . . 16 3.1 Use Case - UC1: Autenticazione . . . . . . . . . . . . . . . . . . . . 18 3.2 Use Case - UC2: Accesso ai livelli di autorizzazione . . . . . . . . . 19 3.3 Use Case - UC3: Accesso ai comandi . . . . . . . . . . . . . . . . . 20 3.4 Use Case - UC4: Inserimento nuovo utente . . . . . . . . . . . . . . 21 3.5 Use Case - UC5: Rimozione utente . . . . . . . . . . . . . . . . . . 22 3.6 Use Case - UC6: Inserimento nuovo comando . . . . . . . . . . . . 23 3.7 Use Case - UC7: Rimozione comando . . . . . . . . . . . . . . . . . 24 3.8 Use Case - UC8: Inserimento parametro . . . . . . . . . . . . . . . 25 3.9 Use Case - UC9: Associazione comando a livello di autorizzazione . 27 3.10 Use Case - UC10: Associazione utente a livello di autorizzazione . . 28 3.11 Use Case - UC11: Ricerca Item . . . . . . . . . . . . . . . . . . . . 29 3.12 Use Case - UC12: Ottieni fatturato . . . . . . . . . . . . . . . . . . 30 3.13 Use Case - UC13: Visualizzazione dati inseriti . . . . . . . . . . . . 31 4.1 Architettura di alto livello . . . . . . . . . . . . . . . . . . . . . . . 39 4.2 Architettura dettaglio - Main directory . . . . . . . . . . . . . . . . 41 4.3 Architettura dettaglio - Messenger . . . . . . . . . . . . . . . . . . . 42 4.4 Architettura dettaglio - Handler . . . . . . . . . . . . . . . . . . . . 42 4.5 Architettura dettaglio - Service . . . . . . . . . . . . . . . . . . . . 43 4.6 Architettura dettaglio - DBmanager . . . . . . . . . . . . . . . . . . 45 4.7 Architettura dettaglio - Utils . . . . . . . . . . . . . . . . . . . . . . 46 5.1 Autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2 Nuovo comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3 Comando generico . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.4 Ottieni fatturato . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 ix
x ELENCO DELLE TABELLE Elenco delle tabelle 3.1 Tabella del tracciamento dei requisti funzionali . . . . . . . . . . . . 32 3.2 Tabella del tracciamento dei requisti funzionali . . . . . . . . . . . . 33 3.3 Tabella del tracciamento dei requisti funzionali . . . . . . . . . . . . 34 3.4 Tabella del tracciamento dei requisti funzionali . . . . . . . . . . . . 35 3.5 Tabella del tracciamento dei requisti funzionali . . . . . . . . . . . . 36 7.1 Consuntivo finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.2 Raggiungimento obiettivi . . . . . . . . . . . . . . . . . . . . . . . . 58
Capitolo 1 Introduzione 1.1 Chatbot Derivato da chat robot, «chatbot» (o «chat bot») è un programma che simula un utente umano in una conversazione con un utente reale; esso permette un alto coinvolgimento, conversazioni attraverso voce e testo, personalizzazione in base al contesto d’uso, e può essere usato da dispositivi mobili, web browser e popolari piattaforme chat[g] come Facebook Messenger[g] , Telegram[g] , Skype[g] o Slack[g] . Con l’avvento delle tecnologie di deep learning[g] come il text-to-speech[g] , ricono- scimento automatico del discorso, e il processamento del linguaggio naturale, un chatbot può simulare efficacemente la conversazione umana in contesti come quello di un call center, servizio clienti telematico o assistenza personale. Un chatbot è un servizio, governato da regole e a volte da intelligenza artificiale, che interagisce con un utente attraverso una interfaccia di chat; i servizi offerti possono variare dall’ambito ludico al business per imprese. Focalizzandosi sui chatbot a scopo di business, essi permettono di sostituire ope- ratori umani che normalmente interagiscono telematicamente con i clienti; questa forma di interazione tende ad essere più veloce e meno invasiva per il cliente. I chatbots possono avere una conversazione con il cliente imparando dalle risposte di quest’ultimo, in modo da personalizzare l’interazione offrendo al cliente le rispo- ste ritenute più adatte in base alle sue preferenze. Questi chatbots sono utili in molti aspetti dell’esperienza del cliente, come fornire un servizio clienti, presentare prodotti, effettuare un acquisto, risoluzione dei problemi e coinvolgimento del cliente. Benefici I principali benefici nell’uso di un chatbot per un’impresa sono: ∗ Efficienza attraverso l’automazione. Un chatbot può simulare passaggi di processi complessi e automatizzare compiti comuni e ripetitivi, attraverso poche e semplici richieste (vocali o testuali), riducendo il tempo di esecuzione e aumentando l’efficienza del business; ∗ Flessibilità. Un chatbot può essere implementato per rispondere sia con voce che con testo nella lingua dell’utente; inoltre può essere personalizzato 1
2 CAPITOLO 1. INTRODUZIONE e integrato nelle dinamiche aziendali di tutti i giorni, per coinvolgere sia i dipendenti che i clienti. ∗ Coinvolgimento del cliente. Fornire un’efficace esperienza al cliente è un fattore chiave nel successo di un business; un chatbot può fornire un supporto efficace in molti aspetti del rapporto con il cliente. Inoltre, i chatbots possono essere sviluppati per le principali piattaforme di messaggistica già utilizzate dai clienti. Casi d’uso comuni I più comuni casi d’uso dell’utilizzo di un chatbot sono: ∗ Produttività dell’impresa. I chatbots possono essere integrati in molti aspetti del business di un’impresa, come la gestione della relazione con il cliente, gestione del magazzino o gestione dei compiti dei dipendenti; possono es- sere implementati per controllare il numero delle vendite, prestazioni del marketing[g] , stato dell’inventario, o prestazioni dei dipendenti; ∗ Assistenza personale. I chatbots possono semplificare e velocizzare il processo di esecuzione di molte attività personali di ogni giorno, come acquistare un prodotto, prenotare un appuntamento dal medico o prenotare un viaggio, dal proprio dispositivo mobile, web browser o applicazione chat preferita; ∗ Applicazioni di call center. I chatbot permettono ai clienti di eseguire com- piti come il cambio di password, richiedere il bilancio associato al proprio account o schedulare un appuntamento, senza il bisogno di interagire con un operatore reale. i chatbot mantengono il contesto del discorso e gestiscono la conversazione, variando dinamicamente le risposte in base alla conversazione. 1.2 L’azienda Lo stage si è svolto presso Soluzioni Software SRL, nella sua sede di Padova. Da quasi 30 anni si occupa di consulenza e sviluppo di software per la gestione aziendale, utilizzando avanzate e consolidate tecnologie per realizzare soluzioni complete, flessibili, integrate, aperte ad una costante innovazione e pensate per essere facilmente implementate nelle differenti realtà aziendali. L’azienda ha focalizzato i suoi sforzi nello sviluppo di strumenti che potessero soddisfare i bisogni specifici di diversi settori, facendo fronte alle criticità che chi opera in queste aree di mercato si trova a dover affrontare quotidianamente; inoltre garantisce costantemente un servizio di consulenza e supporto tecnico professionale, per ottimizzare le prestazioni dei prodotti forniti. Le competenze di base fanno riferimento ai processi ed alle applicazioni delle aree: ERP[g] , CRM[g] , SCM[g] , PLM[g] , WMS[g] , analytics[g] , e-commerce, internet e mobile-applications[g] . I partner con cui Soluzioni Software SRL lavora a stretto contatto sono: ∗ SAP SE: multinazionale europea per la produzione di software gestionale. È una delle principali aziende al mondo nel settore degli ERP e in generale
1.3. L’IDEA 3 nelle soluzioni informatiche per le imprese. Soluzioni Software SRL è partner SAP[g] per la soluzione SAP Business One, sviluppata per le PMI[g] , in grado di aiutare le piccole e medie imprese a gestire al meglio ogni aspetto della loro attività. ∗ Able Tech: software house specializzata nella gestione elettronica dei documen- ti, del workflow[g] , gestione dei processi aziendali e della conservazione digitale. La soluzione adottata è ARXivar, una piattaforma modulare, affidabile e completa per la gestione delle informazioni aziendali (gestione documentale, workflow e fatturazione elettronica). 1.3 L’idea Il progetto prevede l’analisi e lo sviluppo di un prototipo[g] di ChatBot che fornisca informazioni su eventi legati alla vita aziendale provenienti da CRM (Customer Relationship Management) o ERP (Enterprise Resource Planning). Individuazione di una piattaforma di messaggistica[g] che supporti i ChatBot e comparazione delle funzionalità potenziali offerte; successiva realizzazione di un prototipo di ChatBot che notifichi, ad una lista di utenti definita, eventi associati alla realtà aziendale derivanti dall’ERP o CRM . Il progetto prevede l’analisi, test e sviluppo di un prototipo di gestore di messaggi dall’azienda ai suoi dipendenti utilizzando un ChatBot sviluppato su una delle piattaforme di messaggistica più note (WeChat[g] , Telegram, Skype Messenger). Lo studio individuerà una architettura[g] che consentirà la distribuzione dei messaggi e lo sviluppo di un prototipo che invii informazioni aziendali sia su richieste parametriche che su evento. 1.4 Organizzazione del testo Il secondo capitolo approfondisce la descrizione dello stage, iniziando con una presentazione del progetto per poi riportare l’analisi preventiva dei rischi con la loro gestione; successivamente vengono descritti sommariamente i requisiti ed obbiettivi prefissati ed infine viene riportata la pianificazione dettagliata delle attività nel tempo. Il terzo capitolo approfondisce la descrizione dei requisiti del prodotto e il loro tracciamento, classificandoli in base all’importanza della loro implementazione e al loro tipo (funzionale/qualitativo/di vincolo e obbligatorio/desiderabi- le/opzionale); inoltre ne vengono illustrati i principali casi d’uso. Il quarto capitolo descrive inizialmente le tecnologie e strumenti utilizzati nel- lo sviluppo del prodotto, per poi illustrare e descrivere l’architettura del- l’applicazione; infine vengono descritte le strategie e tecniche di codifica adottate.
4 CAPITOLO 1. INTRODUZIONE Il quinto capitolo descrive le metodologie adottate per la verifica e validazione del prodotto, affinché si abbia una prova concreta dell’affidabilità dell’applicazione prodotta. Nel sesto capitolo riporta le conclusioni riguardo il lavoro e l’esperienza di stage, in termini di rapporto fra le ore preventivate e quelle effettive, rispetto della pianificazione, raggiungimento degli obbiettivi, conoscenza acquisite e valutazione finale. Riguardo la stesura del testo, relativamente al documento sono state adottate le seguenti convenzioni tipografiche: ∗ gli acronimi, le abbreviazioni e i termini ambigui o di uso non comune menzio- nati vengono definiti nel glossario, situato alla fine del presente documento; ∗ per la prima occorrenza dei termini riportati nel glossario viene utilizzata la seguente nomenclatura: parola [g] ; ∗ i termini in lingua straniera o facenti parti del gergo tecnico sono evidenziati con il carattere corsivo.
Capitolo 2 Descrizione dello stage Il presente capitolo ha lo scopo di presentare lo stage in termini di strategie di pianifica- zione adottate per sviluppare il progetto ChatBot ERP CRM, in modo da garantire un avanzamento controllato mostrando le risorse utilizzate e le tecniche di mitigazione dei possibili rischi. Inoltre vengono presentati i requisiti e gli obbiettivi prefissati all’inizio dell’attività di stage. 2.1 Introduzione al progetto Il progetto consiste essenzialmente nello sviluppo di un prototipo di chatbot che fornisca informazioni, riguardanti la vita aziendale, ad utenti autenticati e autoriz- zati ad accedere solo a specifiche informazioni delle aziende di cui sono dipendenti o clienti. Tali informazioni possono essere reperite in seguito a richieste dell’utente sotto forma di funzioni previste dal chatbot, il quale gestisce la conversazione per ottenere eventuali parametri dall’utente necessari al reperimento dell’informazione voluta; inoltre il chatbot deve prevedere la capacità di notificare, ad una lista di utenti predefinita, eventi associati alla realtà aziendale provenienti da ERP o CRM. Il chatbot prevede una sezione di funzioni per amministrare le informazioni dell’applicazione, come registrare/eliminare un utente o inserire/rimuovere una funzionalità. La prima parte del progetto consiste nell’analisi delle principali piattaforme di messaggistica che supportano l’uso si chatbot: Facebook Messenger, Wechat, Skype e Telegram; tale analisi si concentra sulle potenzialità delle piattaforme di messag- gistica in termini di funzionalità implementabili e gestione dell’interfaccia grafica, oltre che i vincoli e requisiti per lo sviluppo del chatbot nella specifica piattaforma. Il risultato di tale analisi è l’individuazione di una piattaforma di messaggistica per cui sviluppare il chatbot. Successivamente si passa allo studio delle tecnologie e strumenti messi a disposizione dalla piattaforma per lo sviluppo del prodotto, oltre che all’individuazione delle procedure necessarie alla pubblicazione del chatbot nella piattaforma scelta. A tal scopo, vengono implementati due esempi applicativi che mostrino le principali caratteristiche delle tecnologie adottate e la fattibilità dello sviluppo del chatbot nella piattaforma scelta. 5
6 CAPITOLO 2. DESCRIZIONE DELLO STAGE Il progetto continua con la determinazione e classificazione dei requisiti che il prodotto dovrà soddisfare e la definizione di un’architettura che individui tutte le componenti dell’applicazione necessarie a soddisfare i requisiti individuati. Dopodiché si passa alla codifica dei test[g] e del prototipo di chatbot, seguendo quanto prodotto nella progettazione. Infine vengono eseguiti i test e viene effettuato il collaudo del prototipo. 2.2 Analisi preventiva dei rischi Durante la fase di analisi iniziale sono stati individuati alcuni possibili rischi a cui si poteva andare incontro. Si è quindi proceduto a elaborare delle possibili soluzioni per far fronte a tali rischi. Viene inoltre riportato, per ogni rischio individuato, l’effettivo riscontro avuto durante l’attività di stage. 1. Poca familiarità con tecnologie e strumenti adottati Descrizione: l’implementazione del prodotto comporta l’utilizzo di tecnologie e strumenti mai utilizzati, la cui comprensione potrebbe eccedere i tempi previsti. Soluzione: la pianificazione tiene conto di questo fattore, prevedendo un sufficiente numero di ore dedicate allo studio delle tecnologie e strumenti sconosciuti; in caso di difficoltà, si chiede supporto al tutor aziendale. Riscontro: tale rischio si è presentato in maniera contenuta; è stato necessario l’apprendimento di diverse tecnologie e strumenti sconosciuti, i quali hanno richiesto un tempo di auto-formazione leggermente maggiore del previsto, ma senza causare ritardi. 2. Malfunzionamenti hardware o software Descrizione: le attività inerenti allo stage vengono svolte con l’utilizzo di un portatile personale; tali dispositivo è di tipo commerciale e non professionale, quindi è da tenere in considerazione la rottura degli strumenti di lavoro. . Soluzione: l’azienda provvede, in caso di malfunzionamenti degli strumenti dello stagista, a fornire quest’ultimo un personal computer di ricambio su cui lavorare. Riscontro: tale rischio si è presentato, ma grazie alla strumentazione messa a disposizione dall’azienda non si sono subiti ritardi. 3. Stima errata di costi e/o tempi delle attività Descrizione: durante la pianificazione, è probabile che vengano fatte stime sba- gliate sui tempi necessari ad eseguire alcune attività; questo comporterebbe un potenziale ritardo nella consegna . Soluzione: nel stendere il piano delle attività si prevede, per ognuna di esse, un tempo di slack sufficientemente grande da permettere che eventuali sottostime non provochino ritardi inaccettabili. Riscontro: tale rischio si è presentato in maniera contenuta, ma grazie ai tem- po di slack[g] previsti nella stesura della pianificazione, non ha provocato ritardi significativi. 4. Comprensione dei requisiti Descrizione: Durante l’acquisizione e analisi dei requisiti, alcuni di essi potrebbero
2.3. REQUISITI E OBIETTIVI 7 essere fraintesi o compresi solo in parte. Inoltre il dominio del problema potrebbe essere non capito fino in fondo . Soluzione: vengono organizzati un numero sufficiente di incontri con il tutor aziendale, al fine di acquisire, raffinare e/o chiarire i requisiti necessari alla corretta progettazione del prodotto. Riscontro: tale rischio si è manifestato in maniera contenuta nelle prime settimane, ma i meeting[g] settimanali con il tutor aziendale hanno permesso di chiarire i requisiti richiesti. 2.3 Requisiti e obiettivi Si farà riferimento ai requisiti secondo le seguenti notazioni: ∗ «ob» per i requisiti obbligatori, vincolanti in quanto obiettivo primario richiesto dal committente; ∗ «de» per i requisiti desiderabili, non vincolanti o strettamente necessari, ma dal riconoscibile valore aggiunto; ∗ «op» per i requisiti opzionali, rappresentanti valore aggiunto non strettamente competitivo. ∗ «for» per gli obiettivi formativi, rappresentanti valore aggiunto in termini culturali e di conoscenze da acquisire dallo stagista. Le sigle precedentemente indicate saranno seguite da una coppia sequenziale di numeri, identificativo del requisito. Si prevede lo svolgimento dei seguenti obiettivi: ∗ Obbligatori: – ob01: analisi delle tre piattaforme di messaggistica principali (WeChat, Telegram, Skype Messenger), individuando potenzialità, punti di forza e di debolezza; – ob02: comprensione dell’utilizzo e principali funzionalità delle tecnologie e strumenti adottati per lo sviluppo del prodotto; – ob03: definizione dei requisiti che devono essere soddisfatti dal prodotto; – ob04: creazione di un prototipo il quale fornisca le funzionalità che soddisfano i requisiti obbligatori; – ob05: test del prototipo e di tutte le sue funzionalità implementate; – 0b06: collaudo del prototipo. ∗ Desiderabili: – de01: ricerca e analisi di ulteriori piattaforme di messaggistica, indivi- duando potenzialità, punti di forza e di debolezza;
8 CAPITOLO 2. DESCRIZIONE DELLO STAGE – de02: comprensione più avanzata dell’utilizzo e funzionalità delle tecno- logie e strumenti adottati per lo sviluppo del prodotto; – de03: integrazione al prototipo delle funzionalità che soddisfano i requisiti desiderabili e opzionali; ∗ Opzionali: – op01: studio e analisi di funzionalità basate su intelligenza artificiale che possono essere integrate al prototipo creato. ∗ Formativi: – for01: studio e comparazione di piattaforme di messaggistica nell’ambito di sviluppo di chatbot; – for02: studio e utilizzo di strumenti e tecnologie per lo sviluppo di chatbot; – for03: studio dei sistemi ERP e CRM; – for04: essere inserito in un contesto operativo dinamico; – for05: approcciarsi con il mondo del lavoro e sperimentare le dinamiche aziendali. 2.4 Pianificazione In questa sezione è riportata la pianificazione, su base settimanale, dei tempi e delle attività; per ogni settimana, composta di 5 giorni lavorativi da 8 ore ciascuno, è riportato il diagramma di Gantt[g] con la suddivisione delle attività nel tempo e la milestone associata alla settimana in oggetto. Il quantitativo di ore/lavoro totale è risultato essere 304, entro i limiti previsti per lo stage.
2.4. PIANIFICAZIONE 9 Settimana 1 (13/11/2017 - 17/11/2017) ∗ Gantt Figura 2.1: Pianificazione settimana 13/11/2017 - 17/11/2017 ∗ Milestone[g] Redazione di una breve relazione che descriva la piattaforma di messaggistica scelta.
10 CAPITOLO 2. DESCRIZIONE DELLO STAGE Settimana 2 (20/11/2017 - 24/11/2017) ∗ Gantt Figura 2.2: Pianificazione settimana 20/11/2017 - 24/11/2017 ∗ Milestone Implementazione di uno o pù esempi applicativi di utilizzo del framework[g] scelto per lo sviluppo.
2.4. PIANIFICAZIONE 11 Settimana 3 (27/11/2017 - 01/12/2017) ∗ Gantt Figura 2.3: Pianificazione settimana 27/11/2017 - 01/12/2017 ∗ Milestone Redazione di un documento di analisi dei requisiti per il prototipo.
12 CAPITOLO 2. DESCRIZIONE DELLO STAGE Settimana 4 (04/12/2017 - 08/12/2017) ∗ Gantt Figura 2.4: Pianificazione settimana 04/12/2017 - 08/12/2017 ∗ Milestone Produzione di un diagramma dell’architettura dettagliata del prototipo.
2.4. PIANIFICAZIONE 13 Settimana 5 (11/12/2017 - 15/12/2017) ∗ Gantt Figura 2.5: Pianificazione settimana 11/12/2017 - 15/12/2017 ∗ Milestone Creazione di un prototipo avente le funzionalità di maggiore interesse.
14 CAPITOLO 2. DESCRIZIONE DELLO STAGE Settimana 6 (18/12/2017 - 22/12/2017) ∗ Gantt Figura 2.6: Pianificazione settimana 18/12/2017 - 22/12/2017 ∗ Milestone Integrazione al prototipo creato di tutte le funzionalità fissate.
2.4. PIANIFICAZIONE 15 Settimana 7 (08/01/2018 - 12/01/2018) ∗ Gantt Figura 2.7: Pianificazione settimana 08/01/2018 - 12/01/2018 ∗ Milestone Prototipo testato e collaudato.
16 CAPITOLO 2. DESCRIZIONE DELLO STAGE Settimana 8 (15/01/2018 - 17/01/2018) ∗ Gantt Figura 2.8: Pianificazione settimana 15/01/2018 - 17/01/2018 ∗ Milestone Documentazione del prodotto studiato e dell’applicazione al caso specifico.
Capitolo 3 Analisi dei requisiti Di seguito vengono illustrati i casi d’uso individuati, i quali rappresentano le modalità d’interazione dell’utente con il sistema; inoltre vengono riportati i requisiti definiti, e per ognuno di essi il caso d’uso di riferimento. 3.1 Casi d’uso Per lo studio dei casi di utilizzo del prodotto sono stati creati dei diagrammi. I diagrammi dei casi d’uso (in inglese Use Case Diagram) sono diagrammi di tipo UML[g] dedicati alla descrizione delle funzioni o servizi offerti da un sistema, così come sono percepiti e utilizzati dagli attori che interagiscono col sistema stesso. Essendo il progetto finalizzato alla creazione di uno strumento per l’automazione di un processo, le interazioni da parte dell’utilizzatore devono essere ovviamente ridotte allo stretto necessario. Per questo motivo i diagrammi d’uso risultano semplici e in numero ridotto. 17
18 CAPITOLO 3. ANALISI DEI REQUISITI UC1: Autenticazione Attori Principali: Utente non autenticato. Precondizioni: L’utente non è autenticato ed ha avviato una conversazione con il Chatbot. Descrizione: ∗ L’utente inserisce il proprio indirizzo email con cui si è registrato nel sistema; ∗ Se l’indirizzo email inserito è presente nel sistema, quest’ultimo invia una mail a tale indirizzo contenente un codice di autenticazione, altrimenti visualizza un messaggio di errore; ∗ L’utente può inserire il codice ricevuto. Se esso è corretto, l’utente effettua l’accesso alle funzioni del sistema, altrimenti viene visualizzato un messaggio di errore; ∗ L’utente può chiedere l’invio di un nuovo codice. Postcondizioni: L’utente è autenticato e può accedere alle funzioni del sistema. Figura 3.1: Use Case - UC1: Autenticazione
3.1. CASI D’USO 19 UC2: Accesso ai livelli di autorizzazione Attori Principali: Utente autenticato, Utente amministratore. Precondizioni: L’utente autenticato si è loggato con successo o ha espresso la volontà di tornare alla sezione principale; l’utente amministratore necessita di accedere alla lista di tutti i livelli di autorizzazione[g] esistenti. Descrizione: ∗ L’utente autenticato visualizza la lista dei livelli di autorizzazione a cui può accedere; ∗ L’utente amministratore visualizza la lista di tutti i livelli di autorizzazione esistenti; ∗ L’utente autenticato può selezionare un livello di autorizzazione tra quelli visualizzati; ∗ In caso di selezione errata, viene visualizzato un messaggio d’errore. Postcondizioni: L’utente ha selezionato un livello di autorizzazione tra quelli disponibili. Figura 3.2: Use Case - UC2: Accesso ai livelli di autorizzazione
20 CAPITOLO 3. ANALISI DEI REQUISITI UC3: Accesso ai comandi Attori Principali: Utente autenticato, Utente amministratore. Precondizioni: L’utente autenticato ha selezionato un livello di autorizzazione; l’utente amministratore necessita di accedere alla lista di tutti i comandi[g] esistenti. Descrizione: ∗ L’utente autenticato visualizza la lista dei comandi associati ad un livello di autorizzazione; ∗ L’utente amministratore visualizza la lista di tutti i comandi esistenti; ∗ L’utente autenticato può selezionare un comando tra quelli visualizzati; ∗ In caso di selezione errata, viene visualizzato un messaggio d’errore. ∗ L’utente può tornare alla sezione principale Postcondizioni: L’utente ha selezionato un comando tra quelli disponibili. Figura 3.3: Use Case - UC3: Accesso ai comandi
3.1. CASI D’USO 21 UC4: Inserimento nuovo utente Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per inserire un nuovo utente. Descrizione: ∗ L’utente inserisce l’indirizzo email del nuovo utente. Se tale indirizzo non è valido o è già presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente inserisce il nome ed il cognome del nuovo utente; ∗ L’utente inserisce il numero di P.IVA[g] dell’azienda da cui il nuovo utente può estrarre informazioni. Se tale numero non è associato ad una azienda presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente inserisce l’username per il nuovo utente. Se tale username è già associato ad un utente presente nel sistema, viene visualizzato un messaggio d’errore; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente ha inserito con successo un nuovo utente. Figura 3.4: Use Case - UC4: Inserimento nuovo utente
22 CAPITOLO 3. ANALISI DEI REQUISITI UC5: Rimozione utente Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per la rimozione di un utente presente nel sistema. Descrizione: ∗ L’utente inserisce l’indirizzo email dell’utente da rimuovere. Se tale indirizzo non è valido o non è presente nel sistema, viene visualizzato un messaggio d’errore; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente ha rimosso con successo un utente presente nel sistema. Figura 3.5: Use Case - UC5: Rimozione utente UC6: Inserimento nuovo comando Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per inserire un nuovo comando. Descrizione: ∗ L’utente inserisce il nome del nuovo comando. Nel caso tale nome sia già presente nel sistema o superi i 50 caratteri, viene visualizzato un messaggio d’errore;
3.1. CASI D’USO 23 ∗ L’utente inserisce il nome del servizio[g] che gestirà il nuovo comando. In caso tale nome contenga spazi o superi i 40 caratteri, viene visualizzato un messaggio d’errore; ∗ L’utente inserisce il numero di parametri da associare al nuovo comando; ∗ L’utente inserisce una descrizione per il nuovo comando; ∗ L’utente può inserire una query[g] da associare al nuovo comando; ∗ L’utente può inserire una stringa di connessione[g] alla base di dati in cui verrà eseguita la query; ∗ L’utente inserisce gli eventuali parametri da associare al nuovo comando; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente ha inserito con successo un nuovo comando. Figura 3.6: Use Case - UC6: Inserimento nuovo comando
24 CAPITOLO 3. ANALISI DEI REQUISITI UC7: Rimozione comando Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per rimuovere un comando presente nel sistema. Descrizione: ∗ L’utente inserisce il nome del comando da rimuovere; Nel caso tale nome non corrisponda ad un comando presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente può visualizzare la lista di tutti i comandi presenti nel sistema e selezionare quelli da rimuovere; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente ha rimosso con successo un comando presente nel sistema. Figura 3.7: Use Case - UC7: Rimozione comando
3.1. CASI D’USO 25 UC8: Inserimento parametro Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per inserire un nuovo comando e durante la sua esecuzione ha espresso la volontà di voler associare uno o più parametri a tale comando da inserire. Descrizione: ∗ L’utente inserisce il nome per il parametro; ∗ L’utente inserisce l’etichetta per il parametro; ∗ L’utente seleziona il tipo del parametro; ∗ L’utente può inserire il numero di scelte per il valore che potrà assumere il parametro; ∗ L’utente inserisce il valore per ogni scelta. Postcondizioni: L’utente ha associato con successo un parametro al nuovo comando da inserire. Figura 3.8: Use Case - UC8: Inserimento parametro
26 CAPITOLO 3. ANALISI DEI REQUISITI UC9: Associazione comando a livello di autorizzazione Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per associare un comando esistente ad un livello di autorizzazione. Descrizione: ∗ L’utente inserisce il nome del comando da associare; Nel caso tale nome non corrisponda ad un comando presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente può visualizzare la lista di tutti i comandi presenti nel sistema e selezionare quello da associare al livello di autorizzazione; ∗ L’utente inserisce il nome del livello di autorizzazione da associare; Nel caso tale nome non corrisponda ad un comando presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente può visualizzare la lista di tutti i livelli di autorizzazione presenti nel sistema e selezionare quello desiderato; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente ha associato un comando esistente ad un livello di autorizzazione.
3.1. CASI D’USO 27 Figura 3.9: Use Case - UC9: Associazione comando a livello di autorizzazione UC10: Associazione utente a livello di autorizzazione Attori Principali: Utente amministratore. Precondizioni: L’utente ha selezionato il comando per associare un utente esistente ad un livello di autorizzazione. Descrizione: ∗ L’utente inserisce l’indirizzo email dell’utente da associare; Nel caso tale indirizzo non corrisponda ad un utente presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente inserisce il nome del livello di autorizzazione da associare; Nel caso tale nome non corrisponda ad un comando presente nel sistema, viene visualizzato un messaggio d’errore; ∗ L’utente può visualizzare la lista di tutti i livelli di autorizzazione presenti nel sistema e selezionare quello desiderato; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente ha associato un utente esistente ad un livello di autoriz- zazione.
28 CAPITOLO 3. ANALISI DEI REQUISITI Figura 3.10: Use Case - UC10: Associazione utente a livello di autorizzazione UC11: Ricerca Item Attori Principali: Utente autenticato. Precondizioni: L’utente ha selezionato il comando per ricercare un item. Descrizione: ∗ L’utente può selezionare la ricerca in base all’identificativo dell’item[g] ∗ L’utente può selezionare la ricerca in base all’identificativo di un gruppo di item ∗ L’utente inserisce l’identificativo dell’item che si vuole cercare ∗ L’utente inserisce l’identificativo di un gruppo di items di cui si vuole ottenere tutti gli items ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ Vengono visualizzate le informazioni su ogni item che corrisponde ai criteri di ricerca inseriti ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente visualizza le informazioni del/degli eventuali items che corrispondo ai criteri di ricerca inseriti.
3.1. CASI D’USO 29 Figura 3.11: Use Case - UC11: Ricerca Item UC12: Ottieni fatturato Attori Principali: Utente autenticato. Precondizioni: L’utente ha selezionato il comando per ottenere informazioni sul fatturato compreso tra due date. Descrizione: ∗ L’utente inserisce la data da cui venga calcolato il fatturato. Nel caso non sia una data valida, viene visualizzato un messaggio d’errore; ∗ L’utente inserisce la data fino alla quale si vuole calcolare il fatturato. Nel caso non sia una data valida, viene visualizzato un messaggio d’errore; ∗ Vengono visualizzati i dati inseriti e ne viene richiesta conferma all’utente; ∗ Viene visualizzato il valore del fatturato totale calcolato nel periodo compreso tra le date in input ∗ Viene visualizzato un grafico delle fatture emesse nel periodo compreso tra le date in input ∗ L’utente può annullare l’operazione in qualsiasi momento. Postcondizioni: L’utente visualizza il valore del fatturato compreso all’interno dell’intervalli di date inserito dall’utente e un grafico relativo allo stesso.
30 CAPITOLO 3. ANALISI DEI REQUISITI Figura 3.12: Use Case - UC12: Ottieni fatturato UC13: Visualizzazione dati inseriti Attori Principali: Utente autenticato. Precondizioni: L’utente sta eseguendo un comando ed ha inserito i valori richiesti. Descrizione: ∗ Vengono visualizzati i valori inseriti in input dall’utente per il comando che si sta eseguendo; ∗ L’utente può confermare i dati inseriti; ∗ L’utente può annullare i dati inseriti, ∗ L’utente può riprovare l’esecuzione del comando; ∗ L’utente può ritornare alla sezione principale; Postcondizioni: L’utente ha visualizzato i valori che ha inserito e li ha confermati o annullati. Postcondizioni: L’utene visualizza un messaggio d’errore opportuno.
3.2. TRACCIAMENTO DEI REQUISITI 31 Figura 3.13: Use Case - UC13: Visualizzazione dati inseriti 3.2 Tracciamento dei requisiti Da un’attenta analisi dei requisiti e degli use case effettuata sul progetto è stata stilata la tabella che traccia i requisiti in rapporto agli use case. Sono stati individuati diversi tipi di requisiti e si è quindi fatto utilizzo di un codice identificativo per distinguerli. Il codice dei requisiti è così strutturato R(F/Q/V)(N/D/O) dove: R = requisito F = funzionale Q = qualitativo V = di vincolo N = obbligatorio (necessario) D = desiderabile Z = opzionale Nelle tabelle 3.1, 3.2 e 3.3, 3.4, 3.5 sono riassunti i requisiti e il loro tracciamento con gli use case delineati in fase di analisi.
32 CAPITOLO 3. ANALISI DEI REQUISITI Tabella 3.1: Tabella del tracciamento dei requisti funzionali Requisito Descrizione Use Case RFN-1 Il sistema permette l’autenticazione di un utente UC1 RFN-1.1 L’autenticazione richiede l’inserimento dell’indirizzo UC1.1 email RFN-1.1.1 Il sistema permette di visualizzare un messaggio di UC1.2 errore in caso di email non valida RFN-1.1.2 Il sistema permette di visualizzare un messaggio di UC1.2 errore in caso di email non presente nel sistema RFN-1.2 Il sistema invia un email all’utente con un codice da usare per l’autenticazione RFN-1.3 Il sistema permette all’utente di inserire il codice UC1.3 ricevuto RFN-1.3.1 Il sistema permette di visualizzare un messaggio di UC1.4 errore in caso di codice errato RFN-1.3.2 Il sistema permette 3 tentativi di inserimento del codice RFN-1.4 Il sistema permette all’utente di chiedere l’invio di un UC1.5 nuovo codice RFN-2 Il sistema permette la visualizzazione dei livelli di UC2.1 autorizzazione a cui l’utente può accedere RFN-2.1 Il sistema permette la selezione di un livello di UC2.3 autorizzazione RFN-2.2 Il sistema permette di visualizzare un messaggio di UC2.4 errore in caso di selezione errata RFN-3 Il sistema permette la visualizzazione della lista UC3.1 di comandi associati ad uno specifico livello di autorizzazione RFN-3.1 Il sistema permette la selezione di un comando con UC3.3 conseguente avvio dello stesso RFN-3.2 Il sistema permette di visualizzare un messaggio di UC3.4 errore in caso di selezione errata RFN-4 Il sistema permette, ad un utente con accesso alle UC4 Funzioni amministrazione sistema, di inserire un nuovo utente RFN-4.1 Il sistema richiede di inserire l’indirizzo email del nuovo UC4.1 utente RFN-4.1.1 Il sistema permette di visualizzare un messaggio di UC4.2 errore in caso di email con formato non valido RFN-4.1.2 Il sistema permette di visualizzare un messaggio di UC4.2 errore in caso di email associata ad un utente presente nel sistema RFN-4.2 Il sistema richiede di inserire nome del nuovo utente UC4.3 RFN-4.3 Il sistema richiede di inserire il cognome del nuovo UC4.3 utente RFN-4.4 Il sistema richiede di inserire il numero di P.IVA UC4.4 dell’azienda da cui il nuovo utente può estrarre informazioni RFN-4.4.1 Il sistema permette di visualizzare un messaggio di Uc4.5 errore in caso di numero di P.IVA non associato ad alcuna azienda presente nel sistema
3.2. TRACCIAMENTO DEI REQUISITI 33 Tabella 3.2: Tabella del tracciamento dei requisti funzionali Requisito Descrizione Use Case RFN-4.5 Il sistema richiede di inserire l’username del nuovo UC4.6 utente RFN-4.5.1 Il sistema permette di visualizzare un messaggio di UC4.7 errore in caso l’username sia associato ad un utente già presente nel sistema RFN-4.6 Il sistema mostra le informazioni inserite e ne chiede UC13 conferma all’utente RFN-4.6.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di sceglie- re se tornare alla sezione principale o riprovare l’inserimento di un nuovo utente RFN-4.7 Il sistema permette l’annullamento della procedu- ra di inserimento di un nuovo utente digitando AnnullaOperazione RFN-5 Il sistema permette, ad un utente con accesso alle UC5 Funzioni amministrazione sistema, di rimuovere un utente presente nel sistema RFN-5.1 Il sistema di inserire l’indirizzo email dell’utente UC5.1 da rimuovere RFN-5.1.1 Il sistema permette di visualizzare un messaggio di UC5.2 errore in caso l’indirizzo email non sia associato ad un utente presente nel sistema RFN-5.2 Il sistema mostra le informazioni inserite e ne chiede UC13 conferma all’utente RFN-5.2.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di sceglie- re se tornare alla sezione principale o riprovare l’inserimento di un nuovo utente RFN-5.3 Il sistema permette l’annullamento della procedura di rimozione utente digitando AnnullaOperazione RFN-6 Il sistema permette, ad un utente con accesso alle UC6 Funzioni amministrazione sistema, di inserire un nuovo comando nel sistema RFN-6.1 Il sistema richiede il nome del comando UC6.1 RFN-6.1.1 Il sistema permette di visualizzare un messaggio UC6.3 di errore in caso il nome del comando superi i 50 caratteri RFN-6.1.2 Il sistema permette di visualizzare un messaggio di UC6.2 errore in caso il nome del comando sia già presente nel sistema RFN-6.2 Il sistema richiede il nome del servizio che gestisce UC6.4 il comando RFN-6.2.1 Il sistema permette di visualizzare un messaggio di UC6.5 errore in caso il nome del servizio contenga spazi o superi i 40 caratteri RFN-6.3 Il sistema richiede il numero di parametri da UC6.6 associare al comando RFN-6.4 Il sistema richiede una descrizione del comando UC6.7
34 CAPITOLO 3. ANALISI DEI REQUISITI Tabella 3.3: Tabella del tracciamento dei requisti funzionali Requisito Descrizione Use Case RFN-6.5 Il sistema richiede se si vuole associare una query al comando RFN-6.5.1 In caso affermativo, il sistema richiede di inserire UC6.8 la query da associare al comando RFN-6.5.2 In caso affermativo, il sistema richiede di inserire UC6.9 la stringa di connessione alla base di dati in cui verrà eseguita la query RFN-6.6 Per ogni parametro da inserire, il sistema ne UC8.1 richiede il nome RFN-6.7 Per ogni parametro da inserire, il sistema ne UC8.2 richiede l’etichetta (label) RFN-6.8 Per ogni parametro da inserire, il sistema ne UC8.3 richiede il tipo RFN-6.8.1 Nel caso il parametro sia di tipo choice, il sistema UC8.4 richiede il numero di scelte RFN-6.8.1.1 Per ogni scelta, il sistema ne richiede il nome UC8.4 RFN-6.9 Il sistema mostra le informazioni inserite e ne UC13 chiede conferma all’utente RFN-6.9.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di sceglie- re se tornare alla sezione principale o riprovare l’inserimento di un nuovo comando RFN-6.10 Il sistema permette l’annullamento della procedu- ra di inserimento di un nuovo comando digitando AnnullaOperazione RFN-7 Il sistema permette, ad un utente con accesso alle UC7 Funzioni amministrazione sistema, di rimuovere un comando presente nel sistema RFN-7.1 Il sistema richiede il nome del comando da UC7.1 rimuovere RFN-7.1.1 Il sistema permette di visualizzare un messaggio UC7.2 di errore in caso il nome inserito non corrisponda ad un comando presente RFN-7.1.1.1 Il sistema permette di visualizzare una lista di UC7.3 comandi tra cui l’utente può selezionare quello da rimuovere RFN-7.2 Il sistema mostra le informazioni inserite e ne UC13 chiede conferma all’utente RFN-7.2.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di scegliere se tornare alla sezione principale o riprovare la rimozione di un comando RFN-7.3 Il sistema permette l’annullamento della pro- cedura di rimozione di un comando digitando AnnullaOperazione
3.2. TRACCIAMENTO DEI REQUISITI 35 Tabella 3.4: Tabella del tracciamento dei requisti funzionali Requisito Descrizione Use Case RFN-8 Il sistema permette, ad un utente con accesso alle UC9 Funzioni amministrazione sistema, di associare un comando ad un livello di autorizzazione RFN-8.1 Il sistema richiede il nome del comando da UC9.1 associare RFN-8.1.1 Il sistema permette di visualizzare un messaggio UC9.2 di errore in caso il nome inserito non corrisponda ad un comando presente RFN-8.1.1.1 Il sistema permette di visualizzare una lista di UC3 comandi tra cui l’utente può selezionare quello da associare al livello di autorizzazione RFN-8.2 il sistema richiede il nome del livello di UC9.3 autorizzazione da associare RFN-8.2.1 Il sistema permette di visualizzare un messaggio UC9.4 di errore in caso il nome inserito non corrisponda ad un livello di autorizzazione presente RFN-8.2.1.1 Il sistema permette di visualizzare una lista UC2 di livelli di autorizzazione tra cui l’utente può selezionare quello da associare al comando RFN-8.3 Il sistema mostra le informazioni inserite e ne UC13 chiede conferma all’utente RFN-8.3.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di sceglie- re se tornare alla sezione principale o riprovare l’associazione RFN-8.4 Il sistema permette l’annullamento della procedu- ra di associazione di un comando con un livello di autorizzazione digitando AnnullaOperazione RFN-9 Il sistema permette, ad un utente con accesso alle UC10 Funzioni amministrazione sistema, di associare un utente ad un livello di autorizzazione RFN-9.1 Il sistema richiede l’email dell’utente da associare UC10.1 RFN-9.1.1 Il sistema permette di visualizzare un messaggio UC10.2 di errore in caso l’indirizzo email inserito non corrisponda ad un utente presente RFN-9.2 il sistema richiede il nome del livello di UC10.3 autorizzazione da associare RFN-9.2.1 Il sistema permette di visualizzare un messaggio UC10.4 di errore in caso il nome inserito non corrisponda ad un livello di autorizzazione presente RFN-9.2.1.1 Il sistema permette di visualizzare una lista UC2 di livelli di autorizzazione tra cui l’utente può selezionare quello da associare al comando RFN-9.3 Il sistema mostra le informazioni inserite e ne UC13 chiede conferma all’utente RFN-9.3.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di sceglie- re se tornare alla sezione principale o riprovare l’associazione
36 CAPITOLO 3. ANALISI DEI REQUISITI Tabella 3.5: Tabella del tracciamento dei requisti funzionali Requisito Descrizione Use Case RFN-9.4 Il sistema permette l’annullamento della procedu- ra di associazione di un utente con un livello di autorizzazione digitando AnnullaOperazione RFN-10 Il sistema permette, ad un utente autenticato, di UC11 effettuare la ricerca di Items RFN-10.1 Il sistema permette di effettuare la ricerca di un UC11.1 Item in base al suo codice identificativo RFN-10.2 Il sistema permette di effettuare la ricerca di uno o più Items in base al codice del gruppo UC11.3 RFN-10.3 Il sistema mostra le informazioni inserite e ne UC13 chiede conferma all’utente RFN-10.3.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di scegliere se tornare alla sezione principale o riprovare la ricerca RFN-10.4 Il sistema permette di visualizzare le informazioni UC11.4 degli Items che corrispondono ai criteri di ricerca RFN-10.5 Il sistema permette l’annullamento della procedura di ricerca digitando AnnullaOperazione RFN-11 Il sistema permette, ad un utente autenticato, di UC12 ottenere il fatturato totale compreso tra due date e un grafico delle fatture in tale intervallo di tempo RFN-11.1 Il sistema richiede la data di inizio da cui calcolare UC12.1 il fatturato RFN-11.1.1 Il sistema permette di visualizzare un messaggio UC12.2 di errore in caso di data di inizio non valida RFN-11.2 Il sistema richiede la data di fine fino alla quale UC12.3 calcolare il fatturato RFN-11.2.1 Il sistema permette di visualizzare un messaggio UC12.2 di errore in caso di data di fine non valida RFN-11.3 Il sistema mostra le informazioni inserite e ne UC13 chiede conferma all’utente RFN-11.3.1 In caso non vengano confermate le informazioni UC2 - UC13.4 inserite, il sistema permette all’utente di scegliere se tornare alla sezione principale o riprovare il comando per l’ottenimento del fatturato RFN-11.4 Il sistema permette di visualizzare il totale del UC12.4 fatturato compreso tra le date di input RFN-11.5 Il sistema permette di visualizzare un grafico del- UC12.5 le fatture emesse durante l’intervallo di tempo compreso tra le date di input RFN-11.6 Il sistema permette l’annullamento della pro- cedura di ottenimento del fatturato digitando AnnullaOperazione
Capitolo 4 Progettazione In questo capitolo vengono dapprima descritte le tecnologie e strumenti utilizzati nella realizzazione del prototipo, ed in seguito viene descritta l’architettura, sia ad alto livello che di dettaglio, di Chatbot ERP CRM. 4.1 Tecnologie e strumenti Di seguito viene data una panoramica delle tecnologie e strumenti utilizzati. NodeJS NodeJS è un framework per realizzare applicazioni Web in Javascript[g] , permettendo di utilizzare questo linguaggio, tipicamente utilizzato nella “Client-side[g] ”, anche per la scrittura di applicazioni “server-side[g] ”. La piattaforma è basata sul JavaScript Engine V8, che è il runtime[g] di Google utilizzato anche da Chrome e disponibile sulle principali piattaforme, anche se maggiormente performante su sistemi operativi UNIX-like. La caratteristica principale di Node risiede nella possibilità che offre di accedere alle risorse del sistema operativo in modalità event-driven[g] : ciò vuol dire che Node richiede al sistema operativo di ricevere notifiche al verificarsi di determinati eventi, e rimane quindi in sleep fino alla notifica stessa; solo in tale momento torna attivo per eseguire le istruzioni previste nella funzione di callback[g] . Questa tecnologia è stata utilizzata lato server per implementare la logica applicativa di ChatBot ERP CRM. Microsoft SQL Server Microsoft SQL Server è un DBMS[g] relazionale (Relational Database Management System RDBMS), prodotto da Microsoft; usa una variante del linguaggio SQL standard (lo standard ISO certificato nel 1992) chiamata Transact-SQL (T-SQL[g] ). Microsoft SQL Server comunica sulla rete utilizzando un protocollo di livello appli- cazioni chiamato Tabular Data Stream (TDS[g] ). Microsoft SQL Server supporta anche Open Database Connectivity (ODBC[g] ). 37
38 CAPITOLO 4. PROGETTAZIONE Microsoft BOT Framework Microsoft Bot Framework è un insieme di servizi e strumenti che permettono di creare e gestire applicazioni bot in grado di rispondere all’input degli utenti, espresso in linguaggio naturale. La sua caratteristica principale è di permettere la configurazione di un canale tra il bot e le principali piattaforme di messaggistica, come Facebook Messenger, Telegram, Skype Messenger e anche SMS. Una volta aggiunto il bot ad uno dei servizi offerti, esso è sempre online. BOT Builder SDK BOT Builder SDK è una porzione del framework che fornisce le componenti software necessarie a sviluppare l’applicazione bot in NodeJS. Contiene vari tipi di oggetti usati per creare e modellare la conversazione con l’utente. Ad esempio, fare una domanda e ricevere una risposta di un certo formato o tipo; dare all’utente una lista di opzioni tra cui scegliere; definire il flusso della conversazione come un albero di diversi cammini. Bot Framework Emulator Bot Framework Emulator è uno strumento messo a disposizione dal framework per permettere agli sviluppatori di eseguire e testare il bot senza la necessità che esso sia online o collegato ad una piattaforma di messaggistica. Botbuilder-unit Framework di test per chatbot sviluppati con Microsoft Bot Framework per NodeJS. Supporta sia i test unit che di sistema; esso emula la conversazione tra l’utente e il bot, fornendo input per il bot e validando le risposte. Ogni test richiede in input un array ordinato di passi, in cui ognuno è un messaggio, in formato di stringa, atteso durante la conversazione dall’utente o dal chatbot; inoltre si definisce una logica di validazione per i messaggi. Durante l’esecuzione di un test, viene simulato un dialogo[g] dell’applicazione e ogni messaggio inviato, dall’utente o dal chatbot, viene confrontato con il messaggio atteso in quel momento da uno specifico mittente. Il test fallisce se almeno un messaggio inviato non corrisponde a quanto definito nel test.
Puoi anche leggere