UNVERSITÀ POLITECNICA DELLE MARCHE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNVERSITÀ POLITECNICA DELLE MARCHE"

Transcript

1 UNVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica Progettazione e sviluppo di un sistema software distribuito per il supporto alla vendita con fat client mobile multipiattaforma. Relatore: Chiar.mo Prof. Aldo Franco Dragoni Tesi di Laurea di: Emanuele Rampichini Anno Accademico

2 2

3 1 Introduzione e obiettivi 5 2 Panoramica del progetto Il dominio applicativo Il processo di vendita tradizionale Il processo di vendita automatizzato La necessità della forza vendita Il contesto Lo stato dell arte Ortogonalità rispetto al sistema informatico aziendale Lo scenario Sempre connesso L evoluzione nel tempo Una visione d insieme del progetto 13 3 Le tecnologie scelte Ambiente di programmazione e linguaggio L ambiente.net Il linguaggio C# Lo stack tecnologico nelle varie componenti Integratore Server Client 34 4 L architettura del sistema L integratore Scambio dei dati batch Database condiviso Scambio di dati destrutturati in streaming Chiamata a procedura remota Scambio di messaggi La soluzione adottata per il flusso d importazione La soluzione adottata per il flusso di esportazione Accesso condiviso al database d interscambio Il server Architettura REST Utilizzo esplicito dei metodi Http Stateless vs Statefull Esposizione di URI con struttura a directory Trasferimento dei dati in JSON o XML Sicurezza Architettura del core dell applicazione client Data Preparation Data Access Repository Pattern Request Reponse Layer Presentation layer 90 5 La qualità del software Il Testing I test unitari I test unitari come strumento di design I test d integrazione I test di accettazione Metriche 110 3

4 5.2.1 Complesità Ciclomatica Profondità dell ereditarietà Accoppiamento tra classi Indice di manutenibilità Conclusioni e sviluppi futuri Bibliografia 115 4

5 1 - Introduzione e obiettivi 1 Introduzione e obiettivi La presente tesi di laurea è il frutto del lavoro svolto in circa sei mesi presso le due aziende 1 coinvolte nello sviluppo di un software di classe enterprise. L'obiettivo principale della trattazione è di evidenziare e motivare in maniera sistematica le molteplici scelte tecnologiche, architetturali e metodologiche che sono state fatte in fase di progettazione e sviluppo, come risposta ai requisiti di un sistema software complesso. Nello specifico nel capitolo due sarà fatta una panoramica di alto livello del dominio in cui il software si colloca, esponendo i principali requisiti funzionali e non che hanno guidato la progettazione. Nel capitolo tre saranno discusse le scelte tecnologiche che sono state intraprese per implementare i vari componenti del sistema. Verranno analizzate in maniera approfondita le caratteristiche dell ambiente.net e del linguaggio C# utilizzati per l implementazione del software. Nel quarto capitolo saranno analizzate le varie questioni architetturali che sono state affrontate durante tutto il ciclo di sviluppo in tutti gli strati del software. Particolare importanza sarà data alla parte riguardante il processo di integrazione tra sistemi informatici eterogenei e le sfide incontrate durante la progettazione. Saranno inoltre introdotti i concetti principali delle architetture a servizi di tipo REST e come tali principi sono stati applicati nello strato server del progetto. L ultima parte del capitolo sarà dedicata all analisi dei pattern architetturali utilizzati all interno dell applicazione client partendo da quelli per l accesso ai dati, fino ad arrivare allo strato di presentazione. 1 E- xtrategy S.r.l. Kilog S.r.l. 5

6 1 - Introduzione e obiettivi Il quarto capitolo sarà dedicato a tutto quello che riguarda la qualità del software, con una particolare attenzione alla fase di testing. Saranno inoltre analizzate diverse metriche per validare in maniera rigorosa la qualità della base di codice prodotta. La scelta di anticipare nel secondo capitolo la trattazione delle scelte tecnologiche rispetto a quelle architetturali, è derivata dalla volontà di evidenziare nella trattazione architetturale alcuni specifici aspetti ideomatici dell implementazione che altrimenti potrebbero sembrare fuori dal contesto. 6

7 2 - Panoramica del progetto 2 Panoramica del progetto 2.1 Il dominio applicativo Il dominio in cui si colloca il progetto sviluppato è quello dell'automatizzazione del processo di creazione e acquisizione ordini da parte della forza di vendita di un azienda. Gli attori che sono coinvolti nel processo di vendita nella grande distribuzione sono tre: L'azienda fornitrice: Rappresenta l'entità che eroga servizi o crea prodotti che dovranno essere venduti. Il cliente: Chi richiede servizi o prodotti dell'azienda fornitrice. L'agente di commercio: Soggetto che assume in maniera stabile, senza vincolo di subordinazione, l'incarico di stabilire dei contratti commerciali tra l'azienda e dei clienti, secondo un accordo, chiamato contratto di agenzia, che lo vincola a svolgere questo mandato su una precisa area geografica Il processo di vendita tradizionale Il processo di vendita tradizionale può essere suddiviso in quattro macro fasi: Scrittura Trasmissione Interpretazione Caricamento Immagine 1: Fasi del processo di vendita tradizionale Scrittura: La fase di scrittura è quella che avviene presso il cliente. Nel processo tradizionale l'agente di commercio, consultando un catalogo, le 7

