• Non ci sono risultati.

Visualizzazione e gestione di fax in entrata

N/A
N/A
Protected

Academic year: 2022

Condividi "Visualizzazione e gestione di fax in entrata"

Copied!
62
0
0

Testo completo

(1)

UNIVERSITÀ DEGLI STUDI DI PADOVA

Facoltà Di Scienze MM.FF.NN.

Corso Di Laurea Triennale in Informatica

Visualizzazione e gestione di fax in entrata

Relatore: Laureando:

Francesca Rossi Mattia Meroi

Anno Accademico 2009/2010

(2)

Alla mia Famiglia

(3)

Sommario

Capitolo 1

1.1 Introduzione 7

Capitolo 2

2.1 ASI srl 8

2.2 Plain Documentale 9

2.3 Progetto Stage 11

Capitolo 3

3.1 Tecnologie utilizzate, Linguaggi, Software di sviluppo 12

3.2 Windows Presentation Foundation 13

3.3 NET Framework 15

3.4 Linguaggio C# 17

3.5 Linguaggio XML 19

3.6 Visual Studio Team System 2008 19

3.7 Log4net 20

3.8 Software per documentazione 20

3.8.1 Microsoft Word 2003 20

3.8.2 Microsoft Visio 21

3.8.3 Poseidon for UML 21

Capitolo 4

4.1 Attività stage 22

4.2 Situazione iniziale e studio del dominio 23

4.3 Descrizione generale 23

4.3.1 Premessa 24

4.3.2 Contesto d’ uso 25

4.3.3 Caratteristiche degli utenti – Casi d’ uso 25

4.3.4 Requisiti 34

Capitolo 5

5.1 Modello ciclo di vita adottato 41

5.1.1 Il modello evolutivo 41

5.2 Zetafax 42

5.3 Componenti 43

5.3.1 Intercettazione di nuovi fax 44

5.3.2 File CTL 46

5.4 File XML del fax 49

(4)

5.5 Lista delle classi 50

5.5.1 Main Class 50

5.5.2 Consolle applicativa 51

5.5.3 Configurazione consolle 52

5.5.4 Finestra per la visualizzazione di un fax 53

5.5.5 Valorizzazione automatica di attributi 54

5.6 File di configurazone 56

5.7 Verifica e validazione 56

Capitolo 6

6.1 Preventivo e consuntivo 58

6.2 Preventivo ore 59

6.3 Consuntivo ore 60

6.4 Requisiti soddisfatti 60

6.5 Obiettivi raggiunti 60

6.6 Possibili sviluppi 61

Bibliografia 62

(5)
(6)
(7)

Capitolo 1

Introduzione

Questo documento descrive il lavoro svolto durante la mia attività di stage presso la ASI S.r.l. nel periodo che va da Mercoledì 14 Ottobre 2009 a Martedì 22 Dicembre 2009.

Sono venuto a conoscenza di questa opportunità di stage grazie al documento rilasciato ogni anno durante l’incontro Stage-It 2009, un evento organizzato dall'Università degli Studi di Padova e dalla Camera di Commercio di Padova, pensato come luogo d'incontro tra le aziende e gli studenti. In questo documento sono raccolte le informazioni sulle aziende partecipanti all’evento e i progetti disponibili per l’inizio di uno stage.

Al mio primo colloquio alla ASI mi sono stati illustrati tutti i progetti che l’azienda proponeva, le aspettative e le varie priorità.

Tra i progetti proposti c’erano:

Visualizzazione e gestione di fax in entrata

Il progetto da me scelto consisteva nell’ analizzare il software per la gestione dei fax con lo scopo di intercettare i fax in arrivo da un software chiamato Zetafax.

Tutti i fax in arrivo dovranno essere salvati all’ interno della gestione documentale, con lo scopo di poter creare un legame con un documento o pratica aziendale.

L’ archiviazione dovrà avvenire prelevando alcune informazioni dal fax, come ad esempio il numero mittente o destinatario.

Nei prossimi capitoli si esamineranno più in dettaglio gli aspetti rilevanti, i problemi incontrati durante il percorso e gli aspetti tecnici legati allo sviluppo del prodotto.

(8)

Capitolo 2

2.1 ASI srl

ASI è una moderna società di software presente nel mercato dell’ Information Technology , con attività di progettazione e sviluppo di prodotti software di tipo industrializzato e di consulenza applicativa ed organizzativa.

I prodotti software, tutti appartenenti alla suite plain, esprimono specifiche competenze nelle seguenti aree:

• ERP per il settore Manifatturiero (plain® ERP Industria), con una particolare specializzazione nell’ Industria di stampaggio di materie plastiche;

• ERP per il settore Commerciale (plain® ERP Commercio), con particolari specializzazioni nel Commercio di Carta e Cancelleria, Commercio di articoli da Regalo Oggettistica e Giocattoli, Commercio di Ricambi Ferramenta ed Utensileria;

• Prodotti per la gestione delle presenze e la gestione delle risorse umane (plain® presenze e plain® Human Resource);

• Prodotti per la gestione di portali Aziendali (plain® portal),

• Prodotti per la gestione dei documenti Aziendali (plain® documentale);

• Prodotti per la reportistica Aziendale sul web (plain® extended data publisher)

• Prodotti per la gestione dell' e-commerce (plain® e-commerce);

• Prodotti per la gestione della rete di vendita (plain® agenti).

(9)

ASI è tra i fondatori di ICTLAB, gruppo di aziende promosso dalla Sezione Terziario Avanzato di Confindustria Padova allo scopo di contribuire allo sviluppo di un polo produttivo locale nel settore delle tecnologie ICT.

Presente nel mercato da 20 anni, ASI è Business Partner IBM e Gold Certified Partner di Microsoft, ha un organico di circa 50 persone e svolge la sua attività nell’ Italia settentrionale.

ASI collabora da anni con la Facoltà di Scienze dell'Università di Padova - Dipartimento di Matematica Pura ed Applicata - Informatica e Ingegneria Informatica - su progetti di ricerca e sviluppo che interessano le tecnologie e i prodotti su cui opera. Ha avuto riconoscimenti e premi nelle edizioni 2008 e nel 2009 del concorso STAGE-IT organizzato da ICTLAB-Confindustria Padova, Camera di Commercio di Padova, Università di Padova, Parco Scientifico e Tecnologico Galileo.

2.2 Plain® documentale

Plain® documentale è uno dei prodotti sviluppati da ASI, è uno strumento software di ultima generazione che aiuta le aziende a gestire il proprio patrimonio documentale.

Senza sconvolgere le abitudini operative degli utenti aziendali, interviene con risolutezza in quelle aree dove una gestione delle informazioni è tanto possibile quanto necessaria. Il prodotto software è dotato di un'interfaccia simile a quella utilizzata dagli utenti per le applicazioni dei loro Personal Computers, la cui fruizione alleggerisce il carico prodotto dall'archiviazione e gestione tradizionale dei documenti, riducendo i tempi di lavoro e le perdite che ne conseguono.

Plain® documentale facilita la ricerca, la condivisione e la trasmissione dei contenuti, la navigabilità tra i documenti, la sicurezza nell'accesso alle informazioni e l'unificazione dei diversi database documentali presenti in azienda, inoltre copre tutti i processi documentali:

