Università degli Studi di Padova

Pagina creata da Tommaso Girardi
 
CONTINUA A LEGGERE
Università degli Studi di Padova
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
Università degli Studi di Padova
Marco Ceseracciu: Conversione di applicativo commerciale da Visual Basic 6 a Visual
Basic .NET, Tesi di laurea triennale, c Sep 2016.
Università degli Studi di Padova
Dedicato alla mia Famiglia.
Università degli Studi di Padova
Università degli Studi di Padova
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
Università degli Studi di Padova
Università degli Studi di Padova
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
Università degli Studi di Padova
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
Università degli Studi di Padova
ELENCO DELLE TABELLE   ix
Università degli Studi di Padova
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