Università degli studi di RomaTre. Dipartimento di Ingegneria Laurea triennale in Ingegneria Informatica. Tesi di laurea

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli studi di RomaTre. Dipartimento di Ingegneria Laurea triennale in Ingegneria Informatica. Tesi di laurea"

Transcript

1 Università degli studi di RomaTre Dipartimento di Ingegneria Laurea triennale in Ingegneria Informatica Tesi di laurea Metodologie e strumenti per il testing del software di controllo di integrità dei dati su strutture dati autenticate Candidato Alessio Treglia Matr Relatore Maurizio Pizzonia Anno accademico 2012/2013

2

3 The beginning is always today (Mary Shelley) - Ho imparato un sacco di cose in mezzo agli altri, vestiti uguali Ma non quale é il crimine giusto per non passare da criminali (Fabrizio De André)

4

5 Indice Introduzione 2 1 Contesto e stato dell arte FileRock: un servizio di sincronizzazione e backup FileRock client Strutture dati autenticate Basis e proof Merkle hash tree Merkle hash tree: calcolo della proof Skip list autenticate Authenticated skip list: calcolo della proof Implementazione: linguaggi e tecnologie Python: caratteristiche e breve storia Testing: Python unittest Obiettivi previsti Analisi e progettazione Software testing come garanzia di qualità Obiettivi e limitazioni del collaudo Limiti del testing Verifica e validazione Tecniche di verifica Test fixture e oggetti fittizi Tecniche di validazione Verifica e validazione in FileRock Garanzia di qualità Definizioni Indicatori di qualità e obiettivi I

6 II INDICE Garanzia di qualità in FileRock Analisi: scenario iniziale Struttura Analisi delle criticità e piano di lavoro Debian packaging e integrazione in Ubuntu Realizzazione del software Casistiche e tipologie di test Test unitario Test funzionale Test di integrazione Modello e generazione dati di input Oggetti Dataset per l incapsulamento del filesystem Generazione dati casuali Supporto all automazione Caricamento dei dati di input da file di configurazione Script di esecuzione automatica Integrazione in Debian e Ubuntu Integrazione in Unity Debian packaging Conclusioni Sviluppi futuri Conclusioni A Licenza Glossario Bibliografia Ringraziamenti i iii v ix

7 Elenco delle figure 1.1 Calcolo del fingerprint dello stato iniziale Aggiornamento del fingerprint e caricamento dei file Verifica di integrità e download dei file Caricamento di file contenuti protetti Struttura Merkle hash tree Merkle hash tree, proof per l elemento e Skip list autenticata. È indicato il verso di percorrenza del flusso delle informazioni in un cammino Ricalcolo del basis. In grigio i nodi appartenenti al cammino scelto Analisi prestazionale Sulla sinistra gli attributi oggetti delle misurazioni, a destra le caratteristiche di qualità III

8 IV ELENCO DELLE FIGURE

9 Elenco delle tabelle 1.1 Prestazioni: Python si dimostra estremamente veloce con il calcolo su interi long Analisi della distribuzione degli errori in un progetto software di medie dimensioni V

10 VI ELENCO DELLE TABELLE

11 Introduzione Le metodologie e le tecniche di collaudo da sempre rappresentano voci importanti nelle valutazioni di allocazione di tempo e risorse per lo sviluppo di software. Benché la relazione fra le strategie di assicurazione di qualità e il successo o il fallimento di un progetto trovasse già sicuri riscontri nell industria del periodo antecedente all introduzione delle più recenti metodologie agili, queste ultime hanno sicuramente contribuito all elaborazione di nuove pratiche e strumenti: se fare del buon testing era importante quando l ingegneria ancora si basava su processi sequenziali di analisi e progettazione, alcune delle nuove tecniche agili, aventi come principio fondante la riduzione del rischio di insuccesso e basate sulla suddivisione dei processi di produzione in ridotte finestre temporali, accompagnano lo studio dei requisiti di sviluppo del software all analisi dei requisiti di collaudo. Il progetto FileRock é un software di condivisione di contenuti su Internet prodotto dalla Heyware s.r.l. È progettato per l utenza desktop privata e aziendale e si propone di fornire agli utenti le maggiori garanzie possibili in termini di confidenzialità e integrità dei dati. Per raggiungere tale obiettivo FileRock incapsula un implementazione proprietaria di un protocollo di comunicazione client-server basato su algoritmi di controllo di integrità dei dati su strutture dati autenticate ADS, acrònimo di Authenticated Data Structures, le quali verranno descritte in seguito. Questa tesi ha come scopo principale quello di illustrare le strategie e i processi decisionali seguìti nella progettazione dei componenti software di ausilio ai test, nonché le metodologie e gli strumenti utilizzati dal candidato durante la sua esperienza lavorativa maturata nell ambito di FileRock, impiegato dalla azienda produttrice del software nel ruolo di Quality Engineer. Il fine ultimo è stato quello di fornire agli sviluppatori degli strumenti open, affidabili e di facile utilizzo che fossero in grado di velocizzare la stesura di test case e di automatizzarne l esecuzione. In primo 1

