La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità."

Transcript

1 Software Testing Dott. Ing. Michele Banci DSI Università degli Studi di Firenze 1

2 Introduzione Attività atta alla valutazione di un programma (sistema) determinando che esso verifichi un determinato risultato atteso. Sebbene sia cruciale per la qualità del software e sia largamente utilizzato, Il testing del software rimane ancora un arte, ciò deriva dalla ridotta comprensione dei principi del software. La difficoltà deriva dalla complessità del software: Non si potrà mai testare completamente un programma di una certa complessità. Testing non vuol dire solo debugging Scopo del Testing: assicurazione di qualità, V&V, stima dell affidabilità. Le più importanti: testing di correttezza e di affidabilità. trade-off fra budget, tempo e qualità. DSI Università degli Studi di Firenze 2

3 Introduzione È quel processo di esecuzione dei un programma (o sistema) con lo scopo di trovare errori. Il software è simile a altri sistemi fisici in cui si hanno ingressi e si producono risultati (uscite). La differenza del software consiste nel modo in cui esso fallisce. Sistemi fisici: falliscono in un fissato ( piccolo ) insieme di modi. Il software può fallire in molti modi BIZZARRI. Individuare tutti i diversi modi di fallimento di un software è impossibile in generale. DSI Università degli Studi di Firenze 3

4 Introduzione A differenza dei sistemi fisici il software contempla esclusivamente errori di design, non sono presenti errori di costruzione (di produzione). No Corrosione No Deterioramento Non si modifica nel tempo I difetti di design permangono indefinitamente e resteranno latenti fino a quando non saranno attivati. DSI Università degli Studi di Firenze 4

5 Introduzione I bugs esistono quasi sempre in qualsiasi programma di una certa dimensione: Poca cura NO Irresponsabilità NO Generalmente la complessità del software è intrattabile in generale la mente umana ha una ridotta abilità nel trattare la complessità. DSI Università degli Studi di Firenze 5

6 Introduzione Il software, e anche i sistemi digitali, sono sistemi non continui, pertanto testare i valori di soglia non è sufficiente per garantirne la correttezza. Devono essere testati TUTTI i possibili valori un test completo sarebbe irrealizzabile. E.g. Testare un programma che somma due numeri interi di 32 bit in ingresso. Produce 2 64 test cases distinti = secondi = 1 anno Inoltre per applicazioni che interagiscono con il mondo esterno: Timing unpredictable environmental effects human interactions DSI Università degli Studi di Firenze 6

7 Introduzione Se si verifica un fallimento durante il testing e a seguito il codice viene cambiato il programma potrebbe superare altri test eseguiti in precedenza e non superati. Il programma potrebbe non superare test fatti in precedenza e già superati. Il testing dovrebbe ricominciare. Il costo di una tale attività risulterebbe proibitivo. Pesticide Paradox: Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual. DSI Università degli Studi di Firenze 7

8 Introduzione Il testing è parte integrante dello sviluppo del software. Esso viene distribuito in ogni fase del ciclo di sviluppo del software. In genere, più del 50% del tempo di sviluppo viene utilizzato per il testing. DSI Università degli Studi di Firenze 8

9 Lo scopo del testing 1. Migliorare la qualità; 2. Verifica e Validazione (V&V); 3. Stimare l affidabilità. DSI Università degli Studi di Firenze 9

10 Migliorare la qualità. Computer e software usati in applicazioni critiche possono causare danni a cose e persone a causa dei BUGS. airplane crashes, space shuttle missions to go awry, halted trading on the stock market, Bugs can kill. Bugs can cause disasters. la qualità e l affidabilità di un software = vita o di morte. Qualità = conformità con i requisiti specificati in fase di design. Il Debugging (~ testing) viene eseguito dai programmatori al fine di individuare difetti di progettazione. La natura imperfetta dell uomo rende impossibile creare un programma corretto fin da subito. Lo scopo del debugging consiste nel trovare i problemi e risolverli durante la fase di programmazione. DSI Università degli Studi di Firenze 10

11 Verification & Validation (V&V) V&V (Verification & Validation) è un altro scopo importante del testing. Il testing può essere utilizzato come metrica. Basandoci sul risultato dei medesimi test è possibile eseguire un confronto comparativo fra prodotti diversi ma basati sulle medesime specifiche. Non è possibile testare la qualità in modo diretto, ma è possibile testare quei fattori correlati con la qualità. La qualità è costituita da 3 insiemi di fattori functionality, engineering, e adaptability. Questi 3 insiemi di fattori si possono pensare come una dimensioni nello spazio della qualità del software. Ciascuna dimensione può inoltre essere scomposta nei sui singoli fattori. DSI Università degli Studi di Firenze 11

12 Software Quality Factors Functionality (exterior quality) Correctness Reliability Usability Integrity Engineering (interior quality) Efficiency Testability Documentation Structure Adaptability (future quality) Flexibility Reusability Maintainability DSI Università degli Studi di Firenze 12

13 Misura della qualità Un buon testing deve poter fornire delle misure per i fattori di qualità rilevanti. L importanza dei fattori varia dal tipo di applicazione in esame. I sistemi in cui è in gioco la vita umana: reliability e integrity. Sistemi gestionali: usability e maintainability. Per programmi usati una sola volta per scopo scientifico: nessun fattore. Il nostro testing deve essere efficace, creato in modo tale da misurare i fattori di qualità in modo tale da rendere tangibile e visibile la qualità. Clean tests, o positive tests : Test atti a validare se il prodotto fa quello che deve fare. In realtà si riesce ad affermare che il programma funziona correttamente per quello specifico caso di test. Un numero finito di test non può garantire che il programma funziona correttamente in tutte le possibili situazioni. Dirty tests, o negative tests: al contrario dei precedenti anche un solo test fallito è sufficiente per dimostrare che il programma non funziona. Alcune parti del programma devono avere una sufficiente gestione delle eccezioni in grado di superare un certo livello di test negativi. Design for testing: è una parte importante dello sviluppo del software il quale rende più semplice il testing del programma stesso (riduce tempi e costi). DSI Università degli Studi di Firenze 13

