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

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

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 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

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

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

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

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

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

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

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

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

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

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

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

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 4 Codifica, Test e Collaudo. Al termine della fase di progettazione, a volte anche in parallelo, si passa alla fase di codifica e successivamente alla fase di test e collaudo. In questa parte viene approfondita

Dettagli

Ingegneria del Software UML - Unified Modeling Language

Ingegneria del Software UML - Unified Modeling Language Ingegneria del Software UML - Unified Modeling Language Obiettivi. Presentare un approccio visuale alla progettazione. Illustrare i vantaggi dell utilizzo di diagrammi nella fase di progettazione. Rispondere

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

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

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

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

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

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

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

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

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti Alessio Bechini - Corso di - Il paradigma OO e le relative metodologie di progettazione Metodologie OO Programmazione orientata agli oggetti La programmazione ad oggetti (OOP) è un paradigma di programmazione

Dettagli

NetCrunch 6. Server per il controllo della rete aziendale. Controlla

NetCrunch 6. Server per il controllo della rete aziendale. Controlla AdRem NetCrunch 6 Server per il controllo della rete aziendale Con NetCrunch puoi tenere sotto controllo ogni applicazione, servizio, server e apparato critico della tua azienda. Documenta Esplora la topologia

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

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

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Ingegneria del Software 21. Verifica e validazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 21. Verifica e validazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 21. Verifica e validazione Dipartimento di Informatica Università di Pisa A.A. 2014/15 roadmap Concetti e terminologia Verifica, validazione, integrazione e collaudo Verifica statica

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

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

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

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

Dettagli

Interfaccia del file system. Fabio Buttussi HCI Lab Dipart. di Matematica ed Informatica Università degli Studi di Udine www.dimi.uniud.

Interfaccia del file system. Fabio Buttussi HCI Lab Dipart. di Matematica ed Informatica Università degli Studi di Udine www.dimi.uniud. HCI Lab Dipart. di Matematica ed Informatica Università degli Studi di Udine www.dimi.uniud.it/buttussi Cos'è il file system? Consiste in: Insieme di file Strutture dati per organizzare i file nel sistema

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

Paradigma object-oriented

Paradigma object-oriented Paradigma object-oriented Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced

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

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

Architettura del software: dai Casi d Uso al Modello

Architettura del software: dai Casi d Uso al Modello Architettura del software: dai Casi d Uso al Modello Lorenzo Barbieri Sono un Senior Trainer/Consultant in ObjectWay SpA (www.objectway.it), specializzato in architetture Microsoft.NET, Windows, SQL Server,

Dettagli

Software testing. Lezione 3 Functional Testing Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A.Bei/F.Rabini/F.

Software testing. Lezione 3 Functional Testing Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: A.Bei/F.Rabini/F. 1 Software testing Lezione 3 Functional Testing Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: A.Bei/F.Rabini/F.Spiga 2 Functional Testing Sotto la dicitura funzionale si raccolgono i criteri

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

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

Architetture Applicative

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

Dettagli

Ingegneria dei Requisiti

Ingegneria dei Requisiti Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Ingegneria dei Requisiti E. TINELLI Contenuti I requisiti del software Documento dei requisiti I processi

Dettagli

Manuale Utente CryptoClient

Manuale Utente CryptoClient Codice Documento: CERTMOB1.TT.DPMU12005.01 Firma Sicura Mobile Telecom Italia Trust Technologies S.r.l. - Documento Pubblico Tutti i diritti riservati Indice degli argomenti... 1 Firma Sicura Mobile...

Dettagli

PIANO TRIENNALE PER L ICT 2009-2011 GUIDA ALLA COMPILAZIONE DELLE BOZZE DI PIANO DA PARTE DELLE AMMINISTRAZIONI

PIANO TRIENNALE PER L ICT 2009-2011 GUIDA ALLA COMPILAZIONE DELLE BOZZE DI PIANO DA PARTE DELLE AMMINISTRAZIONI Centro nazionale per l informatica nella pubblica amministrazione Area Amministrazioni centrali PIANO TRIENNALE PER L ICT 2009-2011 GUIDA ALLA COMPILAZIONE DELLE BOZZE DI PIANO DA PARTE DELLE AMMINISTRAZIONI

Dettagli

EIPASS Junior Programma analitico d esame Scuola Primaria

EIPASS Junior Programma analitico d esame Scuola Primaria eipass EIPASS Junior Programma analitico d esame Scuola Primaria Programma analitico d esame EIPASS Junior Scuola Primaria Premessa La nascita, lo sviluppo e il consolidamento delle competenze digitali

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

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali Università degli Studi di Milano Polo di Crema Corso di laurea in Scienze Matematiche, Fisiche e Naturali INFORMATICA Corso di Ingegneria del Software progetto IL SISTEMA CALENDAR Presentato al dott. Paolo

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

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti Definizioni Problemi del testing:criterio di selezione dei casi di test Test Funzionale: suddivisione in classi di equivalenza e analisi dei valori limite Test Strutturale: basato sul flusso di controllo

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

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

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

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

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

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

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

1. FINALITA DELLA DISCIPLINA