12 2 CAPITOLO 0. INTRODUZIONE luogo sono stati esaminati diversi aspetti e casi d uso dei componenti sottoposti a collaudo. Una volta individuate le priorità, si è proceduto alla scrittura dei casi di test. Durante l avanzamento dei lavori è stato possibile generalizzare le soluzioni alle problematiche riscontrate e estenderle a scenari più ampi. Ciò ha permesso la scrittura di codice riutilizzabile per il collaudo di parti del software non incluse nel progetto iniziale. Il Capitolo 1 fornisce una rappresentazione dello scenario iniziale e lo stato dei lavori al momento dell introduzione del candidato al processo di sviluppo del prodotto. Sono inoltre introdotte le tecnologie, i linguaggi e gli strumenti open source utilizzate nella scrittura del codice. Il Capitolo 2 illustra il processo decisionale, le strategie attuate e le tipologie di problemi risolti per il raggiungimento degli scopi prefissati. Il Capitolo 3 descrive la scelte progettuali e i dettagli implementativi delle soluzioni ai problemi individuati duranti le fasi di analisi e comprende una selezione di esempi di codice estratti dalla ricca codebase del progetto stesso. Tutto il codice é rilasciato nei termini di una licenza libera, la Berkeley Software Distribution (variante a 3 clausole) ed è liberamente riutilizzabile, modificabile e redistribuibile secondo i termini della licenza stessa.

13 Capitolo 1 Contesto e stato dell arte In questo capitolo viene fornita una dettagliata descrizione dello scenario iniziale dei lavori. Verranno quindi introdotte le strutture dati autenticate, componente centrale dell intera architettura di verifica dell integrità nonchè target principale delle operazioni di collaudo, le tecnologie e i linguaggi di programmazione utilizzati nello sviluppo del software, nonché il risultato delle prime fasi di analisi del progetto. 1.1 FileRock: un servizio di sincronizzazione e backup FileRock [fila] é un servizio di sincronizzazione e backup di dati sul web che consente la memorizzazione e la gestione di file grazie all utilizzo di risorse software e hardware coordinate all interno di un architettura remota distribuita. Le caratteristiche del servizio sono accomunabili a quelle del classico servizio di cloud computing, gli obiettivi prefissati (come descritto in [Nar12]) si possono riassumere nei tre pilastri [Per11] della sicurezza dei dati: confidenzialità integrità disponibilità Il termine confidenzialità si riferisce alle misure di protezione dei dati che garantiscono all utente un controllo totale e esclusivo sulle politiche di accesso agli stessi. Il servizio si offre di garantire all utente che financo i membri dello staff tecnico e amministrativo saranno impossibilitati ad accedere in lettura ai dati memorizzati. 3

14 4 CAPITOLO 1. CONTESTO E STATO DELL ARTE Il principio di integrità si può riassumere nell impossibilità per soggetti non autorizzati di effettuare modifiche o cancellazioni. Qualora si verificassero modifiche non autorizzate, l utente sarà sempre in grado di accorgersene. La disponibilità é il principio secondo il quale l utente deve poter accedere ai propri dati in qualsiasi momento. I canali di accesso, i sistemi e gli automatismi di autenticazione devono sempre funzionare correttamente al fine di fornire un servizio continuativo per la fruizione dei dati. FileRock si prefigge perciò di fornire un servizio all utente con lo scopo di soddisfare i seguenti requisiti: i dati si troveranno sempre nell ultimo stato noto all utente proprietario degli stessi; in caso di guasti e di modifiche malevoli ai dati, l utente verrà tempestivamente avvisato; l utente é libero di non fidarsi dei servizi di sincronizzazione, backup e memorizzazione fisica dei propri dati FileRock client L applicazione client (ovvero il programma in formato eseguibile fornito all utente), oltre a fornire una interfaccia gradevole e di semplice utilizzo, si occupa principalmente di verificare l integrità del patrimonio di dati dell utente e di gestire le operazioni di cifratura, qualora richieste, in fase di upload dei dati sul server. Allo stato iniziale viene calcolato una rappresentazione numerica dei contenuti di una cartella privata dell utente, nota come fingerprint. A un set di contenuti può corrispondere una sola rappresentazione digitale, per evitare collisioni viene utilizzato l algoritmo MD5 [Riv92] per produrre codici hash di lunghezza pari a 128 bit (16-byte). Quando vengono apportate una o più modifiche ai file presenti nella cartella privata dell utente, l applicazione sincronizza i dati con il server e aggiorna il fingerprint.

