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.

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

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

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

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

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

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Test Giulio Destri Ing. del Software: Test - 1 Scopo del modulo Definire

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

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

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

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

Ingegneria del Software - Il Ciclo Lungo

Ingegneria del Software - Il Ciclo Lungo Ingegneria del Software - Il Ciclo Lungo Alessandro Martinelli alessandro.martinelli@unipv.it 10 Marzo 2014 Il Ciclo Lungo Il Versioning e la Condivisione di Codice Organizzazione dei Pacchetti La Modellazione

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

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

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A. 2004-2005. Marina Mongiello Corso di Laurea Triennale in Ingegneria Informatica Corso di Ingegneria del A. A. 2004-2005 1 La progettazione È applicata indipendentemente dal modello di processo utilizzato. Parte dal punto in cui sono

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 del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

L archivio di impresa

L archivio di impresa L archivio di impresa Mariella Guercio Università degli studi di Urbino m.guercio@mclink.it Politecnico di Torino, 25 novembre 2011 premessa L archivistica è una disciplina della complessità, aperta, basata

Dettagli

SPECIFICHE TECNICHE DI SISTEMA TITOLO DOCUMENTO

SPECIFICHE TECNICHE DI SISTEMA TITOLO DOCUMENTO DIREZIONE EMITTENTE CONTROLLO DELLE COPIE Il presente documento, se non preceduto dalla pagina di controllo identificata con il numero della copia, il destinatario, la data e la firma autografa del Responsabile

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

Sistemi Informativi DERIVAZIONE DEI REQUISITI FUNZIONALI. Obiettivi Specifica dei Requisiti Assembly Lines Esercizi

Sistemi Informativi DERIVAZIONE DEI REQUISITI FUNZIONALI. Obiettivi Specifica dei Requisiti Assembly Lines Esercizi Sistemi Informativi DERIVAZIONE DEI REQUISITI FUNZIONALI Obiettivi Specifica dei Requisiti Assembly Lines Esercizi Obiettivi Nelle lezioni precedenti abbiamo descritto come modellare i requisiti funzionali

Dettagli

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente T4 Contenuto di un analisi dei requisiti Presentate un indice di un documento di analisi dei requisiti e descrivete in modo sintetico contenuto e ruolo di ogni capitolo. INDICE 1. STORIA DELLE REVISIONI

Dettagli

ARCHIVI E LORO ORGANIZZAZIONI

ARCHIVI E LORO ORGANIZZAZIONI ARCHIVI E LORO ORGANIZZAZIONI Archivio: - insieme di registrazioni (record), ciascuna costituita da un insieme prefissato di informazioni elementari dette attributi (campi) - insieme di informazioni relative

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

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

Allegato 2: Prospetto informativo generale

Allegato 2: Prospetto informativo generale Gara a procedura ristretta accelerata per l affidamento, mediante l utilizzo dell Accordo Quadro di cui all art. 59 del D.Lgs. n. 163/2006, di Servizi di Supporto in ambito ICT a InnovaPuglia S.p.A. Allegato

Dettagli

Ciclo di Vita Evolutivo

Ciclo di Vita Evolutivo Ciclo di Vita Evolutivo Prof.ssa Enrica Gentile a.a. 2011-2012 Modello del ciclo di vita Stabiliti gli obiettivi ed i requisiti Si procede: All analisi del sistema nella sua interezza Alla progettazione

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Fase di offerta. Realizzazione del progetto

Fase di offerta. Realizzazione del progetto Linee guida per un buon progetto Commissione dell informazione e dei Sistemi di Automazione Civili e Industriali CONTENUTI A) Studio di fattibilità B) Progetto di massima della soluzione C) Definizione

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

Prefazione. Contenuti

Prefazione. Contenuti Prefazione Il sistema operativo costituisce uno dei componenti fondamentali di ogni sistema di elaborazione, in particolare è quello con cui l utente entra direttamente in contatto quando accede al sistema,

Dettagli

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali CL AS SE INFORMATICA 6(3) 6(4) - 6(4) SISTEMI E RETI 4(2) 4(2) 4(2) TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI COMPETENZE 3 Essere in grado di sviluppare semplici applicazioni

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

Modellazione dei dati in UML

Modellazione dei dati in UML Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):

Dettagli

Soluzioni di strong authentication per il controllo degli accessi

Soluzioni di strong authentication per il controllo degli accessi Abax Bank Soluzioni di strong authentication per il controllo degli accessi Allegato Tecnico Milano Hacking Team S.r.l. http://www.hackingteam.it Via della Moscova, 13 info@hackingteam.it 20121 MILANO

Dettagli

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga Software Testing Lezione 2 Livelli di test Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Rabini/F.Spiga 1 2 Livelli di test Unit Testing Integration Testing System Testing Unit Testing

