Università degli Studi di Padova
←
→
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 Corso di Laurea in Informatica Conversione di applicativo commerciale da Visual Basic 6 a Visual Basic .NET Tesi di laurea triennale Relatore Laureando Prof. Tullio Vardanega Marco Ceseracciu Anno Accademico 2015-2016
Marco Ceseracciu: Conversione di applicativo commerciale da Visual Basic 6 a Visual Basic .NET, Tesi di laurea triennale, c Sep 2016.
Sommario Il presente documento descrive il lavoro svolto dal laureando Marco Ceseracciu presso l’azienda Sinapsi Informatica S.R.L. durante il periodo di stage, durato 320 ore. Il progetto di stage presentava un unico obiettivo fondamentale: lo sviluppo di un applicativo basato su un prodotto commerciale già esistente, che ne migliorasse l’aspetto estetico e l’usabilità. v
Indice 1 Ambiente di Lavoro 1 1.1 Il Contesto Aziendale . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 I Processi Aziendali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Tecnologie Adoperate . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Propensione all’Innovazione . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Il Progetto Aziendale 7 2.1 Interessi Aziendali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Obiettivi Aziendali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Il Progetto Airone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.2 Vincoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.3 Verifiche e Revisioni . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.4 Piano di Lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Realizzazione della conversione 11 3.1 Team di Lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Analisi del Prodotto Airone . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.1 Rifiuti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.2 Movimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.3 Formulari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Analisi dei Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 Vincoli Interni alla Realizzazione . . . . . . . . . . . . . . . . . . . . . 16 3.5 Realizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5.1 Approccio al progetto . . . . . . . . . . . . . . . . . . . . . . . 16 3.5.2 Gestione Terzisti . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5.3 Tabelle di Impostazione e Scheda Rifiuto . . . . . . . . . . . . 17 3.5.4 Gestione Registri . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5.5 Movimenti & Formulari . . . . . . . . . . . . . . . . . . . . . . 20 3.6 Esito dello Sviluppo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.6.1 Test di Correttezza . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.6.2 Misurazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.6.3 Sviluppi Futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Considerazioni a Posteriori 23 4.1 Lo Stage per l’Azienda . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Competenze Ottenute . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Confronto tra Percorso di Studi e Lavoro in Azienda . . . . . . . . . . 23 vii
Elenco delle figure 1.1 Logo dell’azienda Sinapsi Informatica S.R.L. . . . . . . . . . . . . . . . 1 1.2 Logo applicativo Lotus Notes . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Applicativo aziendale Planning . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Componenti fondamentali del kernel, della Workstation e del Server Notes 4 2.1 Logo del prodotto Airone, versione aggiornata . . . . . . . . . . . . . . 7 2.2 Airone V6 - Schermata Iniziale . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Diagramma di Gantt dal 4 agosto al 3 ottobre 2014 . . . . . . . . . . . 9 3.1 Airone V6 - Scheda Rifiuto . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Airone V6 - Inserimento Movimento . . . . . . . . . . . . . . . . . . . 13 3.3 Airone V6 - Inserimento Formulario . . . . . . . . . . . . . . . . . . . 14 3.4 Airone V16 - Gestione Terzista . . . . . . . . . . . . . . . . . . . . . . 17 3.5 Airone V16 - Statement SQL con parametrizzazione dei valori . . . . . 18 3.6 Airone V16 - Scheda del Rifiuto . . . . . . . . . . . . . . . . . . . . . . 19 3.7 Airone V16 - Dati del Registro . . . . . . . . . . . . . . . . . . . . . . 19 3.8 Airone V16 - Dati Generali del Formulario . . . . . . . . . . . . . . . . 20 3.9 Airone V16 - Ribbon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Elenco delle tabelle 3.1 Tabella dei requisti funzionali . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Tabella dei requisiti qualitativi . . . . . . . . . . . . . . . . . . . . . . 15 3.3 Tabella dei requisiti di vincolo . . . . . . . . . . . . . . . . . . . . . . . 15 3.4 Esito delle misurazioni effettuate . . . . . . . . . . . . . . . . . . . . . 21 viii
Capitolo 1 Ambiente di Lavoro 1.1 Il Contesto Aziendale figura 1.1: Logo dell’azienda Sinapsi Informatica S.R.L. Sinapsi Informatica SRL è una società di sviluppo software che da più di 25 anni si occupa di fornire assistenza ad aziende nella gestione dell’impresa e nella semplificazione dei processi produttivi. Sinapsi Informatica fornisce ai propri clienti tutte le conoscenze e gli strumenti necessari per il raggiungimento di elevati standard qualitativi nei processi interni. In quanto Business Partner IBM si impegna ad essere procuratore d’eccellenza nel Triveneto, come fornitore di prodotti e di supporto costante. Per raggiungere questo obiettivo Sinapsi Informatica offre servizi di assistenza, consulenza e formazione calibrati sulle specifiche necessità di ciascuna realtà aziendale. Tra i principali prodotti commerciati dall’azienda sono presenti prodotti sia IBM che a marchio SAP: ∗ SAP Business One ∗ SAP Hana ∗ SAP Enologic ∗ SAP MetalOne ∗ Lotus Domino ∗ Lotus Notes ∗ Sophos ∗ Barracuda 1
2 CAPITOLO 1. AMBIENTE DI LAVORO ∗ Server AS400 Nel caso in cui l’acquisto di un prodotto non comprenda un contratto di assistenza, Sinapsi Informatica si assume l’onere del supporto. L’azienda offre anche un pacchetto completo, che comprende un database, un gestionale, personalizzazioni e assistenza. Questa soluzione presenta vantaggi sia per Sinapsi, che fidelizza un acquirente, che per il cliente, che avrà un unico canale di comunicazione per tutte le richieste. L’azienda fornisce assistenza telefonica, telematica o on-site, a seconda delle necessi- tà. Per l’assistenza remota vengono utilizzati programmi di condivisione dello schermo quali TeamViewer, mentre le modifiche richieste su CRM già installati presso clienti vengono eseguite tramite connessione in VPN (acronimo significante Virtual Private Network, ovvero "Rete privata virtuale") e client Notes. Sinapsi Informatica ha un’unica sede a Monselice, che comprende due uffici adia- centi all’interno dello stesso condominio. La ditta è composta da un amministratore delegato, 3 capo-progetto e circa 15 dipendenti, impegnati nei settori IT, commerciale e amministrativo. 1.2 I Processi Aziendali L’azienda Sinapsi Informatica SRL presenta, nel proprio settore IT, una scala gerarchica molto ristretta: i capi progetto si occupano di comunicare con i clienti e di ripartire il lavoro tra i dipendenti, a seconda delle competenze e degli impegni dei singoli. Dato il personale limitato, non c’è una suddivisione stagna dei compiti tra i dipendenti, ma una condivisione delle responsabilità tra tutti i competenti in ciascun ambito. A sostegno di questa pratica, l’azienda dispone di una Knowledge Base interna, nella quale vengono annotate le procedure da seguire per effettuare i collegamenti con i clienti, le password da utilizzare e i metodi per risolvere problematiche già riscontrate. figura 1.2: Logo applicativo Lotus Notes Il client Lotus Notes, utilizzato da tutto il personale, fornisce due strumenti vitali per l’organizzazione del lavoro: il Planning e il Planboard. Il Planning è il calendario in cui tutto il personale annota i propri impegni fornendo orari, luogo e descrizione. Tali attività sono visibili a tutti i dipendenti; in particolare i capi progetto utilizzano questo strumento per l’assegnazione delle mansioni da svolgere nella settimana, e la segreteria lo utilizza per sapere a chi passare le richieste telefoniche di assistenza. Il Planboard viene invece compilato solo dai capi progetto e segnala per ogni impiegato le principali attività da svolgere nel periodo futuro: ad esempio la migrazione di un cliente o un progetto di sviluppo. Viene utilizzato durante la fase di contrattazione di progetti futuri, per conoscere il carico di lavoro previsto di ciascun dipendente, permettendo di fissare tempistiche consone per l’inizio e la conclusione dei lavori.
1.3. TECNOLOGIE ADOPERATE 3 figura 1.3: Applicativo aziendale Planning 1.3 Tecnologie Adoperate 1. Lo strumento più utilizzato in azienda è certamente la piattaforma Lotus, che permette di gestire e sviluppare programmi per molte esigenze. La piattaforma è suddivisa in due entità: ∗ Lotus Notes ∗ Lotus Domino L’entità Notes fornisce 3 diverse applicazioni: ∗ Notes è l’applicativo utilizzato dagli utenti, che oltre a fornire gli strumenti descritti nel paragrafo 1.2, funge da client di posta e permette di eseguire i programmi di gestione di comunicazione inter e intra-aziendali ∗ Designer permette la modifica delle utility standard e lo sviluppo di nuove applicazioni. ∗ Administrator fornisce gli strumenti per l’analisi e la gestione degli utenti e del server, tra cui i log e la console per effettuare chiamate a procedure. 2. La piattaforma Lotus fornisce ai dipendenti tre applicativi che sono stati sviluppati internamente all’azienda, la Knowledge Base, il CRM e il SinDoc. La Knowledge Base può essere letta e modificata da tutti i dipendenti, contiene le pratiche aziendali per lo svolgimento di svariate operazioni ed è principalmente usata da tecnici e capo-progetto. SinDoc è un applicativo che, tramite procedure, preleva i dati relativi ai clienti dal database aziendale, gestisce la documentazione, inclusa quella contabile e tiene traccia delle fatture. Il CRM permette ai dipendenti del settore amministrativo di gestire i rapporti con clienti e fornitori, appoggiandosi a SinDoc per l’invio delle fatture, tenendo traccia in un unico applicativo delle comunicazioni e dei pagamenti.
4 CAPITOLO 1. AMBIENTE DI LAVORO figura 1.4: Componenti fondamentali del kernel, della Workstation e del Server Notes 3. Microsoft Visual Studio è la piattaforma creata dalla Microsoft per lo sviluppo in linguaggio Visual Basic .NET, evoluzione del linguaggio Visual BASIC, e fornisce strumenti integrati per il testing, la gestione del repository e l’analisi statica del codice. Nonostante condividano il nome, VB.NET e VB non sono compatibili. Nell’IDE di sviluppo è integrato un convertitore che garantisce una conversione parziale del codice, ma non è sufficiente: poiché la tecnica di programmazione è passata dall’essere imperativa (anche se basata su eventi) all’essere orientata agli oggetti, nella maggior parte dei casi è necessaria una totale riscrittura. 4. Il progetto AnkhSVN è nato con lo scopo di fornire una facile implementazione delle tecniche di controllo di versionamento per l’IDE Microsoft Visual Studio, nel quale è integrato. Rende disponibili, oltre ai comandi di Subversion, strumenti per il tracciamento dei merge, la gestione dei conflitti e per l’ottimizzazione del workflow. 5. Per il tracciamento dei bug e dello sviluppo di progetto Sinapsi Informatica si affida alla web application di project management RedMine, rilasciata sotto licenza GNU General Public License v2 (GPL), che fornisce servizio di repository con ticketing, gestione del branching e dell’avanzamento dello sviluppo. 6. Per la condivisione della postazione di lavoro viene utilizzato Supremo, che genera ad ogni utilizzo un codice e una password, e permette di collegarsi tramite Internet conoscendo il codice di identificazione e la password associata. 1.4 Propensione all’Innovazione Sinapsi Informatica SRL ha una lunga storia, durata più di 25 anni,e per questo motivo possiede un grande bagaglio di conoscenze e di pratiche. Questo bagaglio è una
1.4. PROPENSIONE ALL’INNOVAZIONE 5 delle forze dell’azienda, che riesce a sostenere i propri clienti in tutti i processi aziendali: produttivi, di comunicazione intra e inter-aziendale, di contabilità e di gestione di clienti e fornitori. Tuttavia, questa preziosa risorsa pone un ostacolo all’innovazione: avendo già gli strumenti e il know-how per quanto riguarda gli approcci e le tecnologie utilizzate manca la spinta verso la ricerca di nuovi modi operandi. La ditta rinnova la propria offerta aggiornando e aumentando la gamma di prodotti trattati e intraprendendo progetti di sviluppo in nuovi settori, ma manca un progetto esteso e coeso di innovazione dei processi interni. Per quanto riguarda l’innovazione delle procedure dei clienti l’azienda affronta varie problematiche: molti clienti, essendo già soddisfatti degli strumenti utilizzati, non percepiscono il valore delle innovazioni proposte e, per questo motivo, non sono disposti ad investire. In altri casi la spinta verso l’innovazione tecnologica è frenata dalle tecnologie utilizzate dai clienti, e dalla necessità di garantire l’operabilità dei server; di solito, quindi, l’azienda preferisce avvalersi di macchinari e procedimenti consolidati, piuttosto che di quelli più innovativi. Il mercato è relativamente stabile, le grandi aziende leader offrono un’ampia gamma di prodotti calibrati sulle esigenze dei colossi nazionali e internazionali, ma sono eccessivamente rigidi e costosi per piccole e medie aziende, che quindi si affidano ad altri fornitori. In questo ambiente, Sinapsi Informatica si propone come interlocutore per realtà di diverse dimensioni, offrendo prodotti appartenenti a diverse fasce di prezzo e calibrati sui diversi bisogni.
Capitolo 2 Il Progetto Aziendale figura 2.1: Logo del prodotto Airone, versione aggiornata Airone è una Suite software per la gestione dello smaltimento degli scarti, nato negli anni ’90; è attualmente alla versione 6, rilasciata nei primi anni 2000. Il prodotto è una soluzione integrata che copre ogni ambito, dalla generazione di rifiuti fino al loro smaltimento, il tutto a norma di legge. Per ciascun rifiuto tiene traccia dei dati relativi a: ∗ luogo di origine ∗ movimenti ∗ passaggi di affido ∗ trasformazioni subite ∗ luogo di smaltimento ∗ pericolosità ∗ quantità e unità di misura Permette di memorizzare e di gestire i singoli movimenti che uniti compongono un formulario. Airone può essere utilizzato da produttori, smaltitori e intermediari, a seconda delle necessità; un file di configurazione gestisce le licenze e i permessi disponibili per ciascun utente. 2.1 Interessi Aziendali Airone V6, rilasciato nei primi anni 2000, è un prodotto che dimostra i suoi anni sia dal punto di vista delle funzionalità che da quello estetico; l’intenzione principale di Sinapsi è renderlo più usabile e più accattivante, senza perdita di funzioni. 7
8 CAPITOLO 2. IL PROGETTO AZIENDALE figura 2.2: Airone V6 - Schermata Iniziale Il software era stato sviluppato in Visual Basic 6, una tecnologia ormai obsoleta, è quindi necessario che venga riscritto in un linguaggio più recente; la scelta più ovvia è Visual Basic .NET, l’erede naturale di VB6. Oltre ad essere un aggiornamento di Visual Basic 6, la piattaforma .NET apre la possibilità di interoperabilità per il software, il che risulta molto utile per funzionalità quali utilizzo in rete e SISTRI, che precedentemente non potevano essere gestite. Inoltre Airone si appoggiava ad un database Access, anch’esso ormai superato, Airone V16 verrà invece sviluppato appoggiandosi a database della famiglia SQL. Il software Airone rappresenta un’ottima opportunità economica: richiede per- sonalizzazioni, manutenzioni e assistenza, fornendo lavoro per tutto il suo ciclo di vita. 2.2 Obiettivi Aziendali Nel progetto aziendale Sinapsi, lo stage arricchisce le conoscenze aziendali con un nuovo linguaggio di sviluppo, Visual Basic .NET, e con esperienza in un nuovo dominio applicativo. L’esperienza acquisita nel settore della gestione rifiuti, infatti, verrà esportata in altri settori quali SAP, permettendo di sviluppare nuovi applicativi per offrire nuovi servizi ai clienti esistenti e incrementare il bacino d’utenza. Inoltre il progetto, commissionato da Nuova Informatica S.R.L., rafforza i rapporti con il partner, aprendo la via ad ulteriori collaborazioni e a contratti di assistenza relativi al prodotto sviluppato. Nel caso il lavoro dello stagista fosse ritenuto soddisfacente il progetto dà buone possibilità di continuare il rapporto lavorativo.
2.3. IL PROGETTO AIRONE 9 2.3 Il Progetto Airone 2.3.1 Obiettivi Il progetto prevede di portare il prodotto in fase Beta entro metà ottobre, dopodiché proseguire con il testing di unità e con l’implementazione di funzionalità secondarie fino a fine dicembre, in collaborazione con Nuova Informatica. L’interfaccia grafica deve essere intuitiva e chiara ed essere ritenuta adeguata dal committente. 2.3.2 Vincoli Per lo svolgimento dello stage Sinapsi Informatica, in accordo col committente Nuova Informatica, ha fissato la metodologia, gli strumenti e le tempistiche di sviluppo. L’avanzamento del lavoro viene monitorato dal tutor aziendale, tramite verifiche pianificate e brevi riunioni col team di sviluppo. 2.3.3 Verifiche e Revisioni L’avanzamento dello sviluppo si svolge per settori, seguendo una filosofia bottom-up. Le verifiche seguono gli use case individuati. Oltre all’ingresso del prodotto in fase di Beta, obiettivo del progetto, verranno analizzati vari edge case per garantire non solo il corretto funzionamento del programma, ma anche che la logica sia consistente. 2.3.4 Piano di Lavoro figura 2.3: Diagramma di Gantt dal 4 agosto al 3 ottobre 2014
Capitolo 3 Realizzazione della conversione 3.1 Team di Lavoro Per la realizzazione del progetto di conversione di Airone mi sono relazionato con il mio tutor aziendale, con un senior developer e con un junior developer. Nel progetto il tutor ha assunto il ruolo di analista e responsabile mentre il senior developer si è occupato della progettazione. Un lavoro iniziale di analisi è stato svolto dal committente, che ha definito la rotta da seguire e ha fornito una stima generica dei tempi di svolgimento del lavoro. Il tutor aziendale ha sviluppato ulteriormente e dettagliato l’analisi, fornendo supporto agli sviluppatori per la comprensione dei principi sottostanti al prodotto. Il progettista ha determinato la struttura a basso livello del prodotto finale, indivi- duato le tecnologie e fissato le pratiche più adatte per il progetto. Sue le decisioni riguardo al versioning control, alle coding practices, all’assegnazione delle priorità e, concordato col committente, all’aspetto estetico da dare al prodotto. Lo sviluppatore junior mi è stato affiancato durante le prime fasi dello sviluppo; successivamente si è dedicato principalmente ad altre mansioni interne all’azienda, occupando un ruolo di supporto all’interno del progetto Airone. Per la gestione del team di lavoro abbiamo utilizzato un server RedMine appoggiato alla tecnologia Ankh SVN, già integrata in Microsoft Visual Studio 2012. 3.2 Analisi del Prodotto Airone Il prodotto Airone è un software che fornisce svariate funzionalità specifiche per la gestione dei rifiuti; in questo paragrafo verranno esposte le caratteristiche focali del prodotto. 3.2.1 Rifiuti Ogni entità che tratti rifiuti deve possedere un Registro che contenga tutti i formulari emessi e ricevuti, numerati univocamente. I rifiuti sono caratterizzati da un codice CER univoco e da una descrizione. Particolare rilevanza hanno i rifiuti pericolosi, le cui specificità sono segnalate con un 11
12 CAPITOLO 3. REALIZZAZIONE DELLA CONVERSIONE codice alfanumerico H1 – 15. Ogni utente può definire nella Tabella dei Rifiuti solo i rifiuti che verranno utilizzati da ciascuna ditta; inoltre, per casi specifici, le caratteristiche possono essere modificate nella Scheda Rifiuti. figura 3.1: Airone V6 - Scheda Rifiuto 3.2.2 Movimenti Ogni movimento deve essere legato a un cliente, a una sede o unità esterna, a un trasportatore ed appartiene ad una di queste categorie: 1. Carico 2. Scarico 3. Trasformazione 4. Smaltimento 5. Recupero Carico significa che il rifiuto è stato caricato su un mezzo adatto per il trasporto, mentre scarico sta per il deposito di un rifiuto. Trasformazione indica una modifica del rifiuto, quindi del CER identificativo o dei codici di pericolosità. Smaltimento e Recupero sono le due possibili fini del ciclo di vita di un rifiuto ed indicano rispettivamente la perdita, tramite ad esempio scarico in discarica o incenerimento, e il riutilizzo del rifiuto.
3.2. ANALISI DEL PRODOTTO AIRONE 13 figura 3.2: Airone V6 - Inserimento Movimento 3.2.3 Formulari L’insieme di tutti i movimenti va a comporre il Formulario, ovvero l’intero ciclo di vita di un rifiuto. Il formulario contiene tutte le informazioni contenute in ciascun movimento, opportu- namente verificate e concatenate. Ad esempio una sequenza di movimenti 1. Carico in ditta A 2. Trasporto da A a B 3. Scarico in B 4. Carico in ditta B 5. Trasporto da B a C 6. Smaltimento in C risulterebbe nell’avere A come Produttore, B come Intermediario e C come Desti- natario; inoltre terrà traccia di tutti i trasportatori coinvolti, delle trasformazioni del rifiuto, della consistenza tra le quantità caricate e scaricate. A seconda della confi- gurazione del prodotto un formulario può venire creato anche con molti campi vuoti, questo in fase di analisi è stato per noi lo scenario base, a cui abbiamo gradualmente aggiunto ricchezza e complessità per comprendere meglio il dominio applicativo
14 CAPITOLO 3. REALIZZAZIONE DELLA CONVERSIONE figura 3.3: Airone V6 - Inserimento Formulario 3.3 Analisi dei Requisiti La tabella sottostante specifica la lista dei requisiti di progetto, classificati come funzionali (rf), di qualità (rq) e di vincolo (rv); l’ultima colonna mostra quali requisiti siano obbligatori (O), desiderabili (D), opzionali (P). Ho individuato diversi tipi di requisiti e utilizzato un codice identificativo per distinguerli. Il codice dei requisiti è così strutturato R(F/Q/V)(O/D/P) dove: R = requisito F = funzionale Q = qualitativo V = di vincolo O = obbligatorio D = desiderabile P = opzionale Nelle tabelle 3.1, 3.2 e 3.3 sono riassunti i requisiti e il loro tracciamento con gli use case delineati in fase di analisi.
3.3. ANALISI DEI REQUISITI 15 tabella 3.1: Tabella dei requisti funzionali Requisito Descrizione RFO-1 Permettere all’utente la gestione delle tabelle RFO-2 Creazione/Modifica di un rifiuto RFO-3 Creazione/Modifica di un registro RFO-4 Creazione/Modifica di un’azienda RFO-5 Creazione/Modifica di una sede RFO-6 Creazione/Modifica di un’autorizzazione RFO-7 Creazione/Modifica di un trasportatore RFO-8 Creazione/Modifica di un terzista RFO-9 Creazione/Modifica di un movimento RFO-10 Creazione/Modifica di un formulario RFO-11 Predisposizione del multilinguismo RFD-1 Realizzazione della predisposizione per collegamento con sistema SISTRI RFD-2 Realizzazione della procedura di installazione RFP-1 Realizzazione della procedura di trasferimento dei dati da database Access a SQL Server tabella 3.2: Tabella dei requisiti qualitativi Requisito Descrizione RQO-1 Effettuare test di unità per ogni unità sviluppata RQO-2 Effettuare analisi statica del codice RQO-3 Effettuare test di integrazione (moduli sede, autorizzazione, trasportatore) RQO-4 Effettuare test di integrazione (moduli registro, movimento, formulario) RQD-1 Effettuare test di utilizzo seguendo le disposizioni del committente tabella 3.3: Tabella dei requisiti di vincolo Requisito Descrizione RVO-1 Utilizzo di Visual Basic .NET RVO-2 Utilizzo di un’interfaccia grafica esteticamente gradevole, secondo il giudizio del committente RVO-3 Utilizzo di un’interfaccia grafica che mantenga tutti i collegamenti presenti nella precedente versione del prodotto Airone
16 CAPITOLO 3. REALIZZAZIONE DELLA CONVERSIONE 3.4 Vincoli Interni alla Realizzazione Connaturato alla natura del progetto abbiamo dovuto mantenere la struttura di Airone V6, per questo motivo i nomi delle tabelle del database, delle chiamate di funzione e dei form sono state variate. Il team di lavoro ha seguito una metodologia di sviluppo bottom-up, partendo dagli elementi di base del prodotto ed integrando mano a mano nuove funzionalità. Per lo sviluppo del progetto abbiamo adottato un ciclo di vita incrementale che ha permesso di verificare non solo il funzionamento, ma anche l’usabilità del prodotto passo per passo. Internamente abbiamo fissato l’obiettivo di garantire che le prestazioni del programma non peggiorassero e abbiamo tentato di migliorare l’efficienza ove possibile. Per gestire il multilinguismo è stato realizzato un form apposito, in cui a ciascun codice viene assegnata una stringa per ogni lingua. Il compito di Sinapsi è stato realizzare la predisposizione ed inserire i messaggi in italiano, mentre per le altre lingue il committente Nuova Informatica si affiderà in futuro a dei traduttori. Incontri col committente durante la fase di sviluppo hanno permesso di individuare immediatamente i settori in cui il prodotto non si presentava come atteso. 3.5 Realizzazione 3.5.1 Approccio al progetto Durata fase: 1 settimana. Nel corso della prima settimana ho preso familiarità col luogo di lavoro, con l’ambiente Visual Studio e col prodotto Airone. Ho passato buona parte del periodo a lavorare abbinato al programmatore Federico Scarparo, per abituarmi rapidamente all’interfaccia di Visual Studio, alle pratiche aziendali e alla logica sottostante Airone V6. Essendo un prodotto nato senza alcuna progettazione (nel senso ingegneristico del termine) e modificato da molte mani, il codice risulta illeggibile: le variabili spesso non hanno nomi significativi e, occasionalmente, vi sono metodi duplicati; durante la conversione ho migliorato questi aspetti, seguendo le coding practice decise dal progettista. Purtroppo i vincoli presenti sulla compatibilità con Airone V6 hanno limitato l’effi- cacia del nostro approccio; il programma avrebbe bisogno di essere completamente riprogettato e riscritto per raggiungere degli standard qualitativi sufficienti. La necessità di rendere il prodotto più vendibile che funzionante ha evidentemente portato gli sviluppatori di Airone V6 a utilizzare spesso e volentieri la formula On Error Resume Next; l’effetto di tale funzione è che, in caso di errore, il programma continuerà l’esecuzione invece di terminare. In Visual Basic .NET tale comando è stato incluso, perciò contrattualmente sarebbe stato lecito continuare a utilizzarlo, ma ho preferito gestire le eccezioni con blocchi try/catch. 3.5.2 Gestione Terzisti Durata fase: 1 settimana.
3.5. REALIZZAZIONE 17 figura 3.4: Airone V16 - Gestione Terzista Gradualmente sono passato dalla teoria alla pratica affrontando il modulo riguar- dante la Gestione Terzisti. La scelta è stata oculata: tale sezione è a sé stante, ed in essa vengono eseguite, in maniera semplificata, tutte le operazioni di gestione di una ditta. Ho quindi avuto modo di sviluppare e testare una piccola parte del prodotto senza interferire con lo sviluppo realizzato dal mio collega, e al tempo stesso di apprendere molti dei concetti sottostanti al prodotto e il modo di utilizzo atteso dagli utenti. Il primo ostacolo nella realizzazione della conversione è stato il diverso modo di gestire la scrittura su database: in Visual Basic 6 si poteva aprire un collegamento con una o più tabelle del database e mantenere l’accesso, modificando liberamente i campi uno ad uno. In Visual Basic .NET questa metodologia è giustamente stata rimossa per seguire i principi di modularità delle operazioni e di consistenza dei dati; abbiamo perciò dovuto trasformare queste operazioni in singoli statement SQL, gestiti con parametrizzazione dei valori per proteggersi da SQLInjection. In questa fase abbiamo anche deciso di modificare la tabella "ANAG32", contenente tutte le anagrafiche. In Airone V6 venivano usati 2 campi per memorizzare la Ragione Sociale: RAGSOC1 e RAGSOC2, ciascuno con 25 caratteri di lunghezza. Su consiglio degli sviluppatori abbiamo deciso di utilizzare un solo campo che permet- tesse 50 caratteri, risparmiando così molti controlli, resi particolarmente onerosi dalla modifica della scrittura su database descritta in precedenza. 3.5.3 Tabelle di Impostazione e Scheda Rifiuto Durata fase: 2 settimane. Nelle due settimane successive ho sviluppato la sezione di gestione delle tabelle di impostazione: queste tabelle vengono configurate da ciascun cliente e le informazioni
18 CAPITOLO 3. REALIZZAZIONE DELLA CONVERSIONE figura 3.5: Airone V16 - Statement SQL con parametrizzazione dei valori in esse contenute vengono utilizzate ma non modificate. Le tabelle trattate da me sono state : 1. Tabella dei Comuni 2. Tabella degli Stati 3. Tabella dei Rifiuti La Scheda Rifiuto ha subito qualche semplificazione a causa della modifica della norma: in passato prevedeva anche la categorizzazione dei rifiuti attiva prima del 1 gennaio 2002 e i dati COOU che sono stati rimossi. 3.5.4 Gestione Registri Durata fase: 1 settimana. In seguito mi sono occupato della sezione dei Registri dei Rifiuti, relativamente breve come contenuti, ma i cui metodi sono necessari per lo sviluppo coerente dei formulari. Dato che ogni formulario dev’essere associato ad un registro, il progettista ha deciso di sviluppare questa sezione prima dei movimenti. Prima di procedere con la fase successiva sono stati eseguiti numerosi test di unità; in seguito allo sviluppo dei formulari è stata eseguita una nuova batteria di test focalizzata sulla Gestione dei Registri.
3.5. REALIZZAZIONE 19 figura 3.6: Airone V16 - Scheda del Rifiuto figura 3.7: Airone V16 - Dati del Registro
20 CAPITOLO 3. REALIZZAZIONE DELLA CONVERSIONE 3.5.5 Movimenti & Formulari Durata fase: 3 settimane. La gestione dei movimenti è complessa da un punto di vista funzionale e legislativo, perciò prima dello sviluppo l’analista Marco Avezzù ha spiegato dettagliatamente agli sviluppatori l’approccio da utilizzare per effettuare la conversione di tale sezione. Sono state analizzate diverse opzioni, configurabili dagli utenti che incidono sui processi per la creazione e modifica dei formulari, insieme ad alcune sezioni di codice in cui tali impostazioni vengono controllate e gestite. figura 3.8: Airone V16 - Dati Generali del Formulario Durante lo sviluppo sono stati rivisti svariati metodi: taluni sono stati ottimizzati utilizzando nuovi strumenti forniti da Visual Basic .NET, altri sono stati completamente riprogettati poiché basati su logiche non più valide o deprecate. La mole e la complessità della sezione dei Movimenti e Formulari hanno causato, nelle precedenti versioni di Airone, uno sviluppo caotico, al quale abbiamo cercato di rimediare; in fase di studio abbiamo notato che certi controlli venivano eseguiti molte volte inutilmente e alcuni rami di codice contenevano evidenti errori di programmazione. Questi fattori hanno complicato la conversione del modulo Formulari; ci siamo trovati a dover anche correggere codice errato, dato che la presenza di On Error Resume Next, trattata in 3.5.1, poteva nascondere l’errore durante l’utilizzo. 3.6 Esito dello Sviluppo Durante tutto lo sviluppo il software è stato sottoposto a test da parte degli sviluppatori, del progettista e del tutor aziendale, tuttavia per la natura caotica del prodotto d’origine non è stato possibile valutare né stimare la reale copertura; è quindi
3.6. ESITO DELLO SVILUPPO 21 previsto che in fase di beta verranno individuati e corretti svariati errori, in particolare di integrazione e comunicazione tra diverse sezioni. Ciò era previsto dal committente e non rappresenta un infrangimento degli accordi, che sono stati completamente rispettati. AironeV16 risulta generalmente più efficiente della versione precedente nelle operazioni di controllo dei dati e di lettura dal database; invece la scrittura richiede un tempo maggiore, a causa delle differenze nella metodologia tra le basi di dati Access e SQL. L’usabilità e l’estetica di Airone V16 sono state apprezzate sia dal committente che dai rappresentanti delle associazioni di categoria, che hanno avuto modo di vederlo in funzione a metà settembre, poco prima dell’ingresso ufficiale in fase beta. Rispetto ai menù della versione precedente, la struttura ribbon rende più intuitivo lo spostamento tra le diverse sezioni del prodotto e permette di gestire tutti i collegamenti richiesti con naturalezza. figura 3.9: Airone V16 - Ribbon 3.6.1 Test di Correttezza L’analisi statica effettuata tramite strumenti integrati in Microsft Visual Studio 2012 ha evidenziato svariati errori, alcuni dei quali in altre piattaforme avrebbero bloccato la compilazione, ma che in Visual Studio generano solo un warning; ad esempio la mancata definizione di una variabile dichiarata. 3.6.2 Misurazioni Per misurare la differenza di prestazioni tra AironeV6 e il nuovo prodotto è stato utilizzato un unico apparecchio, il portatile che mi è stato dato dall’azienda; i database di appoggio erano localizzati nello stesso server aziendale e contenevano dati identici. Abbiamo applicato varie ottimizzazioni durante lo sviluppo, che hanno reso i risultati precedenti obsoleti. Le operazioni da effettuare sono state calibrate in modo da restituire il numero di record atteso, abbiamo evitato di affidarci alla Sintassi SELECT TOP per evitare che il costrutto incidesse sulle prestazioni. Tutti i valori sono da intendersi espressi in centesimi di secondo, media frutto di 3 batterie da 10 esecuzioni ciascuna. Operazione Media V6 Media V16 Lettura e render di 100 movimenti 148 140 Lettura e render di 1000 movimenti 1565 1389 Lettura e render di 100 anagrafiche 123 97 Lettura e render di 1000 anagrafiche 1340 1025 Salvataggio Formulario 175 194 tabella 3.4: Esito delle misurazioni effettuate
22 CAPITOLO 3. REALIZZAZIONE DELLA CONVERSIONE Come già detto in 3.6 Airone V16 è più rapido del predecessore nelle operazioni di lettura dal database, mentre la scrittura è stata resa più onerosa dal cambio di metodologia. 3.6.3 Sviluppi Futuri Al termine del mio stage il prodotto Airone ha richiesto ancora mesi di lavoro per lo sviluppo della sezione MUD (Modello Unico di Dichiarazione Ambientale) e per la preparazione del collegamento al sistema SISTRI. Il committente ha continuato in proprio lo sviluppo delle parti finali del prodotto, che viene ora pubblicizzato e commercializzato al seguente indirizzo: http://www. nuova-informatica.it/airone/index.asp.
Capitolo 4 Considerazioni a Posteriori 4.1 Lo Stage per l’Azienda Per Sinapsi Informatica il mio progetto di stage rappresentava un’esplorazione in un ambiente di sviluppo poco noto, ma soprattutto l’ingresso in un settore commerciale che dia lavoro futuro. L’obiettivo è stato raggiunto, attualmente l’azienda sta promuovendo il prodotto e offre ai propri clienti personalizzazioni; il rapporto con Nuova Informatica è proseguito e sono tutt’ora attive collaborazioni tra le due ditte. Il successo del progetto ha anche portato alla continuazione del rapporto lavorativo tra me e Sinapsi Informatica, che perdura. 4.2 Competenze Ottenute Penso che il più importante bagaglio acquisito grazie allo stage sia l’esperienza del lavorare in un’azienda avviata, adeguandomi alle necessità dell’ambiente di lavoro. Gradualmente mi sono abituato ad essere costantemente produttivo nonostante i molti disturbi presenti, tra cui telefonate e discussioni tra colleghi. Ho avuto bisogno di qualche settimana prima di sentirmi a mio agio in ufficio, anche perché il mio stage è iniziato in periodo di turnover dovuto alle ferie, essendosi svolto da agosto ad ottobre, e per questo ho conosciuto gradualmente i miei colleghi. Dal punto di vista professionale ho acquisito competenza nei linguaggi Visual Basic e migliorato la mia conoscenza di SQL, ma soprattutto ho collaborato alla gestione e allo sviluppo di un progetto corposo in un dominio applicativo per me nuovo; ho anche assistito al lato commerciale del lavoro in azienda partecipando ad un incontro col committente. 4.3 Confronto tra Percorso di Studi e Lavoro in Azienda Le conoscenze ottenute nel corso di studi mi hanno permesso di abituarmi rapi- damente agli strumenti necessari per il progetto di stage, e di migliorare il prodotto seguendo le best practice relative ad efficienza, correttezza e leggibilità del codice. 23
24 CAPITOLO 4. CONSIDERAZIONI A POSTERIORI In particolare l’esperienza acquisita con i corsi di programmazione ha facilitato l’ap- proccio con il linguaggio .NET, che ha una sintassi simile al C (in particolare al C#) ed è meno stringente durante la compilazione. Diversamente dai progetti universitari, nei quali gli obiettivi erano chiari e ben definiti, per il progetto Airone l’analisi dei requisiti è stata minimale; questo ha causato alcune zone grigie per quanto riguarda i test da compiere e l’aspetto estetico, che sono stati gestiti autonomamente da Sinapsi Informatica e in seguito approvati dal committente. Sinapsi Informatica applica vari principi dell’Ingegneria del Software ai propri processi, ad esempio favorendo la documentazione delle attività e procedure e il mante- nimento di una Knowledge Base dettagliata e aggiornata, ma l’analisi e la progettazione relative alla conversione di Airone sono state carenti; altre pratiche invece vengono trascurate per seguire un approccio più commerciale che tecnico, dando meno attenzioni allo sviluppo corretto del prodotto. Detto questo, è mio parere che per una realtà aziendale come questa non sia possibile seguire fedelmente i dettami della disciplina dell’Ingegneria del Software per i seguenti motivi: innanzitutto perché l’azienda non si occupa solo di sviluppo ma anche di assistenza, quindi spesso i dipendenti devono gestire emergenze, interne o esterne all’ufficio, che hanno priorità maggiore rispetto al lavoro pianificato e influiscono negativamente sui tempi realizzativi. Inoltre Sinapsi amministra molti ambienti e ha poco personale, perciò i dipendenti devono seguire molti settori contemporaneamente, ottenendo una preparazione più varia e meno specializzata. Alcuni di questi prodotti sono pensati secondo paradigmi ben diversi da quelli che ho studiato durante il corso di laurea; ad esempio Lotus Notes è basato su un database non relazionale e non separa la logica di presentazione dalla logica di business. I capi progetto sono impegnati anche nel settore commerciale e nelle relative attività, tra cui ∗ demo dimostrative ∗ analisi delle condizioni di lavoro e delle necessità operative ∗ contrattazione con clienti e fornitori ∗ collaborazione con i partner. Tutto questo toglie loro tempo che potrebbero dedicare alla gestione dei progetti; questo, insieme alla scala gerarchica molto corta, causa un decentramento della presa in carico dei lavori: può capitare che un cliente contatti direttamente i dipendenti, senza passare attraverso i responsabili. In questo caso sta al tecnico gestire la situazione nella maniera più opportuna. Questo non significa che le pratiche dell’Ingegneria del Software non siano comprese in azienda, né che siano ritenute inutili; alcuni aspetti della disciplina potrebbero essere applicati meglio mentre altri, secondo me, richiedono una componente di risorse umane di cui Sinapsi Informatica non dispone.
“I am not bound to win, but I am bound to be true. I am not bound to succeed, but I am bound to live by the light that I have. I must stand with anybody that stands right, and stand with him while he is right, and part with him when he goes wrong.” — Abraham Lincoln Ringraziamenti Innanzitutto vorrei esprimere la mia gratitudine al Prof. Tullio Vardanega, relatore della mia tesi, per la disponibilità e l’aiuto che mi ha fornito per la stesura della relazione. Desidero ringraziare la mia famiglia per il sostegno e il supporto che mi hanno sempre dato. Ringrazio anche l’altra "famiglia", quella che ho scelto e che mi ha scelto, composta da tutti gli amici che mi sono stati vicini negli anni. Soprattutto ringrazio Eleonora e Luna. Padova, Sep 2016 Marco Ceseracciu 25
Puoi anche leggere