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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

Dettagli

Università degli Studi di 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 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

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

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

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

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

OGGETTO DELLA FORNITURA...4

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

Dettagli

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

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

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

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

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

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

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

GLOSSARIO/DEFINIZIONI

GLOSSARIO/DEFINIZIONI ALLEGATO 1 GLOSSARIO/DEFINIZIONI Indice 1 2 INTRODUZIONE DEFINIZIONI Allegato alle Regole tecniche in materia di documento informatico e gestione documentale, protocollo informatico e di documenti informatici

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

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

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

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

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

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

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

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

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

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

PROGETTAZIONE B.I.M.

PROGETTAZIONE B.I.M. PROGETTAZIONE B.I.M. Building Information Modeling INTRODUZIONE: Negli ultimi anni, in architettura, ingegneria e nel mondo delle costruzioni è avvenuto un radicale cambiamento negli strumenti e nei metodi

Dettagli

Norme per l organizzazione - ISO serie 9000

Norme per l organizzazione - ISO serie 9000 Norme per l organizzazione - ISO serie 9000 Le norme cosiddette organizzative definiscono le caratteristiche ed i requisiti che sono stati definiti come necessari e qualificanti per le organizzazioni al

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 B1 - Progettazione dei DB 1 Prerequisiti Ciclo di vita del software file system Metodologia di progettazione razionale del software 2 1 Introduzione Per la realizzazione

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

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

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

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

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

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

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

Componenti Web: client-side e server-side

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

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

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

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

Dettagli

InfoTecna ITCube Web

InfoTecna ITCube Web InfoTecna ITCubeWeb ITCubeWeb è un software avanzato per la consultazione tramite interfaccia Web di dati analitici organizzati in forma multidimensionale. L analisi multidimensionale è il sistema più

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

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

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

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

I processi aziendali e l industria della cornice di legno.

I processi aziendali e l industria della cornice di legno. I processi aziendali e l industria della cornice di legno. Productio Flow può essere classificato come un sistema software progettato ad hoc sulle esigenze gestionali dell industria della cornice di legno

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

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

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

Configuration of a distributed system as emerging behavior of autonomous agents

Configuration of a distributed system as emerging behavior of autonomous agents Configuration of a distributed system as emerging behavior of autonomous agents Configuration of a distributed system as emerging behavior of autonomous agents : Questo documento illustra la strategia

Dettagli

Architettura del sistema

Architettura del sistema 18/06/15 I N D I C E 1 INTRODUZIONE... 2 2 DEFINIZIONE DEGLI OBIETTIVI... 2 3 PROGETTO DI MASSIMA... 3 3.1 REQUISITI DELLA SOLUZIONE... 4 4 LA SOLUZIONE... 4 4.1 IL NUCLEO CENTRALE... 5 4.1.1 La gestione

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

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

GLOSSARIO/DEFINIZIONI

GLOSSARIO/DEFINIZIONI ALLEGATO 1 GLOSSARIO/DEFINIZIONI 11 Indice 1 2 INTRODUZIONE... DEFINIZIONI... 12 1 INTRODUZIONE Di seguito si riporta il glossario dei termini contenuti nelle regole tecniche di cui all articolo 71 del

Dettagli

Parte II: Reti di calcolatori Lezione 9

Parte II: Reti di calcolatori Lezione 9 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 9 Martedì 1-04-2014 1 Applicazioni P2P

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

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

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

SiStema dam e Stampa. automatizzata

SiStema dam e Stampa. automatizzata 0100101010010 0100101010 010101111101010101010010 1001010101010100100001010 111010 01001010100 10101 111101010101010010100101 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 010010101001010 1111101010101

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

REQUISITI FUNZIONALI DELLE PROCEDURE ELETTRONICHE PER GLI APPALTI PUBBLICI NELL UE VOLUME I

REQUISITI FUNZIONALI DELLE PROCEDURE ELETTRONICHE PER GLI APPALTI PUBBLICI NELL UE VOLUME I REQUISITI FUNZIONALI DELLE PROCEDURE ELETTRONICHE PER GLI APPALTI PUBBLICI NELL UE VOLUME I GENNAIO 2005 eprocurement pubblico Clausola di esclusione della responsabilità Commissione europea Original document