15 1.1. FILEROCK: UN SERVIZIO DI SINCRONIZZAZIONE E BACKUP 5 Figura 1.1: Calcolo del fingerprint dello stato iniziale Figura 1.2: Aggiornamento del fingerprint e caricamento dei file In fase di download dei dati, il servizio remoto fornisce una prova di integrità che verrà successivamente utilizzata dall applicazione client per verificare la correttezza dell operazione richiesta. Se la verifica dell integrità ha successo, il client inizia a scaricare i dati in locale; in caso contrario informa immediatamente l utente del problema riscontrato. Figura 1.3: Verifica di integrità e download dei file

16 6 CAPITOLO 1. CONTESTO E STATO DELL ARTE Fra le caratteristiche avanzate aggiuntive offerte da FileRock c è la sopra citata cifratura in locale. L applicazione applica a una cartella residente sul filesystem a scelta dell utente un algoritmo di cifratura e provvede al suo caricamento in forma già cifrata, impedendo in questo modo ogni eventuale accesso lato server. Figura 1.4: Caricamento di file contenuti protetti 1.2 Strutture dati autenticate Le prime apparizioni in ambito crittografico delle strutture dati autenticate si devono a [Mer80], [Koc98] e [NN98], una sintetica descrizione generale viene fornita da [Nar12]: una struttura dati si dice autenticata se da essa è possibile trarre sempre una prova di integrità, o proof relativa al suo stato corrente. L utilizzo avviene in uno scenario in cui una fonte non fidata ha la responsabilità di soddisfare una richiesta, garantendo la veridicità della risposta fornita. Nel caso specifico di una implementazione di una struttura dati, le richieste si possono classificare in una ristretta selezione: inserimenti cancellazioni ricerca Le entità fondamentali dell implementazione hanno i nomi di basis e proof. La prima é un hash crittografico di un determinato stato della struttura dati, la seconda è una coppia formata da un operazione e un codice hash che permette la verifica

17 1.2. STRUTTURE DATI AUTENTICATE 7 dell integrità di uno stato della struttura oggetto della richiesta Basis e proof Il basis é lo strumento principale necessario per dimostrare l integrità della struttura dati e del suo contenuto. Trattandosi di un fingerprint di un determinato stato del dataset, una proprietà fondamentale é che a due stati diversi corrispondono due basis diversi. Un agente interessato a verificare l integrità della struttura deve perciò conoscere il valore corrente del basis. La prova di integrità é fornita dalla proof: applicando un algoritmo a tale insieme di informazioni, è possibile ricalcolare il valore hash dei dati e verificarne l uguaglianza con un basis fidato. Quest ultimo può essergli stato comunicato da una fonte fidata (o inoltrato da una fonte non fidata fintanto che firmato dalla fonte fidata) [Nar12] Merkle hash tree Una implementazione possibile é la Merkle hash tree, proposta in [Mer80]. Tale struttura é una particolare istanza di albero di ricerca composta da una funzione di hash H e un insieme di dati ordinati S e caratterizzata come segue: i nodi foglia corrispondo agli elementi e di S; sono anch essi dotati di un etichetta, la quale corrisponde al valore hash H(e) dell elemento che rappresentano; i nodi intermedi sono dotati di etichetta, risultato della funzione di hash applicata sulla concatenazione delle etichette dei nodi figli. Ne deriva che anche il nodo radice root é provvisto di etichetta, la quale rappresenta il basis, ovvero il fingerprint dell intera collezione di dati [Nar12] Merkle hash tree: calcolo della proof Per verificare la presenza di un dato nodo e nella struttura dati autenticate, si prenda in considerazione un cammino T dal nodo root al nodo e. Ogni nodo p appartenente a

18 8 CAPITOLO 1. CONTESTO E STATO DELL ARTE Figura 1.5: Struttura Merkle hash tree tale cammino possiede un nodo figlio q, non incluso nel cammino T, che contribuisce al calcolo dell etichetta del genitore. Figura 1.6: Merkle hash tree, proof per l elemento e 2 La proof é composta dall insieme di tali contributi. Nota la funziona di hash, la proof sopra definita permette di ricalcolare il basis dell intero insieme dei dati [Nar12].

19 1.2. STRUTTURE DATI AUTENTICATE Skip list autenticate Un altra possibile implementazione é rappresentata dalle authenticated skip list, ampiamente analizzate e discusse in [GTS01], [GT01] e [Nar12]. La struttura dati in questione é una variante della tradizionale skiplist, introdotte da [Pug90], i cui elementi sono arricchiti delle informazioni di autenticazione. Una skip list é composta da un insieme di liste ordinate. Una di queste liste contiene l intero insieme di dati, le altre costituiscono una parte di ridondanza: ogni elemento ha probabilità 1/2 di essere presente in una lista se presente nella lista precedente; l ultima lista contiene esclusivamente gli elementi + e, necessari ai fini della ricerca di elementi all interno della struttura. Sfruttando una logica simile a quella utilizzata dai Merkle hash tree, viene composto un grafico diretto aciclico a partire dai nodi della skip list. Tale struttura supporta efficienti operazioni di ricerca di un elemento e all interno di un insieme S. Figura 1.7: Skip list autenticata. È indicato il verso di percorrenza del flusso delle informazioni in un cammino. In Figura 1.7 é mostrata una skip list autenticata, dove ogni elemento in ogni lista é un nodo del grafo ed é caratterizzato da un etichetta. Ogni etichetta è calcolata come composizione delle etichette dei nodi figli, il valore del basis é rappresentato dall etichetta del nodo root ((, L 3 )).