14 For reliability estimation L affidabilità del software è spesso in relazione con la struttura dello stesso e la quantità del testing a cui è stato sottoposto. Basandosi su un approccio operazionale (stima della frequenza di uso dei vari input), il testing può fungere da campionamento statistico in modo tale da creare i dati di fallimento per stimare l affidabilità. Si utilizzano le medesime tecniche di testing inventate anni fa. Il testing del sw può essere molto costoso, ma in certi casi catastrofici il non fare testing può esserlo molto di più. Risolvere il problema del testing del software può essere paragonabile al problema della terminazione di Turing (halting problem): data una macchina di Turing M ed una stringa x, stabilire se M termina la computazione avendo x come input. Non possiamo mai essere sicuri della correttezza di un programma. Non possiamo mai essere sicuri della correttezza delle specifiche Non possiamo mai essere sicuri della correttezza del sistema di verifica DSI Università degli Studi di Firenze 14

15 Classificazione di metodi di testing (Livelli di test) By purpose: correctness testing, performance testing, reliability testing security testing. By scope: unit testing, mirato alla correttezza degli algoritmi component testing, integration testing, mirato alla correttezza delle interfacce system testing. affidabilità, sicurezza e prestazioni By life-cycle phase: requirements phase testing, design phase testing, program phase testing, evaluating test results, installation phase testing, acceptance testing imposto dal cliente, verifica che il programma soddisfi le richieste del cliente stesso. maintenance testing. (Test di regressione) verifica che non si siano introdotti errori in versioni successive DSI Università degli Studi di Firenze 15

16 Correctness testing (for unit test) La correttezza è il requisito minimo per un programma, è lo scopo primario del testing. Necessita di un Oracolo per poter discriminare un comportamento corretto da uno non corretto. Tester e sua conoscenza del modulo sotto test: White box (Test Strutturale) e.g. control flow, data flow, etc. Black box (test funzionale) Variano per il principio su cui si basa il criterio di selezione dei test. L approccio black-box e white-box non si limitano solo al test di correttezza. DSI Università degli Studi di Firenze 16

17 Test Funzionale - Black-box testing È un metodo in cui i dati di test sono derivati dalle specifiche funzionali senza considerare la struttura finale del software. Viene chiamato: data-driven, input/output driven, or requirements-based testing. Infatti ci si interessa soltanto delle funzionalità del modulo. Test funzionale: enfatizza l esecuzione delle funzioni e l analisi dei loro dati di ingresso e uscita. Il tester considera il software come una scatola nera sono visibili solo gli ingressi, le uscite e le specifiche funzionali, la funzionalità viene determinata osservando le uscite prodotte da determinati ingressi (funzioni di trasferimento). Vengono inviati (esercitati) vari input e le corrispondenti uscite sono confrontate con le specifiche così da validarne la correttezza. Tutti i casi di test sono derivati dalle specifiche. Non sono considerati i dettagli implementativi del codice. DSI Università degli Studi di Firenze 17

18 Black-box testing specifiche funzionali Inoltre, non potremo mai essere sicuri della correttezza e completezza delle specifiche. Dovuto alle limitazioni del linguaggio usato per le specifiche (linguaggio naturale), si avranno sicuramente problemi di ambiguità. Anche se usassimo formalismi o linguaggi ristretti, si potrebbe ancora errare nello scrivere tutti i possibili casi nelle specifiche. Le specifiche in se stesse possono divenire un problema intrattabile: Non è possibile specificare precisamente ogni situazione che si può incontrare utilizzando un numero limitato di parole. Le persone sono in grado di specificare chiaramente quello che desiderano? Normalmente sono in grado di dire se un prototipo corrisponde o meno a ciò che si desiderava. Il problema delle specifiche contribuisce a circa il 30% dei bugs nel software. DSI Università degli Studi di Firenze 18

19 Black-box testing spazio degli ingressi Maggiore è lo spazio di ingresso coperto e maggiori saranno i bugs individuati, pertanto si avrà maggior confidenza sulla qualità del sw. Idealmente si potrebbe tentare di testare esaustivamente lo spazio degli ingressi. IMPOSSIBILE L esplosione combinatoria è il maggior problema del testing funzionale. DSI Università degli Studi di Firenze 19

20 Black-box testing research forse eliminare La ricerca nel campo del black-box testing si rivolge a massimizzare l efficacia del testing col minor costo possibile (minor numero di casi di test). Non è possibile esaustivamente usare tutto lo spazio degli stati degli ingressi, ma è possibile sollecitare esaustivamente un sottospazio di tale spazio. Equivalence Class Partitiong (ECPT) Il partitioning una tecnica molto comune. Se abbiamo partizionato lo spazio degli ingressi e assunto che tutti i valori in una partizione sono equivalenti, allora si può testare solo un solo valore rappresentativo di ciascuna partizione per coprire tutto lo spazio degli ingressi. Il domain testing partiziona il dominio di ingresso in regioni, e considera i valori di ingresso in ciascun dominio come una classe di equivalenza. I domini possono essere testati esaustivamente e coperti selezionando un valore rappresentativo per ciascun dominio. Ovviamente i valori di confine rivestono un certo interesse. I test cases che esplorano i valori di confine hanno maggior valore rispetto a test con valori contenuti all interno del dominio. BOUNDARY VALUE ANALYSIS (BVAN) richiede uno o più valori limite selezionato come rappresentativo. Il problema con questo tipo di analisi sta nella errata definizione dei domini, questa definizione non può essere scoperta correttamente solo sulla base delle specifiche. Un buon partizionamento richiede la conoscenza della struttura del software. DSI Università degli Studi di Firenze 20

21 Black-box testing research Random testing Utilizzato per valutare l affidabilità e le performance ma non per la ricerca degli errori. I metodi basati sulle specifiche si riassumono in: 1. EQUIVALENCE CLASS PARTITIONING (ECPT) Si divide il dominio di input del programma in classi con l'ipotesi che un caso di test per ciascuna classe sia rappresentativo di tutti i valori della classe. Per ciascuna condizione di input si associano almeno due classi di equivalenza, una valida ed una invalida. 2. BOUNDARY VALUE ANALYSIS (BVAN) Si scelgono i casi di test in prossimità della frontiera delle classi. 3. TEST CASE by ERROR GUESSING (TCEG) Tecnica ad-hoc basata sull' intuito e sull' esperienza di chi esegue il test. DSI Università degli Studi di Firenze 21

