Automatic generation of test cases

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Automatic generation of test cases"

Transcript

1 Tecniche Automatiche per la Correttezza del Software 2016/2017 Automatic generation of test cases Prof. Salvatore La Torre Alessandro Sacco

2 Overview Testing Manual Testing vs Automated Testing Generazione automatica di Tools Conclusioni 2

3 Testing Il testing è considerato una disciplina fondamentale nell ambito di sviluppo di qualsiasi processo software. punta a mostrare che il software è conforme alle sue specifiche e soddisfa le aspettative del cliente. 3

4 Testing Il processo di test del software ha due obiettivi distinti: dimostrare al cliente e allo sviluppatore che il software soddisfa i suoi requisiti il software si comporta come ci si aspetta scoprire errori o difetti nel software 4

5 Testing Sfortunatamente il testing non può dimostrare che il software è privo di difetti o che si comporterà come specificato in ogni circostanza E possibile misurare la bontà di un processo di testing in termini di efficacia e efficienza 5

6 Testing Quello che si cerca di fare è trovare il maggior numero di malfunzionamenti possibile con il minor numero possibile di test cases. se poi si vuole un software più affidabile, o meno costoso, bisogna privilegiare rispettivamente l efficacia o l efficienza 6

7 Testing Tra le attività di un processo software il testing si configura come la parte più impegnativa e costosa. Questo principalmente a causa della sua enorme difficoltà, che diventa sempre più rilevante man mano che la complessità del software cresce e i requisiti di sicurezza aumentano 7

8 Testing Dal momento che l esigenza di produrre software di qualità cresce sempre più velocemente, è bene valutare la possibilità di automatizzare il processo di testing utilizzando appositi strumenti che consentano di ridurre lo sforzo umano al fine di ottenere risultati quanto più possibili esenti da errori. 8

9 Manual Testing vs Automated Testing Il Testing copre un dominio enorme ma può essere suddiviso in due aree principali: Testing manuale Testing automatizzato 9

10 Manual Testing vs Automated Testing Manual Testing I test case sono eseguiti manualmente senza l ausilio di strumenti o script Operazione di progettazione manuale di, molto onerosa(tempo) Automated Testing Si ricorre all uso di tool, script e software. I test case vengono eseguiti in maniera rapida ed efficace Ripetitivo e noioso Riuso di test già esistenti 10

11 Automated Testing Nel processo di automazione del testing si individuano tre aree di intervento: Generazione automatica di Preparazione ed esecuzione dei test Valutazione dell esito e dell efficacia dei 11

12 Ci sono diversi modi attraverso cui è possibile generare automaticamente : A partire dalla specifica dei requisiti Dall analisi del modello di un progetto(model based testing) Dall analisi statica del codice sorgente Dall osservazione di esecuzioni reali dell applicazione(user session testing) 12

13 Model Based Testing Generare automaticamente casi di test a partire da un modello di progetto Le tecniche di model based testing spesso sono mutuate dalle tecniche di model-checking Differenza: il model checking è una tecnica di verifica formale di correttezza, il model based testing è solo una tecnica di generazione di casi di test 13

14 Model Based Testing (esempi) Dato un Grafo G, cercare di generare che coprono suoi cammini Dato un workflow diagram di un processo o di un servizio, generare che eseguono suoi percorsi 14

15 Model Based Testing (esempio Diagramma) o Diagramma a stati di un sistema file 15

16 Model Based Testing (esempio Diagramma) 16

17 Model Based Testing (esempio Diagramma) Generazione ed Esecuzione 17

18 Random Testing Consiste nella generazione di sequenze casuali di input allo scopo di testare l applicazione. Efficienza: molto bassa ma può condurre alla scoperta di malfunzionamenti che non vengono trovati con strategie di testing più intelligenti 18

19 Random Testing Svantaggi: l Random Testing può portare a rieseguire moltissime volte la stessa esecuzione Un Random Testing più complesso, può avere memoria delle esecuzioni precedenti, per non ripeterle 19