20 10 CAPITOLO 1. CONTESTO E STATO DELL ARTE Authenticated skip list: calcolo della proof Le proof per la verifica della presenza di un elemento e nella struttura si costruiscono con un processo del tutto simile a quello utilizzato nei Merkle hash tree. Dato un cammino T dal nodo (e, L 0 ) alla radice (, L 3 ), si collezionano tutti i nodi che contribuiscono a tale cammino. Nota la funzione di hash, é sempre possibile ricalcolare tutte le etichette dal nodo di partenza fino al basis. In 1.8 viene mostrato il cammino di computazione per l elemento 19; i nodi che compongono la proof sono marcati con linee oblique. Per ottenere il fingerprint, é necessario ricalcolare le etichette dei nodi grigi fino al nodo radice. Figura 1.8: Ricalcolo del basis. In grigio i nodi appartenenti al cammino scelto. Come evidenziato in Figura 1.8, per il computo del basis non é necessario conoscere le etichette dei nodi appartenenti al cammino scelto. 1.3 Implementazione: linguaggi e tecnologie L implementazione scelta per le strutture dati autenticate si basa sulle authenticated skip list descritte in 4.2. L implementazione si basa dunque su: la stessa struttura dati, che supporta interrogazioni e operazioni di inserimento, cancellazione e modifica; un algoritmo per il calcolo del basis; una proof e un algoritmo per la generazione della stessa quando associata a un operazione;

21 1.3. IMPLEMENTAZIONE: LINGUAGGI E TECNOLOGIE 11 un algoritmo per la verifica della validità dell operazione combinata alla proof da parte dell applicazione client. Il codice dell architettura software e dei testcases per il testing dei componenti responsabili della verifica di integrità dei dati é interamente scritto in linguaggio Python Python: caratteristiche e breve storia Python é stato inventato e reso pubblico da Guido Van Rossum, un matematico olandese, nel febbraio del 1991, con un messaggio pubblicato sul newsgroup alt.sources [Pyt91]. Sulla scelta di Python come linguaggio e dunque strumento principale di sviluppo hanno pesato alcune delle sue più importanti caratteristiche: orientabilità agli oggetti: Python supporta ereditarietà, polimorfismo e incapsulamento in modo semplice e intuitivo; semplcità d uso: opera a un alto livello di astrazione e la sua sintassi è basata su poche semplici regole; potenza e velocità: l implementazione prevede che il codice venga bytecompilato prima della sua esecuzione; in molte situazioni, specialmente quelle che coinvolgono operazioni matematiche con tipi di dati numerici si é dimostrata più veloce di Java e leggermente più lenta di C (i risultati dei test prestazionali sono mostrati in 1.1 e 1.9); portabilità: scritto in linguaggio ANSI C, l interprete CPython può essere compilato su tutte le architetture fornite di un compilatore in grado di supportare lo standard C-89. È installato in modo predefinito sulle maggiori distribuzioni GNU/Linux (e.g. Debian, Ubuntu, Fedora) e sulle più importanti incarnazioni moderne di UNIX come Oracle Solaris e Mac OS X, nonchè sulle diverse varianti della famiglia BSD. Più approfondite analisi su comparazioni prestazionali del linguaggio prestazionale si consulti [pyt09].

22 12 CAPITOLO 1. CONTESTO E STATO DELL ARTE Factorial computatation Java.NET Python Squeak 4 Mono ! 343 ms 137 ms 91 ms ms 169 ms ! ms 569 ms 372 ms ms 701 ms ! ms ms 836 ms ms ms ! ms ms ms ms ms ! ms ms ms ms ms ! ms ms ms ms ms Tabella 1.1: Prestazioni: Python si dimostra estremamente veloce con il calcolo su interi long Figura 1.9: Analisi prestazionale Testing: Python unittest Il framework di testing sviluppato dal candidato si basa sul framework fornito di default dal linguaggio: unittest. Tale framework, conosciuto anche come PyUnit deriva dalla popolare suite di testing per Java JUnit, che a sua volta affondava le sue radici nella libreria di testing fornita con il linguaggio Smalltalk. Insieme a PyUnit, per motivi di praticità nella scrittura dei test é stato inoltre utilizzato il framework Nose [nos]. Nose facilita la scrittura di test cases grazie a un intelligente sistema di discovering dei metodi di test. Nose consente inoltre una gestione trasparente delle fixtures e dei scenari di test, agevolando la selezione di quest ultimi in base a criteri di raggruppamento secondo criteri prestabiliti. 1.4 Obiettivi previsti Gli obiettivi del progetto erano: fornire agli sviluppatori di FileRock un framework per il testing del codice Python di facile utilizzo specifico per le problematiche più comuni;