8 2 - Panoramica del progetto condizioni di vendita ed eventuali promozioni, propone al cliente prodotti e servizi. Il prodotto del processo di scrittura solitamente è un ordine di vendita compilato a mano su un modello cartaceo standardizzato, secondo delle specifiche regole. Trasmissione: Una volta compilato l'ordine, la trasmissione può avvenire tramite una postazione fissa attraverso l'uso di FAX o in alternativa per ordini importanti tramite comunicazione diretta per via telefonica. Interpretazione: Il processo d interpretazione avviene all'interno dell'azienda produttrice. In questa fase un addetto dell'azienda ha il compito di decifrare quanto scritto dall'agente. Caricamento: Una volta decodificato il contenuto dell'ordine è necessaria una fase di integrazione e consolidamento dell'informazione all'interno dell'erp Aziendale. È particolarmente semplice individuare le criticità di tale processo nei termini di efficienza ed efficacia. Input Processo Output Effettivo Immagine 2: Modello di un generico processo Efficacia =!"#$"#!""#$$%&'!"#$"#!""#$% Efficienza =!"#$"#!""#$$%&'!"#$% In questo caso si può modellare come quantità di Input il costo del lavoro compiuto dagli attori coinvolti nel processo che porta un ordine dalla scrittura 8

9 2 - Panoramica del progetto al consolidamento nell'erp aziendale. Il parametro in output dal processo può essere identificato con il numero di ordini correttamente presi in carico dall'erp. Costo del lavoro compiuto da tutti gli attori coinvolti Processo che porta un'ordine dalla scrittura al consolidamento nell'erp aziendale Ordini correttamente presi in carico dall'erp Immagine 3: Modello del processo di consolidamento di un ordine nell'erp La prima e più grave criticità nel processo tradizionale è quella legata all'efficacia. La condizione essenziale di un qualsiasi processo aziendale è il raggiungimento dell'obiettivo. In questo caso le fasi di scrittura, trasmissione, interpretazione e caricamento sono eseguite del tutto o in parte da persone in maniera manuale. Ciascun passaggio in cui è coinvolto un attore umano rappresenta un possibile punto di fallimento della catena che porta al raggiungimento dell'obiettivo. Situazioni comuni come interpretazione errata della calligrafia di un'agente, o errori in fase d inserimento dati concorrono ad abbassare in maniera critica l'output effetivo del processo e quindi la sua efficacia. D'altro canto è anche semplice capire come l'efficienza sia molto migliorabile. Nel processo tradizionale appena presentato, anche ragionando al netto degli errori di cui abbiamo parlato, il consolidamento di un ordine richiede tempi nell'ordine dei minuti. 9

10 2 - Panoramica del progetto Il processo di vendita automatizzato Le problematiche esposte nel precedente paragrafo possono essere risolte con l'automatizzazione del processo. Nello specifico si può analizzare come le varie fasi del processo di vendita tradizionale possono essere soddisfatte da un sistema informatico. Scrittura: La fase di scrittura è quella che avviene presso il cliente. Invece di consultare catalogo e condizioni di vendita su carta l'agente può cercare direttamente dal suo sistema informatico portatile, inserendo in maniera contestuale alla ricerca, prodotti o servizi già codificati all interno di un ordine. Trasmissione: L'ordine è validato in fase di creazione e compilazione. L'ordine è spedito immediatamente attraverso internet. L'unico requisito per la spedizione dell'ordine è la presenza di connessione dati di qualsiasi tipo (wifi, 3g, gprs). Interpretazione: La risorsa ordine inviata dal tablet è persistita da un server collocato all'interno dell'azienda produttrice. Successive validazioni possono essere fatte lato server in maniera automatizzata prima della persistenza. Caricamento: Il caricamento vero e proprio nell'erp aziendale rappresenta l'ultimo passo. Un processo automatizzato trasforma l'ordine per adattarlo ad una struttura di interscambio precedentemente concordata. 10

11 2 - Panoramica del progetto Riprendendo le considerazioni su efficienza ed efficacia esposte in precedenza si può vedere come il processo automatizzato minimizza tutte le crititicità esposte. Nello specifico il processo di scrittura è molto più rapido, poichè assistito dall'elaboratore. Inoltre il fatto che l'agente interagisca direttamente con i dati delle anagrafiche correttamente codificati fa si che non ci siano errori in fase di stesura dell'ordine. La criticità della trasmissione è solamente legata allo stato della connessione di rete ed è completata nell'arco di tempo di alcuni secondi. Gli errori dovuti al processo d interpretazione in un sistema a regime sono da considerarsi in sostanza assenti poichè i dati sono inviati in formati interpretabili in maniera corretta dalla macchina. Sia in fase di stesura dell'ordine che in fase d interpretazione possono, a loro volta, essere eseguite delle regole di business personalizzate per la validazione dell'ordine. Rientrano in questa categoria di operazoni condizioni particolari per clienti o per tipologie merceologiche, blocco automatico di acquisti per clienti insolventi e altre regole simili. È particolarmente vantaggiosa la possibilità di applicare questo tipo di regole di business direttamente in fase di creazione dell'ordine presso il cliente, cosa in pratica impossibile in caso di processo di vendita tradizionale. Nel caso tradizionale, una condizione non valida per un determinato cliente, può essere notificata all'agente solo dopo un lungo periodo, con tutte le conseguenze del caso La necessità della forza vendita Proseguendo lungo la linea di ragionamento dell ottimizzazione del processo si potrebbe arrivare a semplificare ulteriormente la catena eliminando completamente la figura dell agente di vendita. 11