1. FINALITA DELLA DISCIPLINA Ministero dell Istruzione dell Università e della Ricerca LICEO SCIENTIFICO STATALE Donato Bramante Via Trieste, 70-20013 MAGENTA (MI) - MIUR: MIPS25000Q Tel.: +39 02 97290563/4/5 Fax: 02 97220275 Sito:

Dettagli

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it

Il software. Il software. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it Il software Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it Outline 1 Il software Outline Il software 1 Il software Algoritmo Sequenza di istruzioni la cui esecuzione consente di risolvere uno

Dettagli

Professional PHP Refactoring

Professional PHP Refactoring Professional PHP Refactoring by Francesco Trucchia (Ideato srl), Enrico Zimuel (Zend Technologies srl) Ci presentiamo... ft@ideato.it Francesco Trucchia, CTO di Ideato srl Fondatore di Ideato srl, esperto

Dettagli

Realizzazione di un applicazione per la stesura di un Business Plan

Realizzazione di un applicazione per la stesura di un Business Plan tesi di laurea Anno Accademico 2006/2007 relatore Ch.mo prof. Porfirio Tramontana candidato Vincenzo Malzone Matr. 534/1173 Obiettivi Realizzare un applicazione desktop per la stesura di un documento di

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Strategie di del Software Testing del Software Il testing è quell attivit attività di esercizio del software tesa all individuazione dei malfunzionamenti prima della messa

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

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

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

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

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

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

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

10. Interfaccia del File System

10. Interfaccia del File System 10. Interfaccia del File System 10.1 Il concetto di File 10.2 Metodi di accesso 10.3 Struttura delle Directory 10.4 Protezione (Leggere) 10.5 Semantica della Consistenza (Leggere) Un File System consiste

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

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

Automazione della gestione degli ordini d acquisto di una società di autonoleggio

Automazione della gestione degli ordini d acquisto di una società di autonoleggio Automazione della gestione degli ordini d acquisto di una società di autonoleggio Professore Gaetanino Paolone Studenti Paolo Del Gizzi Maurizio Di Stefano 1 INDICE INTRODUZIONE.pag.3 IL PIANO METODOLOGICO

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

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

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare Facoltà di Lingue e Letterature Straniere Software È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (=

Dettagli

Corso di Progettazione di sistemi multimediali

Corso di Progettazione di sistemi multimediali Corso di Progettazione di sistemi multimediali prof. Pierluigi Feliciati a.a.2012/13 Modulo 0 Progettare, sistemi, multimedialità: Definizioni, strumenti, ciclo di vita dei progetti, figure professionali

Dettagli

UML e la modellazione di basi di dati non OO

UML e la modellazione di basi di dati non OO Appendice B UML e la modellazione di basi di dati non OO Introduzione Una delle lacune più serie imputate allo UML consiste nella mancanza di uno strumento formale per il disegno dello schema della base

Dettagli

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure COLLAUDO Esempi di errori/difetti algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure Verifica e Validazione Validazione Requisiti

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

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

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Dalla progettazione concettuale alla modellazione di dominio

Dalla progettazione concettuale alla modellazione di dominio Luca Cabibbo A P S Analisi e Progettazione del Software Dalla progettazione concettuale alla modellazione di dominio Capitolo 91 marzo 2015 Se qualcuno vi avvicinasse in un vicolo buio dicendo psst, vuoi

Dettagli

03/11/2009. Circa equivalente al test di chip hardware. Il testing è effettuato, per ogni modulo, in modo isolato per verificarne il comportamento

03/11/2009. Circa equivalente al test di chip hardware. Il testing è effettuato, per ogni modulo, in modo isolato per verificarne il comportamento Introduzione al Testing Unit Testing Ingegneria del Software L-A Glossario Reliability / Affidabilità: la misura del successo con cui il comportamento osservato di un sistema si correla con le specifiche

Dettagli

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

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

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

Dettagli

1. Hard Real Time Linux (Laurea VO o specialistica)

1. Hard Real Time Linux (Laurea VO o specialistica) 20/9/06 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

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

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

La soluzione Oracle per il Piano Esecutivo di Gestione degli Enti locali. White Paper Oracle Gennaio 2004

La soluzione Oracle per il Piano Esecutivo di Gestione degli Enti locali. White Paper Oracle Gennaio 2004 La soluzione Oracle per il Piano Esecutivo di Gestione degli Enti locali White Paper Oracle Gennaio 2004 La soluzione Oracle per il Piano Esecutivo di Gestione degli Enti locali INTRODUZIONE Oracle Italia,

Dettagli

Sistema Operativo Chrome: Analisi degli aspetti peculiari.

Sistema Operativo Chrome: Analisi degli aspetti peculiari. tesi di laurea Sistema Operativo Chrome: Analisi degli aspetti peculiari. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Lina Cocomello Matr. 534/000565 Obiettivi. Che cos

Dettagli

FileMaker Pro 12. Guida di FileMaker Server

FileMaker Pro 12. Guida di FileMaker Server FileMaker Pro 12 Guida di FileMaker Server 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker è un marchio di FileMaker,

Dettagli