23 1.4. OBIETTIVI PREVISTI 13 collaudare i componenti software responsabili della verifica di integrità dei dati. Entrambi gli obiettivi sono stati raggiunti nei limiti di tempo e risorse prestabilite.

24 14 CAPITOLO 1. CONTESTO E STATO DELL ARTE

25 Capitolo 2 Analisi e progettazione In questo capitolo vengono illustrati il processo decisionale e le strategie applicate durante le fasi di analisi e progettazione del componente software di ausilio ai test. Verrà inoltre esposto il risultato dello studio effettuato sugli argomenti riguardanti la teoria e le tecniche di validazione, verifica e garanzia di qualità sulla base dei quali il candidato ha affrontato l ampia casistica e le diverse tipologie di problemi durante lo sviluppo dei test cases. 2.1 Software testing come garanzia di qualità In modo del tutto simile alla maggior parte dei processi fisici, un componente software riceve un insieme di dati di ingresso per elaborarli e produrre un insieme di dati di uscita. Qualsiasi attività finalizzata alla valutazione delle caratteristiche di un programma o un sistema e alla verifica che i comportamenti degli stessi diano i risultati previsti rientra nella definizione di software testing [HH88]. Ciò in cui un software differisce dagli altri sistemi fisici é l insieme solitamente molto ampio di modi in cui é possibile che esso fallisca; benché un software non risenta di difetti di fabbrica (molto spesso i difetti derivano da errori introdotti in fase di progettazione e non dalla scrittura del codice sorgente) né di altri fattori ambientali e di usura, cercare di prevedere tutti i possibili errori é di fatto impossibile [Pan99]. 15

26 16 CAPITOLO 2. ANALISI E PROGETTAZIONE 2.2 Obiettivi e limitazioni del collaudo Le attività di testing sono considerate parti integranti dello sviluppo di un software: metà delle risorse impiegate nello sviluppo vengono solitamente allocate a a procedure di collaudo [Har00], le quali sono dunque generalmente riconducibili a due importanti scopi finali: verifica e validazione: in altre parole, validare che il software soddisfi i requisiti e le specifiche e verificare che lo faccia nel modo atteso; migliorare la qualità: la presenza di difetti rappresenta solo uno degli indici di qualità del software (correttezza), il collaudo si propone come obiettivo quello di valutare il software secondo un insieme di parametri Limiti del testing La presenza di difetti nel software è strettamente correlata alla sua complessità, la tabella 2.1 mostra l ottima rappresentazione fornita da [BP84] dell andamento del rapporto che intercorre fra le dimensioni (misurate in linee di codice) di un programma e la presenza di difetti. N. di linee sorgenti totali binari totali sorgenti con errori binari con errori > Total Tabella 2.1: Analisi della distribuzione degli errori in un progetto software di medie dimensioni La presenza di bug in un software deriva dunque dalla complessità stessa e non é direttamente correlata alle capacità tecniche dei programmatori che ne hanno curato progettazione e implementazione. Per lo stesso motivo, scoprire i difetti é altrettanto difficile. Collaudare un sistema coprendo tutto l insieme di dati accettabile dallo

27 2.3. VERIFICA E VALIDAZIONE 17 stesso é impraticabile; si può averne la dimostrazione prendendo in considerazione un semplice programma sommatore a due operandi di numeri interi a 32 bit come oggetto del collaudo: significherebbe testare il funzionamento del sistema con 2 64 combinazioni, con grande dispendio di tempo e risorse [Pan99]. Un ulteriore complicazione deriva dalla frequenza di aggiornamento del software: un test case scritto ed eseguito con successo durante le prime fasi di sviluppo potrebbe fallire in una successiva occasione a causa di modifiche introdotte nel codice sorgente. È evidente che l improvviso fallimento di un test case richiede un indagine approfondita sia del codice del programma che dello stesso test: potrebbe essere necessario aggiornare il meccanismo di collaudo per renderlo conforme al nuovo comportamento del software. In alternativa, nel caso in cui l errore non fosse né nel codice né nei dati di input del test, bisognerà riparare il difetto all interno del programma. Infine, sarà necessario eseguire nuovamente il test. È evidente come tutte queste operazioni abbiano dei costi. Senza una strategia e degli strumenti di ausilio all analisi dei requisiti e alla scrittura dei componenti di collaudo, tali costi possono diventare insostenibili. 2.3 Verifica e validazione Verifica e validazione sono elementi fondamentali nel ciclo di vita di qualsiasi software. Lo sviluppo di un programma, un sistema complesso o anche un solo singolo componente unitario non può mai perdere di vista il suo obiettivo: soddisfare correttamente un insieme definito di requisiti. I concetti di validazione e verifica vengono talvolta confusi, per comprendere le sottili ma fondamentali differenze fra questi concetti é possibile ricorrere a diverse fonti in letteratura. Le definizioni formali più largamente diffuse e accettate sono fornite da [PCCW93]: la validazione é il processo di valutazione del software, messo in atto parallelamente o alla fine del processo di sviluppo, allo scopo di determinare se lo stesso rispetti o meno i requisiti stabiliti ; la verifica é il processo di valutazione del software atto a determinare se i prodotti di una certa fase di sviluppo soddisfino le condizioni iniziali.