12 2 - Panoramica del progetto Dal punto di vista tecnico in un sistema di vendita informatizzato come quello descritto nel precedente paragrafo, la presenza dell agente di vendita funge da mera interfaccia tra il cliente e il sistema informativo aziendale. Sebbene in alcuni ambiti la rimozione della figura intermedia dell agente commerciale si sia rivelata una scelta valida 2, in altri contesti, soprattutto nei rapporti business to business, continua a rappresentare un valore aggiunto per spingere le vendite. Il rapporto umano rappresenta ancora un parametro importante per la fidelizzazione del cliente. 2.2 Il contesto Il dominio non è sufficiente per capire a pieno le necessità che copre un software di questo tipo. Per comprendere al meglio le esigenze è necessario fare alcune considerazioni dell ambiente in cui andrà a collocarsi Lo stato dell arte Strumenti come quelli descritti esistono da svariati anni come soluzioni verticali profondamente integrate con l ERP. Prodotti SAP, Oracle forniscono in parte alcune funzionalità di questo tipo ma moltissime imprese sono legate all utilizzo di gestionali legacy nati in periodi di tempo in cui lo scenario di mobilità totale non poteva essere al centro delle scelte dei progettisti Ortogonalità rispetto al sistema informatico aziendale Il software che è stato progettato in questo contesto deve potersi integrare in maniera semplice con sistemi legacy, senza particolari prerequisiti. L ortogonalità della soluzione software rispetto al sistema informatico aziendale è uno dei valori fondanti che ha guidato la progettazione e lo sviluppo dell applicazione. 2 Amazon, ed altri portali di commercio online hanno basato su questa strategia la propria crescita esponenziale negli ultimi anni. 12

13 2 - Panoramica del progetto Lo scenario Sempre connesso Sebbene si possa dire che l evoluzione delle tecnologie stia trasformando il mondo del lavoro in uno scenario sempre connesso, l esigenza reale di un agente commerciale è quella di portare a termine il proprio lavoro anche in assenza di connessione di rete. Questo significa che dal punto di vista della creazione di un prodotto bisogna pensare un sistema che sia capace da subito di lavorare sia in modalità offline che online. La scelta di creare un sistema del genere porta delle sfide progettuali non indifferenti ma allo stesso tempo garantisce un valore immediato che pochi altri competitor sono in grado di garantire L evoluzione nel tempo L altro principio cardine che ha condizionato in molti aspetti la progettazione del software è legato alla volontà di gettare le basi per un progetto da far evolvere nel tempo, capace di reagire ai repentini cambi di scenario. Lo sviluppo di codice il più possibile portabile tra le maggiori piattaforme mobile è stato individuato come uno dei punti centrali su cui concentrarsi, soprattutto per l estrema vivacità del mercato dei sistemi operativi mobile che in questo momonto storico può essere registrata. Allo stesso tempo sono state fatte scelte per non compromettere la possibilità di sviluppare client non legati a nessun sistema operativo in particolare, facendo uso di tecnologie e standard WEB. 2.3 Una visione d insieme del progetto Il progetto nella sua visione di alto livello può essere rappresentato dalla seguente figura. 13

14 2 - Panoramica del progetto Immagine 4: Schema concettuale di alto livello del prodotto sviluppato Nell immagine possiamo vedere in maniera generale gli attori coinvolti. Alla sinistra abbiamo molteplici software gestionali che sono coinvolti in una comunicazione bidirezionale con il sistema sviluppato. Il progetto che è stato portato avanti può essere suddiviso in tre macro aree con precise responsabilità: L integratore Si occupa della gestione dei flussi di import ed export di dati con il gestionale aziendale. Rappresenta l unico punto di contatto con l ERP dell azienda. Server Espone tutti i servizi di sincronizzazione, autenticazione, configurazione e comunicazione consumabili da un qualsiasi client. Fat Client Usufruisce dei servizi di sincronizzazione e di comunicazione con il server. Una volta sincronizzato ha al suo interno tutta la logica di 14

15 2 - Panoramica del progetto business e la porzione di dati necessaria a svolgere la maggior parte dei compiti richiesti dall agente di commercio. Sono esclusi I compiti che implicano una comunicazione con il server. 15

16 3 - Le tecnologie scelte 3 Le tecnologie scelte Come già spiegato nell introduzione, in questo capitolo si è deciso di presentare le tecnologie scelte per l implementazione dei diversi progetti sviluppati. Il capitolo non vuole in alcun modo essere una trattazione esaustiva dell infrastruttura tecnologica, quanto piuttosto una necessaria introduzione per mettere nel giusto contesto quanto spiegato nei capitoli successivi. Le scelte compiute saranno comunque motivate in relazione agli obbiettivi del progetto. 3.1 Ambiente di programmazione e linguaggio L ambiente.net L ambiente.net è un framework generalmente associato al sistema operativo Microsoft Windows. Il progetto include una vastissima libreria standard per tutte le esigenze comuni di applicazioni Enterprise. Il framework.net grazie all utilizzo di una virtual machine che consuma Bytecode intermedio supporta una grande varietà di linguaggi di programmazione. I programmi scritti per il.net framework vengono eseguiti in un ambiente software conosciuto come CLR 3, una macchina virtuale che fornisce servizi fondamentali. Fanno parte di questi servizi la sicurezza, il memory management e il sistema di gestione delle eccezioni. 3 Common Language Runtime 16

17 3 - Le tecnologie scelte CLR Class Library.NET Framework Immagine 5: Composizione del.net framework Il.NET framework non è nient altro che l insieme formato dal CLR ed un estesa class library che gira sullo stesso. Immagine 6: Stack delle API del.net framework Le funzionalità di alto livello fornite dal framework comprendono: Gestione dell accesso ai dati Connessione con basi di dati Comunicazione di rete Crittografia Algoritmi di calcolo numerico 17

18 3 - Le tecnologie scelte Creazione di interfaccie utente I motivi principali che hanno portato a questa scelta riguardano l estrema maturità dello stack tecnologico, e la bontà degli strumenti di sviluppo che ruotano intorno a questà tecnologia. I principi fondanti del framework.net possono essere riassunti in sette punti e per ciascun punto può essere indicato il valore portato in maniera diretta al progetto: Interoperabilità: Il framework permette di interfacciarsi in maniera semplice a programmi che sono stati sviluppati con altre tecnologie legacy scollegate dall ambiente.net. Esistono packages per l interfacciamento con moduli scritti per il modello COM 4 ed ad un livello più basso funzionalità di Platform Invoke 5 per chiamare una qualsiasi funzione di una qualsiasi libreria compilata nativamente non scritta per il.net framework. Queste caratteristiche sono particolarmente interessanti nella misura in cui nell ambito dell sviluppo enterprise può presentarsi l esigenza di integrare all interno del progetto codice di librerie largamente collaudate legate a tecnologie eterogenee. Indipendenza Dal Linguaggio: Il fatto che il framework poggi sul Common Language Runtime, significa che tutto il codice scritto in un programma.net viene eseguito sotto la sua supervisione garantendo comportamenti precisi e prevedibili per quanto riguarda la gestione della memoria, la sicurezza e la gestione 4 Component Object Model 5 PInvoke 18