• il ciclo attivo dei documenti prodotti dal sistema gestionale (dalla definizione del layout alla stampa, all'archiviazione, alla trasmissione via fax o e-mail);

• il ciclo attivo dei documenti office;

• il ciclo attivo e passivo della posta elettronica;

• il ciclo attivo e passivo dei documenti trattati via fax automatico;

(10)

• il ciclo passivo dei documenti cartacei;

• il supporto della firma digitale e della conservazione sostitutiva a norma;

Per ciclo attivo si intende l'insieme delle operazioni che un'azienda intrattiene con i suoi clienti e che determinano dei guadagni. Il ciclo passivo rappresenta invece l'insieme delle operazioni che un'azienda intrattiene con i suoi fornitori, e che determinano quindi delle uscite per la stessa. Nella gestione dei documenti i cicli attivo e passivo indicano rispettivamente l'insieme dei documenti prodotti dall'azienda e l'insieme dei documenti che l'azienda riceve a fronte dei servizi offerti.

Plain® documentale gestisce qualsiasi tipo di documento creando un unico ar-chivio di riferimento per tutti gli utenti aziendali. Possiede un motore di ricerca apido e accurato, che gestisce le autorizzazioni per utenti/gruppi e account/ruoli impedisce l'accesso a documenti e cartelle a chi non ne ha il permesso.

2.3 Progetto Stage

Il progetto a me proposto consiste nella realizzazione di un applicativo che permetta di gestire i fax in entrata. E’ stata realizzata un’applicazione consolle windows che riporta tutti i fax entrati e memorizzati in un’apposita cartella.

Da questa consolle sarà possibile visualizzare l’elenco dei fax, visualizzare un singolo fax e attribuire loro i metadati in relazione a quanto previsto da plain®

documentale. Inoltre sarà possibile archiviare in plain® documentale i fax e inoltrare notifiche di avvenuta pubblicazione in base alle regole previste.

Riassumendo l'applicazione doveva presentare le seguenti funzionalità:

• Sviluppare una console che permetta la gestione dei fax in entrata di Zetafax.

• I fax sono presenti in una cartella del file system windows.

• I fax devono essere associati a un tipo documento e/o sottotipo, prelevati da plain® documentale.

• Inserire attributi secondo il tipo e/o sottotipo documento.

(11)

• I fax possono essere archiviati in plain®documentale su istruzione di un utente.

• Il formato di archiviazione è G3F.

• Quando un fax è soggetto ad archiviazione, deve essere inviata una notifica in base all’organigramma aziendale.

• Deve essere possibile un automatismo per associazione degli attributi di un fax in base al contenuto del file CTL che accompagna il G3F.

• Visualizzare un singolo fax.

Una volta avuta l'approvazione del tutor interno dell'azienda si è potuto procedere con lo sviluppo del sistema, accompagnandolo con un apposito manuale utente e una specifica tecnica che ne illustrasse l'architettura.

(12)

Capitolo 3

3.1 Tecnologie utilizzate,Linguaggi,Software di sviluppo

L' ASI mi ha fatto usufrire di un personal computer con sistema operativo Windows XP Professional, con già preinstallate applicazioni e tecnologie utili per lo stage.

ASI utilizza prevalentemente tecnologie della famiglia Microsoft nel processo di sviluppo dei propri prodotti. Tra queste si sono dimostrate fondamentali il Windows Presentation Foundation, C# e Visual Studio per lo sviluppo dell'applicazione e Microsoft Visio e Microsoft Word per produrre la documentazione.

Le suddette tecnologie verranno approfondite nelle seguenti sezioni, assieme a Log4net, un'altra tecnologia sovente usata dall'azienda nei propri processi di sviluppo.

Inoltre, a solo scopo del progetto dello stage è stato utilizzato un altro tool al difuori di quelli standard utilizzati dall'azienda, ossia Poseidon.

Tutte le tecnologie da me utilizzate nel corso dello stage mi sono sembrate le più adette al raggiungimento del mio scopo.

Soprattutto l' utilizzo del programma Visual Studio 2008 è stato determinante per il progetto, anche se si poteva utilizzare una nuova è più aggiornata versione del software, tipo Visual Studio 2010.

Per quanto riguarda i software per la documentazone e per la creazione di diagrammi UML si poteva scegliere tra una vasta gamma di software in commercio che magari offrivano maggiori servizi (tipo BOUML per i diagrammi UML), ma ho deciso di utilizzare quelli prima citati per il motivo che mi sono stati consigliati dal tutor aziendale o perchè li conoscevo già.

Per il processo di debugging ho utilizzato Log4net perchè mi consentiva di avere un maggior controllo sull' evolversi del codice a dispetto della funzionalità di debugging già persente in Visual Studio 2008.

(13)

3.2 Windows Presentation Foundation

Windows Presentation Foundation (o WPF), nome in codice Avalon, è una libreria di classi del Framework .NET proprietarie Microsoft (introdotta con la versione 3.0) per lo sviluppo dell' interfaccia grafica delle applicazioni in ambienti Windows.

L'innovazione principale di WPF è la rimozione di ogni legame con il modello di sviluppo tradizionale di Windows, introdotto con la versione 1.0 del sistema operativo. Tutti i controlli sono stati riscritti (non si appoggiano più a quelli della libreria “user”) e lo stesso meccanismo basato su scambio di messaggi, cuore del modello di programmazione di Windows, è stato abbandonato.

WPF è basato su un sistema di grafica vettoriale che si appoggia alle DirectX per sfruttare l'accelerazione hardware delle moderne schede grafiche. WPF può essere impiegato per realizzare applicativi eseguibili anche all'interno del browser Microsoft Internet Explorer o di altri browser avanzati, purché sia presente il Framework. Il linguaggio usato per la creazione di una interfaccia utente in WPF è l' XAML (eXtensible Application Markup Language), basato su XML.

Architettura

L'architettura di Windows Presentation Foundation si basa sia su codice gestito che su codice nativo. Comunque, le API pubbliche esposte sono disponibili soltanto come codice gestito. Mentre il motore di composizione che renderizza le applicazioni WPF è un componente nativo. Il suo nome è Media Integration Layer

(14)

(MIL) e risiede in "milcore.dll". Esso si interfaccia direttamente con DirectX e provvede al supporto di base per le superfici 2D e 3D, effettua la manipolazione controllata nel tempo dei contenuti di una superficie con una vista per esporre animazioni costruite ad alto livello, esegue la composizione degli elementi individuali di una applicazione WPF nella scena finale 3D che rappresenta la UI dell'applicazione e quindi si incarica di renderizzarla sullo schermo. I media codec sono anche implementati come codice non gestito, e sono forniti da

"windowscodecs.dll". Nella parte di codice gestito abbiamo il PresentationCore ("presentationcore.dll") che fornisce un wrapper per MIL e implementa il cuore dei servizi per WPF e il PresentationFramework ("presentationframework.dll") che implementa le novità incluse layouts, time-dependent, story-board based animations e data binding.

Tutte le applicazioni WPF sono composte da 2 thread: il thread per gestire la UI e l'altro thread detto render thread che in maniera nascosta gestisce le funzioni di rendering e repainting. Perciò rendering e repainting sono gestite da WPF stesso, senza intervento dello sviluppatore. Il thread per la UI ospita il Dispatcher (attraverso un'istanza dell'oggetto DispatcherObject), il quale mantiene una coda di operazioni che necessitano di essere eseguite sulla UI (come un albero fatto di oggetti Visual, detto albero visuale) ordinate per priorità. Gli eventi della UI, compreso il cambiamento di una proprietà che riguarda il layout, ed eventi causati dall'interazione dell'utente sono accodati nel dispatcher, il quale invoca i gestori degli eventi. Microsoft raccomanda che i gestori degli eventi aggiornino solamente le proprietà; il nuovo contenuto sarà generato o recuperato dal render-thread.

Il render thread prende una copia dell'albero visuale e lo attraversa calcolando quali componenti saranno visibili e li renderizza come superfici Direct3D. Inoltre, all’inizio salva in una cache l'albero visuale, così che solo i cambiamenti all'albero devono essere comunicati e perciò soltanto i pixel cambiati risulteranno aggiornati.

WPF supporta un modello di layout estendibile. Il layout è diviso in due fasi che svolgono le funzioni di misurare ed adattare. Nella fase di misura vengono chiamati ricorsivamente tutti gli elementi e determinato lo spazio che essi prendono. Nella fase di adattamento, gli elementi figli vengono ricorsivamente

(15)

sistemati nello spazio dei loro genitori, invocando l'algoritmo di layout del modulo in uso.

3.3 NET Framework

.NET Framework è un ambiente multilinguaggio per la creazione, la distribuzione e l'esecuzione di servizi Web XML e di altre applicazioni. È costituito da tre parti principali:

Common Language Runtime Nonostante il nome, il CLR in realtà agisce sia nella fase di esecuzione che nella fase di sviluppo di un componente. Durante l'esecuzione del componente, il runtime è responsabile della gestione dell'allocazione di memoria, dell'avvio e interruzione di thread e processi e dell'implementazione della politica di protezione, nonché del rispetto di tutte le eventuali dipendenze tra il componente e gli altri. In fase di sviluppo, il ruolo del runtime varia leggermente; dato l'elevato numero di automatismi che implementa (ad esempio la gestione della memoria), semplifica notevolmente il compito dello sviluppatore, soprattutto se paragonato al modello COM attualmente in uso. In particolare, vi sono alcune caratteristiche, come la reflection, che riducono drasticamente la quantità di codice che lo sviluppatore deve scrivere per trasformare la logica business in un componente riutilizzabile;

classi di programmazione unificate Il framework offre agli sviluppatori un insieme unificato di librerie di classi (API) estensibile, gerarchico e orientato ad oggetti. Attualmente, gli sviluppatori C++ utilizzano le classi MFC (Microsoft Foundation Classes) e gli sviluppatori Java utilizzano le classi WFC (Windows Foundation Classes). Il framework unisce questi modelli e consente l'accesso alle librerie di classi anche ai programmatori Visual Basic e JScript. Creando un insieme di API comune a tutti i linguaggi di programmazione, il Common Language Runtime assicura l'ereditarietà, la gestione degli errori e il debug multilinguaggio. Tutti i linguaggi di programmazione, da JScript a C++, hanno accesso analogo al framework, lasciando agli sviluppatori la facoltà di utilizzare il linguaggio che preferiscono;

(16)

ASP.NET Si basa sulle classi di programmazione di .NET framework e fornisce un modello di applicazione Web con un insieme di controlli e un'infrastruttura che semplificano la creazione di applicazioni Web ASP. Contiene inoltre un insieme di controlli che integrano elementi comuni dell'interfaccia utente HTML, quali caselle di testo e menu a discesa. Tali controlli, tuttavia, vengono eseguiti sul server Web e svolgono il push della propria interfaccia come HTML sul browser.

Sul server, i controlli espongono un modello di programmazione orientato ad oggetti che consente agli sviluppatori Web di sfruttare tutte le potenzialità della programmazione orientata ad oggetti. ASP.NET fornisce anche servizi di infrastruttura, quali la gestione dello stato delle sessioni e il riciclo di processi, che riducono ulteriormente la quantità di codice che lo sviluppatore deve scrivere, aumentando nel contempo l'affidabilità dell'applicazione. ASP.NET utilizza questi stessi concetti per consentire agli sviluppatori di distribuire software come servizio. Avvalendosi delle funzionalità dei servizi Web XML, gli sviluppatori ASP.NET possono scrivere la logica business e utilizzare l'infrastruttura ASP.NET per distribuire tale servizio tramite SOAP. Per ulteriori informazioni, vedere Soap CommunityLinks

(17)

3.4 Linguaggio C#

C# (si pronuncia C sharp) è un linguaggio di programmazione object-oriented sviluppato da Microsoft all’interno del framework .NET, e successivamente approvato come standard ECMA. C# è uno dei pochi linguaggi di programmazione che può essere definito completamente orientato agli oggetti. La sintassi prende spunto da quella del C++ e da quella di Java, e da Visual Basic per gli strumenti di programmazione visuale e per la sua semplicità (meno simbolismo rispetto a C++, meno elementi decorativi rispetto a Java).

C# è, in un certo senso, il linguaggio che meglio degli altri descrive le linee guida sulle quali ogni programma .NET gira; questo linguaggio è stato infatti creato da Microsoft specificamente per la programmazione nel Framework .NET. I suoi tipi di dati primitivi hanno una corrispondenza univoca con i tipi .NET e molte delle sue astrazioni, come classi, interfacce, delegati ed eccezioni, espongono esplicitamente caratteristiche proprie del .NET framework. In confronto al C++ il linguaggio ha subito una serie di modifiche volte principalmente ad evitare quegli errori tipici della programmazione C:

i puntatori possono essere utilizzati solo in particolari blocchi di codice marcati come “unsafe”;

in molte operazioni aritmetiche vengono controllati eventuali “overflow”;

gli oggetti dinamici non vengono deallocati esplicitamente; la loro rimozione viene gestita automaticamente (implicitamente) dal garbage collector quando non esistono più riferimenti a tali oggetti. Questa gestione evita i due problemi ben noti dei dangling pointer e del memory leak;

come in Java, è possibile ereditare da una sola classe (diversamente da come avviene in C++) ma è possibile implementare un numero indefinito di interfacce;

le sole conversioni implicite che sono consentite sono quelle “safe”, ovvero che non espongono al rischio di perdita di dati causata dalla diversa tipologia di dato. Ad esempio non sono consentite conversioni implicite fra int e bool o fra enum ed int;

(18)

C# non possiede i template (tipici del C++) ma nella versione 2.0 sono stati introdotti i generics;

Sebbene C# sia ritenuto simile a Java, una risposta commerciale alla Sun Micro-

system, esistono alcune importanti differenze fra i due linguaggi:

Java non gestisce le proprietà di una classe;

Java non permette il sovraccarico (overload) degli operatori;

Java non permette blocchi di codice “unsafe” che consentono di gestire i puntatori;

Java utilizza i commenti Javadoc-sintax per generare la documentazione dal codice sorgente, mentre C# utilizza la sintassi XML nei commenti per lo stesso scopo;

C# supporta gli indicizzatori ed i delegati;

C# supporta le strutture; blocchi di memoria che non derivano dalla classe object e che sono memorizzati nello stack (value-type).

Come Java ha i suoi package anche in C# possiamo ritrovare una serie di classi già sviluppate per l’interazione con i vari ambienti, Front End, Database, XML e altri.

Quello che in Java è chiamato package viene chiamato namespace o “spazio dei nomi”. Le classi sono organizzate all’interno di una serie di namespace che le raggruppano per funzionalità simili; ad esempio System.Windows.Forms per la gestione delle finestre di tipo “form”, System.Xml per l’elaborazione di XML e System.Data per l’accesso alle basi dati. Un ulteriore livello di organizzazione è costituito dagli “assembly”. Un assembly può essere un singolo file od una serie di file linkati fra di loro. Un assembly può avere al suo interno diversi spazi di nomi.

Microsoft ha sottoposto C# ad ECMA (European Computer Manufacturers Association) per una standardizzazione formale. Nel Dicembre del 2001 ECMA ha rilasciato “ECMA-334 C# Language Specification”. C# è diventato uno standard ISO nel 2003 (ISO/IEC 23270). Esistono implementazioni indipendenti di .NET e del C#, fra cui il progetto Mono di Ximian e dotGNU & Portable .NET della Free Software Foundation. Recentemente Microsoft ha introdotto, nella versione 2.0 del framework, i generics, le partial-class ed altre nuove funzionalità. È stata proposta

(19)

la standardizzazione ECMA/ISO anche per queste funzionalità, ma allo stato attuale non fanno parte della definizione standard del linguaggio.

3.5 Linguaggio XML

XML (acronimo di eXtensible Markup Language) è un metalinguaggio di markup, ovvero un linguaggio marcatore che definisce un meccanismo sintattico che consente di estendere o controllare il significato di altri linguaggi marcatori.

Costituisce il tentativo di produrre una versione semplificata di SGML (Standard Generalized Markup Language) che consenta di definire in modo semplice nuovi linguaggi di markup da usare in ambito web. Il nome indica quindi che si tratta di un linguaggio marcatore (markup language) estensibile (eXtensible) in quanto permette di creare tag personalizzati.

3.6 Visual Studio Team System 2008

Visual Studio rappresenta un insieme completo di strumenti per la compilazione di applicazioni Web aziendali per la produttività individuale e per il lavoro di gruppo. Oltre che per la compilazione di applicazioni desktop ad alte prestazioni, è possibile utilizzare i potenti strumenti di sviluppo basati su componenti e le altre tecnologie di Visual Studio per semplificare la progettazione, lo sviluppo e la distribuzione orientati ai team di soluzioni aziendali.

Più in particolare si tratta di un insieme completo di strumenti di sviluppo per la compilazione di applicazioni Web ASP.NET, Servizi Web XML, applicazioni desktop e applicazioni per dispositivi mobili. Visual Basic, Visual C# e Visual C+

+ utilizzano lo stesso ambiente di sviluppo integrato (IDE) che consente di condividere lo strumento e semplifica le creazione di soluzioni con linguaggio misto. Questi linguaggi sfruttano inoltre le funzionalità di .NET framework, che fornisce l'accesso a tecnologie chiave in grado di semplificare lo sviluppo di applicazioni Web ASP e Servizi Web XML.

(20)

Microsoft Visual Studio Team System 2008 è una delle versioni disponibili oltre alla Express e alla Professional, ed è la soluzione per la gestione del ciclo di vita delle applicazioni (ALM, Application Lifecycle Management) composta da strumenti, processi e procedure che consentono ai membri del team di migliorare le proprie competenze e di collaborare più efficacemente. Visual Studio Team System consente ai membri del team di:

• Collaborare e comunicare con maggiore efficienza con altri membri del team e i soggetti interessati al settore commerciale.

• Garantire qualità del software tramite strumenti di qualità avanzati in ogni fase del ciclo di vita dell'applicazione.

• Acquisire visibilità nell'attività e nelle priorità del progetto per prendere decisioni consapevoli in base ai dati e in tempo reale.

3. 7 Log4net

Log4net e un tool open source che aiuta i programmatori a ottenere dei log in una vasta varieta di output in uscita. E una porta del framework di logging log4j per framework Microsoft .NET.

Log4net fa parte del progetto Apache Logging Services, che ore servizi di log per il debugging e auditing delle applicazioni. E stato quindi cruciale nella localizzazione di problemi, grazie alla sua capacita di mostrare lo stato dell'applicazione in qualsiasi punto e alla possibilita di memorizzare i log in output.

3.8 Software per la documentazione 3.8.1 Microsoft Word 2003

Per la stesura dei documenti di analisi e specifica tecnica richiesti è stato utilizzato Microsoft Word 2003 e il modello (.dot) di riferimento già adottato e standard all’interno dell’azienda.

(21)

3.8.2 Microsoft Visio

Microsoft Visio è un Software per la creazione di grafici e diagrammi, sviluppato da Micrososft per i sistemi operativi Windows e disponibile in diverse edizioni per la suite Office.

3.8.3 Poseidon for UML

Poseidon for UML è un' applicazione software usate per creare modelli con il linguaggio UML(Unfied Modeling Language) e la generazione automatica di codice in C#, C++, CORBA IDL, Delphi, Perl, PHP4, SQL DDL, e VB.net

(22)

Capitolo 4

4.1 Attività di stage

La prima fase dell'attività di stage richiedeva l'acquisizione di conoscenze riguardanti le tecnologie da utilizzare, ossia il Framework .NET, il linguaggio C#, WPF e Visual Studio.

La somiglianza di C# con i linguaggi C++ e Java ha reso la sua comprensione abbastanza semplice.

Ho dato una priorità agli argomenti da imparare in base ai seguenti parametri:

• complessità di utilizzo: le tecnologie che richiedevano un apprendimento più approfondito per la loro complessità di utilizzo hanno ricevuto priorità;

• somiglianza con strumenti già conosciuti: strumenti che avessero caratteristiche già incontrate altrove, lasciavano il posto a quelle che invece risultavano completamente nuove;

• ipotesi sulla frequenza d’uso nel corso del progetto: in questo caso la priorità è stata data agli strumenti che sarebbero stati ipoteticamente utilizzati con una certa regolarità e frequenza nel corso di tutto lo stage;

L’azienda ha fornito un corso a questo scopo e un documento di codifica standard aziendale, al quale ho dovuto attenermi per la scrittura del codice e dei commenti.

Alla fine dello studio di C#, IDE e standard di codifica, mi sono dedicato alla creazione di alcuni esempi di prova di interfacce grafiche in WinForm e successivamente WPF.

La fase successiva è stata quella di analisi dei requisiti, che si è leggermente sovrapposta con quella di progettazione, in quanto alcune peculiarità del progetto sono potute emergere solo in fase più avanzata.

Dopo una lunga fase di progettazione in cui si sono definite tutte le componenti e quasi tutte le classi del progetto è iniziata quella di codifica, che non ha richiesto un'esigua mole di lavoro.

(23)

Alla fine del capitolo viene descritta la verifica e la validazione del prodotto, che come attività hanno però avuto inizio già in fase di codifica.

L'ultima fase pianificata è stata invece la documentazione del prodotto, ovvero la redazione finale della documentazione una volta terminato il progetto.

4.2 Situazione iniziale e studio del dominio

All’inizio del progetto mi è stato assicurato che la parte di estrazione dati, cioè ricavare le proprietà dei fax e i relativi attributi specifici dal database, attraverso il Web Service comune, sarebbe stata una cosa abbastanza veloce da realizzare, in quanto già utilizzata per altri moduli presenti all’interno dell’azienda.

Al momento della costruzione di tale modulo ho avuto l’appoggio da parte del tutor che mi ha spiegato come accedere al portale, che funzioni usare per utilizzare i metodi per estrarre le informazioni relative ai fax.

4.3 Descrizione generale 4.3.1 Premessa

Dopo la fase di studio sono stati fatti vari incontri per formalizzare le richieste del cliente, identificando in modo univoco i requisiti richiesti, necessari alla fase di sviluppo relativamente alla commessa. In questa analisi si riportano tutti i requisiti emersi nel corso dell’intero stage che, per una maggiore comprensione delle varie scelte effettuate, verranno classificati anche in base alla fase in cui sono stati introdotti.

4.3.2 Contesto d’uso

L’applicazione verrà integrata in plain® documentale e sarà utilizzabile attraverso un qualsiasi personal computer della rete aziendale.

(24)

4.3.3 Caratteristiche degli utenti

Agli utenti non sono richieste competenze informatiche aggiuntive rispetto agli altri prodotti della suite plain.

Casi d’ uso

Fin da subito è stato definito un diagramma generale per i casi d'uso, che includeva tutte le funzionalità espresse nel piano di progetto dell'azienda.

Nelle prossime tabelle si riportano, per ogni use case rilevato in fase di analisi, le seguenti informazioni: gli attori coinvolti, lo scopo, il flusso di eventi, quali altri casi d’uso include o estende, le precondizioni e le postcondizioni.

Use case Apre consolle

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di avviare l’applicazione consolle.

Flusso di eventi (scenario base) L’utente ha la necessità di avere una consolle per la gestione dei fax.

Include i seguenti casi d’uso Configura le cartelle Configura le mappature Visualizza i fax

(25)

Use case Apre consolle È esteso dai seguenti casi d’uso

Precondizioni L’applicazione è stata installata correttamente.

Postcondizioni L’applicazione è aperta.

Use case Configura le cartelle

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di impostare la cartella dalla quale

l’applicazione legge i fax; inoltre ha anche la possibilità di configurare il servizio di backup.

Flusso di eventi (scenario base) L’utente ha la necessità di visualizzare i fax contenuti in una cartella per poterli manipolare a piacimento, inoltre richiede anche un servizio di backup di tali file.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni L’applicazione è aperta.

Postcondizioni La configurazione è stata avviata.

Use case Configura le mappature

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di configurare un’associazione tra gli attributi di un documento e le proprietà del fax.

Flusso di eventi (scenario base) L’utente ha la necessità di valorizzare in automatico alcuni attributi di un documento in plain® documentale, utilizzando le proprietà

prelevate da un fax.

Include i seguenti casi d’uso

(26)

Use case Configura le mappature È esteso dai seguenti casi d’uso

Precondizioni L’applicazione è aperta.

Postcondizioni La configurazione della mappatura è stata avviata.

Use case Visualizza i fax

Attori coinvolti Utenti

Scopo e descrizione sintetica L’utente, tramite l’applicazione, ha la possibilità di vedere l’elenco dei fax classificati nei vari stati.

Flusso di eventi (scenario base) L’utente ha la necessità di gestire i fax in arrivo e in tutti gli altri stati.

Include i seguenti casi d’uso

È esteso dai seguenti casi d’uso Visualizza i fax in arrivo Visualizza i fax in eliminati Visualizza i fax in archiviati Precondizioni L’applicazione è aperta e configurata.

Postcondizioni Appare l’elenco dei fax.

(27)

Flusso degli stati in cui può trovarsi un fax.

Use case Visualizza i fax in arrivo

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di visualizzare i fax in arrivo.

Flusso di eventi (scenario base) L’utente ha richiesto di poter gestire i fax in arrivo.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni Appare l’elenco dei fax.

Postcondizioni Appare l’elenco dei fax in stato “Ricevuto”.

Flusso dello stato di ricezione

(28)

Use case Visualizza i fax in eliminati

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di visualizzare i fax eliminati.

Flusso di eventi (scenario base) L’utente ha richiesto di poter spostare in un cestino virtuale i fax.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni Appare l’elenco dei fax.

Postcondizioni Appare l’elenco dei fax in stato “Eliminato”.

Use case Visualizza i fax in archiviati

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di visualizzare i fax archiviati in plain®

documentale.

Flusso di eventi (scenario base) L’utente ha richiesto di poter archiviare i fax ricevuti in plain®

documentale.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni Appare l’elenco dei fax.

Postcondizioni Appare l’elenco dei fax in stato “Archiviato”.

(29)

Use case Elimina un fax

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di eliminare un fax in stato “Ricevuto” o

“Archiviato”.

Flusso di eventi (scenario base) L’utente ha richiesto di poter spostare in un cestino logico i fax che vuole eliminare.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni Visualizza l’elenco dei fax.

Postcondizioni Il fax viene spostato in stato “Eliminato”.

Flusso dello stato di eliminazione

Use case Visualizza un fax

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di visualizzare un singolo fax.

Flusso di eventi (scenario base) L’utente ha espresso la necessità di poter visualizzare un singolo fax.

Include i seguenti casi d’uso Richiede l’archiviazione di un fax Modifica le proprietà di un fax Modifica gli attributi di un fax

(30)

Use case Visualizza un fax È esteso dai seguenti casi d’uso

Precondizioni Visualizza l’elenco dei fax.

Postcondizioni Il fax è visualizzato dall’apposita applicazione.

Use case Richiede l’archiviazione di un fax

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di avviare l’archiviazione di un fax.

Flusso di eventi (scenario base) L’utente ha espresso la necessità di archiviare un fax ricevuto in plain® documentale.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni Il fax è visualizzato dall’apposita applicazione.

Postcondizioni Il fax è passato allo stato “Archiviato”.

Use case Modifica le proprietà di un fax

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la possibilità di modificare alcune delle proprietà di un fax, come ad esempio l’account o il referente.

Flusso di eventi (scenario base) L’utente ha espresso la necessità di impostare un account o un referente nel caso non sia prelevato automaticamente oppure non sia stata configurata nessuna mappatura.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

(31)

Use case Modifica le proprietà di un fax

Precondizioni Il fax è visualizzato dall’apposita applicazione.

Postcondizioni Il fax possiede le proprietà modificate.

Use case Modifica gli attributi di un fax

Attori coinvolti Utente

Scopo e descrizione sintetica L’utente ha la facoltà di modificare gli attributi associati al documento fax.

Flusso di eventi (scenario base) L’utente ha la necessità di inserire manualmente eventuali attributi non riportabili automaticamente o non riconosciuti.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni Il fax è visualizzato dall’apposita applicazione.

Postcondizioni Il fax possiede gli attributi modificati.

Use case compiti del sistema

(32)

Use case Esegue un backup dei fax nuovi in arrivo

Attori coinvolti Sistema

Scopo e descrizione sintetica Quando l’applicazione consolle è in esecuzione, il sistema effettua una copia di backup dei fax arrivati.

Flusso di eventi (scenario base) L’utente ha la necessità di preservare il fax originale.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni L’applicazione consolle è aperta e configurata.

Postcondizioni I nuovi fax saranno copiati nella cartella configurata.

Use case Valorizza in automatico gli attributi in base alla mappatura

Attori coinvolti Sistema

Scopo e descrizione sintetica Il sistema esegue una valorizzazione automatica degli attributi non appena l’utente ha selezionato il sottotipo di documento.

Flusso di eventi (scenario base) L’utente ha espresso la necessità di valorizzare in automatico alcuni degli attributi.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni L’applicazione consolle è aperta e configurata.

Postcondizioni Gli attributi sono valorizzati senza intervento umano.

(33)

Use case Salva gli attributi di un fax in un file XML

Attori coinvolti Sistema

Scopo e descrizione sintetica Il sistema salva gli attributi in un file XML con lo stesso nome del file G3F.

Flusso di eventi (scenario base) Un utente può impostare gli attributi e non archiviare il documento, in questo caso il sistema interviene e salva gli attributi in locale.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni L’applicazione consolle è aperta e configurata.

Postcondizioni È presente un file con estensione XML nella cartella dei ricevuti.

Use case Salva la configurazione della mappatura

Attori coinvolti Sistema

Scopo e descrizione sintetica Il sistema salva in un file XML che accompagna l’applicazione consolle, la configurazione desiderata, per l’autocompletamento degli attributi.

Flusso di eventi (scenario base) L’utente ha espresso la necessità di valorizzare in automatico alcuni degli attributi tipizzati.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni L’applicazione consolle è aperta e configurata.

Postcondizioni Nella cartella dell’applicazione, è presente un file XML.

(34)

Use case Salva la configurazione delle cartelle

Attori coinvolti Sistema

Scopo e descrizione sintetica Il sistema salva in un file XML che accompagna l’applicazione consolle, la configurazione desiderata, per le cartelle gestite.

Flusso di eventi (scenario base) L’utente ha espresso la necessità di conservare una copia di backup per file.

Include i seguenti casi d’uso È esteso dai seguenti casi d’uso

Precondizioni L’applicazione consolle è aperta e configurata.

Postcondizioni Nella cartella dell’applicazione, è presente un file XML.

4.3.4 Requisiti

La tabella qui sotto riporta i requisiti del prodotto e per identificare ogni requisito si utilizzata la convenzione dell'azienda, ovvero:

• O: Obbligatorio, denota i requisiti sviluppati in ogni caso,

• D: Desiderabile, sono i requisiti implementati al termine di tutti gli O in caso sia rimasto del tempo,

• F: Facoltativo/Opzionale, sono requisiti opzionali che saranno inseriti solo al termine dei D.

Le finestre sono state progettate senza vincoli di stile.

Requisiti funzionali (RF)

ID Tipo Descrizione Fonte

O La consolle deve premettere la gestione dei fax in arrivo di Zetafax.

O La consolle deve monitorare la cartella configurata.

O Tutti i fax nella cartella sono spostati dalla consolle in una sottocartella nominata

(35)

ID Tipo Descrizione Fonte

“Received”.

O Per ogni fax, sarà creato un file XML che contiene le informazioni prelevate dal CTL e le varie proprietà dedotte.

O A ogni fax deve essere associato un tipo documento.

O A ogni fax deve essere associato un sottotipo documento.

O Deve essere possibile valorizzare gli attributi legati al tipo documento e sottotipo.

O La valorizzazione può essere automatizzata se configurata una mappatura.

O Deve essere possibile configurare una mappatura tra gli attributi di documento e le proprietà di un fax.

O I fax possono essere archiviati nel sistema documentale plain su richiesta dell’utente di consolle.

O Il formato di archiviazione sarà G3F (Zetafax).

O La consolle deve archiviare il fax anche in formato PDF/A.

O L’archiviazione di un fax deve scatenare le notifiche in base all’organigramma aziendale.

O L’archiviazione di un fax deve basarsi sul template di sottotipo documento utilizzato nel ciclo passivo.

O Se un documento non ha un sottotipo, non potrà essere archiviato.

O Se un sottotipo di documento non ha un template configurato, non sarà disponibile.

O La consolle deve essere in grado di rilevare le informazioni disponibili e utili per l’applicazione dal file CTL che affianca il G3F.

O Le informazioni sono: codice univoco del messaggio, data e ora di ricezione e numero di fax del mittente.

O In base al numero fax mittente deve essere effettuata una ricerca tra i Referenti plain, se ne è presente uno con quel numero di fax.

(36)

ID Tipo Descrizione Fonte

1. O Se è presente uno, è utilizzato per valorizzare le proprietà del fax (Referente e Account).

O Se è presente più di uno non sarà effettuata alcuna associazione.

3. O Se non è presente, il numero fax mittente deve essere cercato all’interno dell’anagrafica account.

O Se è presente uno, è utilizzato per valorizzare le proprietà del fax (Account).

O Se è presente più di uno non sarà effettuata alcuna associazione.

O Se non è presente, non sarà effettuata alcuna associazione.

O Sarà permesso effettuare una associazione di un account in fase di modifica fax.

F Deve essere possibile associare il numero non trovato a un account esistente o a un referente, memorizzando l’informazione.

F Deve essere possibile aggiungere un referente a un account.

O Deve essere possibile visualizzare un singolo fax.

8. O I fax non devo essere cancellati in modo definitivo dall’applicazione consolle.

O Tutti i file cancellati finiscono in un cestino virtuale, quale una cartella.

O La cancellazione fisica è a carico dell’amministratore di sistema (Windows).

O Il servizio deve permettere di intercettare i fax in arrivo e di copiarli in una cartella.

O Il servizio deve avere una cartella sorgente.

O Il servizio deve monitorare la cartella sorgente e le sottocartelle in essa incluse.

2. O Il servizio deve avere una cartella di destinazione.

O Il servizio deve copiare il file G3F e CTL rilevato.

O Deve essere possibile abilitare un’area administrator alla gestione dei fax.

(37)

ID Tipo Descrizione Fonte O La consolle deve permettere un refresh manuale della lista dei fax ricevuti.

O La consolle deve ricaricare automaticamente la lista dei fax ricevuti.

D La consolle deve avere nella configurazione una cartella per lo smistamento fax.

D La consolle deve permettere lo smistamento di un fax in stato “Ricevuto”.

D Lo smistamento è consentito solo verso un area administrator abilitato alla gestione dei fax.

D Lo smistamento di un fax sposta fisicamente il fax nella cartella dell’area administrator indicato.

1. D Se la cartella di smistamento e “C:\Fax” e il destinatario è “RA”, il fax è spostato in C:\Fax\RA.

2. D L’area administrator RA, quando apre la consolle, si trova anche i fax inoltrati, ma sempre nell’elenco in stato “Ricevuti”.

Requisiti di qualità

ID Tipo Descrizione Fonte

O Deve essere disponibile un manuale utente in formato HTML.

O Utilizzando il tasto F1 della tastiera deve essere visualizzato il manuale.

O Utilizzando la voce di menu ? deve essere visualizzato il manuale.

O La consolle deve supportare il multilingua.

O Il servizio deve supportare il multilingua.

(38)

Requisiti d’interfacciamento

ID Tipo Descrizione Fonte

O La consolle deve ottenere un passport dal portale plain.

O Se non lo ottiene, deve permettere di specificare un portale e un utente.

2. O Un’area administrator per gestire i fax, deve essere stato abilitato.

O Deve essere possibile archiviare un fax come per il ciclo passivo, tramite template.

Requisiti grafici

.

ID Tipo Descrizione Fonte

O La consolle deve presentare l’elenco dei fax in arrivo.

O La consolle deve presentare l’elenco dei fax archiviati.

O La consolle deve presentare l’elenco dei fax eliminati.

O Sarà disponibile un menù contestuale che permette l’apertura e la cancellazione di un fax.

1. O Deve essere presente la voce Archivia.

O Sarà disponibile il tasto CANC per cancellare il fax selezionato.

O Sarà disponibile il tasto INVIO per aprire il fax selezionato.

O Sarà disponibile il doppio click per aprire un fax da un elenco.

O Il visualizzatore deve riportare il fax paginato e le relative proprietà.

O Il visualizzatore deve riportare l’anteprima delle pagine del fax.

O Tra le proprietà, deve essere presente una casella combinata per selezionare un referente nel caso in cui dal numero mittente siano emersi più di un elemento.

(39)

ID Tipo Descrizione Fonte O Tra le proprietà, deve essere presente una casella combinata per selezionare un

account nel caso in cui dal numero mittente siano emersi più di un elemento.

O Di fianco alla proprietà referente e account è presente un pulsante che permette di cercare e selezionare uno di questi.

5. O Il visualizzatore deve riportare un pulsante che permetta l’archiviazione del fax.

9

. O La consolle deve presentare una finestra per la configurazione della mappatura.

1 0 .

O La consolle deve presentare una finestra per la configurazione delle cartelle.

1 1 .

O La finestra di mappatura deve permettere di selezionare un tipo documento.

1. O Deve permettere di selezionare un sottotipo in relazione al tipo documento.

1. O Deve riportare l’elenco degli attributi in base a tipo e sottotipo di documento.

2. O Per ogni attributo deve essere possibile selezionare una proprietà del fax.

3. O Non deve essere obbligatorio specificare una associazione per ogni attributo.

1 2 .

O La consolle deve permettere di raggruppare l’elenco dei fax per ogni colonna della griglia (come fa MS Outlook 2007).

1 3 .

O Deve essere possibile ordinare l’elenco dei fax per ogni colonna della griglia.

1 4 .

O Deve essere possibile spostare le colonne della griglia che riporta l’elenco.

1 5 .

O Alla chiusura dell’applicazione debbono essere salvate le configurazioni grafiche permesse.

1 6 .

O La griglia di elenco deve permettere la selezione di più di un fax.

1 7 .

O Deve essere disponibile un menu standard (File, strumenti …).

(40)

ID Tipo Descrizione Fonte

1. O Il menù deve riportare tutte le funzioni abilitate all’interno della consolle.

1 8 .

O Il servizio per la copia dei fax deve comparire nella finestra della consolle di plain® documentale.

1. O Il servizio deve potersi installare come tutti gli altri della documentale.

2. O Il servizio deve presentare una finestra di configurazione che richiede: cartella sorgente, cartella di destinazione e se la funzione di controllo precedente è attiva.

1 9 .

O Nella pagina di modifica di un’area administrator deve essere possibile impostare il flag di abilitazione alla consolle di gestione fax.

2 0 .

O La consolle deve rendere disponibile una finestra di configurazione.

1. O Deve essere possibile impostare la cartella sorgente dalla quale la consolle preleva i fax in arrivo.

2. D Deve essere possibile impostare una cartella per lo smistamento dei fax.

Requisiti prestazionali

ID Tipo Descrizione Fonte

1

. O Il tempo di apertura della consolle non deve superare la decina di secondi.

2

. O Il tempo di apertura di un fax non deve superare la decina di secondi.

(41)

Capitolo 5

Progettazione e sviluppo

5.1 Modello di ciclo di vita adottato

Il modello di ciclo di vita adottato per lo sviluppo del progetto è stato quello evolutivo. La scelta è stata dettata essenzialmente dal fatto che l’azienda voleva un prototipo iniziale per farne una valutazione ed eventualmente apportare modifiche in fase di progettazione, come è effettivamente avvenuto. Di conseguenza si è scelto un modello di ciclo di vita che permettesse il soddisfacimento di nuove richieste e l’aggiunta incrementale di moduli non previsti in partenza.

5.1.1 Il modello evolutivo

Il modello evolutivo è uno dei modelli del ciclo di vita del software che cerca di superare i limiti principali del modello a cascata. Si basa sulla creazione di un prototipo, cioè nell'uso di specifici strumenti software per la realizzazione rapida di una versione semplificata del sistema informativo, con la quale sperimentare le sue funzionalità. La verifica del prototipo può portare a una modifica dei requisiti e una eventuale revisione del progetto.

Con il fallimento della prima versione software, infatti, occorre rifare buona parte dell’applicazione. In tal modo conviene considerare la prima versione come un throw-away (un prototipo "cestinabile") che è valido finché non fornisce al progettista un feed-back sufficiente. La versione iniziale o prototipo viene utilizzata temporaneamente dopo di che viene cestinata e si procede a produrre l'applicazione vera e propria. La seconda versione può essere sviluppata seguendo il modello a cascata.

(42)

È un modello costituito, quindi, da poche fasi che si ripetono:

Costruisci qualcosa;

Consegnalo all’utente;

Ottieni delle valutazioni;

Modifica il progetto in funzione delle valutazioni.

Questo approccio fornisce solo una soluzione parziale ai problemi del modello a cascata per cui elimina gli errori nei requisiti ma non riduce la distanza temporale per il completamento del ciclo di sviluppo.

Alcune fasi possono essere rimandate in modo da produrre comunque un insieme utile di funzionalità. In tal modo si forniscono al cliente una serie di prototipi successivi e si integrano i feedback in maniera graduale.

Il modello si può complicare ulteriormente per cui le fasi possono anche essere concorrenti, ad esempio mentre si integra una versione, già si lavora sul design di quella successiva. I tempi si riducono di parecchio ma i rischi sono tantissimi.

Il problema maggiore di questo modello è che si rischia di essere indisciplinati. È necessario far uso di standard di processo e non perdere i punti migliori del modello a cascata. In tal modo scompare la fase di manutenzione e si parla di evoluzione continua. A volte il modello throw-away si può sostituire con un prototipo evolutivo che poco per volta si trasforma nell’applicazione finale. Il modello, comunque è molto utile per verificare alcune componenti del software come le interfacce, poichè si possono creare interfacce adatte all’utente e ben testate.

5.2 Zetafax

Zetafax è un software versatile e potente che consente di scrivere, ricevere ed inviare fax senza lasciare la propria postazione di lavoro e, conseguentemente, di risparmiare tempo.

E’ possibile rendere direttamente disponibili nel client Zetafax tutti quei documenti che vengono inviati via fax con regolarità in modo che possano essere

(43)

indirizzati più velocemente come allegati. Possono essere preparate copertine e carta intestata, con la possibilità di vedere l’anteprima del fax prima dell’invio.

Zetafax può essere utilizzato anche per spedire sms dalla propria postazione, per comunicare velocemente con i colleghi o utenti di telefonia mobile.

Durante la fase di analisi, sono state studiate anche le Zetafax Api per cercare di capire se tramite quel toolkit offerto, c’era la presenza di funzioni immediate per l’intercettazione dei fax. Dallo studio effettuato, le api si collegano a un utente, per cui è possibile intercettare solamente i fax di quel determinato utente e non tutti i fax in arrivo.

5.3 Componenti

Sono state utilizzate molte dll già esistenti create da ASI, come ad esempio per l'autenticazione ed accesso al database. Una visuale completa delle componenti preesistenti.

My Application denota l'applicazione principale, comprende cioè le classi definite per l'avvio ed esecuzione del programma e le schermate che vi appaiono.

Tale applicazione utilizza le dll del gruppo WrapperWebServices Attributi Specifici che contiene classi per esprimere entità come i documenti, nonchè classi per l'ottenimento della lista di tutti i documenti presenti su database.

(44)

5.3.1 Intercettazione di nuovi fax

L’intercettazione di nuovi fax, sarà effettuata tramite un servizio che si occuperà di monitorizzare una cartella, il quale si attiva alla creazione di un file G3F.

Quando si attiva, crea una copia del fax, dalla cartella sorgente (quella gestita da Zetafax) alla cartella di backup (quella gestita dalla consolle).

Il servizio sarà configurabile nella consolle di configurazione di plain®

documentale. Nella configurazione, sarà possibile indicare se controllare solo i fax arrivati dal momento dell’attivazione del servizio oppure anche tutti quelli precedenti all’ultimo controllo effettuato dal servizio (la data di ultimo controllo sarà salvata in un file xml nella directory del servizio).

Il controllo retro attivo potrebbe essere lento, poiché devono essere letti tutti i file e poi filtrati per data.

Le copie disponibili di un fax sono solo due: una per l’utente e una per l’archivio Zetafax se abilitato.

(45)

Esempio di file G3F:

(46)

5.3.2 File CTL

Per ogni fax esiste un file “nomefax.CTL” che contiene tutte le proprietà che descrivono il fax.

Le proprietà che sono prelevate da un fax (scritte nel file .CTL) sono:

Codice univoco del messaggio = “MessageId” nel file CTL.

Data e ora = “Accepted” nel file CTL.

Mittente (inteso come numero) = “From: FAX-FINE” nel file CTL.

Commenti = “Comment” nel file CTL.

Le proprietà disponibili per ogni fax sono:

Tipo account;

Codice account;

Ragione sociale;

Referente (inteso come nome e cognome);

Riferimento referente;

Data del fax;

Ora del fax;

Data e ora del fax;

Codice univoco del messaggio.

Mittente (inteso come campo rilevato da CTL).

Commenti del fax.

(47)

Un esempio di file CTL:

[ZETAFAX]

Type: ReceiveControl Revision: A

[DOCUMENT]

File: ~RECD735.G3F

Comment: From: Format 0110674694 [MESSAGE]

AssocFile:

Format: TIFF-FINE

Accepted: 09-09-24 11:02:21 Type: RECEIVE

Status: OK UserStatus: Wa

From: FAX-FINE 'Format 0110674694' MsgType: FAX

ActionFlag: N

[ROUTING]

DTMF: 902 ExtCSID:

SubAddr:

FullCSID: Format 0110674694 CLI:

[HISTORY]

MessageID: 99240100

(48)

Convert: ‹,

RecdOK: 09-09-24 11:02:21 1 "" FAX-FINE "Format 0110674694" <0000> 3 00:00:00 "BTB-6"

Algoritmo di riconoscimento Referente/Account

1. Dal file CTL si preleva alla voce “From: FAX-FINE” tutto quello presente tra apici singoli.

2. Tramite un’Espressione Regolare si estrae tutto ciò che è numerico, e il simbolo + che è utilizzato per i prefissi internazionali.

3. Il numero ottenuto è utilizzato per la ricerca del referente tramite i recapiti account.

i. Se ritorna un referente, si utilizza per valorizzare la proprietà account e referente di un fax.

ii. Se ne ritorna più di uno, l’utente avrà la possibilità di selezionare il referente.

iii. Se non si trova niente andare al punto d).

4. Il numero ottenuto è utilizzato per la ricerca dell’account.

i. Se ritorna un account, si utilizza per valorizzare la proprietà account di un fax.

ii. Se ne ritorna più di uno, l’utente avrà la possibilità di selezionare l’account.

(49)

5.4 File XML del fax

Tutti i parametri configurati, sono salvati in un file XML che accompagna il file G3F e CTL. Avrà lo stesso nome degli altri file associati.

Si fà questo perché nelle fasi successive sarà più comodo e soprattutto più veloce estrapolare le informazioni relative di un fax.

Ecco un esempio di file .XML:

<?xml version="1.0" encoding="utf-8" ?>

<messages>

<message id="99240156" Name="99240156.G3F" FaxNumber="0246753333"

DateTime="giovedì 24 settembre 2009" />

</messages>

(50)

5.5 Lista delle Classi

Per la progettazione si è partiti dalle finestre che il programma dovrebbe contenere, considerando che buona parte della gestione dell'applicazione avviene proprio all'interno di queste.

Di seguito rappresento l’ interazione delle classi.

Come si può osservare dalla figure, tutte le classi estendono la classe Window in quanto ho sviluppato tutte le classi come finestre.

5.5.1 Main Class

Rappresenta una finestra di prova dalla quale è possibile avviare tutte le varie funzioni che ho sviluppato

(51)

5.5.2 Consolle applicativa

La consolle applicativa presenterà una finestra la quale permetterà di visualizzare i fax in arrivo, i fax archiviati e quelli eliminati (cestinati).

Questo può avvenire in quanto vengono letti gli attributi Id, Nome, Mittente, Data e ora dal file xml che accompagna il fax.

L’elenco dei fax si presenta sottoforma di griglia.

I vari fax possono venire raggruppati secondo 4 criteri:

• ID : codice univoco del fax (es. 99240156)

• Nome : nome del file che rappresenta il fax (es. 99240156.G3F)

• Mittente : nome del mittente del fax (es. PLASTOTECNICA MILANO)

• Data : data di arrivo del fax (es. giovedì 24 settembre 2009 11.02.21)

A seconda del numero di volte che premo uno di questi bottoni, i raggruppamenti vengono ordinati in senso crescente o decrescente.

(52)

5.5.3 Configurazione consolle

La consolle ha la necessità di avere configurato la cartella dalla quale leggerà i fax. Inoltre ha la necessità di avere configurato la cartella di smistamento, che permette di spostare il fax dall’area administator corrente, verso un altro abilitato alla funzione di gestione fax.

(53)

5.5.4 Finestra per la visualizzazione di un fax.

Dalla Consolle applicativa, premendo su di un fax, appare la finestra per la visualizzazione di un fax.