28 18 CAPITOLO 2. ANALISI E PROGETTAZIONE Secondo [Boe89], verifica e validazione devono rispondere alle seguenti domande: validazione: stiamo sviluppando il prodotto corretto? ; verifica: il prodotto che stiamo sviluppando è corretto? Tecniche di verifica Esiste una vasta letteratura sui numerosi approcci e le tecniche di verifica. La prima macro suddivisione si basa sulla natura stessa del tipo di collaudo, che può essere statico o dinamico [Tra99]: lo static testing é l insieme di analisi e valutazioni compiute senza la necessità di eseguire il software oggetto di collaudo. Esempi di attività statiche sono la verifica formale e l analisi metrica del codice sorgente; per dynamic testing si intendono tutte le procedure eseguite a sistema già avviato; tipicamente tali attività coinvolgono la comparazione di risultati attesi con quelli ottenuti a partire da un certo insieme di dati di input introdotti nel sistema. Le metodologie statiche possono essere suddivise in due categorie [Tra99]: verifiche di coerenza: alcuni esempi sono le verifiche di sintassi, tipizzazione e corrispondenza dei parametri fra procedure diverse; tecniche di misurazione: includono verifiche di leggibilità del codice e livelli di struttura [And86]. Gli approcci dinamici al collaudo vengono tipicamente suddivisi in tre grandi categorie [Tra99]: testing funzionale: vengono identificate e collaudate le funzionalità previste dalle specifiche; il classico esempio di test funzionale é noto come collaudo a scatola nera; testing strutturale: viene collaudato il funzionamento interno del software; questo prevede una conoscenza totale della sua architettura e delle scelte implementative e di design; il tipico esempio di test strutturale é il collaudo a scatola bianca;

29 2.3. VERIFICA E VALIDAZIONE 19 testing casuale: prevede l esecuzione di un numero di casi di test selezionati, con l ausilio di un algoritmo pseudocasuale, tra quelli facenti parte di una determinata collezione. È da notare che la strategia in grado di coprire tutte le possibili combinazioni dei dati di input, nome come collaudo esaustivo, non é altro che un caso particolare di collaudo casuale. Benché tale strategia consenta di verificare in modo completo il corretto funzionamento di un sistema, nella grande maggioranza dei casi tale scopo è impossibile da raggiungere [And86] Test fixture e oggetti fittizi Tipicamente, prima di avviare una sessione di collaudo, si rende necessario configurare un contesto all interno del quale verranno eseguiti i test: tale contesto prende il nome di test fixture. Una test fixture rappresenta dunque un insieme di dati e operazioni da eseguire per portare il sistema sottoposto a collaudo a un determinato stato iniziale. Alcuni esempi di test fixture seguono: inizializzazione del file system, con creazione, copia o spostamento di file o cartelle all interno di percorsi predefiniti; inizializzazione di database con predefiniti valori iniziali; cancellazione di file, cartelle o interi filesystem; inizializzazione di componenti software esterni, necessari al corretto svolgimento dei test; il comportamento di alcuni di questi possono essere emulati attraverso l utilizzo di oggetti fittizi. Gli oggetti fittizi, altresì noti come mock, sono utilizzati per simulare il funzionamento di singoli componenti o intere architetture software che non fanno parte degli obiettivi del collaudo; tali oggetti sono frequentemente utilizzati nel test unitario, dove le operazioni di collaudo si concentrano su singole unità pseudo-atomiche, allo scopo di ridurre al minimo le interferenze esterne.

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Energy risk management

Energy risk management Il sistema di supporto alle tue decisioni Energy risk management Un approccio orientato agli attori M.B.I. Srl, Via Francesco Squartini 7-56121 Pisa, Italia - tel. 050 3870888 - fax. 050 3870808 www.powerschedo.it

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE DEL CLIENTE

END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE DEL CLIENTE END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE In un mercato delle Telecomunicazioni sempre più orientato alla riduzione delle tariffe e dei costi di

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

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

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Il Business Process Management: nuova via verso la competitività aziendale

Il Business Process Management: nuova via verso la competitività aziendale Il Business Process Management: nuova via verso la competitività Renata Bortolin Che cosa significa Business Process Management? In che cosa si distingue dal Business Process Reingeneering? Cosa ha a che

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