19 3 - Le tecnologie scelte delle eccezioni. La presenza del CLR garantisce inoltre l indipendenza dal linguaggio di programmazione scelto. Il CLR esegue un particolare tipo di codice intermedio chiamato CIL 6 (linguaggio assembly di alto livello). Qualsiasi linguaggio che abbia un compilatore per il codice intermedio CIL può essere utilizzato in ambiente.net. Immagine 7: Schema di funzionamento della CLI Anche questa caratteristica nel caso del progetto svolto si è rivelata particolarmente utile. La possibilità di integrare in maniera trasparente class library scritte all interno dell azienda per altri progetti in linguaggi 6 Common Intermediate Language 19

20 3 - Le tecnologie scelte diversi ma sempre su framework.net ha permesso di annullare per determinati componenti non direttamente legati al dominio (gestione dei log, gestione dello scheduling di operazioni lunghe) i tempi di sviluppo. L altro vantaggio non immediatamente riscontrato è quello della tranquillità con cui si possono valutare le nuove proposte tecnologiche. Il mondo dei linguaggi di programmazione ultimamente è in continuo fermento e vecchi paradigmi come quello funzionale stanno uscendo dall ambito prettamente accademico per affacciarsi a quello del software enterprise. La prospettiva di poter fare un salto di paradigma, mantenendo comunque la vecchia base di codice funzionante e integrabile in maniera trasparente rende un eventuale strategia di migrazione futura molto più morbida e graduale, con tutti I vantaggi del caso. Estesa Base Class Library: Il.NET framework fornisce una class library di base disponibile a tutti i linguaggi scritti per girare all interno del CLR. Le funzionalità fornite spaziano in tutti gli ambiti come gestione dei file, l interazione con database, supporto all implementazione di protocolli di rete, creazione di interfacce grafiche e molto altro. Le applicazioni enterprise complesse spaziano tra esigenze molto eterogenee. Nel progetto specifico la class library è stata utilizzata in maniera estensiva. Poter far affidamento su librerie di sistema con elevati standard qualitativi per assolvere i compiti infrastrutturali permette di concentrare le proprie forze sulla risoluzione dei problemi del dominio di business. 20

21 3 - Le tecnologie scelte Supporto in fase di deployment Il framework fornisce strumenti per la gestione del deployment dei progetti. La configurazione della build e quella centralizzata delle impostazioni di ambiente con possibilità di regole particolari per le macchine dei singoli sviluppatori, sono solo alcune delle caratteristiche fornite. A questo livello possono essere anche definite le policy di sicurezza del prodotto da deployare in maniera dinamica. Il vantaggio principale che questa caratteristica ha portato è stato quello di poter configurare in maniera agevole le varie installazioni, differenziando le configurazioni per gli ambienti di lavoro degli sviluppatori da quelle per il deploy presso specifici clienti. Sicurezza: L intero framework è stato progettato e sviluppato con la sicurezza in cima alla lista degli obiettivi. Il framework mette al riparo il proprio codice dalle classiche vulnerabilità del codice nativo come l utilizzo di Buffer Overflow per scalare i privilegi su una macchina di produzione. Sarebbe possibile motivare l estrema bontà del modello di sicurezza su cui è stato costruito il CLR, ma la cosa esulerebbe dagli scopi della trattazione. Per chi fosse interessato, è comunque disponibile un interessante paper, pubblicato dal dipartimento di informatica dell Università Della Virginia 7, che lo mette a confronto con quello della JVM 8. 7 Comparing Java and.net Security: Lessons Learned and Missed: Nathanael Paul, David Evans University of Virginia Department of Computer Science 8 Java Virtual Machine 21

22 3 - Le tecnologie scelte In questo caso il vantaggio è implicito. Poter fare affidamento su uno stack che garantisca livelli di sicurezza allo stato dell arte, è senza dubbio un enorme valore per applicazioni business. Portabilità Nonostante la Microsoft non abbia mai realizzato direttamente un implementazione del framework completo all infuori del proprio sistema operativo Windows, il framework è stato progettato per essere agnostico rispetto alla piattaforma. Le specifiche della CLI 9 che includono le librerie core, il type system, il CIL, il linguaggio C#, il linguaggio C++/CLI managed, sono state rilasciate all ECMA e all ISO e sono disponibili come open standard 10. Questa caratteristica è stata senza dubbio quella più importante per la scelta della tecnologia. La disponibilità di specifiche aperte ha permesso l implementazione dell alternativa Open Source MONO, che ha portato un implementazione di primo livello del framework.net su tutti I sistemi operativi principali Il linguaggio C# Il linguaggio utilizzato per l implementazione vera e propria delle varie componenti del software sviluppato è il C#. Come visto nel paragrafo precedente C# oltre ad essere uno dei tanti linguaggi supportati dal CLR fa parte della CLI come parte dello standard ISO/IEC e ECMA 335. Le principali caratteristiche del linguaggio possono essere comprese dai suoi principi fndanti: 9 Common Language Infrastructure 10 ISO/IEC e ECMA