22 Random Testing I dati utilizzati per i test cases sono selezionati casualmente nel dominio di ingressso del programma. Random testing non vuol dire che si abbandona completamente la input/output analysis del programma o del modulo. Lo scopo della maggior parte delle applicazioni è di creare un profilo operazionale del programma o del modulo. Definizione 1: Operational Profile Il Profilo operazionale di un programma nel dominio dei dati di ingresso è la distribuzione di probabilità di selezionare ciascun punto del dominio dei dati di ingresso mentre il programma viene utilizzato in condizioni normali di lavoro. DSI Università degli Studi di Firenze 22

23 Random Testing Una delle maggiori applicazioni del random testing è il fornire dati per la stima dell affidabilità del software. I Test case sono generati casualmente in accordo con il proofilo operazionale, e i dati di fallimento vengono acquisiti. I dati ottenuti dal random testing posso essere usati per la stima dell affidabilità. Nessun altro metodo di testing può essere utilizzato per tale stima. Qualsiasi stima di affidabilità non è corretta se il profilo operazionale non è corretto. DSI Università degli Studi di Firenze 23

24 Svantaggi del Random Testing 1. Può essere necessario creare un gran numero (proibitivo) di tests per poter essere confidenti di avere sufficientemente coperto il dominio di ingresso; 2. La distribuzione casuale degli ingressi identifica soltanto i guasti del programma Principio di Pareto-Zipf ( legge 80/20 ): i valori 80% e 20% sono ottenuti mediante osservazioni empiriche di numerosi fenomeni e sono solo indicativi, in genere l'80% dei risultati dipende dal 20% delle cause. 3. È difficile stimare la copertura o determinare se abbiamo adeguatamente il dominio di ingresso. DSI Università degli Studi di Firenze 24

25 Random Testing - Testing Oracles Il gran numero di casi di test che sono tipicamente necessari per avere risultati statisticamente significativi impone la necessità di creare automaticamente i casi di test. Casi di test automaticamente generati (TVG) è corretto se abbiamo il profilo operazionale e un buon modo di generazione casuale; Inoltre occorre un metodo per decidere se il risultato del test è un risultato atteso oppure no. Un programma o un insieme di dati o un processo che decide se i risultati sono quelli attesi è chiamato: Testing Oracle! DSI Università degli Studi di Firenze 25

26 Random Testing - Testing Oracles Esempio: Consideriamo la specifica di una funzione tolower la quale prende una stringa dallo standard input e pone la stringa corrispondente sullo standard output, con tutte le lettere maiuscole sostituite nelle corrispondenti lettere minuscole (i.e. A to a, B to b, etc.). Le stringhe possono essere formate da tutti i caratteri ASCII fra 32 e 126 inclusi; i caratteri al di fuori da questo range sono caratteri di controllo e causeranno un messaggio di errore. Come possiamo determinare se l output della funzione tolower coincide con con il risultato atteso? DSI Università degli Studi di Firenze 26

27 Random Testing - Testing Oracles Specifications Specifica formale scritta in una forma matematica (pseudo) risultano migliori al fine di selezionare e creare testing oracles piuttosto che specifiche informali scritte in linguaggio naturale. Solved examples sono sviluppati a mano. Parametric oracles caratterizzano una vasta classe di soluzioni per l ingresso del test scegliendo parametri appropriati. Built in tests and checks sono asserzioni che vengono aggiunte al codice per specificare quando un risultato è valido oppure invalido. Alternativamente si possono sviluppare procedure di self test. Data and Databases - Dati in forma di tabelle, documenti, grafi o altro formato contenenti i risultati. Golden program Utilizza specifiche eseguibili, versioni precedenti del programma, oppure eseguire un test in parallelo con un altro sistema che fornisce le stesse funzionalità. DSI Università degli Studi di Firenze 27

28 Equivalence Partitioning Come si possono creare casi di test in modo tale da coprire i guasti del programma. La risposta adottata il molti metodi di partitioning consiste nel dividere il dominio di ingresso e di uscita in modo tale che: 1. Occorrono meno casi di test per coprire grandi domini di ingresso; 2. Si hanno maggiori chance di scoprire guasti del programma; 3. Si ha una buona idea di quanto del dominio di ingresso si è coperto con i casi di test. DSI Università degli Studi di Firenze 28

29 Equivalence Partitioning Lo scopo consiste nel dividere il dominio di ingresso in classi (insiemi!) di casi di test i quali abbiano un effetto simile sul programma. Tali classi sono denominate CLASSI DI EQUIVALENZA. Definizione: Equivalence Class (EC) È un insieme di inputs che il programma tratta in modo identico quando il programma viene testato. DSI Università degli Studi di Firenze 29

30 Equivalence Partitioning Ciascuna Classe di equivalenza viene utilizzata per rappresentare certe condizioni (o predicati) sul dominio dei dati di ingresso. Per il partitioning si è soliti considerare sia gli ingressi validi che invalidi. Definizione: Una condizione sugli input (Input Condition) è un predicato sui valori degli ingressi. Un ingresso valido (Valid input) al programma o modulo è un elemento del dominio che si attende sia correttamente gestito dal programma restituendo un valore di non-errore (non errato). Un ingresso invalido ci si aspetta restituisca un valore di errore (valore errato). DSI Università degli Studi di Firenze 30

31 Equivalence Partitioning Input Conditions Sono usate tipicamente per partizionare il dominio di ingressi in classi di equivalenza allo scopo di selezionare certi ingressi. Consideriamo una versione modificata della specifica del quadrato di un numero questo dovrà restituire un intero di 32 bit: x {0,., 65535} square(x) = x * x Il dominio di ingresso dedotto dalla (scarna) specifica è l insieme di integer; La condizione di input è: x {0,., 65535} DSI Università degli Studi di Firenze 31

32 Equivalence Partitioning 1. È un metodo sistematico per identificare gli insiemi di classi di interesse di condizioni di ingresso da testare. 2. Ciascuna classe è rappresentativa di (copre) un insieme di altri possibili test. Ci si aspetta che il programma si comporti nello stesso modo fer tutti gli elementi della classe di equivalenza. Anziché scrivere test per tutti gli elementi della classe, si prende un test case rappresentativo e inferire le proprietà della classe da questo test case. Occorre fare attenzione assicurarsi che tutti i membri della classe si comportino allo stesso modo. DSI Università degli Studi di Firenze 32

33 Equivalence Partitioning: metodologia Lo scopo è quello di minimizzare il numero di casi di test necessari per coprire il dominio degli ingressi. 1. Identificare le classi di equivalenza (ECs); 2. Identificare i casi di test. DSI Università degli Studi di Firenze 33

34 Identifying Equivalence Classes: Guidelines 1. Se una condizione di ingresso specifica un range di valori, identificare una classe di equivalenza valida e due invalide. Esempio: Se abbiamo l insieme di valori {1,...., 99} allora occorreranno le seguenti classi: Classe di equivalenza valida {1,..., 99}; Classi di equivalenza invalide {x x < 1} and {x x > 99}. DSI Università degli Studi di Firenze 34

35 Identifying Equivalence Classes: Guidelines 2. Se una condizione di ingresso specifica un insieme di valori di ingresso e ciascuno è gestito in modo diverso, identificare una classe di equivalenza per ciascun elemento dell insieme e una invalida EC. Esempio: Se l ingresso è selezionato da un insieme di N distinti elementi allora occorreranno N + 1 ECs: Una valida EC per ciascun elemento dell insieme {M 1 },..., {M N }; Una invalida EC per gli elementi fuori dall insieme {x x {M 1,..., M N }}. 3. Se si ritiene che il programma maneggia ciascun ingresso valido in modo distinto, allora occorre definire una valida EC per ciascun ingresso valido. Esempio: Se l ingresso viene da un menu allora si definisce una valida EC per ciascun item del menu. DSI Università degli Studi di Firenze 35

36 Identifying Equivalence Classes: Guidelines 4. Se le specifiche indicano N ingressi validi, si devono definire una valida EC e due invalide EC per ciascun valore N dell ingresso Una per zero valori, e una per valori > N. 5. Se un condizione di ingresso specifica una situazione del tipo must be, identificare una valida EC e una invalida EC. Esempio: Il primo carattere di un input deve essere numerico allora occorreranno due EC una valida EC {s il primo carattere di s è numerico} una invalida EC {s il primo carattere non è numerico} 6. Se gli elementi in una EC sono trattati in modi diversi dal programma, allora la EC deve essere splittata in EC più piccole. DSI Università degli Studi di Firenze 36

37 Identifying Test Cases 1. Assegnare un unico numero a ciascuna EC. 2. while Non tutte le valide ECs sono state coperte dai casi di test do 3. scrivere un nuovo caso di test che copra il maggior numero di ECs non coperte. 4. while Tutte le invalide ECs non sono state coperte dai casi di test do 5. Scrivere un caso di test che copra uno e solo uno delle non coperte invalide ECs. DSI Università degli Studi di Firenze 37

38 Equivalence Partitioning: Esempio 1 Consideriamo la seguente specifica informale per il problema seguente: Classificazione di triangoli. 1. Il programma legge i 3 valori positivi dallo standard input. 2. I 3 valori sono interpretati come rappresentativi delle lunghezze dei lati di un triangolo. 3. Il programma stampa un messaggio sullo standard output che indica se il triangolo, se può essere creato, è scaleno, isoscele, equilatero o rettangolo. DSI Università degli Studi di Firenze 38

39 Equivalence Partitioning: Esempio 1 Quale è il dominio di ingresso per il suddetto programma? Le possibilità includono: L insieme di tutte le possibili stringhe in ingresso siamo testando la robustezza e vogliamo sapere se stringhe non corrette vengono rigettare dal programma; L insieme di tutti i possibili interi, sia positivi che negativi; L insieme di tutti i possibili interi positivi. Quali sono le condizioni degli ingressi? Requirement Input Condition 3 interi in ingresso (x; y; z) int int int Gli interi devono essere positivi: x>0, y>0, z>0. Nota: si sta utilizzando la regola 6 per determinare le classi di equivalenza. DSI Università degli Studi di Firenze 39

40 Equivalence Partitioning: ECs Le classi di equivalenza sono: Equivalence class Test Case scalene triangle isosceles triangle right-angled triangle non-triangle non-positive input equilateral triangle {(3, 5, 7),... } {(2, 3, 3),... } {(3, 4, 5),... } {(1, 1, 3),... } {(-1, 0, 3), (-2,-3,-3),... } {(7, 7, 7),... } DSI Università degli Studi di Firenze 40

41 Boundary Value Analysis Lo scopo è l analisi delle frontiere delle ECs. Intuitivamente si ha che i difetti (faults o failures) sono più probabili al confine fra due ECs. Sceglie i test cases sulla frontiera o intorno ad essa. È un raffinamento e estensione del partizionamento in ECs. Il partizionamento richiede la scelta di un solo caso di test mentre la BVA ne richiede di più. DSI Università degli Studi di Firenze 41

42 Boundary Conditions Definizione: Boundary Conditions sono predicati applicati sui valori di frontiera e su intorni delle ECs degli input e output. Le due differenze introdotte dalla BVA sono: 1. Sia le condizioni di ingresso che di uscita vengono usate per selezionare i casi di test. 2. Anziché un solo caso di test da una EC, BVA consiglia di prendere più casi di test in un intorno della frontiera. DSI Università degli Studi di Firenze 42

43 Boundary Conditions Se una condizione sugli input specifica un range di valori, allora si devono creare test case validi per gli estremi del range, e invalidi per i punti oltre la frontiera. Se una condizione sugli input specifica un numero di valori, si devono creare test case per il valore minimo e massimo,minotre uno all interno dei valori e all esterno di questi. Analogamente deve essere fatto per le condizioni sugli output. Le condizioni di frontiera possono essere difficili da identificare soprattutto per quel che riguarda il dominio delle uscite. DSI Università degli Studi di Firenze 43

44 The Triangle Program Revisited Specifica del problema: Il programma legge valori floating dal std input. I 3 valori sno i 3 lati del triangolo. Il programma stampa a video il risultato del tipo di triangolo (se è un triangolo) Isoscele, scaleno, equilatero, rettangolo DSI Università degli Studi di Firenze 44

45 The Triangle Program Revisted 1. dati i lati (A, B, C) per essere scaleno la somma dei qualsiasi coppia di lati deve essere > del terzo lato boundary conditions A + B > C B + C > A A + C > B Per la condizione A + B > C possiamo esplorare la frontiera usando i seguenti casi di test (1, 2, 3), (1, 2, 2.999), (1, 2, 3.001). 2. dati i lati (A, B, C) per essere isoscele due lati devono essere uguali boundary conditions A = B B = C A = C Per la condizione A = C possiamo esplorare la frontiera usando i seguenti casi di test (2, 2, 3), (2, 1.999, 3), (2, 2.001, 3),.. DSI Università degli Studi di Firenze 45

46 The Triangle Program Revisted 3. dati i lati (A, B, C) per essere equilatero tutti i lati dovranno essere uguali boundary A = B = C possiamo esplorare la frontiera usando i seguenti casi di test (3, 3, 3), (3, 2.999, 3), (3, 3.001, 3),.. 4. dati i lati (A, B, C) per essere rettangolo si deve avere A2 + B2 = C2 possiamo esplorare la frontiera usando i seguenti casi di test (3, 4, 5), (3, 4, 4.999), (3, 4, 5.001),.. 5. dati i lati (A, B, C) per non essere un triangolo si deve avere Frontiere simili alle precedenti (1, 2, 3), (1, 2, 2.999), (1, 2, 3.001),.. 6. per dati di ingresso non positivi si avrà (0, 1, 2), (-0.001, 1, 2), (0.001, 1, 2),.. DSI Università degli Studi di Firenze 46

47 White-box testing Il software viene considerato come una white-box, le strutture e il flusso del sw sono visibili al tester. I piani di test sono creati in base ai dettagli implementativi del software: il tipo di linguaggio usato, la logica, lo stile,... I casi di test si deriveranno dalla struttura del programma. White-box testing = glass-box testing = logic-driven testing = design-based testing. Esistono molte tecniche disponibili per il white-box testing, L intrattabilità del problema viene facilitata dalla conoscenza specifica della struttura del programma da testare. Si possono ottenere gradi di esaustività : Si esegue ciascuna riga di codice almeno una volta (statement coverage), Ogni branch statements viene attraversato (branch coverage), Copre tutte le possibili combinazioni di condizioni booleane (Multiple condition coverage). DSI Università degli Studi di Firenze 47

48 When to stop testing? Il testing è potenzialmente senza fine. Quando fermiamo l attività di testing? È un compromesso fra budget, tempo e qualità. Sarà guidato da modelli di profitto. Uno dei più usati metodi (non corretto) consiste nel terminare l attività quando il budget o il tempo o i casi di test sono finiti. Un metodo sicuramente migliore consiste nel terminare l attività quando l affidabilità ha raggiunto il livello richiesto o quando i benefici nel continuare il testing sarebbero minimi. Questo richiede l uso di modelli di affidabilità per stimare l affidabilità del software sotto test. DSI Università degli Studi di Firenze 48

49 Alternatives to testing (1) Software testing è considerato un metodo problematico per migliorare la qualità. Usare il testing per individuare e correggere i difetti può essere un processo senza fine. I bugs non possono essere completamente eliminati. Testare e fissare i problemi può non necessariamente migliorare la qualità e l affidabilità. Talvolta risolvere un problema può introdurne altri più severi. Item: In the summer of 1991, telephone outages occurred in local telephone systems in California and along the Eastern seaboard. These breakdowns were all the fault of an error in signaling software. Right before the outages, DSC Communications (Plano, TX) introduced a bug when it changed three lines of code in the several-million-line signaling program. After this tiny change, nobody thought it necessary to retest the program. Coverage testing: si può considerare che code coverage e branch coverage siano collegati alla qualità del software? Non ne esiste la prova. Il così detto "human testing" -- ispezione del codice, walkthroughs, reviews sono suggerite come una possibile alternativa. Alcuni risultati sperimentali indicano che la rilettura del codice tramite astrazione è efficienteb tanto quanto functional and structural testing in termini di numero di guasti osservati. I formal methods per provare la correttezza sono un altra strada possibile. Cmq non sono in grado di superare la barriera della complessità. DSI Università degli Studi di Firenze 49

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

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

Configuration Management

Configuration Management Configuration Management Obiettivi Obiettivo del Configuration Management è di fornire un modello logico dell infrastruttura informatica identificando, controllando, mantenendo e verificando le versioni

Dettagli

group HIGH CURRENT MULTIPLEX NODE

group HIGH CURRENT MULTIPLEX NODE HIGH CURRENT MULTIPLEX NODE edizione/edition 04-2010 HIGH CURRENT MULTIPLEX NODE DESCRIZIONE GENERALE GENERAL DESCRIPTION L'unità di controllo COBO è una centralina elettronica Multiplex Slave ; la sua

Dettagli

Descrizioni VHDL Behavioral

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

Dettagli

Informatica Applicata

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

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

Intrusion Detection System

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

Dettagli

Permutazione degli elementi di una lista

Permutazione degli elementi di una lista Permutazione degli elementi di una lista Luca Padovani padovani@sti.uniurb.it Sommario Prendiamo spunto da un esercizio non banale per fare alcune riflessioni su un approccio strutturato alla risoluzione

Dettagli

Indicizzazione terza parte e modello booleano

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

Dettagli

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

LA TECHNOLOGY TRANSFER PRESENTA SUZANNE ROBERTSON MASTERING THE REQUIREMENTS PROCESS COME COSTRUIRE IL SISTEMA CHE IL VOSTRO UTENTE DESIDERA

LA TECHNOLOGY TRANSFER PRESENTA SUZANNE ROBERTSON MASTERING THE REQUIREMENTS PROCESS COME COSTRUIRE IL SISTEMA CHE IL VOSTRO UTENTE DESIDERA LA TECHNOLOGY TRANSFER PRESENTA SUZANNE ROBERTSON MASTERING THE REQUIREMENTS PROCESS COME COSTRUIRE IL SISTEMA CHE IL VOSTRO UTENTE DESIDERA ROMA 20-22 OTTOBRE 2014 RESIDENZA DI RIPETTA - VIA DI RIPETTA,

Dettagli

Business Process Modeling and Notation e WebML

Business Process Modeling and Notation e WebML Business Process Modeling and Notation e WebML 24 Introduzione I Web Service e BPMN sono standard de facto per l interoperabilità in rete a servizio delle imprese moderne I Web Service sono utilizzati

Dettagli

AREA RETTANGOLO LIRE IN EURO

AREA RETTANGOLO LIRE IN EURO AREA RETTANGOLO Private Sub Area() Dim h As Integer h = InputBox("altezza") b = InputBox("base") A = b * h MsgBox( L area del Rettangolo è : & A) LIRE IN EURO Dim lire As Double Dim euro As Double lire

Dettagli

La Valutazione Euristica

La Valutazione Euristica 1/38 E un metodo ispettivo di tipo discount effettuato da esperti di usabilità. Consiste nel valutare se una serie di principi di buona progettazione sono stati applicati correttamente. Si basa sull uso

Dettagli

COME FRODE. la possibilità propri dati. brevissimo. Reply www.reply.eu

COME FRODE. la possibilità propri dati. brevissimo. Reply www.reply.eu FRAUD MANAGEMENT. COME IDENTIFICARE E COMB BATTERE FRODI PRIMA CHE ACCADANO LE Con una visione sia sui processi di business, sia sui sistemi, Reply è pronta ad offrire soluzioni innovative di Fraud Management,

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

Sistemi di gestione dei dati e dei processi aziendali. Information Technology General Controls

Sistemi di gestione dei dati e dei processi aziendali. Information Technology General Controls Information Technology General Controls Indice degli argomenti Introduzione agli ITGC ITGC e altre componenti del COSO Framework Sviluppo e manutenzione degli applicativi Gestione operativa delle infrastrutture

Dettagli

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione.

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. COMPETENZE MINIME- INDIRIZZO : ELETTROTECNICA ED AUTOMAZIONE 1) CORSO ORDINARIO Disciplina: ELETTROTECNICA

Dettagli

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni

Dettagli

3. Confronto tra medie di due campioni indipendenti o appaiati

3. Confronto tra medie di due campioni indipendenti o appaiati BIOSTATISTICA 3. Confronto tra medie di due campioni indipendenti o appaiati Marta Blangiardo, Imperial College, London Department of Epidemiology and Public Health m.blangiardo@imperial.ac.uk MARTA BLANGIARDO

Dettagli

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

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

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

IT Service Management, le best practice per la gestione dei servizi

IT Service Management, le best practice per la gestione dei servizi Il Framework ITIL e gli Standard di PMI : : possibili sinergie Milano, Venerdì, 11 Luglio 2008 IT Service Management, le best practice per la gestione dei servizi Maxime Sottini Slide 1 Agenda Introduzione

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

CMMI-Dev V1.3. Capability Maturity Model Integration for Software Development, Version 1.3. Roma, 2012 Ercole Colonese

CMMI-Dev V1.3. Capability Maturity Model Integration for Software Development, Version 1.3. Roma, 2012 Ercole Colonese CMMI-Dev V1.3 Capability Maturity Model Integration for Software Development, Version 1.3 Roma, 2012 Agenda Che cos è il CMMI Costellazione di modelli Approccio staged e continuous Aree di processo Goals

Dettagli

Problem Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Problem Management. Obiettivi. Definizioni. Responsabilità. Attività. Input Problem Management Obiettivi Obiettivo del Problem Management e di minimizzare l effetto negativo sull organizzazione degli Incidenti e dei Problemi causati da errori nell infrastruttura e prevenire gli

Dettagli

DataFix. La soluzione innovativa per l'help Desk aziendale

DataFix. La soluzione innovativa per l'help Desk aziendale DataFix D A T A N O S T O P La soluzione innovativa per l'help Desk aziendale La soluzione innovativa per l'help Desk aziendale L a necessità di fornire un adeguato supporto agli utenti di sistemi informatici

Dettagli

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com WWW.TINYLOC.COM CUSTOMER SERVICE T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com GPS/ RADIOTRACKING DOG COLLAR MANUALE DI ISTRUZIONI ACCENSIONE / SPEGNERE DEL TAG HOUND Finder GPS Il TAG HOUND

Dettagli

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input Release Management Obiettivi Obiettivo del Release Management è di raggiungere una visione d insieme del cambiamento nei servizi IT e accertarsi che tutti gli aspetti di una release (tecnici e non) siano

Dettagli

Progetto BPR: Business Process Reengineering

Progetto BPR: Business Process Reengineering Progetto BPR: Business Process Reengineering Riflessioni frutto di esperienze concrete PER LA CORRETTA INTERPRETAZIONE DELLE PAGINE SEGUENTI SI DEVE TENERE CONTO DI QUANTO ILLUSTRATO ORALMENTE Obiettivo

Dettagli

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

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

Dettagli

Corso di Programmazione ad Oggetti

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

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

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

Corso Base ITIL V3 2008

Corso Base ITIL V3 2008 Corso Base ITIL V3 2008 PROXYMA Contrà San Silvestro, 14 36100 Vicenza Tel. 0444 544522 Fax 0444 234400 Email: proxyma@proxyma.it L informazione come risorsa strategica Nelle aziende moderne l informazione

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

Process mining & Optimization Un approccio matematico al problema

Process mining & Optimization Un approccio matematico al problema Res User Meeting 2014 con la partecipazione di Scriviamo insieme il futuro Paolo Ferrandi Responsabile Tecnico Research for Enterprise Systems Federico Bonelli Engineer Process mining & Optimization Un