FORM Il sistema informativo di gestione della modulistica elettronica. Studio FORM FORM Il sistema informativo di gestione della modulistica elettronica. We believe in what we create This is FORM power La soluzione FORM permette di realizzare qualsiasi documento in formato

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Curriculum Vitae Europass

Curriculum Vitae Europass Curriculum Vitae Europass Informazioni personali Cognome/i nome/i Castelli Flavio Email flavio.castelli@gmail.com Sito web personale http://www.flavio.castelli.name Nazionalità Italiana Data di nascita

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

REALIZZARE UN MODELLO DI IMPRESA

REALIZZARE UN MODELLO DI IMPRESA REALIZZARE UN MODELLO DI IMPRESA - organizzare e gestire l insieme delle attività, utilizzando una piattaforma per la gestione aziendale: integrata, completa, flessibile, coerente e con un grado di complessità

Dettagli

DigitPA LINEE GUIDA. Centro di competenza del riuso. DigitPA 00137 Roma - viale Marx, 43 Pagina 1 di 140

DigitPA LINEE GUIDA. Centro di competenza del riuso. DigitPA 00137 Roma - viale Marx, 43 Pagina 1 di 140 LINEE GUIDA PER L INSERIMENTO ED IL RIUSO DI PROGRAMMI INFORMATICI O PARTI DI ESSI PUBBLICATI NELLA BANCA DATI DEI PROGRAMMI INFORMATICI RIUTILIZZABILI DI DIGITPA DigitPA 00137 Roma - viale Marx, 43 Pagina

Dettagli

Panoramica su ITIL V3 ed esempio di implementazione del Service Design

Panoramica su ITIL V3 ed esempio di implementazione del Service Design Master Universitario di II livello in Interoperabilità Per la Pubblica Amministrazione e Le Imprese Panoramica su ITIL V3 ed esempio di implementazione del Service Design Lavoro pratico II Periodo didattico

Dettagli

UNIVERSITÀ DEGLI STUDI DI TRENTO DOCUMENTO ELETTRONICO, FIRMA DIGITALE E SICUREZZA IN RETE.

UNIVERSITÀ DEGLI STUDI DI TRENTO DOCUMENTO ELETTRONICO, FIRMA DIGITALE E SICUREZZA IN RETE. UNIVERSITÀ DEGLI STUDI DI TRENTO DOCUMENTO ELETTRONICO, FIRMA DIGITALE E SICUREZZA IN RETE. INTRODUZIONE ALL ARGOMENTO. A cura di: Eleonora Brioni, Direzione Informatica e Telecomunicazioni ATI NETWORK.

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

IT FINANCIAL MANAGEMENT

IT FINANCIAL MANAGEMENT IT FINANCIAL MANAGEMENT L IT Financial Management è una disciplina per la pianificazione e il controllo economico-finanziario, di carattere sia strategico sia operativo, basata su un ampio insieme di metodologie

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

GESTIONE ATTREZZATURE

GESTIONE ATTREZZATURE SOLUZIONE COMPLETA PER LA GESTIONE DELLE ATTREZZATURE AZIENDALI SWSQ - Solution Web Safety Quality srl Via Mons. Giulio Ratti, 2-26100 Cremona (CR) P. Iva/C.F. 06777700961 - Cap. Soc. 10.000,00 I.V. -

Dettagli

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras 2 Introduzione Le architetture basate sui servizi (SOA) stanno rapidamente diventando lo standard de facto per lo sviluppo delle applicazioni aziendali.

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

DNS (Domain Name System) Gruppo Linux

DNS (Domain Name System) Gruppo Linux DNS (Domain Name System) Gruppo Linux Luca Sozio Matteo Giordano Vincenzo Sgaramella Enrico Palmerini DNS (Domain Name System) Ci sono due modi per identificare un host nella rete: - Attraverso un hostname

Dettagli

DAT@GON. Gestione Gare e Offerte

DAT@GON. Gestione Gare e Offerte DAT@GON Gestione Gare e Offerte DAT@GON partecipare e vincere nel settore pubblico La soluzione sviluppata da Revorg per il settore farmaceutico, diagnostico e di strumentazione medicale, copre l intero

Dettagli

Progetto Didattico di Informatica Multimediale

Progetto Didattico di Informatica Multimediale Progetto Didattico di Informatica Multimediale VRAI - Vision, Robotics and Artificial Intelligence 20 aprile 2015 Rev. 18+ Introduzione Le videocamere di riconoscimento sono strumenti sempre più utilizzati

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Che cos è la Qualità?

Che cos è la Qualità? Che cos è la Qualità? Politecnico di Milano Dipartimento di Elettrotecnica 1 La Qualità - Cos è - La qualità del prodotto e del servizio - L evoluzione del concetto di qualità - La misura della qualità

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