23 3 - Le tecnologie scelte C# è stato progettato da un team guidato da Anders Hejlsberg 11 con l obbiettivo di creare un linguaggio semplice, moderno, general purpose ed object oriented. Il linguaggio appartiene alla famiglia dei linguaggi statici a tipizzazione forte, anche se elementi di dinamismo sono stati inseriti in seguito nel linguaggio. Il linguaggio presenta inoltre meccanismi di garbage collection per la gestione automatica della memoria. Analizzando solo queste caratteristiche principali, molti potrebbero rivedere un parallelo molto forte tra il mondo Java e questo. In fondo si tratta di linguaggi statici, fortemente tipizzati, object oriented che compilano in codice intermedio per una macchina virtuale. Il paragone è naturale e giustificato ma il linguaggio C# ha saputo nel tempo innovarsi e accogliere tutta una serie di caratteristiche avanzate che lo hanno di fatto reso un linguaggio fortemente caratterizzato. In questa fase ne vedremo alcune particolarmente interessanti che sono state introdotte nelle varie versioni dello standard. Generics: Grazie ai generics è possibile progettare classi che rinviano la conoscenza del tipo fino a quando il codice client non crea un istanza della classe specificando il tipo come parametro. 11 Come nota storica è interessante notare che Anders Hejlsberg prima di intraprendere il suo lavoro su C# era già famoso nell ambiente dei linguaggi di programmazione per aver contribuito in maniera fondamentale alla creazione del più celebre dialetto del Pascal (Turbo Pascal della Borland) e del suo diretto derivato ad oggetti Delphi (della medesima Software House Francese) 23

24 3 - Le tecnologie scelte // Dichiarazione di una classe generica public class GenericList<T> { void Add(T input) { } } class TestGenericList { private class ExampleClass { } static void Main() { // Dichiara una lista di tipo int GenericList<int> list1 = new GenericList<int>(); // Dichiara una lista di tipo stringa GenericList<string> list2 = new GenericList<string>(); } } // Dichiara una lista di tipo ExampleClass GenericList<ExampleClass> list3 = new GenericList<ExampleClass>(); Snippet 1: Generics in C# Questa caratteristica è stata utilizzata spesso ed ha permesso di mantenere un alto riuso di codice in diverse situazioni. Supporto ai tipi parziali Permettono di separare l implementazione di una struct, una classe o un interfaccia in più file sorgenti. In fase di compilazione I tipi parziali vengono riassemblati. 1. // Prima parte della classe parziale customer 2. public partial class Customer 3. { 4. public void DoSomething() 5. { 6. } 7. } // Seconda parte della classe parziale 10. // Può essere messa in un altro file sorgente 11. public partial class Customer 12. { 13. public void DoSomethingElse() 14. { 15. } 16. } Snippet 2: Partial types in C# 24

25 3 - Le tecnologie scelte Sebbene la feature non sia particolarmente straordinaria, è stata utile per le alcune classi in cui una parte è generata automaticamente. Variabili locali tipizzate in modo implicito In fase di dichiarazione di variabili locali è possibile utilizzare la parola chiave var invece di scrivere esplicitamente il tipo. Sarà dedotto automaticamente dal compilatore in base all espressione alla destra dell operatore di assegnamento. 1. // i viene compilato come intero 2. var i = 5; // s viene compilato come stringa 7. var s = "Hello"; // a viene compilato come array di stringhe 11. var a = new[] { 0, 1, 2 }; // list viene compilato come List<int> 15. var list = new List<int>(); Snippet 3: Tipizzazione implicita in C# Questa caratteristica è una di quelle che aumenta di molto la leggibilità del codice rendendolo più conciso. First Class Functions (Delegates) Il C# possiede dalla versione 2.0 il concetto di funzione come tipo di dato nella forma dei delegates. I delegates sono oggetti che referenziano un determinato comportamento. I delegates permettono tecniche di programmazione avanzate come l high order programming: è possibile costruire funzioni che prendano come parametro uno o più delegate e che addirittura restituiscano delegate come valore di ritorno. 25

26 3 - Le tecnologie scelte 1. class Program 2. { 3. // Dichiarazione di un delegate 4. delegate string UppercaseDelegate(string input); // Prima Implementazione 7. static string UppercaseFirst(string input) 8. { 9. char[] buffer = input.tochararray(); 10. buffer[0] = char.toupper(buffer[0]); 11. return new string(buffer); 12. } // Seconda implementazione 15. static string UppercaseLast(string input) 16. { 17. char[] buffer = 18. input.tochararray(); 19. buffer[buffer.length - 1] = 20. char.toupper(buffer[buffer.length - 1]); 21. return new string(buffer); 22. } // Terza implementazione 25. static string UppercaseAll(string input) 26. { 27. return input.toupper(); 28. } // High order function che riceve un delegate 31. // come parametro 32. static void WriteOutput(string input, UppercaseDelegate del) 33. { 34. Console.WriteLine("Input: {0}", input); 35. Console.WriteLine("Uppercase: {0}", del(input)); 36. } // Implementazione dello strategy pattern con delegates 40. static void Main() 41. { 42. // Input: pippo Uppercase: Pippo 43. WriteOutput("pippo", new UppercaseDelegate(UppercaseFirst)); 44. // Input: pippo Uppercase: pippo 45. WriteOutput("pippo", new UppercaseDelegate(UppercaseLast)); 46. // Input: pippo Uppercase: PIPPO 47. WriteOutput("pippo", new UppercaseDelegate(UppercaseAll)); 48. } 49. } Snippet 4: Implementazione di strategy con delegates in C# L high order programming è un altro strumento molto utile allo scopo di ridurre al minimo la duplicazione di codice, e come direttamente riscontrabile nell esempio rende molto meno verbosa l introduzione di alcuni design pattern che avrebbero richiesto l uso di interfacce. 26

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Presentazione di Cedac Software

Presentazione di Cedac Software Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994

Dettagli

Descrizione generale. Architettura del sistema

Descrizione generale. Architettura del sistema Descrizione generale Sister.Net nasce dall esigenza di avere un sistema generale di Cooperazione Applicativa tra Enti nel settore dell Informazione Geografica che consenta la realizzazione progressiva

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

catalogo corsi di formazione 2015/2016

catalogo corsi di formazione 2015/2016 L offerta formativa inserita in questo catalogo è stata suddivisa in quattro sezioni tematiche che raggruppano i corsi di formazione sulla base degli argomenti trattati. Organizzazione, progettazione e

Dettagli

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Sistemi Informativi Distribuiti

Sistemi Informativi Distribuiti Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 SISTEMI INFORMATIVI MODULO II Sistemi Informativi Distribuiti 1 Sistemi informativi distribuiti

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

Dettagli

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei Centro Nazionale per l Informatica nella Pubblica Amministrazione Gara a procedura aperta n. 1/2007 per l appalto dei Servizi di rilevazione e valutazione sullo stato di attuazione della normativa vigente

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

UBIQUITY 6 e Server. Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity.

UBIQUITY 6 e Server. Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity. UBIQUITY 6 e Server Privato Introduzione Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity. Versione Descrizione Data 1 Prima emissione 21/06/2015 Disclaimer

Dettagli

Motore di riempimento DB (generatore dati per simulazione)

Motore di riempimento DB (generatore dati per simulazione) SISTEMI DISTRIBUITI prof. S.Pizzutilo Motore di riempimento DB (generatore dati per simulazione) Studente: Alessandro Balestrucci 617937 Corso di Laurea: Informatica Magistrale Dipartimento di Informatica

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Confronto con Offnet Febbraio 2013. Copyright 2013 Siav S.p.A. Tutti i diritti riservati.

Confronto con Offnet Febbraio 2013. Copyright 2013 Siav S.p.A. Tutti i diritti riservati. Confronto con Offnet Febbraio 2013 Copyright 2013 Siav S.p.A. Tutti i diritti riservati. Siav garantisce che alla data di pubblicazione le informazioni contenute in questo documento sono corrette ed accurate.

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Mausoleo COMUNE DI NUORO PROGETTO PER LA REALIZZAZIONE DEL CIMITERO MULTIMEDIALE. Arch.Marco Cerina Ing.Enrico Dini

Mausoleo COMUNE DI NUORO PROGETTO PER LA REALIZZAZIONE DEL CIMITERO MULTIMEDIALE. Arch.Marco Cerina Ing.Enrico Dini COMUNE DI NUORO D O C U M E N T O D I S P E C I F I C A P E R I L P R O D O T T O Mausoleo PROGETTO PER LA REALIZZAZIONE DEL CIMITERO MULTIMEDIALE Arch.Marco Cerina Ing.Enrico Dini Descrizione introduttiva

Dettagli

8. Sistemi Distribuiti e Middleware

8. Sistemi Distribuiti e Middleware 8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti

Dettagli

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Tecnologie per lo sviluppo di applicazioni La tendenza attuale dell'ingegneria è quella dell'integrazione di componenti

Dettagli

Speciale: I casi. Introduzione dell'area tematica IL CASO FEDERAZIONE DELLE BCC DELL'EMILIA- ROMAGNA

Speciale: I casi. Introduzione dell'area tematica IL CASO FEDERAZIONE DELLE BCC DELL'EMILIA- ROMAGNA Estratto dell'agenda dell'innovazione e del Trade Bologna 2011 Speciale: I casi Introduzione dell'area tematica IL CASO FEDERAZIONE DELLE BCC DELL'EMILIA- ROMAGNA Innovare e competere con le ICT: casi

Dettagli

***** Il software IBM e semplice *****

***** Il software IBM e semplice ***** Il IBM e semplice ***** ***** Tutto quello che hai sempre voluto sapere sui prodotti IBM per qualificare i potenziali clienti, sensibilizzarli sulle nostre offerte e riuscire a convincerli. WebSphere IL

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

AMPLIFON: OTTIMIZZAZIONE DELLE PERFORMANCE DEL NETWORK DI VENDITA ATTRAVERSO LA PIENA INTEGRAZIONE DEI PROCESSI DI BUSSINES

AMPLIFON: OTTIMIZZAZIONE DELLE PERFORMANCE DEL NETWORK DI VENDITA ATTRAVERSO LA PIENA INTEGRAZIONE DEI PROCESSI DI BUSSINES AMPLIFON: OTTIMIZZAZIONE DELLE PERFORMANCE DEL NETWORK DI VENDITA ATTRAVERSO LA PIENA INTEGRAZIONE DEI PROCESSI DI BUSSINES Aggiornare e semplificare le modalità di integrazione tra le diverse piattaforme

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

OGGETTO DELLA FORNITURA...4

OGGETTO DELLA FORNITURA...4 Gara d appalto per la fornitura di licenze software e servizi per la realizzazione del progetto di Identity and Access Management in Cassa Depositi e Prestiti S.p.A. CAPITOLATO TECNICO Indice 1 GENERALITÀ...3

Dettagli

EMC Documentum Soluzioni per il settore assicurativo

EMC Documentum Soluzioni per il settore assicurativo Funzionalità EMC Documentum per il settore assicurativo La famiglia di prodotti EMC Documentum consente alle compagnie assicurative di gestire tutti i tipi di contenuto per l intera organizzazione. Un

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese Introduzione al sistema operativo Laboratorio Software 2008-2009 C. Brandolese Che cos è un sistema operativo Alcuni anni fa un sistema operativo era definito come: Il software necessario a controllare

Dettagli

LIBERA L EFFICIENZA E LA COMPETITIVITÀ DEI TUOI STRUMENTI! Open Solutions, Smart Integration

LIBERA L EFFICIENZA E LA COMPETITIVITÀ DEI TUOI STRUMENTI! Open Solutions, Smart Integration LIBERA L EFFICIENZA E LA COMPETITIVITÀ DEI TUOI STRUMENTI! Open Solutions, Smart Integration COSA FACCIAMO SEMPLIFICHIAMO I PROCESSI DEL TUO BUSINESS CON SOLUZIONI SU MISURA EXTRA supporta lo sviluppo

Dettagli

Processo di Sviluppo delle Applicazioni

Processo di Sviluppo delle Applicazioni Processo di Sviluppo delle Applicazioni La realizzazione di un applicazione come Vivere Ateneo App Domenico Zarcone Ognuno ha il suo ambiente Quali sono gli ambienti integrati di sviluppo più utilizzati?

Dettagli

catalogo corsi di formazione 2014/2015

catalogo corsi di formazione 2014/2015 L offerta formativa inserita in questo catalogo è stata suddivisa in quattro sezioni tematiche che raggruppano i corsi di formazione sulla base degli argomenti trattati. Organizzazione, progettazione e

Dettagli

Alfresco ECM. La gestione documentale on-demand

Alfresco ECM. La gestione documentale on-demand Alfresco ECM La gestione documentale on-demand Alfresco 3.2 La gestione documentale on-demand Oltre alla possibilità di agire sull efficienza dei processi, riducendone i costi, è oggi universalmente conosciuto

Dettagli

Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali

Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali Infinity Application Framework è la base di tutte le applicazioni della famiglia Infinity Project

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

SOA è solo tecnologia? Consigli utili su come approcciare un progetto SOA. Service Oriented Architecture

SOA è solo tecnologia? Consigli utili su come approcciare un progetto SOA. Service Oriented Architecture SOA è solo tecnologia? Consigli utili su come approcciare un progetto SOA Service Oriented Architecture Ormai tutti, nel mondo dell IT, conoscono i principi di SOA e i benefici che si possono ottenere

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

SisTabWeb Web. Sistema Tabelle. for Enterprise

SisTabWeb Web. Sistema Tabelle. for Enterprise SisTabWeb Web Sistema Tabelle for Enterprise Overview La condivisione del patrimonio dati a livello aziendale diventa essenziale nel momento in cui il sistema informativo, elemento chiave per l'efficienza

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro.

Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro. Esercizio di GRUPPO: PROTOCOLLO INFORMATICO Mappa concettuale TECNOLOGIE DISPONIBILI Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro.

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

I N F I N I T Y Z U C C H E T T I INFINITY APPLICA A TION FRAMEWORK APPLICA

I N F I N I T Y Z U C C H E T T I INFINITY APPLICA A TION FRAMEWORK APPLICA I N F I N I T Y Z U C C H E T T I INFINITY APPLICATION FRAMEWORK Infinity Application Framework Una nuova e diversa interpretazione delle soluzioni applicative aziendali Infinity Application Framework

Dettagli

L E I N F O R M A Z I O N I P E R F A R E

L E I N F O R M A Z I O N I P E R F A R E L E I N F O R M A Z I O N I P E R F A R E C E N T R O Con InfoBusiness avrai Vuoi DATI CERTI per prendere giuste DECISIONI? Cerchi CONFERME per le tue INTUIZIONI? Vuoi RISPOSTE IMMEDIATE? SPRECHI TEMPO

Dettagli

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management)

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management) Thea PDM Il PDM (Product Data Management) Nell'industria manifatturiera il PDM è un software per la raccolta ed organizzazione dei file nelle divere fasi di ideazione, progettazione, produzione ed obsolescenza

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