In questa finestra è possibile visualizzare:

• nella colonna di sinistra l’ insieme di pagine che compongono un fax

• nella colonna centrale l’ immagine del fax che può essere ingrandita o rimpicciolita a piacimento tramite l’ apposita barra di zoom

• nella colonna di destra gli attributi del fax

(54)

Si può inoltre , attraverso l’ apposito pulsante di DELETE, eliminare il fax, cioè spostare l’ immagine (G3F) ed i file CTL e XML associati, dalla cartella dei fax ricevuti (RECEIVED) alla cartella dei fax eliminati (DELETED). Il tempo per lo spostamento dei file è rappresentato da una Progress Bar.

Il Tutor aziendale mi ha chiesto inoltre di inserire l’ ID del fax, scritto nel file xml, nell’ immagine del fax G3F.

Questo è possibile grazie al pulsante “Inserisci_ID” il quale avvia la ricerca di uno spazio bianco, grande a piacere,all’ interno dell’ immagine del fax, nel quale inserire il codice univoco ID.

5.5.5 Valorizzazione automatica di attributi

Per valorizzare in automatico gli attributi di un documento, è necessaria la definizione di una mappatura delle proprietà del fax con il tipo e sottotipo di documento definito in plain® documentale.

• La prima operazione consiste nella selezione del tipo di documento.

• In relazione al tipo, sarà valorizzata la casella combinata di sottotipo.

• La seconda operazione consiste nel selezionare il sottotipo (il modulo).

• Il relazione al sottotipo, saranno elencati gli attributi impostati.

• La terza operazione è di selezionare per uno o più attributi una proprietà del fax relativa (rappresentate con delle check box).

• Infine la configurazione sarà salvata in un file XML locale.

• Quest’ operazione è possibile compierla per ogni tipo o sottotipo di documento presente in plain® documentale.

(55)

Attraverso la TextBox “Save Name” posso dare un nome univoco al salvataggio della configurazione.

La ComboBox “Save List” contiene la lista dei salvataggi effettuati. Premendo su un elemento delle lista verranno caricate le impostazioni precedentemente salvate nel file xml.

Attraverso il pulsante “Delete” posso eliminare una configurazione dal file xml.

Riferimenti

Documenti correlati

Il sistema è basato sul modello di activity based costing ed è articolato su una struttura di centri di costo che rappresenta la realtà della Direzione Generale per i

In particolare quale soluzione abitativa si prevede l’inserimento in una Comunità Alloggio per almeno un anno, ed in contemporanea azioni di sostegno e tutoraggio nella vita

Tramite TFTP: il metodo TFTP (Trivial File Transfer Protocol) viene scelto per scaricare o eseguire il backup del file di configurazione tramite TFTP.. Il protocollo TFTP

La proposta è nata da alcuni genitori, in collaborazione con la PA Croce Azzurra e la Parrocchia San Giogio di Bavari, da una parte per rispondere all’esigenza delle famiglie

TRATTAMENTO DEI RIFIUTI DELLE ATTIVITA’ DI PULIZIA E DISINFEZIONE .... 82, le attività di pulizia, di disinfezione, di disinfestazione, di derattizzazione e di sanificazione sono

Nessun destinatario del presente Codice Etico può derogare o far derogare a quanto sopra anche qualora ciò implicasse un evidente e rilevante vantaggio o interesse per

Il Diplomato di istruzione professionale, nell’indirizzo “Agricoltura, sviluppo rurale, valorizzazione dei prodotti del territorio e gestione delle risorse forestali e montane”,

Quando un giocatore non riesce a completare una prova e almeno uno dei dadi che ha tirato produce un risultato di terrore ( ), si risolvono tutti gli effetti Terrore specificati