Dettagli

Verifica e validazione della qualità del sw

Verifica e validazione della qualità del sw Verifica e validazione della qualità del sw Tecniche di Programmazione Lez. 07 Università di Firenze a.a. 2009/10, I semestre 1/40 contenuti Termini e definizioni Tecniche rispetto alle caratteristiche

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

INFORMATICA CORSI DELL'INDIRIZZO TECNICO CLASSI PRIME AMMINISTRAZIONE - FINANZA E MARKETING

INFORMATICA CORSI DELL'INDIRIZZO TECNICO CLASSI PRIME AMMINISTRAZIONE - FINANZA E MARKETING INFORMATICA CORSI DELL'INDIRIZZO TECNICO CLASSI PRIME AMMINISTRAZIONE - FINANZA E MARKETING Modulo propedeutico Le lezioni teoriche sono sviluppate sui seguenti argomenti: Struttura dell elaboratore: CPU,

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

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

EFFICIENZA E RIDUZIONE DEI COSTTI

EFFICIENZA E RIDUZIONE DEI COSTTI SCHEDA PRODOTTO TiOne Technology srl Via F. Rosselli, 27 Tel. 081-0108029 Startup innovativa Qualiano (NA), 80019 Fax 081-0107180 www.t1srl.it www.docincloud.it email: info@docincloud.it DocinCloud è la

Dettagli

Appl. di emissione PKCS#11. API (Metacomandi) Resource Manager Windows. Drivers PC/SC dei lettori

Appl. di emissione PKCS#11. API (Metacomandi) Resource Manager Windows. Drivers PC/SC dei lettori Roma, 30 gennaio 2003 La realtà della carta di identità elettronica (nel seguito CIE) e della carta nazionale dei servizi (nel seguito CNS) rende ineluttabile l individuazione di servizi da erogare in

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

Università degli Studi di Bologna Bologna, 12/12/2002 Corso di Laurea In Informatica. Alessandro Valenti. Sessione II

Università degli Studi di Bologna Bologna, 12/12/2002 Corso di Laurea In Informatica. Alessandro Valenti. Sessione II Università degli Studi di Bologna Bologna, 12/12/2002 Corso di Laurea In Informatica Alessandro Valenti Sessione II Anno Accademico 2001-2002 SOMMARIO: Scenario Data Integration Il Servizio AnaWeb Web

Dettagli

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Mattia Gentilini Relatore: Renzo Davoli Laurea Specialistica in Informatica I Sessione A.A. 2005/2006

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

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

Esempi pratici, risultati e contromisure consigliate. Massimo Biagiotti

Esempi pratici, risultati e contromisure consigliate. Massimo Biagiotti L attività di un Ethical Hacker Esempi pratici, risultati e contromisure consigliate Massimo Biagiotti Information Technology > Chiunque operi nel settore sa che il panorama dell IT è in continua evoluzione

Dettagli

Protezione. Sistemi Operativi mod. B 16.1

Protezione. Sistemi Operativi mod. B 16.1 Protezione Scopi della Protezione Dominio di Protezione Matrice d Accesso Implementazione della Matrice d Accesso Revoca dei Diritti d Accesso Sistemi Basati su Abilitazioni Protezione basata sul linguaggio

Dettagli

Elementi del calcolatore: CPU

Elementi del calcolatore: CPU Elementi del calcolatore: CPU Elementi del calcolatore: Memoria Elementi del calcolatore: Memoria Elementi del calcolatore: Hard Disk Antefatto Sistema Operativo Come il computer appare Il calcolatore

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Ingegneria del Software Requisiti e Specifiche

Ingegneria del Software Requisiti e Specifiche Ingegneria del Software Requisiti e Specifiche Obiettivi. Affrontare i primi passi della produzione del software: la definizione dei requisiti ed il progetto architetturale che porta alla definizione delle

Dettagli

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

Dettagli

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript tesi di laurea di difetti all interno di codice Javascript Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Domenico Amalfitano candidato Vincenzo Riccio Matr.

Dettagli

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o Navigare verso il cambiamento La St r a d a p i ù semplice verso il ca m b i a m e n t o Le caratteristiche tecniche del software La Tecnologia utilizzata EASY è una applicazione Open Source basata sul

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

PROGETTAZIONE FISICA

PROGETTAZIONE FISICA PROGETTAZIONE FISICA Memorizzazione su disco, organizzazione di file e tecniche hash 2 Introduzione La collezione di dati che costituisce una BDD deve essere fisicamente organizzata su qualche supporto

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Il File System È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Le operazioni supportate da un file system sono: eliminazione di dati modifica

Dettagli

LICARUS LICENSE SERVER

LICARUS LICENSE SERVER UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Progetto per il corso di Sicurezza dei Sistemi Informatici LICARUS LICENSE SERVER

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