Corso di Amministrazione di Sistema Parte I ITIL 3 Corso di Amministrazione di Sistema Parte I ITIL 3 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici Il

Dettagli

RSYNC e la sincronizzazione dei dati

RSYNC e la sincronizzazione dei dati RSYNC e la sincronizzazione dei dati Introduzione Questo breve documento intende spiegare come effettuare la sincronizzazione dei dati tra due sistemi, supponendo un sistema in produzione (master) ed uno

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

TorrentLocker Enti Italiani sotto riscatto

TorrentLocker Enti Italiani sotto riscatto Digital Forensics Bureau www.difob.it TorrentLocker Enti Italiani sotto riscatto Paolo DAL CHECCO, Giuseppe DEZZANI Studio DIgital Forensics Bureau di Torino 20 ottobre 2014 Da mercoledì 15 ottobre stiamo

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

White Paper. Operational DashBoard. per una Business Intelligence. in real-time

White Paper. Operational DashBoard. per una Business Intelligence. in real-time White Paper Operational DashBoard per una Business Intelligence in real-time Settembre 2011 www.axiante.com A Paper Published by Axiante CAMBIARE LE TRADIZIONI C'è stato un tempo in cui la Business Intelligence

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Classificazioni dei sistemi di produzione

Classificazioni dei sistemi di produzione Classificazioni dei sistemi di produzione Sistemi di produzione 1 Premessa Sono possibili diverse modalità di classificazione dei sistemi di produzione. Esse dipendono dallo scopo per cui tale classificazione

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA SVILUPPO DI METODI DECONVOLUTIVI PER L INDIVIDUAZIONE DI SORGENTI INDIPENDENTI

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

MASTER UNIVERSITARI CORSI di PERFEZIONAMENTO CORSI di FORMAZIONE AVANZATA

MASTER UNIVERSITARI CORSI di PERFEZIONAMENTO CORSI di FORMAZIONE AVANZATA Allegato 1 al bando di gara SCUOLA TELECOMUNICAZIONI FF.AA. CHIAVARI REQUISITO TECNICO OPERATIVO MASTER UNIVERSITARI CORSI di PERFEZIONAMENTO CORSI di FORMAZIONE AVANZATA MASTER DI 2 LIVELLO 1. DIFESA

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Business Process Management

Business Process Management Corso di Certificazione in Business Process Management Progetto Didattico 2015 con la supervisione scientifica del Dipartimento di Informatica Università degli Studi di Torino Responsabile scientifico

Dettagli

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI Prefazione Autori XIII XVII Capitolo 1 Sistemi informativi aziendali 1 1.1 Introduzione 1 1.2 Modello organizzativo 3 1.2.1 Sistemi informativi

Dettagli

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1 versione 1.1 per lo svolgimento dei progetti didattici Corso di Laboratorio di Programmazione II Prof. Luca Forlizzi Anno Accademico 2004-2005 GENERALITÀ...3 Scopo del documento...3 Struttura del documento...3

Dettagli

Scheda descrittiva del programma. Open-DAI. ceduto in riuso. CSI-Piemonte in rappresentanza del Consorzio di progetto

Scheda descrittiva del programma. Open-DAI. ceduto in riuso. CSI-Piemonte in rappresentanza del Consorzio di progetto Scheda descrittiva del programma Open-DAI ceduto in riuso CSI-Piemonte in rappresentanza del Consorzio di progetto Agenzia per l Italia Digitale - Via Liszt 21-00144 Roma Pagina 1 di 19 1 SEZIONE 1 CONTESTO

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

F O R M A T O E U R O P E O

F O R M A T O E U R O P E O F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I T A E INFORMAZIONI PERSONALI Nome Indirizzo Laura Bacci, PMP Via Tezze, 36 46100 MANTOVA Telefono (+39) 348 6947997 Fax (+39) 0376 1810801

Dettagli

Percorsi di matematica per il ripasso e il recupero

Percorsi di matematica per il ripasso e il recupero Giacomo Pagina Giovanna Patri Percorsi di matematica per il ripasso e il recupero 1 per la Scuola secondaria di secondo grado UNITÀ CMPIONE Edizioni del Quadrifoglio à t i n U 1 Insiemi La teoria degli

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Intrusion Detection System

Intrusion Detection System Capitolo 12 Intrusion Detection System I meccanismi per la gestione degli attacchi si dividono fra: meccanismi di prevenzione; meccanismi di rilevazione; meccanismi di tolleranza (recovery). In questo

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

www.bistrategy.it In un momento di crisi perché scegliere di investire sulla Business Intelligence?

www.bistrategy.it In un momento di crisi perché scegliere di investire sulla Business Intelligence? In un momento di crisi perché scegliere di investire sulla Business Intelligence? Cos è? Per definizione, la Business Intelligence è: la trasformazione dei dati in INFORMAZIONI messe a supporto delle decisioni

Dettagli

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

Dettagli