Dettagli

Abstract Data Type (ADT)

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

Dettagli

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

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

Dettagli

UNIVERSITÀ DEGLI STUDI DI GENOVA

UNIVERSITÀ DEGLI STUDI DI GENOVA UNIVERSITÀ DEGLI STUDI DI GENOVA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI CORSO DI LAUREA IN INFORMATICA Prova Finale GESTIONE DELLA TRANSIZIONE SECONDO LO STANDARD ITIL ITIL SERVICE TRANSITION

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

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

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Guida alle offerte di finanziamento per le medie imprese

Guida alle offerte di finanziamento per le medie imprese IBM Global Financing Guida alle offerte di finanziamento per le medie imprese Realizzata da IBM Global Financing ibm.com/financing/it Guida alle offerte di finanziamento per le medie imprese La gestione

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

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

Dettagli

CONSIGLIO NAZIONALE DEI DOTTORI COMMERCIALISTI E CONSIGLIO NAZIONALE DEI RAGIONIERI

CONSIGLIO NAZIONALE DEI DOTTORI COMMERCIALISTI E CONSIGLIO NAZIONALE DEI RAGIONIERI CONSIGLIO NAZIONALE DEI DOTTORI COMMERCIALISTI E CONSIGLIO NAZIONALE DEI RAGIONIERI COMMISSIONE PARITETICA PER I PRINCIPI DI REVISIONE LA COMPRENSIONE DELL IMPRESA E DEL SUO CONTESTO E LA VALUTAZIONE DEI

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

Controllare un nastro trasportatore fischertechnik con Arduino

Controllare un nastro trasportatore fischertechnik con Arduino TITOLO ESPERIENZA: Controllare un nastro trasportatore fischertechnik con Arduino PRODOTTI UTILIZZATI: OBIETTIVO: AUTORE: RINGRAZIAMENTI: Interfacciare e controllare un modello di nastro trasportatore

Dettagli

Modal 2 Modulo Analisi modale Modulo per l Analisi della dinamica strutturale.

Modal 2 Modulo Analisi modale Modulo per l Analisi della dinamica strutturale. Modal 2 Modulo Analisi modale Modulo per l Analisi della dinamica strutturale. L analisi modale è un approccio molto efficace al comportamento dinamico delle strutture, alla verifica di modelli di calcolo

Dettagli

Mod. VS/AM VALVOLE DI SFIORO E SICUREZZA RELIEF VALVES AND SAFETY DEVICES

Mod. VS/AM VALVOLE DI SFIORO E SICUREZZA RELIEF VALVES AND SAFETY DEVICES Mod VS/AM VALVOLE DI SFIORO E SICUREZZA RELIEF VALVES AND SAFETY DEVICES VALVOLE DI SFIORO E SICUREZZA RELIEF VALVES AND SAFETY DEVICES Mod VS/AM 65 1 2 VS/AM 65 STANDARD VS/AM 65 CON RACCORDI VS/AM 65

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

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

Dettagli

GLI INDICATORI COME STRUMENTO PER IL MIGLIORAMENTO DELLA QUALITA ASSISTENZIALE

GLI INDICATORI COME STRUMENTO PER IL MIGLIORAMENTO DELLA QUALITA ASSISTENZIALE GLI INDICATORI COME STRUMENTO PER IL MIGLIORAMENTO DELLA QUALITA ASSISTENZIALE D r. C a r l o D e s c o v i c h U.O.C. Governo Clinico Staff Direzione Aziendale AUSL Bologna Bologna 26 Maggio 2010 INDICATORE

Dettagli

BPEL: Business Process Execution Language

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

Dettagli

Informatica. Scopo della lezione

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

Dettagli

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

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

Dettagli

Integrazione. Ecad. Mcad. Ecad - MENTOR GRAPHICS

Integrazione. Ecad. Mcad. Ecad - MENTOR GRAPHICS Integrazione Ecad Mcad Ecad - MENTOR GRAPHICS MENTOR GRAPHICS - PADS La crescente complessità del mercato della progettazione elettronica impone l esigenza di realizzare prodotti di dimensioni sempre più

Dettagli

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon)

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon) Sed & Awk Sed e Awk sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon) awk: linguaggio per l'elaborazione di modelli orientato ai campi (1977, Bell

Dettagli

ANALISI DEI RISCHI IN UN PROGETTO DI SVILUPPO SOFTWARE

ANALISI DEI RISCHI IN UN PROGETTO DI SVILUPPO SOFTWARE ANALISI DEI RISCHI IN UN PROGETTO DI SVILUPPO SOFTWARE Roma, dicembre 1999 Analisi dei rischi in un progetto di sviluppo sw RISCHIO = potenziale difetto il cui verificarsi comporta dei danni Danno Non

Dettagli

Progettazione Orientata agli Oggetti

Progettazione Orientata agli Oggetti Progettazione Orientata agli Oggetti Sviluppo del software Ciclo di vita del software: comprende tutte le attività dall analisi iniziale fino all obsolescenza (sviluppo, aggiornamento, manutenzione) Procedimento

Dettagli

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti? Dov'è Moriart? Cerchiamo la via più breve con Mathcad Potete determinare la distanza più breve da tre punti e trovare Moriart? Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai

Dettagli

Analisi statistica di dati biomedici Analysis of biologicalsignals

Analisi statistica di dati biomedici Analysis of biologicalsignals Analisi statistica di dati biomedici Analysis of biologicalsignals II Parte Verifica delle ipotesi (a) Agostino Accardo (accardo@units.it) Master in Ingegneria Clinica LM in Neuroscienze 2013-2014 e segg.

Dettagli

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len;

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len; /* Date in ingresso una frase, dire se una è palindroma */ #include #define MAX 100 int main() /*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i,

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

4. Confronto tra medie di tre o più campioni indipendenti

4. Confronto tra medie di tre o più campioni indipendenti BIOSTATISTICA 4. Confronto tra medie di tre o più campioni indipendenti Marta Blangiardo, Imperial College, London Department of Epidemiology and Public Health m.blangiardo@imperial.ac.uk MARTA BLANGIARDO

Dettagli

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

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

Dettagli

Il test valuta la capacità di pensare?

Il test valuta la capacità di pensare? Il test valuta la capacità di pensare? Per favore compili il seguente questionario senza farsi aiutare da altri. Cognome e Nome Data di Nascita / / Quanti anni scolastici ha frequentato? Maschio Femmina

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

DEFINIZIONE DEL CONCEPT DI PRODOTTO

DEFINIZIONE DEL CONCEPT DI PRODOTTO DEFINIZIONE DEL CONCEPT DI PRODOTTO 92 Generazione dei concetti di prodotto Individuazione dei bisogni dei clienti Eseguire l analisi economica Analizzare i prodotti della concorrenza Costruire e collaudare

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Esempio di utilizzo di Excel per la gestione delle liste - Predisposizione ed allineamento -

Esempio di utilizzo di Excel per la gestione delle liste - Predisposizione ed allineamento - Esempio di utilizzo di Excel per la gestione delle liste - Predisposizione ed allineamento - Nota preliminare La presente guida, da considerarsi quale mera indicazione di massima fornita a titolo esemplificativo,

Dettagli

rischi del cloud computing

rischi del cloud computing rischi del cloud computing maurizio pizzonia dipartimento di informatica e automazione università degli studi roma tre 1 due tipologie di rischi rischi legati alla sicurezza informatica vulnerabilità affidabilità

Dettagli

(accuratezza) ovvero (esattezza)

(accuratezza) ovvero (esattezza) Capitolo n 2 2.1 - Misure ed errori In un analisi chimica si misurano dei valori chimico-fisici di svariate grandezze; tuttavia ogni misura comporta sempre una incertezza, dovuta alla presenza non eliminabile

Dettagli

Come scrivere una Review

Come scrivere una Review Come scrivere una Review Federico Caobelli per AIMN Giovani Fondazione Poliambulanza - Brescia federico.caobelli@gmail.com SOMMARIO Nel precedente articolo, scritto da Laura Evangelista per AIMN Giovani,

Dettagli

Le funzionalità di un DBMS

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

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

Ricognizione di alcune Best Practice

Ricognizione di alcune Best Practice Linee guida sulla qualità dei beni e dei servizi ICT per la definizione ed il governo dei contratti della Pubblica Amministrazione Manuale di riferimento Ricognizione di alcune Best Practice applicabili

Dettagli

L analisi economico finanziaria dei progetti

L analisi economico finanziaria dei progetti PROVINCIA di FROSINONE CIOCIARIA SVILUPPO S.c.p.a. LABORATORI PER LO SVILUPPO LOCALE L analisi economico finanziaria dei progetti Azione n. 2 Progetti per lo sviluppo locale LA FINANZA DI PROGETTO Frosinone,

Dettagli

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

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

Dettagli

Parleremo di correlazione: che cos è, come calcolarla

Parleremo di correlazione: che cos è, come calcolarla IDEMDJD]LQH 1XPHUR 'LFHPEUH %52 (56 21/,1( 68//,'(0 nel 2002, il numero di brokers che offrono la negoziazione online sul minifib è raddoppiato, passando da 7 nel 2001 a 14. A novembre due nuovi brokers

Dettagli

ISTITUTO COMPRENSIVO STATALE di BORGORICCO SUGGERIMENTI PER LA COMPILAZIONE DEL P.D.P. PER ALUNNI CON DISTURBI SPECIFICI DI APPRENDIMENTO

ISTITUTO COMPRENSIVO STATALE di BORGORICCO SUGGERIMENTI PER LA COMPILAZIONE DEL P.D.P. PER ALUNNI CON DISTURBI SPECIFICI DI APPRENDIMENTO SUGGERIMENTI PER LA COMPILAZIONE DEL P.D.P. PER ALUNNI CON DISTURBI SPECIFICI DI APPRENDIMENTO Il documento va compilato in forma digitale per poter ampliare gli spazi dello schema (ove necessario) e togliere

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Analisi di massima: L utente dovrà inserire un numero limite, e tramite vari calcoli verrà stampato a video la sequenza.

Analisi di massima: L utente dovrà inserire un numero limite, e tramite vari calcoli verrà stampato a video la sequenza. Relazione tecnica Fibonacci ANDENA GIANMARCO Traccia: Creare un algoritmo che permetta, dato un valore intero e positivo, di stabilire la sequenza utilizzando la regola di fibonacci dei numeri fino al

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Da una a più variabili: derivate

Da una a più variabili: derivate Da una a più variabili: derivate ( ) 5 gennaio 2011 Scopo di questo articolo è di evidenziare le analogie e le differenze, relativamente al calcolo differenziale, fra le funzioni di una variabile reale

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

SCHEDA DI PROGRAMMAZIONE DELLE ATTIVITA EDUCATIVE DIDATTICHE. Disciplina: Matematica Classe: 5A sia A.S. 2014/15 Docente: Rosito Franco

SCHEDA DI PROGRAMMAZIONE DELLE ATTIVITA EDUCATIVE DIDATTICHE. Disciplina: Matematica Classe: 5A sia A.S. 2014/15 Docente: Rosito Franco Disciplina: Matematica Classe: 5A sia A.S. 2014/15 Docente: Rosito Franco ANALISI DI SITUAZIONE - LIVELLO COGNITIVO La classe ha dimostrato fin dal primo momento grande attenzione e interesse verso gli

Dettagli

Parole Chiave: Sviluppo di un nuovo prodotto, MSNP, design di prodotto, Stage-Gate

Parole Chiave: Sviluppo di un nuovo prodotto, MSNP, design di prodotto, Stage-Gate 6.1 Metodi per lo sviluppo di nuovi prodotti (MSNP) Parole Chiave: Sviluppo di un nuovo prodotto, MSNP, design di prodotto, Stage-Gate Questo capitolo presenta alcune metodologie per gestire al meglio

Dettagli

Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001

Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001 Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001 Oggi più che mai, le aziende italiane sentono la necessità di raccogliere,

Dettagli