PROGRAMMAZIONE DIDATTICA DI INFORMATICA PER IL PRIMO BIENNIO Nella programmazione didattica (declinata in termini di competenze), degli obiettivi e

PROGRAMMAZIONE DIDATTICA DI INFORMATICA PER IL PRIMO BIENNIO Nella programmazione didattica (declinata in termini di competenze), degli obiettivi e PROGRAMMAZIONE DIDATTICA DI INFORMATICA PER IL PRIMO BIENNIO Nella programmazione didattica (declinata in termini di competenze), degli obiettivi e dei programmi minimi di Informatica per il primo biennio

Dettagli

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB:

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB: Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB: un caso di studio Anno accademico 2009 / 2010 Relatore Ch.mo prof. Porfirio Tramontana Correlatore Ch.mo Ing. Domenico

Dettagli

Protezione del Software

Protezione del Software Protezione dalla copia Protezione del Software Alfredo De Santis! Aprile 0! Trovare un metodo contro la pirateria efficiente economico resistente contro i pirati esperti non invasivo Compito impossibile!

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica.

La Sicurezza delle Reti. La Sicurezza delle Reti. Il software delle reti. Sistemi e tecnologie per la multimedialità e telematica. Sistemi e tecnologie per la multimedialità e telematica Fabio Burroni Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena burronif@unisi unisi.itit La Sicurezza delle Reti La presentazione

Dettagli

Algoritmo per il rilevamento di targhe

Algoritmo per il rilevamento di targhe Algoritmo per il rilevamento di targhe 19 maggio 2008 Nell affrontare il problema del riconoscimento delle targhe sono stati sviluppati due algoritmi che basano la loro ricerca su criteri differenti. Lo

Dettagli

Gestione Requisiti. Ingegneria dei Requisiti. Requisito. Tipi di Requisiti e Relativi Documenti. La gestione requisiti consiste in

Gestione Requisiti. Ingegneria dei Requisiti. Requisito. Tipi di Requisiti e Relativi Documenti. La gestione requisiti consiste in Ingegneria dei Requisiti Il processo che stabilisce i servizi che il cliente richiede I requisiti sono la descrizione dei servizi del sistema Funzionalità astratte che il sistema deve fornire Le proprietà

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

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

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

Analisi dei Requisiti

Analisi dei Requisiti Analisi dei Requisiti Pagina 1 di 16 Analisi dei Requisiti Indice 1 - INTRODUZIONE... 4 1.1 - OBIETTIVO DEL DOCUMENTO...4 1.2 - STRUTTURA DEL DOCUMENTO...4 1.3 - RIFERIMENTI...4 1.4 - STORIA DEL DOCUMENTO...4

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

Ministero dell istruzione, dell università e della ricerca. Liceo Tecnologico. Indirizzo Informatico, Grafico e Comunicazione

Ministero dell istruzione, dell università e della ricerca. Liceo Tecnologico. Indirizzo Informatico, Grafico e Comunicazione Ministero dell istruzione, dell università e della ricerca Liceo Tecnologico Indirizzo Informatico, Grafico e Comunicazione Percorso Informatico e Comunicazione Indicazioni nazionali per i Piani di Studio

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

HighWay/eXtraWay Project - Schema sintetico delle configurazioni hardware Manuale di riferimento. Generato da Doxygen 1.5.1-p1

HighWay/eXtraWay Project - Schema sintetico delle configurazioni hardware Manuale di riferimento. Generato da Doxygen 1.5.1-p1 HighWay/eXtraWay Project - Schema sintetico delle configurazioni hardware Manuale di riferimento Generato da Doxygen 1.5.1-p1 Fri Jan 4 11:10:14 2008 Indice Capitolo 1 Schema sintetico delle possibili

Dettagli

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: 1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere

Dettagli

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 11 system Sistemi operativi 12 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 11.1 Di cosa parliamo in questa lezione? L interfaccia : system 1 Il

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Tecniche di Collaudo del Software Collaudabilità Un attributo di qualità del software E il grado di semplicità con cui il software può essere collaudato Si compone di

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

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

Dettagli

Una soluzione per la gestione del packaging online

Una soluzione per la gestione del packaging online Una soluzione per la gestione del packaging online WebCenter WebCenter è un efficiente piattaforma web per la gestione del packaging, dei processi aziendali, dei cicli di approvazione e delle risorse digitali.

Dettagli

Capitolo 3 Guida operativa del programma TQ Sistema

Capitolo 3 Guida operativa del programma TQ Sistema Capitolo 3 Guida operativa del programma TQ Sistema Panoramica delle funzionalità Questa guida contiene le informazioni necessarie per utilizzare il pacchetto TQ Sistema in modo veloce ed efficiente, mediante

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli