Software Testing (2 Parte)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Software Testing (2 Parte)"

Transcript

1 Software Testing (2 Parte) Software Testing (2 parte) 1 Outline 1. Testing Automation 2. Analisi Mutazionale 3. Tecniche di Testing Statico Software Testing (2 parte) 2 1

2 L automazione nel Processo di Testing Software Testing (2 parte) 3 Processo di Testing Test cases Test data Test results Test repor ts Design test cases Prepare test data Run pr ogram with test da ta Compare results to test cases Software Testing (2 parte) 4 2

3 Testing Automation È l insieme delle tecniche e delle tecnologie che consentono di automatizzare (anche parzialmente) alcune attività del Processo di Testing. Alcune aree di intervento: A) Generazione dei Casi di Test B) Preparazione ed Esecuzione del Test C) Valutazione dell efficacia di Test Suite Software Testing (2 parte) 5 A) Tecniche di Generazione dei casi di test Negli approcci al testing presentati finora, si è sempre considerato il task di Test Case Design come un task svolto manualmente dal tester A causa del numero di casi di test necessari per un testing efficace, l operazione di progettazione manuale dei casi di test può essere molto onerosa Tecniche per la generazione automatica dei casi di test possono ridurre drasticamente i costi e I tempi legati alla fase di test design Può però essere necessaria una fase di valutazione dell efficacia dei casi di test e una fase di riduzione dei casi di test ridondanti Software Testing (2 parte) 6 3

4 Un esempio: Il Testing basato su Sessioni Utente Tecnica per la generazione automatica di casi di test per il testing black box partendo dall analisidelle sessioni utente (User Session), ovvero delle sequenze dei valori di input immessi e di output ottenuti in utilizzireali del software. In pratica, vengono installati strumenti che siano in grado di mantenere un log di tutte le interazioni che avvengono tra gli utenti dell applicazione da testare e l applicazione stessa (fase di Capture) A partire da tali dati vengono formalizzati casi di test che replichino le interazioni catturate (fase di Replay) In questo modo è possibile ottenere casi di test che siano rappresentativi dei reali utilizzidell applicazione da parte dei suoi utenti Software Testing (2 parte) 7 Problemi legati allo User Session Testing Il numero di sessioni da prendere in considerazione al fine di poter avere un insieme significativodi casi di test può essere molto elevato Si possono applicare tecniche di minimizzazione per la riduzione del numero di casi di test Il sistema di logging deve essere in grado di monitorare il piùpossibile anche gli elementi legati all ambiente di esecuzione Per poter ottenere esecuzioni significative può essere necessario raccogliere sessioni per molto tempo Per ridurre tale tempo, si possono utilizzare tecniche di Testing Mutazionale allo scopo di ottenere nuovi test case da una combinazione di quelli esistenti Difficoltà nel riprodurre le reali condizioni di utilizzo dell applicazione prima del suo rilascioreale Software Testing (2 parte) 8 4

5 Un ulteriore Approccio: il Testing Mutazionale Il Testing Mutazionale è una tecnica per la generazione di casi di test. A partire da un sottoinsieme di casi di test, si applicano alcuni operatori di mutazione che vadano a modificare/incrociare I dati deitest case esistenti, in modo da ottenere nuovi test case. Es. Si cambia il segno degli input, si raddoppiano I valori di input, si combinano sequenze di input in nuove sequenze, etc Due concetti distinti: Analisi Mutazionale e Testing Mutazionale L Analisimutazionale non è una tecnica di testing a tutti gli effetti ma un processo a supporto della valutazione dell efficacia di test suite esistenti. Software Testing (2 parte) 9 Testing Mutazionale Con tale tecnica si possono ottenere Test Suites più piccole (meno test cases) con maggiore copertura con uno sforzo minore rispetto a quelle ottenute semplicemente collezionando sessioni utente Bisogna però eliminare tutti i test cases che risultano inapplicabili. Questa tecnica è spesso utilizzata per il testing di interfacce o di protocolli. Software Testing (2 parte) 10 5

6 Ulteriori tecniche Ulteriori tecniche per la proposizione di casi di test si basano sulla valutazione analitica dei vincoli e dei valori critici dei dati in input Domain Analysis Analisideivalori limite (boundaries) Ad esempio, nel caso dell input mese, noto che il suo insieme di validità è [1..12] (valori interi), valori limite saranno 0, 1, 12, 13 La possibilità di automatizzare tali tecniche dipende dalla disponibilità di strumenti per l analisiautomatica di specifiche, codice, o altro Software Testing (2 parte) 11 B) Preparazione ed Esecuzione del Test Una soluzione per l automazione del testing Black Box consiste nell utilizzare appositi framework di supporto all esecuzione dei casi di test. Tra questi framework, molto noti sono quelli della famiglia XUnit, come ad esempio: JUnit (Java) CppUnit (C++) csunit (C#) NUnit (.NET framework) HttpUnit e HtmlUnit (Web Application) Tali framework sono nati nell ambito della extreme Programming per automatizzare il testing di unità, ma possono essere generalizzati anche alle problematiche di testing black box. Software Testing (2 parte) 12 6

7 Unit Testing Basics Il testing a livello di unità dei comportamenti di una classe dovrebbe essere progettato ed eseguito dallo sviluppatore della classe, contemporaneamente allo sviluppo stesso della classe Di questa opinione sono in particolare Erich Gamma e Kent Beck, meglio conosciuti come gli autori dei Design Pattern e dell extreme Programming Vantaggi: Lo sviluppatore conosce esattamente le responsabilità della classe che ha sviluppato e I risultati che da essa si attende Lo sviluppatore conosce esattamente come si accede alla classe, ad esempio: Quali precondizione devono essere poste prima di poter eseguire un caso di test; Quali postcondizioni sui valori dello stato degli oggetti devono verificarsi Svantaggi: Lo sviluppatore tende a difendere il suo lavoro troverà meno errori di quanto possa fare un tester! Software Testing (2 parte) 13 Vantaggi dell esecuzione automatica del Test Se la progettazione dei casi di test é un lavoro duro e difficile, l esecuzione dei casi di test é un lavoro noioso e gramo! L automatizzazione dell esecuzione dei casi di test porta innumerevoli vantaggi: Tempo risparmiato (nell esecuzione dei test) Affidabilità dei test (non c é rischio di errore umano nell esecuzione dei test) Riuso (parziale) dei test a seguito di modifiche nella classe Software Testing (2 parte) 14 7

8 a) Unit Testing ed esecuzione automatica dei test Nel caso di Unit Testing di una classe, una tecnica per l esecuzione automatica del test richiede di scrivere in ogni classe un metodo main capace di testare i comportamenti della classe. Problemi Tale codice verrà distribuito anche nel prodotto finale, appesantendolo La classe potrebbe già avere un main Come strutturare i test case? Come eseguirli separatamente? Per ovviare a questi problemi, cerchiamo un approccio sistematico: Che separi il codice di test da quello della classe Che supporti la strutturazione dei casi di test in test suite Che fornisca un output separato dall output dovuto all esecuzione della classe. Software Testing (2 parte) 15 b) Black Box testing e Testing Automation Nel caso testing black box, inevitabilmente il codice di test sarà separato dal codice del programma da testare (cui non si ha accesso) Le classi di test si occuperanno di eseguire le operazioni rese accessibili dal sistema da testare Nel caso di sistemi a componenti, si eseguiranno le operazioni nell interfaccia dei componenti Nel caso di sistemi a oggetti, I metodi pubblici Nel caso di sistemi a linea di comando, i comandi accessibili variando I parametri passati Nel caso di sistemi interattivi, I metodi messi a disposizione da un emulatore che emuli il comportamento dell utente nell accesso al sistema Software Testing (2 parte) 16 8

9 L approccio di JUnit JUnit é un framework (in pratica consiste di un archivio.jar contenente una collezione di classi) che permette la scrittura di test in maniera ripetibile. Fu sviluppato originariamente da Erich Gamma and Kent Beck, nell ambito degli strumenti a supporto dell extreme Programming. Plug-ins che supportano il processo di scrittura ed esecuzione dei test JUnit su classi Java sono previsti da alcuni ambienti di sviluppo in particolare mostreremo il funzionamento del plug-in JUnit di Eclipse. Software Testing (2 parte) 17 Risorse per JUnit Using JUnit in Eclipse, An Introduction to JUnit, JUnit Testing Utility Tutorial, als/junit/junit.html Tools for automated software testing, Introduzione a Test-First Design e JUnit, testing+introjunit.pdf JUnit Testing Utility Tutorial, als/junit/junit.html Sito ufficiale di JUnit, Progetto sourceforge di JUnit, Software Testing (2 parte) 18 9

10 Plug-in di Eclipse per JUnit Eclipse é dotato di un plug-in, di pubblico dominio, che supporta tutte le operazioni legate al testing di unità con JUnit. In particolare, esso fornisce dei wizard per: Creare classi contenenti test cases Automatizzare l esecuzione di tutti i test cases Mostrare i risultati dell esecuzione dei casi di test Organizzare i test cases in test suites Software Testing (2 parte) 19 Breve Tutorial Creiamo un nuovo progetto Eclipse, con un package (calcolatrice) All interno di questo package generiamo una classe calcolatrice: package calcolatrice; public class calcolatrice { public calcolatrice(){}; } public int somma (int a, int b) {return a+b;} Software Testing (2 parte) 20 10

11 Scrittura dei test Software Testing (2 parte) 21 Inserimento di JUnit nel progetto Nelle proprietà del progetto, aggiungiamo JUnit.jar tra le librerie previste nel Classpath del progetto Add External Jars Una copia di junit.jar dovrebbe trovarsi tra i plug-in di Eclipse; in alternativa la si può scaricare da Software Testing (2 parte) 22 11

12 Creazione di una classe test All interno dello STESSO package della classe da testare, creare una nuova classe, scegliendo la tipologia JUnit Test Case Software Testing (2 parte) 23 Generazione della classe dei test Il Wizard di Eclipse ci permette di indicare il nome della classe che si vuole testare (calcolatrice), il nome della classe da generare (abbiamo usato per convenzione il nome calcolatricetest), gli ulteriori metodi da aggiungere (abbiamo selezionato setup e teardown) Software Testing (2 parte) 24 12

13 Scrittura della classe test Il Wizard ha generato una classe che eredita dalla classe TestCase, cuore della libreria JUnit Il metodo setup()puòessere completato, accodando tutte quelle operazioni da effettuare preliminarmente a qualsiasi test che sarà descritto in questa classe; Il metodo teardown() conterrà il codice relativo a tutte le operazioni comuni da effettuare dopo l esecuzione di ogni test di questa classe (ad esempio per ripristinare lo stato della classe prima dell esecuzione del prossimo test package calcolatrice; import junit.framework.testcase; public class calcolatricetest extends TestCase { protected void setup() throws Exception { super.setup(); } protected void teardown() throws Exception { super.teardown(); } /* Test method for 'calcolatrice.calcolatrice.somma(int, int)'*/ public void testsomma() { } Software Testing } (2 parte) 25 Scrittura di un caso di test Scriviamo un metodo testsomma che rappresenti un caso di test per il metodo Somma; Siccome il metodo appartiene ad una classe calcolatricetestnello stesso package della classe da testare, il metodo test può istanziare oggetti della classe ed accedere ai suoi metodi public void testsomma() { } calcolatrice c=new calcolatrice(); int a=5,b=7; int s=c.somma(a,b); assertequals("somma non corretta!",12,s); Software Testing (2 parte) 26 13

14 Asserzioni Il metodo assertequals verifica se s (valore ottenuto dall esecuzione del metodo somma) é uguale a 12 (valore atteso); in caso contrario conta questo fatto come una failure e genera il messaggio di errore indicato assertequals("somma non corretta!",12,s); Software Testing (2 parte) 27 Principali asserzioni static void assertequals(boolean expected, boolean actual) Asserts that two booleans are equal. static void assertequals(int expected, int actual) Asserts that two ints are equal. static void assertequals(java.lang.string expected, java.lang.string actual) Asserts that two Strings are equal. static void assertfalse(boolean condition) Asserts that a condition is false. static void asserttrue(boolean condition) Asserts that a condition is true. static void assertnull(java.lang.object object) Asserts that an object is null. static void fail() Fails a test with no message. static void fail(java.lang.string message) Fails a test with the given message. Elenco completo disponibile presso: Software Testing (2 parte) 28 14

15 Esecuzione dei casi di test Per eseguire I test, basta seguire una procedura simile a quella usata per eseguire applicazioni Software Testing (2 parte) 29 Test che rilevano errori public double divisione (int a, int b) {return a/b;} public void testdivisione(){ } calcolatrice c=new calcolatrice(); int a=15,b=2; double s=c.divisione(a,b); asserttrue(s==7.5); In realtà il metodo divisione restituisce la divisione intera Grazie a JUnit possiamo prontamente trovare il rigo con l asserzione errata e avviare il debugging Quando pensiamo di aver correttol errore rieseguiamo il test Software Testing (2 parte) 30 15

16 Raggruppare test cases in test suite Ulteriori classi di test possono essere aggiunte in seguito modificando il codice generato package calcolatrice; import junit.framework.test; import junit.framework.testsuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test for calcolatrice"); //$JUnit-BEGIN$ suite.addtestsuite(calcolatricetest.class); //$JUnit-END$ return suite; } } Software Testing (2 parte) 31 Ricapitolando Precondizioni metodo setup (se comuni a più casi di test), altrimenti all inizio del metodo di test Input si inseriscono sotto forma di assegnazioni all inizio del codice del test case oppure si passano come parametri della chiamata della funzione da testare Output si valutano tramite asserzioni sui valori restituiti dalla funzione testata Postcondizioni si valutano tramite asserzioni su oggetti in qualche modo coinvolti nell esecuzione del caso di test Ripristino delle condizioni iniziali metodo teardown (se comuni a più casi di test) oppure al termine del metodo di test. Sono necessari per poter ripristinare lo stato del sistema al fine di automatizzare l esecuzione in sequenza dei test Software Testing (2 parte) 32 16

17 Limiti di JUnit Se una classe é in associazione/dependency con altre e JUnit rileva l errore, esso potrebbe dipendere dall altra classe (se non é stata testata adeguatamente) oppure dall integrazione JUnit é uno strumento che é in grado di risolvere SOLO le problematiche relative al testing di unità dà solo qualche utile indicazione rispetto al testing di integrazione! JUnit supporta unicamente il testing, non il debugging L utilizzo di molte asserzioni può, però, portare ad indicazioni dettagliate sulle ragioni del successo del test case Software Testing (2 parte) 33 Limiti di JUnit Si é data per scontata la correttezza del codice delle classi di test se avessimo voluto esserne sicuri al massimo avremmo potuto fare il test di unità delle classi di test stesse (paradossale!) Il codice delle classi di test é comunque estremamente lineare e ripetitivo: la possibilità di sbagliare é ridotta! La generazione del codice delle classi di test è automatizzabile Software Testing (2 parte) 34 17

18 Altre applicazioni di Testing Automation: La valutazione dell efficacia di Test Suite Generazione di moduli Driver e Stub Software Testing (2 parte) 35 La Valutazione dell Efficacia di una Test Suite Una misura di efficacia è data dal grado di Copertura raggiunto dalla test suite. In generale, dato un criterio di copertura, è abbastanza semplice valutare la sua effettiva copertura mentre non è per nulla semplice generare dei casi di test che siano in grado di garantire tale copertura. Una possibile sinergia fra White Box e Black Box Testing: La valutazione della copertura con criteri white box è un metodo per valutare, in sede sperimentale, in maniera indiretta, l efficacia delle tecniche di generazione di test black box. Software Testing (2 parte) 36 18

19 Sviluppo di Strumenti automatici a supporto É possibile sviluppare programmi che inseriscano automaticamente sonde all interno di un programma in un determinato linguaggio di programmazione, allo scopo di valutare l efficacia di una test suite rispetto a criteri di copertura strutturali Ad esempio, se venisse inserita una sonda in corrispondenza di ogni linea di codice eseguibile e che produca in output la linea di codice visitata, allora si potrebbe valutare, a seguito dell esecuzione di una certa test suite, l insieme delle linee di codice visitate Software Testing (2 parte) 37 Ausili per il Testing d integrazione il testing é applicato ad un aggregato di due o più unità di un sistema software; l'obiettivo é quello di rilevare errori nelle interazioni fra le unità e nelle funzioni che l'aggregato deve assolvere; non é compito dei programmatori che hanno prodotto le unità componenti le unità da integrare sono selezionabili in base a criteri funzionali ricavabili dal progetto (architettura del sistema); partendo da una architettura organizzata gerarchicamente, le integrazioni possono essere realizzate con approccio top-down o bottom-up o misto Software Testing (2 parte) 38 19

20 Strategie per il testing di integrazione Top-down testing Bottom-up testing Sandwich testing UI Layer stub stub stub driver driver driver Database Network layer layer UI Layer stub stub stub UI Layer Functional layer stub stub stub driver driver driver Functional layer Database Network layer layer driver driver driver Database Network layer layer UI Layer Fully integrated system Functional layer Database Network layer layer Software Testing (2 parte) 39 Esecuzione del test Costruzione di Moduli guida (driver) invocano l unità sotto test, inviandole opportuni valori, relativi al test case Moduli fittizi (stub) sono invocati dall unità sotto test; emulano il funzionamento della funzione chiamata rispetto al caso di test richiesto (tenendo conto delle specifiche della funzione chiamata) Quando la funzione chiamata viene realizzata e testata, si sostituisce lo stub con la funzione stessa Modulo guida Unità sotto test Modulo fittizio Software Testing (2 parte) 40 20

21 Driver Tramite un framework di Testing Automation come JUnit è possibile realizzare driver e stub necessari per testare un modulo non terminale Le classi di test per JUnit rappresentano dei driver quando si riferiscono ad una classe non accessibile dall esterno Un driver deve avere la visibilità dei componenti da testare (o quanto meno dell interfaccia che vogliamo esercitare) Software Testing (2 parte) 41 Stub Uno stub è una funzione fittizia la cui correttezza è vera per ipotesi Esempio, se stiamo testando una funzione prod_scal(v1,v2) che richiama una funzione prodotto(a,b) ma non abbiamo ancora realizzato tale funzione Nel metodo driver scriviamo il codice per eseguire alcuni casi di test Ad esempio chiamiamo prod_scal([2,4],[4,7]) Il metodo stub potrà essere scritto così: int prodotto (int a, int b){ if (a==2 && b==4) return 8; if (a==4 && b==7) return 28; } La correttezza di questo metodo stub è data per ipotesi Ovviamente per poter impostare tale testing, bisognerà avere precise informazioni sul comportamento interno richiesto al modulo da testare Software Testing (2 parte) 42 21

22 Il Testing di Sistemi Interattivi Software Testing (2 parte) 43 Testing di sistemi interattivi Il testing di sistemi interattivi (in particolare di interfacce utente) viene condotto tipicamente in maniera black box Tipicamente i casi di test sono progettati tenendo in conto le possibili interazioni che un utente può eseguire sull interfaccia utente Per poter approcciare il problema del testing è fondamentale la disponibilità di un modello descrittivo delle interazioni utentemacchina Quali modelli sono utilizzabili per modellare UI? Software Testing (2 parte) 44 22

23 Modellazione delle interazioni Il modello più comune è un modello di Macchina a stati: Gli elementi fondamentali di una UI sono: Finestre e relativi Widget, dotati di Eventi che possono essere eseguiti dagli utenti Campi, che possono essere eventualmente settati Si suppone che l interfaccia utente non esegua alcuna operazione se non in seguito a sollecitazioni da parte degli utenti Lo stato dell interfaccia utente viene modellato da uno stato di un automa L esecuzione di eventisulla UI (es. Click su button ) viene modellata come ingressi impulsivi che scatenano transizioni nell automa Gli input immessi sono modellati come ingressi a livelli da cui dipende la transizione che si verifica Software Testing (2 parte) 45 Esempio- modello di FSM per una UI Click on "Add new film" Search Movie Click on "Search" Logged As Admin Click on "Cancel" Click on "Back" List of Films Click on "Search" Click on "Cancel" Click on "film's link" Click on "film's link" Click on "OK" Movie Inserted Click on "Insert" Film Information Click on "Cancel" Click on "Back" Click on "Back" Film Information + list of film Film Information + Search Movie Es.: L FSM che descrive l evoluzione di una UI per l esecuzione di un Caso d Uso Software Testing (2 parte) 46 23

24 Testing delle interfacce Gli input dei casi di test devono essere indicati sotto forma di sequenze di valori di input ed eventi da eseguire. A seconda dei criteri di copertura (es. Stati, Eventi, Transizioni, path ), si progetteranno diversi TC Es.: click (add-film),click(search), click(film link),click(insert), click(ok) è il TC che permette di eseguire il cammino in rosso (Scenario: Inserimento Film OK) Ad una sequenza di valori di input dovrebbe corrispondere una sequenza di stati visitati e di output riscontrati. Software Testing (2 parte) 47 Esempio- modello di FSM per una UI Click on "Add new film" Search Movie Click on "Search" Logged As Admin Click on "Cancel" Click on "Back" List of Films Click on "Search" Click on "Cancel" Click on "film's link" Click on "film's link" Click on "OK" Movie Inserted Click on "Insert" Film Information Click on "Cancel" Click on "Back" Click on "Back" Film Information + list of film Film Information + Search Movie Es.: Cammino di esecuzione che esercita un certo scenario del Caso d Uso Software Testing (2 parte) 48 24

25 Possibile problema Come ottenere un FSM che descriva adeguatamente l UI e che possa essere usato per progettare i casi di Test? Due possibilità: FSM prodotto in fase di sviluppo dell applicazione (ma può essere poco aderente all effettiva implementazione fatta dell UI) FSM ricostruito per Reverse Engineering a partire dalla UI effettivamente implementata (richiede tecniche di analisi statica o dinamica) Nel caso di Interfacce Dinamicamente Configurabili (es. di Rich Internet Applications) piuttosto che Statiche, l analisi statica non è sufficiente! Necessità di definire tecniche e strumenti di RE per la generazione (semi-automatica) del modello. Software Testing (2 parte) 49 Automatizzazione Per poter eseguire automaticamente casi di test su interfacce utente sono necessari: Strumenti che consentano di emulare il comportamento dell utente, in particolare: Settare valori di input Scatenare eventi Strumenti che consentano di analizzare le interfacce restituite Tramite asserzioni sui widget presenti nell interfaccia e I loro valori Software Testing (2 parte) 50 25

26 Un esempio: Selenium Consideriamo il framework Selenium, a supporto del testing di interfacce utente di applicazioni Web Selenium offre quattro modalità di utilizzo: Selenium IDE Selenium Core Selenium Remote Control Selenium Grid Software Testing (2 parte) 51 Selenium IDE Si tratta di un estensione di un browser che consente di: catturare le interazioni tra un utente e una applicazione web (fase di Capture) suggerire asserzioni relative alla presenza di widget sull interfaccia utente replicare l esecuzione di casi di test, mantenendo un log degli esiti deitest (fase di Replay) Selenium è dunque usabile per progettare TC anche a prescindere da un modello formalizzato (es. FSM) della UI. Usabile per l esecuzione di Testing di Accettazione Software Testing (2 parte) 52 26

27 Capture In fase di capture, Selenium IDE mantiene un log delle operazioni effettuate dall utente e delle asserzioni da egli proposte Software Testing (2 parte) 53 Replay In fase di replay, Selenium IDE esegue automaticamente test generati in fase di capture, mantenendo statistiche sul numero di test terminati con successo e falliti Software Testing (2 parte) 54 27

28 Codice generato In fase di capture, Selenium IDE genera anche del codice sorgente (a scelta in Java, C#, Perl, PHP, Python o Ruby) che può essere eseguito indipendentemente da Selenium IDE Il codice generato necessita, per essere eseguito, di packages forniti con Selenium (che formano il Selenium Core) Software Testing (2 parte) 55 Testing di regressione e Ripple effect Dopo un intervento di manutenzione, è probabile che la modifica effettuata influisca sul resto del sistema, generando nuovi difetti (è il cosiddetto ripple effect). Chi corregge potrebbe non avere una adeguata conoscenza di tutto il sistema e delle sue connessioni Il sistema può regredire ( invecchiare ) verso uno stato più difettoso Occorre eseguire il Testing di Regressione E però molto costoso ripetere tutti i singoli test, a seguito di un unica modifica fatta. Sarebbe utile poter automatizzare tale attività Software Testing (2 parte) 56 28

29 Testing di regressione Si applica in seguito ad un intervento di manutenzione su di un software esistente, per il quale esiste già un piano di test Un problema: quali test devono essere riprogettati? E quali test possono essereriusati? Sicuramente devono essere riprogettati tutti i casi di test relativi alla nuova funzionalità implementata (o alla funzionalità modificata) Quali altri test dovranno essere rieseguiti? Per determinare quali test preesistenti devono essere rieseguiti, occorre valutare quali altre funzionalità potrebbero essere state influenzate dalla modifica realizzata, ossia eseguire l Impact Analysis: Quale sarà stato l impatto della modifica sul sistema? Software Testing (2 parte) 57 Impact Analysis e grafo delle dipendenze L analisidi impatto è la disciplina che permette di conoscere, data una modifica, quali parti del software possono esserne influenzate (e quindi devono essere ri-testate) Una tecnica semplice per la valutazione dell impatto è basata sul Grafo delle Dipendenze Un grafo delle dipendenze ha tanti nodi quanti sono I moduli (classi/funzioni), e un arco per ogni associazione/dependency tra i moduli Nei sistemi object oriented il grafo delle dipendenze può essere banalmente ricavato dal diagramma di progetto di dettaglio Data una modifica su di un modulo m tutti i moduli m che da essi dipendono (per i quali esista un arco m m) sono sicuramente impattati dalla modifica di m Tutti I moduli m che dipendono da uno qualunque dei moduli m saranno a loro volta impattati, e così via Software Testing (2 parte) 58 29

30 Grafo delle dipendenze ed Analisi dell Impatto <<dependency>> m <<dependency>> Se m è stato modificato, occorrerà controllare (e ritestare) tutti i moduli che dipendono da m (direttamente, come m, ed indirettamente, come m e m1 ) m <<dependency>> m m1 Se in fase di progettazione del software, tutte le dipendenze fra artifatti fossero registrate esplicitamente, si potrebbe facilmente eseguire tale Analisi di Impatto [A.R. Fasolino, G. Visaggio Improving Software Comprehension through an Automated Dependency Tracer, IEEE Workshop on Program Comprehension,1999] Software Testing (2 parte) 59 Testing di regressione I casi di test relativi ai moduli impattati (oppure tutti i moduli, nel casoin cui non sia stato possibile effettuare impact analysis) devono essere rieseguiti L oracolo del testing di regressione è fornito dall esito dei test che si otteneva prima di eseguire la modifica Il testing di regressione si presta, quindi, facilmente ad essere automatizzato Qualora invece non fosse automatizzato, il testing di regressione diventerebbe una pratica molto onerosa e renderebbe molto costosa l adozione di un ciclo di vita evolutivo, come ad esempio quelli di sviluppo agile che fanno uso di tecniche di extreme Programming Software Testing (2 parte) 60 30

31 Analisi Mutazionale Software Testing (2 parte) 61 Analisi Mutazionale I criteri di copertura finora presentati cercano di coprire: Le funzionalità dichiarate dell applicazione (testing funzionale) Gli elementi della struttura dell applicazione (testing strutturale) Un criterio di copertura ideale sarebbe quello di riuscire a coprire tutti gli elementi difettosi presenti nell applicazione. Come è possibile valutare la capacità potenziale di una data test suite nella rilevazione dei difetti? Software Testing (2 parte) 62 31

32 Analisi Mutazionale Il primo passoconsiste nell immaginare quali possano essere i possibili errori (fault model) E necessario proporre un modello degli errori e dei corrispondenti operatori di mutazione Un operatore di mutazione introduce in un programma, supposto corretto, un difetto (realizzando un operazione di fault injection), trasformando il programma originale in un mutante Fault Program Mutant Software Testing (2 parte) 63 Analisi Mutazionale I difetti (fault) sono inseriti automaticamente nei programmi, ottenendo dei mutanti Su ogni mutante generato si vanno ad eseguire i test case progettati per l applicazione originale L oracolo per l esecuzione di tali test è dato dall output che veniva generato dal programma originale Se l esito del test è positivo (l output del mutante differisce da quello del programma originale), allora si dice che il mutante è stato ucciso (killed) Altrimenti, il mutante non è stato rivelato dal test, ed è sopravvissuto. Più mutantisono uccisi, maggiore fiducia si può avere nella capacità della Test Suite di scoprire difetti! Software Testing (2 parte) 64 32

33 Analisi Mutazionale L efficacia di una test suite si può misurare come TER = # killed Mutants / # Mutants In conclusione: Una test suite che riesca a rivelare il maggior numero possibile di mutanti è da considerarsipiù promettente nella rivelazione di potenziali difettinell applicazione Software Testing (2 parte) 65 Problemi dell analisi mutazionale Difficoltà nella modellazione dei difetti di un sistema software Di solito vengono proposti degli operatori di mutazione Basandosi sull esperienza generica di chi propone il testing mutazionale riguardo le possibili cause di errore Basandosi su di un analisi statistica dei difetti rilevati in altri software Gli operatori proposti sono di solito estremamente generici, per poter essere applicabili ad ogni software, indipendentemente dal linguaggio adottato e dalle caratteristiche della singola applicazione Esempi: Operatore che sostituisce un operazione aritmetica con un altra Operatore che sostituisce un operatore relazionale con un altro Operatore che inverte la posizione di due righe di programma, etc. Software Testing (2 parte) 66 33

34 Problemi dell analisi mutazionale Il numero di possibili difetti è estremamente elevato, già per un piccolo frammento di software Il numero di mutanti generati da un piccolo insieme di operatori è estremamente elevato Per ogni mutante dovrebbero essere eseguiti tutti i casi di test di una test suite L approccio è possibile solo in presenza di un ambiente per la testing automation, e anche in questo caso è molto oneroso Spesso si decide di applicare gli operatori di mutazione solo a campione Software Testing (2 parte) 67 Problemi dell analisi mutazionale Altri problemi: Non tutti i difetti di un sistema software sono legati ad errori nel codice sorgente Si pensi a difetti del tipo di: mancanza di un requisito, scorretta interpretazione di un requisito, etc. Alcuni difetti portano ad errori sintattici e sono giàrivelati dal compilatore Non è possibile proporre operatori generali che riproducano gli errori semantici Software Testing (2 parte) 68 34

35 Vantaggi L analisi mutazionale è una tecnica completamente automatica, che può essere eseguita in batch senza l assistenza del tester. Occorre però disporre di strumenti automatici per la generazione dei mutanti, l esecuzione dei test, la valutazione dei risultati ( ) Si rivela utile come banco di prova per il confronto in ambiente sperimentale tra diverse test suite, per valutare quale sia in grado di rilevare più difetti. Software Testing (2 parte) 69 Il Testing Statico Software Testing (2 parte) 70 35

36 Tecniche di Verifica e Validazione Analisi statica: processo di valutazione di un sistema o di un suo componente basato sulla sua forma, struttura, contenuto, documentazione senza che esso sia eseguito. Esempi sono: revisioni, ispezioni, recensioni, analisi data flow Analisi dinamica: processo di valutazione di un sistema software o di un suo componente basato sulla osservazione del suo comportamento in esecuzione. Di solito solo queste tecniche si identificano come testing Analisi formale: uso di rigorose tecniche matematiche per l analisi di algoritmi. E usata soprattutto per la verifica del codice e dei requisiti specie quando questi sono specificati con linguaggi formali (es. Z, VDM). Software Testing (2 parte) 71 Principali tecniche di analisi statica Analisi statica in compilazione Code reading Code inspections or reviews Walktrough Control flow analysis Data flow analysis Esecuzione simbolica Software Testing (2 parte) 72 36

37 Analisi statica in compilazione I compilatori effettuano una analisi statica del codice per verificare che un programma soddisfi particolari caratteristiche di correttezza statica, per poter generare il codice oggetto. Tipiche anomalie identificabili: nomi di identificatori non dichiarati, incoerenza tra tipi di dati coinvolti in una istruzione, incoerenza tra parametri formali ed effettivi in chiamate a subroutine, codice non raggiungibile dal flusso di controllo Software Testing (2 parte) 73 Code Reading (o Desk Checking) E effettuata un attenta lettura individuale del codice per individuare errori e/o discrepanze con il progetto. Il lettore effettua mentalmente una pseudo-esecuzione del codice e processi di astrazione che lo conducono a verificare la correttezza del codice rispetto alle specifiche e il rispetto di standard adottati. Tipici difetti identificabili: nomi di identificatori errati, errato innesto di strutture di controllo, loop infiniti, inversione di predicati, commenti non consistenti con il codice, incorretto accesso ad array o altre strutture dati, incoerenza tra tipi di dati coinvolti in una istruzione, incoerenza tra parametri formali ed effettivi in chiamate a subroutine, inefficienza dell algoritmo, non strutturazione del codice, codice morto, etc. L efficacia di tale tecnica è limitata se chi la esegue è la stessa persona che ha scritto il codice. Software Testing (2 parte) 74 37

38 Code Inspections (o review) Riunioni formali cui partecipa un gruppo di persone tra cui almeno una del gruppo di sviluppo, un moderatore ed altri esperti. Lo sviluppatore legge il codice ad alta voce, linea per linea, e i partecipanti fanno commenti e/o annotazioni. Tipicamente queste riunioni sono preannunciate ai partecipanti cui viene fornita la documentazione necessaria (codice e relativi documenti) per la revisione. È una tecnica che riesce ad individuare fra il 30 e il 70% degli errori nella logica del programma. Software Testing (2 parte) 75 Code Inspection L obiettivo della riunione è scoprire difetti, non correggerli. Comunque, spesso l analisi dei difetti effettuata viene discussa e vengono decise le eventuali azioni da intraprendere accettazione del codice, rigetto, annotazioni su eventuali non aderenze a specifiche, indicazioni delle modifiche da apportare Il codice è analizzato usando checklist dei tipici errori di programmazione, quali: Errori di data reference, data declaration, di calcolo, di confronto, sul flusso di controllo, di interfaccia, di I/O. Le checklist sono generiche (indipendenti dal linguaggio) ma possono essere adattate agli specifici linguaggi analizzati. Software Testing (2 parte) 76 38

39 Esempio di Checklist per le Ispezioni Software Testing (2 parte) 77 Walkthrough Analisi informale del codice svolta da vari partecipanti i quali operano come il computer : in pratica, si scelgono alcuni casi di test e si simula l esecuzione del codice a mano (si attraversa- walkthrough- il codice). L organizzazione della riunione è simile a quella della tecnica delle Ispezioni: Tra 3 e 5 partecipanti; Riunioni brevi (max. 120 minuti); Attenzione sulla ricerca dei difetti, piuttosto che sulla correzione; Attenzione a non criminalizzare il programmatore (autore del difetto)! Software Testing (2 parte) 78 39

40 Control Flow Analysis Il flusso di controllo è esaminato per verificarne la correttezza. Il codice è rappresentato tramite un grafo, il grafo del flusso di controllo (Control flow Graph - CfG), i cui nodi rappresentano statement (istruzioni eo predicati) del programma e gli archi il passaggio del flusso di controllo. Il grafo è esaminato per identificare ramificazioni del flusso di controllo e verificare l esistenza di eventuali anomalie quali codice irraggiungibile e non strutturazione. Software Testing (2 parte) 79 Data flow analysis - statica Analisi dell evoluzione del valore delle variabili durante l esecuzione di un programma, permettendo di rilevare anomalie. Intrinsecamente è dinamica, ma alcuni aspetti possono essere analizzati staticamente. L analisi statica è legata alle operazioni eseguite su una variabile: definizione: alla variabile è assegnato un valore uso: il valore della variabile è usato in un espressione oun predicato annullamento: al termine di un istruzione il valore associato alla variabile non è più significativo Es.: nell espressione a:=b+c; la variabile a è definita mentre b e c sono usate Software Testing (2 parte) 80 40

41 Data Flow Analysis La definizione (d) di una variabile, così come un annullamento (a), cancella l effetto di una precedente definizione della stessa variabile, ovvero ad essa è associato il nuovo valore derivante dalla nuova definizione (o il valore nullo) Una corretta sequenza di operazioni prevede che: L uso (u) di una variabile deve essere sempre preceduto da una definizione della stessa variabile senza annullamenti intermedi (Sequenza valida : du) Una variabile non definita ha un valore sporco Una definizione di una variabile deve essere sempre seguita da un uso della variabile, prima di un altra definizione o di un annullamento della stessa variabile (Sequenze non valide: dd, da) Una doppia definizione è indice del fatto che la prima definizione è risultata inutile Software Testing (2 parte) 81 Data Flow Analysis Software Testing (2 parte) 82 41

42 Data Flow Analysis-esempio Software Testing (2 parte) 83 Data Flow Analysis- esempio Software Testing (2 parte) 84 42

43 Esecuzione simbolica Il programma non è eseguito con i valori effettivi ma con valori simbolici dei dati di input. L esecuzione procede come una esecuzione normale ma non sono elaborati valori, bensì formule formate dai valori simbolici degli input Gli output sono formule dei valori simbolici degli input L esecuzione simbolica anche di programmi di modeste dimensioni può risultare molto difficile. Ciò è dovuto all esecuzione delle istruzioni condizionali: deve essere valutato ciascun caso (vero e falso); in programmi con cicli ciò può portare a situazioni difficilmente gestibili. Software Testing (2 parte) 85 Esecuzione simbolica Software Testing (2 parte) 86 43

44 Esempio Software Testing (2 parte) 87 Path Conditions Nel caso di esecuzioni simboliche con condizioni, alcuni statement sono eseguiti solo se gli input soddisfano determinate condizioni. Una Path Condition (pc), per un determinato statement, indica le condizioni che gli input devono soddisfare affinchè una esecuzione percorra un cammino lungo cui lo statement sia eseguito. Una pc è un espressione Booleana sugli input simbolici di un programma. Software Testing (2 parte) 88 44

45 Path Condition All inizio dell esecuzione simbolica essa assume il valore vero (pc := true ). Per ogni condizione che si incontrerà lungo l esecuzione, pc assumerà differenti valori a seconda dei differenti casi relativi ai diversi cammini dell esecuzione. Software Testing (2 parte) 89 Software Testing (2 parte) 90 45

46 Software Testing (2 parte) 91 Path Condition 92 Software Testing (2 parte) 92 46

47 Analisi dell Execution Tree Ogni foglia dello execution tree rappresenta un cammino che sarà percorso per certi valori di input Le Pc associate a due differenti foglie sono distinte; ciascuna foglia dello execution tree rappresenta un cammino che sarà percorso per la Pc ad essa associata. Non esistono esecuzioni per cui sono vere contemporaneamente più Pc (vero solo per programmi sequenziali) Feasible Path: un cammino per il quale esiste un insieme di dati di ingresso che soddisfa la path condition. Unfeasible Path: un cammino per il quale non esiste un insieme di dati di ingresso che soddisfa la path condition. Se l output ad ogni foglia è corretto allora il programma è corretto. Ma, quanti rami può avere un execution tree? Software Testing (2 parte) 93 DETERMINAZIONE DELLA ESEGUIBILITA DI UN CAMMINO (Path feasibility) Davis (1973) Il problema di stabilire se esiste una soluzione per un sistema di diseguaglianze é indecidibile. Un cammino é eseguibile se esiste un punto del dominio di ingresso che rende soddisfatta la sua path condition (..un sistema di diseguaglianze). La determinazione della feasibility o della infeasibility di un cammino è indecidibile. NB. se si riesce a dimostrare che ciascun predicato nella path condition è dipendente linearmente dalle variabili di ingresso, allora il problema è risolubile con algoritmi di programmazione lineare. Software Testing (2 parte) 94 47

48 Call Directed Graph Software Testing (2 parte) 95 Alberi di Dominanza Software Testing (2 parte) 96 48

49 Alberi di Dominanza Software Testing (2 parte) 97 Software Testing (2 parte) 98 49

50 Il Debugging Software Testing (2 parte) 99 Debugging Attività di ricerca e correzione dei difetti che sono causa di malfunzionamenti. É l attività conseguenziale all esecuzione di un test che ha avuto successo. Il debugging è ben lungi dall essere stato formalizzato Metodologie e tecniche di debugging rappresentano soprattutto un elemento dell esperienza del programmatore/tester Software Testing (2 parte)

51 Difficoltà del debugging 1. Il sintomo e la causa possono essere lontani. 2. Il sintomo può scomparire solo temporaneamente (a seguito di correzione di altro errore) 3. Il sintomo può non essere causato da errori specifici (ma intrinseci all ambiente di esecuz.-es errori di arrotondamento) 4. Può dipendere da errori di temporizzazione e non di elaborazione. 5. Può essere difficile riprodurre le condizioni di partenza 6. Il sintomo può essere intermittente. Software Testing (2 parte) 101 Localizzazione dei difetti Ridurre la distanza tra difetto e malfunzionamento Mantenendo un immagine dello stato del processo in esecuzione in corrispondenza dell esecuzione di specifiche istruzioni Watch point e variabili di watch Un watch, in generale, è una semplice istruzione che inoltra il valore di una variabile verso un canale di output» L inserimento di un watch (sonda) è un operazione invasiva nel codice: anche nel watch potrebbe annidarsi un difetto» In particolare l inserimento di sonde potrebbe modificare sensibilmente il comportamento di un software concorrente Asserzioni, espressioni booleane dipendenti da uno o più valori di variabili legate allo stato dell esecuzione Software Testing (2 parte)

52 Metodologie per il Debugging Forza Bruta Ragionamento Induttivo Ragionamento deduttivo Backtracking Software Testing (2 parte) 103 Forza Bruta Il modo più inefficace per fare debugging. Diversi approcci possibili: Usare storage dump (stampe dello stato della memoria in esadecimale o ottale ) Disseminare il codice di sonde per catturare quante più informazioni possibili e valutarle, in cerca di indizi Usare qualche strumento di debugging automatico (che permette di analizzare l esecuzione del programma inserendo punti di break, osservazione di variabili, etc..) Largamente inefficace perché può produrre eccessive informazioni da comprendere Ricorrervi solo quando altre tecniche hanno fallito! Software Testing (2 parte)

53 Debugging usando l approccio Induttivo Processo di ragionamento Induttivo: dal particolare al generale. Basato sulla raccolta di dati ed indizi sul fallimento, formulazione e verifica di ipotesi sulle possibili cause, in modo iterativo. Software Testing (2 parte) 105 Un modo per strutturare la raccolta di indizi Software Testing (2 parte)

54 Debugging usando l approccio Deduttivo Si procede dal generale al particolare: Si formulano varie ipotesi sulla causa dell errore e si raccolgono dati per validarle o scartarle Software Testing (2 parte) 107 Debugging per BackTracking Si cerca di ripercorrere il codice all indietro a partire dal punto dove si è verificato il malfunzionamento (istruzione di output oppure eccezione) Analogamente alla tecnica delle Path Condition, diventa via via più difficile procedere all indietro all allargarsi del campo di possibilità. Software Testing (2 parte)

55 Automatizzazione del debugging Il debugging è un attività estremamente intuitiva, che però deve essere operata nell ambito dell ambiente di sviluppo e di esecuzione del codice Strumenti a supporto del debugging sono quindi convenientemente integrati nelle piattaforme di sviluppo (IDE), in modo da poter accedere ai dati del programma, anche durante la sua esecuzione, senza essere invasivi rispetto al codice In assenza di ambienti di sviluppo, l inserimento di codice di debugging invasivo rimane l unica alternativa Software Testing (2 parte) 109 Funzionalità comuni di debugging Inserimento break point Esecuzione passo passo del codice Entrando o meno all interno dei metodi chiamati Uscendo Verifica di asserzioni Le asserzioni possono anche essere utilizzate come parametri per break point condizionali Valutazione (watch) del valore delle variabili, mentre l esecuzione è in stato di interruzione Nei linguaggi interpretati (tra cui anche Java), è possibile anche fornire la possibilità di modificare in fase di esecuzione il valore di variabili, semplificando notevolmente il problema della ricerca di casi di test in grado di replicare il malfunzionamento Software Testing (2 parte)

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

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Database. Si ringrazia Marco Bertini per le slides

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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice. Convalida: attività volta ad assicurare che il SW sia conforme ai requisiti dell utente. Verifica: attività volta ad assicurare che il SW sia conforme alle specifiche dell analista. Goal: determinare malfunzionamenti/anomalie/errori

Dettagli

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

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

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

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

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere

Dettagli

Collaudo e qualità del software Quali test eseguire

Collaudo e qualità del software Quali test eseguire Collaudo e qualità del software Relatore Ercole Colonese Roma, Tipologie di test Temi trattati nel libro Modello a V Livelli di testing Tipi di test Test funzionali Test delle funzionalità Test di gestione

Dettagli

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale

Sistemi elettronici per la sicurezza dei veicoli: presente e futuro. Il ruolo della norma ISO 26262 per la Sicurezza Funzionale La Sicurezza Funzionale del Software Prof. Riccardo Sisto Ordinario di Sistemi di Elaborazione delle Informazioni Dipartimento di Automatica e Informatica Sicurezza Funzionale del Vari Aspetti Sicurezza

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

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Sommario Introduzione Definizione di WCET Importanza del WCET Panoramica dei classici metodi per calcolare il WCET [1] Utilizzo di

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 29-Analisi della potenza statistica vers. 1.0 (12 dicembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

11. Evoluzione del Software

11. Evoluzione del Software 11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

Eclipse. Avviare un progetto e compilare un semplice programma

Eclipse. Avviare un progetto e compilare un semplice programma Eclipse Avviare un progetto e compilare un semplice programma Descrizione di Eclipse Eclipse è un ambiente di sviluppo che facilita la scrittura ed il debug di programmi java Permette di: Scrivere il codice

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Alfa Layer S.r.l. Via Caboto, 53 10129 Torino ALFA PORTAL

Alfa Layer S.r.l. Via Caboto, 53 10129 Torino ALFA PORTAL ALFA PORTAL La struttura e le potenzialità della piattaforma Alfa Portal permette di creare, gestire e personalizzare un Portale di informazione in modo completamente automatizzato e user friendly. Tramite

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico Strumenti Processo parte VII Leggere Cap. 9 Ghezzi et al. Strumenti software che assistono gli ingegneri del software in tutte le fasi del progetto; in particolare progettazione codifica test Evoluzione

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

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Gestione Turni. Introduzione

Gestione Turni. Introduzione Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Manuale Terminal Manager 2.0

Manuale Terminal Manager 2.0 Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

Manuale operatore per l utilizzo dell utente di dominio

Manuale operatore per l utilizzo dell utente di dominio Manuale operatore per l utilizzo dell utente di dominio Sommario Manuale operatore per l utilizzo dell utente di dominio... 1 1. Account personale di dominio... 2 2. Account generico di dominio... 2 3.

Dettagli

A tal fine il presente documento si compone di tre distinte sezioni:

A tal fine il presente documento si compone di tre distinte sezioni: Guida on-line all adempimento Questa guida vuole essere un supporto per le pubbliche amministrazioni, nella compilazione e nella successiva pubblicazione dei dati riguardanti i dirigenti sui siti istituzionali

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

RECUPERO DATI LIFO DA ARCHIVI ESTERNI

RECUPERO DATI LIFO DA ARCHIVI ESTERNI RECUPERO DATI LIFO DA ARCHIVI ESTERNI È possibile importare i dati relativi ai LIFO di esercizi non gestiti con Arca2000? La risposta è Sì. Esistono tre strade per recuperare i dati LIFO per gli articoli

Dettagli

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

ARCHIVIAZIONE DOCUMENTALE NEiTdoc ARCHIVIAZIONE DOCUMENTALE NEiTdoc PROCESS & DOCUMENT MANAGEMENT La documentazione può essere definita un complesso di scritture prodotte da entità pubbliche o private nell espletamento della loro attività,

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Manuale Knowledge Base

Manuale Knowledge Base (Riservato a rivenditori e agenzie) Versione Luglio 2010 SOMMARIO Introduzione... 2 Accesso... 2 Menu Conoscenze... 3 Bacheca... 4 Voci di menu... 5 Ricerca... 5 Ricerca Semplice... 6 Ricerca avanzata...

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

Progettazione esterna

Progettazione esterna Progettazione esterna Processi: Successive scomposizioni funzionali: Data Flow Diagram fino all ennesimo livello (DFD) Tutte le bolle di un DFD dell applicazione devono essere ulteriormente scomposte applicando

Dettagli

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI PREMESSA La procedura contabile consente la gestione di più anni in linea. Questo

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

LA REVISIONE LEGALE DEI CONTI La comprensione

LA REVISIONE LEGALE DEI CONTI La comprensione LA REVISIONE LEGALE DEI CONTI La comprensione dell impresa e del suo contesto e la valutazione dei rischi di errori significativi Ottobre 2013 Indice 1. La comprensione dell impresa e del suo contesto

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

12. Evoluzione del Software

12. Evoluzione del Software 12. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 12. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

A tal fine il presente documento si compone di tre distinte sezioni:

A tal fine il presente documento si compone di tre distinte sezioni: Guida on-line all adempimento Questa guida vuole essere un supporto per le pubbliche amministrazioni, nella compilazione e nella successiva pubblicazione dei dati riguardanti i dirigenti sui siti istituzionali

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Pillola operativa Integrazione Generazione Dettagli Contabili INFORMAZIONI

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

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

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

Dettagli

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

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

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

LeggiCATASTO. Le due funzionalità principali sono:

LeggiCATASTO. Le due funzionalità principali sono: Il prodotto LeggiCATASTO consente di analizzare in dettaglio i dati del catasto ufficiale, scaricabili dal portale SISTER, e di confrontarli con quelli della propria banca ICI, leggendo il tracciato ministeriale

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

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

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

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

BANCA DATI PER L OCCUPAZIONE DEI GIOVANI GENITORI

BANCA DATI PER L OCCUPAZIONE DEI GIOVANI GENITORI Istituto Nazionale Previdenza Sociale Direzione centrale entrate Direzione centrale sistemi informativi e tecnologici BANCA DATI PER L OCCUPAZIONE DEI GIOVANI GENITORI Guida alla procedura di richiesta

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante: Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine

Dettagli

ali e non funzionali con priorità (high, medium, low) Use Case con un Activity Diagram o uno State Diagr ram

ali e non funzionali con priorità (high, medium, low) Use Case con un Activity Diagram o uno State Diagr ram Riassunto deriva able 4 novembre Lista dei requisiti iti funziona ali e non funzionali con priorità (high, medium, low) Diagramma degli Use Case dell intero progetto Descrizione di almeno uno Use Case

Dettagli

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

Dettagli