Dettagli

WHITE PAPER CRM Novembre 2003

WHITE PAPER CRM Novembre 2003 WHIT E PAPER Novembre 2003 CUSTOMER RELATIONSHIP MANAGEMENT Parlare di CUSTOMER RELATIONSHIP MANAGEMENT significa parlare di come l Azienda gestisce il suo business. Se vogliamo dare una definizione di

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA CORBA ( Common Object Request Broker Architecture ) consiste in un insieme di specifiche promosse e curate da OMG (Object Management Group). L OMG è un consorzio internazionale no-profit di industrie nel

Dettagli

Estratto dell'agenda dell'innovazione Smau Milano 2011. Speciale: I casi. Introduzione dell'area tematica. Il caso INCA CGIL

Estratto dell'agenda dell'innovazione Smau Milano 2011. Speciale: I casi. Introduzione dell'area tematica. Il caso INCA CGIL Estratto dell'agenda dell'innovazione Smau Milano 2011 Speciale: I casi Introduzione dell'area tematica Il caso INCA CGIL Innovare e competere con le ICT - PARTE I Cap.1 L innovazione nella gestione dei

Dettagli

Corso di Sistemi di elaborazione delle informazioni

Corso di Sistemi di elaborazione delle informazioni Corso di Sistemi di elaborazione delle informazioni Biacco Sabrina ENTERPRISE RESOURCE PLANNING Gli ERP sono delle soluzioni applicative in grado di coordinare l'insieme delle attività aziendali automatizzando

Dettagli

I nuovi modelli di delivery dell IT: un quadro di riferimento

I nuovi modelli di delivery dell IT: un quadro di riferimento I nuovi modelli di delivery dell IT: un quadro di riferimento Stefano Mainetti Fondazione Politecnico di Milano stefano.mainetti@polimi.it Milano, 25 Ottobre 2010 Cloud Computing: il punto d arrivo Trend

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

Interoperabilità e cooperazione applicativa tra sistemi informativi

Interoperabilità e cooperazione applicativa tra sistemi informativi Interoperabilità e cooperazione applicativa tra sistemi informativi Michele Ruta Dipartimento di Ingegneria Elettrica e dell Informazione Politecnico di Bari 1di 29 Indice Introduzione ai Port Community

Dettagli

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Implementazione di un servizio VoIP in ambienti SOA per mobile computing tesi di laurea Implementazione di un servizio VoIP in ambienti SOA per mobile computing Anno Accademico 2006/2007 relatore Ch.mo prof. Domenico Cotroneo correlatore ing. Marcello Cinque candidato Vittorio