Dettagli

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0 Settore delle carte di pagamento (PCI) Standard di protezione dei dati per le applicazioni di pagamento () Riepilogo delle modifiche di dalla versione 2.0 alla 3.0 Novembre 2013 Introduzione Il presente

Dettagli

idw INTELLIGENT DATA WAREHOUSE

idw INTELLIGENT DATA WAREHOUSE idw INTELLIGENT DATA WAREHOUSE NOTE CARATTERISTICHE Il modulo idw Amministrazione Finanza e Controllo si occupa di effettuare analisi sugli andamenti dell azienda. In questo caso sono reperite informazioni

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

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

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

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

BARRA LATERALE AD APERTURA AUTOMATICA...

BARRA LATERALE AD APERTURA AUTOMATICA... INDICE 1) SOMMARIO... 1 2) PRIMO AVVIO... 1 3) BARRA LATERALE AD APERTURA AUTOMATICA... 2 4) DATI AZIENDALI... 3 5) CONFIGURAZIONE DEL PROGRAMMA... 4 6) ARCHIVIO CLIENTI E FORNITORI... 5 7) CREAZIONE PREVENTIVO...

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

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

SINPAWEB corso per Tecnico della programmazione e dello sviluppo di siti internet e pagine web co.reg 58036 matricola 2012LU1072

SINPAWEB corso per Tecnico della programmazione e dello sviluppo di siti internet e pagine web co.reg 58036 matricola 2012LU1072 Provincia di Lucca Servizio Istruzione, Formazione e Lavoro. Sviluppo Economico SINPAWEB corso per Tecnico della programmazione e dello sviluppo di siti internet e pagine web co.reg 58036 matricola 2012LU1072

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

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

Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA CLASSE 3 LSA SEZ. H

Liceo Scientifico  C. CATTANEO  PIANO DI LAVORO DI INFORMATICA CLASSE 3 LSA SEZ. H Liceo Scientifico " C. CATTANEO " PIANO DI LAVORO DI INFORMATICA CLASSE 3 LSA SEZ. H Sommario PIANO DI LAVORO DI INFORMATICA... 1 INDICAZIONI GENERALI... 2 PREREQUISITI... 2 CONOSCENZE, COMPETENZE E CAPACITA...

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE PREMESSA La presente guida è da considerarsi come aiuto per l utente per l installazione e configurazione di Atollo Backup. La guida non vuole approfondire

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

Relazione introduttiva Febbraio 2006

Relazione introduttiva Febbraio 2006 Amministrazione Provincia di Rieti Febbraio 2006 1 Progetto Sistema Informativo Territoriale Amministrazione Provincia di Rieti Premessa L aumento della qualità e quantità dei servizi che ha caratterizzato

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Il ROI del consolidamento dei Server

Il ROI del consolidamento dei Server Il ROI del consolidamento dei Server Sul lungo periodo, un attività di consolidamento dei server è in grado di far scendere i costi IT in modo significativo. Con meno server, le aziende saranno in grado

Dettagli

ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL

ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL ALLEGATO AL CONTRATTO DI FORNITURA DEL SERVIZIO LEGALMAIL.1. Introduzione Legalmail è un servizio di posta elettronica che garantisce un elevato grado di affidabilità e sicurezza. Esso consente al Cliente

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

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

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

Dettagli

TECNICO SUPERIORE PER LE TELECOMUNICAZIONI

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

Dettagli

Conoscere Dittaweb per:

Conoscere Dittaweb per: IL GESTIONALE DI OGGI E DEL FUTURO Conoscere Dittaweb per: migliorare la gestione della tua azienda ottimizzare le risorse risparmiare denaro vivere meglio il proprio tempo IL MERCATO TRA OGGI E DOMANI

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Il Sistema Operativo Gerarchia del software

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

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di

Dettagli

ACCESSNET -T IP NMS. Network Management System. www.hytera.de

ACCESSNET -T IP NMS. Network Management System. www.hytera.de ACCESSNET -T IP NMS Network System Con il sistema di gestione della rete (NMS) è possibile controllare e gestire l infrastruttura e diversi servizi di una rete ACCESSNET -T IP. NMS è un sistema distribuito

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

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438 tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438 Obbiettivi del progetto: Sviluppo di un applicazione Flex in AdobeFlashBuilder

Dettagli