20 Testing basato su Sessioni Utente Idea: Utilizzare i reali utilizzatori di un applicazione come cavie da osservare per generare test cases. Vantaggi: Lo sforzo per la generazione dei casi di test è molto limitato Reali utilizzatori possono sollecitare il sistema in modo che i progettisti non avevano immaginato e previsto 20

21 Testing basato su Sessioni Utente In pratica: vengono installati strumenti che siano in grado di mantenere un log di tutte le interazioni che avvengono tra gli utenti e l applicazione stessa A partire da tali dati vengono formalizzati test cases che replichino le interazioni catturate 21

22 Testing basato su Sessioni Utente Svantaggi: L applicazione deve essere stata già rilasciata Scarsa efficienza (molti test identici tra loro) Il numero di sessioni da prendere in considerazione al fine di poter avere un insieme significativo di può essere molto elevato Il sistema di logging deve essere in grado di monitorare il più possibile 22

23 Testing Mutazionale Utilizzato per ridurre sensibilmente il tempo necessario per la generazione di nuovi (con la tecnica basata su sessioni utente) Consiste nell applicazione di alcuni operatori di mutazione che vanno a modificare/incrociare i dati dei esistenti, in modo da ottenerne dei nuovi 23

24 Combinatorial Testing Si tratta di una tecnica blackbox che, come tale, non richiede l analisi del codice sorgente Consiste in 2 fasi: strutturazione manuale fase automatizzata per la produzione di combinazioni 24

25 Combinatorial Testing Vantaggi: Efficace Facile da applicare 25

26 Tools Ci sono diversi tipi di tools disponibili per la generazione automatica di : Tobias Jpet Combinatorial testing Generazione automatica di per bytecode (java) EvoSuite Test cases generati sono un punto di partenza per il tester umano 26

27 Tools: Tobias Uno strumento free per la generazione di test combinatori. Sviluppa in maniera esaustiva tutte le combinazioni dei parametri e dei metodi d ingresso. 27

28 Tools: Tobias È disponibile attraverso un interfaccia web fornire il proprio indirizzo formato dei dati di input e di output file input gli output generati vengono raggruppati in un file zip, il cui url viene inviato all dell utente 28

29 Tools: Tobias 29

30 Tools: Tobias Il file di input può essere espresso in due formati: TSLT (Test Schema Language for Tobias) TSLT è un linguaggio testuale che comprende la gran parte della sintassi java INTOB Include costrutti aggiuntivi,come filtri ed è molto piu complesso 30

31 Tools: Tobias(Funzionamento) Input Tobias: la firma delle classi che si vuole testare test schema Output Tobias: Test cases 31

32 Tools: Tobias(Esempio Applicazione) Tale file descrive un gruppo nominato EsempioBoundary che è etichettato come [us=true]. Ciò significa che questo gruppo sarà spiegato da Tobias all interno di una test suite 32

33 Tools: Tobias(Esempio Applicazione) 33

34 Tools: Tobias(Esempio Applicazione 2) Tale file descrive un gruppo nominato Add2Coins. {2} indichiamo che vogliamo due chiamate al metodo coin(). 34

35 Tools: Tobias(Esempio Applicazione 2) 35

36 Tools: Tobias (Esempio Applicazione 3) Tale file descrive un gruppo nominato Prova. div.divide(): indichiamo che vogliamo chiamare il metodo divide() della classe Divisione. 36

37 Tools: Tobias(Esempio Applicazione 3) 37

38 Tools: Tobias(Esempio Applicazione 3) 38

39 Tools: Tobias(Esempio Applicazione 3) 39

40 Conclusioni Il testing è un elemento essenziale di qualsiasi processo software di successo. Quello che si vuole è: produrre automaticamente i quanto più leggibili ed efficaci possibile grazie all uso di strumenti automatici 40

41 Bibliografia [1] Tratta da Automated Testing vs Manual Testing: Which Should You Use, and When?, [2] Tobias On-Line documentation, [3] Methodologies for automated software test case generation, 41

Strumenti per la generazione automatica di casi di test per programmi Java

Strumenti per la generazione automatica di casi di test per programmi Java Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Ingegneria del software Strumenti per la generazione automatica di casi di test per programmi Java

Dettagli

Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011

Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011 tesi di laurea Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011 relatore Ch.mo prof. Porfirio Tramontana

Dettagli

Software Testing. Esercizi proposti. Esercizi di Testing 1

Software Testing. Esercizi proposti. Esercizi di Testing 1 Software Testing Esercizi proposti Esercizi di Testing 1 Esercizi proposti Una delle prove obbligatorie per sostenere l esame di Ingegneria del Software 2 è lo svolgimento di un esercizio pratico di testing

Dettagli

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+

TRADUZIONE STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ TRADUZIONE DI STATE AND TRANSITION DIAGRAM UML E CORRETTEZZA DEI PROGRAMMI IN TLA+ a cura di: Eleonora Antonelli Simone Maletta Stefano Novara INDICE 1. Grammatica di TLA+ a cura di Eleonora Antonelli

Dettagli

Collaudo del software

Collaudo del software Collaudo del software Il software deve essere testato con il preciso scopo di trovare degli errori prima di essere consegnato al cliente Il collaudo è un insieme di attività pianificate per testare il

Dettagli

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009

UML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009 UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata

Dettagli

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Stato dell arte sulle tecniche di testing di Sistemi Embedded tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Porfirio Tramontana candidato Alfonso Cutolo Matr. 041/3068 Obiettivi Facoltà di Ingegneria Obiettivi Ordinare e descrivere in maniera metodologica

Dettagli

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso Relatore: Benedetto Intrigila Realizzato da: Postoronca Maxim Anno accademico: 2009/2010 Introduzione Introduzione Lo scopo della

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Cosa è un programma. Informatica di Base -- R.Gaeta 18 Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer

Dettagli

Anno Accademico 2007/2008

Anno Accademico 2007/2008 tesi di laurea Anno Accademico 2007/2008 relatore Ch.mo prof. Massimo Ficco correlatore Ing. Antonio Pecchia candidato Gabriele Gallo Matr. 885/57 Contesto L Air Traffic Control (ATC) è quell insieme di

Dettagli

Introduzione ai casi d uso

Introduzione ai casi d uso Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni

Dettagli

Verifica e Validazione del Software

Verifica e Validazione del Software Verifica e Validazione del Software Testing Black Box Ingegneria del Software 2 Testing Black Box 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato sui processi)

Dettagli

IL PROCESSO di PROGETTAZIONE

IL PROCESSO di PROGETTAZIONE IL PROCESSO di PROGETTAZIONE In questa lezione vedremo: Ruolo della modellazione nella comunicazione tipi di modello nel progetto I modelli del prodotto Interpretazione delle informazioni del progetto

Dettagli

Correttezza (prima parte)

Correttezza (prima parte) Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di

Dettagli

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC. tesi di laurea Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Gianluca

Dettagli

innovation & governance

innovation & governance innovation & governance PROPOSTA DI VALORE PER L UFFICIO CONTRATTI E APPALTI TECNOLINK S.r.l. Sede legale: Via Goffredo Casalis, 24-10143 Torino Sede operativa: Via Vandalino, 92-10142 Torino Tel. +39

Dettagli

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Modelli di produzione del software Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili

Dettagli

Lo sviluppo del progetto informatico

Lo sviluppo del progetto informatico Lo sviluppo del progetto informatico Il progetto Il controllo di qualità Le qualità per i prodotti di software Le figure professionali La metodologia La conoscenza degli obiettivi L analisi La progettazione

Dettagli

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali Prof.ssa Susanna Donatelli Prof. Franco Sirovich Dipartimento di Informatica Università di Torino www.di.unito.it

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Introduzione e Concetti Fondamentali Porfirio Tramontana, 2009 Corso di Ingegneria del Software Slide 1 Riferimenti Ian Sommerville, Ingegneria del Software, Capitolo 1 Porfirio

Dettagli

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato Introduzione all UML UML come abbozzo UML - Unified Modeling Language E una famiglia di notazioni grafiche per la modellazione visuale del software Modellazione: rappresentazione di elementi che corrispondono

Dettagli

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione... Sommario Prefazione...IX Ringraziamenti...XIII Gli autori...xv Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...1 Perché le aziende stanno adottando le applicazioni

Dettagli

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Valentina Presutti (A-L) Riccardo Solmi (M-Z) Definizione del problema Modello di un dominio Si vuole

Dettagli

Verifica parte IID. Test in grande. Test e modularità. Test di modulo

Verifica parte IID. Test in grande. Test e modularità. Test di modulo Test in grande Verifica parte IID Rif. Ghezzi et al. 6.3.5-6.3.6 Molte delle tecniche viste finora hanno alta complessità, o non sono automatizzabili. Possono quindi essere applicate solo a programmi piccoli,

Dettagli

12. Verifica e Validazione del Software

12. Verifica e Validazione del Software 12. Verifica e Validazione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 12. Verifica e Validazione del Software 1 / 18 Verifica e Validazione

Dettagli

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 4. Introduzione a UML Dipartimento di Informatica Università di Pisa A.A. 2014/15 e per i modelli iterativi analisi peliminare analisi e progettazione realizzazione Necessità di

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Appalto concorso sistema GAWS

Appalto concorso sistema GAWS Appalto concorso sistema GAWS Data: 29 ottobre 2007 Autore: Fabio Faieta Azienda Proponente: srl Appalto concorso per la realizzazione di un modello software per la automatica di un componente di comunicazione

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

Tecniche e strumenti per la validazione di codice Java: un esempio applicativo

Tecniche e strumenti per la validazione di codice Java: un esempio applicativo Università degli Studi dell'insubria Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Tecniche e strumenti per la validazione di codice Java: un esempio applicativo Relatore:

Dettagli

Automatic Deployment Tool For Networked Objects (ADEPTO)

Automatic Deployment Tool For Networked Objects (ADEPTO) 1/11 19 ADEPTO Automatic Deployment Tool For Networked Objects (ADEPTO) The MobiLab Group Dipartimento di Informatica e Sistemistica Università di Napoli Federico II Via Claudio 21, 80125 - Napoli, Italy

Dettagli

Strumenti per l automazione del testing di applicazioni web Javascript-based

Strumenti per l automazione del testing di applicazioni web Javascript-based tesi di laurea Strumenti per l automazione del testing di applicazioni web Javascript-based Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana 1 candidato Salvatore Agnello Matr. 41/2612

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare

Dettagli

e applicazioni al dominio del Contact Management Andrea Brunello Università degli Studi di Udine

e applicazioni al dominio del Contact Management Andrea Brunello Università degli Studi di Udine e applicazioni al dominio del Contact Management Parte V: combinazione di Università degli Studi di Udine In collaborazione con dott. Enrico Marzano, CIO Gap srl progetto Active Contact System 1/10 Contenuti

Dettagli

Verifica e Validazione del Software

Verifica e Validazione del Software Verifica e Validazione del Software Testing Black Box Ingegneria del Software 2 Testing Black Box 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato sui processi)

Dettagli

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software Sommario Introduzione Leggere Cap. 1 Ghezzi et al. Definizione Nascita dell ingegneria del software Ruolo Relazione con altre discipline Introduzione 2 Il software Il software e` definito come: i programmi,

Dettagli

Verifica e Validazione del Software

Verifica e Validazione del Software Verifica e Validazione del Software Testing Object Oriented Ingegneria del Software 2 Testing Object Oriented 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato

Dettagli

Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi provenienti da sensori

Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi provenienti da sensori tesi di laurea Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi Anno Accademico 2011/2012 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Domenico Amalfitano

Dettagli

Ingegneria del Software II. Proposte di progetto d esame. a.a. 2016/17

Ingegneria del Software II. Proposte di progetto d esame. a.a. 2016/17 Ingegneria del Software II Proposte di progetto d esame a.a. 2016/17 1 1- Studio di algoritmi e strumenti a supporto del testing combinatoriale A partire anche dalle risorse messe a disposizione dal NIST,

Dettagli

Certificazione e.toscana Compliance. Applicativi di Sistemi Informativi degli Enti Locali (SIL)

Certificazione e.toscana Compliance. Applicativi di Sistemi Informativi degli Enti Locali (SIL) Pagina 1 di Applicativi di Sistemi Informativi degli Enti Locali (SIL) Pagina 2 Dati Identificativi dell Applicativo Nome DOCPRO Versione 6.0 Data Ultimo Rilascio 15.06.2007 Documentazione Versione Data

Dettagli

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML

LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML Istituto di Scienza e Tecnologie dell'informazione A. Faedo Software Engineering and Dependable Computing Laboratory LEZIONE 2 I LINGUAGGI DI MODELLAZIONE && UML Laboratorio di Ingegneria del Software

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring

Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi

Dettagli

PROGETTO TG Situazione iniziale e obiettivi:

PROGETTO TG Situazione iniziale e obiettivi: LOGISTICO PRODUTTIVO PROGETTO TG Situazione iniziale e obiettivi: OBIETTIVO: introdurre un processo di generazione automatica dei DATI (disegni) e METADATI (parametri) di progettazione, collegato ai sistemi

Dettagli

Principi di Progettazione del Software a.a " Introduzione al corso! Prof. Luca Mainetti! Università del Salento!

Principi di Progettazione del Software a.a  Introduzione al corso! Prof. Luca Mainetti! Università del Salento! Principi di Progettazione del Software a.a. 2015-2016" Introduzione al corso! Prof. Luca Mainetti! Università del Salento! Il GSA Lab (www.gsalab.unisalento.it)" Laboratorio di ricerca in ingegneria del

Dettagli

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Il GSA Lab (www.gsalab.unisalento.it) Laboratorio di ricerca in ingegneria del software e sistemi interattivi La mission

Dettagli

Software solido e usabile: come integrare ingegneria dell usabilità e del software

Software solido e usabile: come integrare ingegneria dell usabilità e del software Software solido e usabile: come integrare ingegneria dell usabilità e del software Giorgio Brajnik e Andrea Baruzzo Dip. di Matematica e Informatica Università di Udine e Interaction Design Solutions srl

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Analisi statica. Analisi Statica 1

Analisi statica. Analisi Statica 1 Analisi statica Analisi Statica 1 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

Dettagli

MODELLO e RAPPRESENTAZIONE

MODELLO e RAPPRESENTAZIONE MODELLO e RAPPRESENTAZIONE I calcolatori elaborano informazione e restituiscono nuova informazione: questa deve essere rappresentata in forma simbolica Esempio : Per poter gestire una biblioteca dobbiamo

Dettagli

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento Principi di Progettazione del Software a.a. 2017-2018 Prof. Università del Salento Il GSA Lab (www.gsalab.unisalento.it) Laboratorio di ricerca in ingegneria del software e sistemi interattivi La mission

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico NetBeans Dott. Ing. Rossella Rubino rossella.rubino@unibo.it A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico Software necessario J2SE(TM) Development Kit (JDK) http://java.sun.com/javase/downloads/index.jsp

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

Microsoft Visio 2002 UML Sergio Colosio

Microsoft Visio 2002 UML Sergio Colosio Microsoft Visio 2002 UML Sergio Colosio Casi d uso Prima di definire un caso d uso è necessario definire cosa s intende per scenario. Uno scenario è una sequenza di passi che descrivono l interazione tra

Dettagli

Materiale didattico. Sommario

Materiale didattico. Sommario Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli

Dettagli

R. Orsini - A. Roncato - F. Dalla Libera

R. Orsini - A. Roncato - F. Dalla Libera Interfacce per basi di dati e integrazione di sistemi informativi R. Orsini - A. Roncato - F. Dalla Libera Workshop del Dipartimento di Informatica 2 Marzo 2006 Aree e progetti Progetto Rewerse: Query

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Corso di Laurea Ingegneria Informatica

Corso di Laurea Ingegneria Informatica Corso di Laurea Ingegneria Informatica Presentazione del corso di Fondamenti di Informatica 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Presentazione Corso 1 Contenuti Corso di

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Integrazione tra simulazione numerica e dati reali in procedure automatiche di collaudo

Integrazione tra simulazione numerica e dati reali in procedure automatiche di collaudo Integrazione tra simulazione numerica e dati reali in procedure automatiche di collaudo Multisim Connectivity Toolkit Studente: Moreno Favaro mtr:545282 Relatore: Ch.mo prof. A. Sona Università degli studi

Dettagli

IC Test & Design for Testability

IC Test & Design for Testability IC Test & Design for Testability Collaudo (testing) dei sistemi digitali Realizzazione di sistemi digitali (VLSI) Collaudo e verifica Collaudo ideale e collaudo reale Costo del collaudo Ruolo del collaudo

Dettagli

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio Sommario Esercitazione 05 Angelo Di Iorio Packet Filtering ICMP Descrizione esercitazione Applicazioni utili: Firewall: wipfw - netfilter Packet sniffer: wireshark ALMA MATER STUDIORUM UNIVERSITA DI BOLOGNA

Dettagli

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

Dettagli

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Dettagli

3. Ciclo di Vita e Processi di Sviluppo

3. Ciclo di Vita e Processi di Sviluppo 3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di

Dettagli

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano

Dettagli

OPK Suite. Menci Software. Caratteristiche generali. febbraio 2015

OPK Suite. Menci Software. Caratteristiche generali. febbraio 2015 Menci Software OPK Suite febbraio 2015 La suite OPK è un set di software per GIS e cartografia aerea dedicati al processamento di immagini large format acquisite con camere aeree o satelliti. OPK garantisce

Dettagli

ISTRUZIONI PROGETTO FASE 4

ISTRUZIONI PROGETTO FASE 4 ISTRUZIONI PROGETTO FASE 4 Data consegna: tre giorni (72 ore) prima della verbalizzazione Questo documento contiene le istruzione per l esecuzione della fase 4 del progetto. Per informazioni o domande

Dettagli

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

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

Dettagli

14. Verifica e Validazione

14. Verifica e Validazione 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dell utente? Introdurremo i concetti di verifica e validazione Descriveremo le fasi del processo di testing Parleremo

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Installazioni preliminari

Installazioni preliminari Installazioni preliminari È uscita la versione 6u23 dell SDK. Disponibile a: http://www.java.com/en/download/index.jsp Per installare Eclipse invece andare su: http://www.eclipse.org Stile Sono elementi

Dettagli

Parte Teorica 1 compitino di Linguaggi per la Sicurezza Ipotesi di Domande

Parte Teorica 1 compitino di Linguaggi per la Sicurezza Ipotesi di Domande Parte Teorica 1 compitino di Linguaggi per la Sicurezza Ipotesi di Domande versione 1.1 1) A cosa servono i tipi nei linguaggi di programmazione? In primo luogo servono per organizzare; cioè attribuire

Dettagli

Prova Finale. Algoritmi e Strutture Dati 2016 / 2017

Prova Finale. Algoritmi e Strutture Dati 2016 / 2017 Prova Finale Algoritmi e Strutture Dati 2016 / 2017 Agenda 1. Informazioni pratiche sui tutorati 2. Struttura della prova e valutazione 3. Consigli pratici 4. Demo del tool di valutazione 5. Analisi delle

Dettagli

Correzione degli errori

Correzione degli errori Prove di convalida Iniziano al termine del collaudo di integrazione A questo punto la distinzione fra software convenzionale ed orientato agli oggetti sparisce in quanto il collaudo si concentra sulle

Dettagli

La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013

La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013 La Raccolta dei Requisiti Corso di Ingegneria del Software Anno Accademico 2012/2013 Introduzione La raccolta dei requisiti è il processo della determinazione in forma testuale (anche grafica) di che cosa

Dettagli

Il disegno nel ciclo di vita del prodotto

Il disegno nel ciclo di vita del prodotto Il disegno nel ciclo di vita del prodotto MERCATO INPUT Bisogni PROCESSO DI DI TRASFORMAZIONE Idea Progetto Produzione MERCATO OUTPUT Clienti Figura 1, pag. 19 Pianificazione Organizzazione CONTROLLO MANAGEMENT

Dettagli

Ing. Vincenzo Falanga

Ing. Vincenzo Falanga Ing. Vincenzo Falanga GoockinG Sommario GoockinG... 2 Indice delle figure... 4 Cos è!... 5 Installazione... 6 Installazione su dispositivi mobili (Tablet, smartphone, )... 6 Installazione su Pc... 6 Avvio

Dettagli

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni IIndice Capitolo 1 Da dove partiamo: pagine web statiche 1 1.1 Principi di base.............................. 1 1.1.1 Il paradigma client-server.................... 1 1.1.2 Ipertesto, multimedia, ipermedia................

Dettagli

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

LEZIONE 4. Hardware (periferiche) Software (algoritmi) LEZIONE 4 Hardware (periferiche) Software (algoritmi) Prof. Valle Prof. Folgieri Lez4 Hardware e Software 1 PERIFERICHE DI INPUT E DI OUTPUT Periferiche di INPUT: Tastiera Mouse Trackball, touch pad, joystick

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Esercitazione 05. Prima di iniziare. Packet Filtering [ ICMP ] Sommario. Angelo Di Iorio (Paolo Marinelli)

Esercitazione 05. Prima di iniziare. Packet Filtering [ ICMP ] Sommario. Angelo Di Iorio (Paolo Marinelli) Prima di iniziare L ultima lezione (lunedì 7/12) sarà dedicata alla correzione dei quiz e discussione di eventuali dubbi e chiarimenti Esercitazione 05 Termine di consegna dei report: 8 Gennaio 2010, ore

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

Dettagli

WP5. 9 Settembre Paolo Veronesi (INFN CNAF)

WP5. 9 Settembre Paolo Veronesi (INFN CNAF) WP5 9 Settembre 2014 Paolo Veronesi (INFN CNAF) Sommario OpenStack e AAI INFN, l esperienza di Padova Come creare immagini per OpenStack (e non solo) Pianificare incontro con sviluppatori 2 OpenStack e

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Dettagli

Realizzazione di strumenti per il testing di accessibilità di applicazioni web

Realizzazione di strumenti per il testing di accessibilità di applicazioni web tesi di laurea Realizzazione di strumenti per il testing di accessibilità di applicazioni web Anno Accademico 29 21 relatore Ch.mo prof. Porfirio Tramontana candidato Giuseppe Antonio Russo Matr. 534118

Dettagli

MASTER Orbit4BC TOOL PER IL BUSINESS CONTINUITY MANAGEMENT

MASTER Orbit4BC TOOL PER IL BUSINESS CONTINUITY MANAGEMENT MASTER Orbit4BC TOOL PER IL BUSINESS CONTINUITY MANAGEMENT MODULO 1 Fondamenti di Business Continuity Management Scopo e obiettivi del Business Continuity Management (BCM) Introduzione al Business Continuity

Dettagli

I Esercitazione: Istallazione Sistema Operativo

I Esercitazione: Istallazione Sistema Operativo Corso di Calcolo Numerico 1 DIMA, Sapienza University of Rome, Italy March 2, 2014 Cos'è Ubuntu? Ubuntu è un Sistema Operativo Free e Open Source: 1 libertà di utilizzo del proprio software per qualunque

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato 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

Fasi di un Compilatore

Fasi di un Compilatore Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore

Dettagli