Dettagli

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011. Andrea Carnevali R&D Director GESINF S.r.l.

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011. Andrea Carnevali R&D Director GESINF S.r.l. 2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011 Andrea Carnevali R&D Director GESINF S.r.l. Il progetto 2G è il nome della piattaforma che consentirà l evoluzione tecnologica

Dettagli

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008 UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

Il Provvedimento del Garante

Il Provvedimento del Garante Il Provvedimento del Garante Il provvedimento del Garante per la Protezione dei dati personali relativo agli Amministratori di Sistema (AdS) Misure e accorgimenti prescritti ai titolari dei trattamenti

Dettagli

BASI DI DATI I Lezione n 2 25/09/2009

BASI DI DATI I Lezione n 2 25/09/2009 BASI DI DATI I Lezione n 2 25/09/2009 Fumarola Roberta, Galeano Antonio Andrea Linguaggio di modellazione Insieme di simboli e regole atto a descrivere la struttura e le funzionalità di un Database prima

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

Punti fondamentali sulla tecnologia del sistema ABScard

Punti fondamentali sulla tecnologia del sistema ABScard Punti fondamentali sulla tecnologia del sistema ABScard Architettura ABSCARD Pagina 1 di 13 INDICE GENERALE 1 Architettura...3 1.1 Introduzione...3 1.1.1 Sicurezza...4 1.1.2 Gestione...5 1.1.3 ABScard

Dettagli

josh Archive! il software per Archiviazione Documentale josh Archive! per una completa gestione dei processi di

josh Archive! il software per Archiviazione Documentale josh Archive! per una completa gestione dei processi di josh Archive! il software per l Archiviazione Documentale josh Archive! per una completa gestione dei processi di Archiviazione Documentale e Conservazione Sostitutiva Cos è josh Archive! Dalla scansione

Dettagli

Solution For Electronic Data Interchange. EDIJSuite. La soluzione per l interscambio dei dati in formato elettronico

Solution For Electronic Data Interchange. EDIJSuite. La soluzione per l interscambio dei dati in formato elettronico Solution For Electronic Data Interchange EDIJSuite La soluzione per l interscambio dei dati in formato elettronico Release 1.4 del 20.12.2013 - ST COMPANY SRL EDIJSuite La soluzione per l interscambio

Dettagli

Nell'ambito del processo di acquisto sono molte le attività che puoi agevolmente delegare al nostro personale specializzato:

Nell'ambito del processo di acquisto sono molte le attività che puoi agevolmente delegare al nostro personale specializzato: Nell'ambito del processo di acquisto sono molte le attività che puoi agevolmente delegare al nostro personale specializzato: In Siav abbiamo una Divisione specializzata nei servizi in outsourcing: il nostro

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A2 Introduzione ai database 1 Prerequisiti Concetto di sistema File system Archivi File e record 2 1 Introduzione Nella gestione di una attività, ad esempio un azienda, la

Dettagli

AppStore No Grazie! RACCOLTA ORDINI AGENTI ipad SALES

AppStore No Grazie! RACCOLTA ORDINI AGENTI ipad SALES Prodotti Software - ipadsales RACCOLTA ORDINI AGENTI ipad SALES Una vera applicazione business per la forza vendita, nata da oltre dieci anni di specifica competenza nel settore e già pienamente integrata

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate

Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate Università degli Studi di Salerno Ingegneria del Software: Tecniche Avanzate Mystic Pizza Gestione Pizzeria Scheda di Progetto Version 1.0 Data 19/03/2007 Indice degli argomenti 1. Introduzione 3 a. Scenario

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

TECNICO SUPERIORE PER I SISTEMI E LE TECNOLOGIE INFORMATICHE

TECNICO SUPERIORE PER I SISTEMI E LE TECNOLOGIE INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER I SISTEMI E LE TECNOLOGIE INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Metodologia Classica di Progettazione delle Basi di Dati

Metodologia Classica di Progettazione delle Basi di Dati Metodologia Classica di Progettazione delle Basi di Dati Metodologia DB 1 Due Situazioni Estreme Realtà Descritta da un documento testuale che rappresenta un insieme di requisiti del software La maggiore

Dettagli

Programmazione Java Avanzata Spring - JDBC

Programmazione Java Avanzata Spring - JDBC Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008

Dettagli

Il Cloud Computing nel mondo dei servizi: prospettive per Banche e PA

Il Cloud Computing nel mondo dei servizi: prospettive per Banche e PA Forum Banche e PA 2012 Roma, 23 24 Febbraio 2012 Il Cloud Computing nel mondo dei servizi: prospettive per Banche e PA Monica Pellegrino Research Analyst, ABI Lab Roma, 23 Febbraio 2012-1- Agenda L evoluzione

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

Dettagli

Stock&Store la soluzione software per le gestione del punto vendita nei settori Retail, Ristorazione e Fashion.

Stock&Store la soluzione software per le gestione del punto vendita nei settori Retail, Ristorazione e Fashion. Stock&Store la soluzione software per le gestione del punto vendita nei settori Retail, Ristorazione e Fashion. Stock&Store è la soluzione informatica integrata per la gestione del punto vendita, sia esso

Dettagli

Liceo Tecnologico. Indirizzo Informatico e Comunicazione. Indicazioni nazionali per Piani di Studi Personalizzati

Liceo Tecnologico. Indirizzo Informatico e Comunicazione. Indicazioni nazionali per Piani di Studi Personalizzati Indirizzo Informatico e Comunicazione Indicazioni nazionali per Piani di Studi Personalizzati Indirizzo Informatico e Comunicazione Discipline con attività di laboratorio 3 4 5 Fisica 132 Gestione di progetto

Dettagli

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1 Introduzione Il software e l ingegneria del software Marina Mongiello Ingegneria del software 1 Sommario Il software L ingegneria del software Fasi del ciclo di vita del software Pianificazione di sistema

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

Dettagli