Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)
|
|
- Alberto Venturini
- 6 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale M-Z A.A USO DEL FRAMEWORK JUNIT PER IL TEST DI UNITÀ A SCATOLA NERA Versione definitiva
2 Obiettivi dell esercitazione Mettere in pratica i concetti sul test a scatola nera. Usare uno strumento di test molto popolare nella comunità di sviluppo Java: Junit. Junit è un programma open source disponibile al sito junit.org. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
3 Passi principali 1. Descrizione funzionale di un programma. Progettazione dei casi di test secondo la metodologia a scatola nera. 2. Descrizione sintetica del framewok Junit. 3. Descrizione della metodologia d uso di Junit. 4. Applicazione della metodologia al problema scelto. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
4 Passo 1: descrizione del programma Un chiosco del Ministero del Welfare, dotato di tastiera alfanumerica e schermo, fornisce informazioni ai cittadini sulla data del loro pensionamento. Una funzionalità prevede che il cittadino inserisca da tastiera il suo anno di nascita e il suo anno di prima assunzione, e stampa su schermo l anno in cui può andare in pensione. Si assume che il cittadino abbia lavorato in maniera continuativa dopo la prima assunzione. Progettare, secondo le tecniche a scatola nera, casi di test per la funzionalità in questione tenendo conto che, secondo le specifiche: non si può essere assunti prima di avere compiuto i quindici anni, si può andare in pensione dopo 35 anni di lavoro o dopo il compimento dei 60 anni. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
5 Passo 1: progettazione dei casi di test Questo programma è stato già analizzato in una precedente esercitazione. Le classi di equivalenza progettate, con i relativi casi di test e output previsto, sono riportate nella seguente tabella. caso di test classi coperte output previsto caso input T Cv1, Cv T Cnv2 errore di formato T Cnv3 errore di formato T4 Abc 2000 Cnv4 errore di formato T Abc Cnv5 errore di formato T Cnv7 data assunzione non valida T Cv T Cv T Cnv7 data assunzione non valida T Cnv7 data assunzione non valida T Cv1, Cv T Cv1, Cv T Cv1, Cv T Cv1, Cv T Cv1, Cv T Cv1, Cv Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
6 Passo 2: Extreme testing (XT) Alcuni modelli per il ciclo di vita del software, ad esempio extreme programming (XP), si basano fortemente sul test di unità e di accettazione di moduli. In generale viene richiesto di eseguire il test di unità per qualsiasi variazione del codice, indipendentemente dall entità, per essere sempre sicuri dell aderenza del codice alle specifiche. In XP, il test riveste un importanza così grande che il processo richiede di creare il test di unità (o modulo) e di accettazione prima di scrivere il codice del modulo stesso: uno degli slogan di XP è code the unit test first. Questa forma di test viene a volte chiamata extreme testing (XT). Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
7 Passo 2: Il framework Junit Junit è un programma Java open source che facilita la scrittura di test di unità scritte in Java. Le caratteristiche interessanti di Junit comprendono: la possibilità di rappresentare esplicitamente casi di test per classi valide e non, e i relativi output previsti; la robustezza per valori di input (tipicamente relativi a classi non valide) che generano eccezioni; la generazione automatica di un rapporto riassuntivo del test. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
8 Passo 2: Aspetti generali di Junit Junit è un framework, ossia un componente software articolato in varie classi e che deve essere usato secondo regole precise, composto da vari package. In questa esercitazione prederemo in considerazione solamente alcuni package e classi, rimandando la descrizione generale alla documentazione disponibile al sito junit.org. Faremo riferimento alla versione di Junit. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
9 Passo 2: Junit: alcuni frammenti di API Classe/Interfaccia Funzione Commento package junit.framework; public interface Test public class Assert static public void Fails a test with fail(string message) the given message static public void assertequals Asserts that two (int expected, int actual) ints are equal static public void assertequals Asserts that two (String expected, String actual) Strings are equal public abstract class TestCase extends Assert implements Test public class TestSuite public TestSuite Constructs a TestSuite implements Test (final Class theclass) from the given class. Adds all the methods starting with test as test cases to the suite package junit.textui; public class TestRunner static public TestResult Runs a single test extends BaseTestRunner run(test test) and collects its results Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
10 Passo 3: Metodologia suggerita per l uso di Junit Dobbiamo prevedere i seguenti aspetti: le assunzioni sul programma da testare; la scrittura del programma driver. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
11 Passo 3: assunzioni sul programma da testare Come abbiamo visto, non è necessario avere il programma da testare per poter scrivere il codice del test. È tuttavia indispensabile avere la API di tale programma. Nel seguito assumeremo di considerare solamente applicazioni che: abbiano un interfaccia a linea di comando; rendano disponibili almeno due funzioni: una (CA()), per il controllo degli argomenti, con parametri String [] args; tale funzione deve lanciare un eccezione se gli argomenti non sono validi; una (FR()), che fornisca la funzionalità richiesta dall applicazione. Ovviamente, il programma potrebbe avere altre funzioni (tipicamente, avrà un main()). Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
12 Passo 3: Progettazione del driver Dobbiamo scrivere una classe, derivata da TestCase, che abbia le seguenti funzioni: una sola per tutte le classi valide; tale funzione deve effettuare una chiamata alla funzione Assert.assertEquals() per ogni caso di test, passando come argomenti: il valore restituito da FR(), per il relativo caso di test, il valore previsto per il relativo caso di test; una per ogni classe non valida; tale funzione deve effettuare una chiamata alla funzione (CA()), seguita da una chiamata alla funzione Assert.fail(). Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
13 Passo 4: API del programma da testare public class ChioscoWelfare { public static int datapensionamento(int nascita, int prima_assunzione) public static void controllaargomenti(string [] args) throws Exception public static void main (String [] args) Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
14 Passo 4: Codice sorgente del driver // File DriverChioscoWelfare.java import junit.framework.*; public class DriverChioscoWelfare extends TestCase { public static void main(string[] args) { System.out.println("Inizio dei test..."); junit.textui.testrunner.run(suite()); System.out.println("Test completato"); // Casi di test: 1,7,8,11,12,13,14,15,16 public void testclassivalide() { assertequals(chioscowelfare.datapensionamento(1950,1968),2003); assertequals(chioscowelfare.datapensionamento(1950,1965),2000); assertequals(chioscowelfare.datapensionamento(1950,1966),2001); assertequals(chioscowelfare.datapensionamento(1950,1974),2009); assertequals(chioscowelfare.datapensionamento(1950,1975),2010); assertequals(chioscowelfare.datapensionamento(1950,1976),2010); assertequals(chioscowelfare.datapensionamento(1950,2009),2010); assertequals(chioscowelfare.datapensionamento(1950,2010),2010); assertequals(chioscowelfare.datapensionamento(1950,2011),2010); // Caso di test: 2 Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
15 public void testcnv2() { try { String [] args= new String[1]; args[0] = "1950"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) { // Caso di test: 3 public void testcnv3() { try { String [] args= new String[3]; args[0] = "1950"; args[1] = "1965"; args[2] = "1965"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) { // Caso di test: 4 public void testcnv4() { try { String [] args= new String[2]; args[0] = "Abc";
16 args[1] = "2000"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) { // Caso di test: 5 public void testcnv5() { try { String [] args= new String[2]; args[0] = "1950"; args[1] = "Abc"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) { // Caso di test: 6 public void testcnv7() { try { String [] args= new String[2]; args[0] = "1950"; args[1] = "1961"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) {
17 // Caso di test: 9 public void testcnv7_a() { try { String [] args= new String[2]; args[0]="1950"; args[1]="1964"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) { // Caso di test: 10 public void testcnv7_b() { try { String [] args= new String[2]; args[0]="1950"; args[1]="1963"; ChioscoWelfare.controllaArgomenti(args); fail("dovrebbe lanciare un eccezione."); catch (Exception successo) { public static Test suite() { TestSuite suite = new TestSuite(DriverChioscoWelfare.class);
18 return suite;
19 Passo 4: Esecuzione del test Il test viene eseguito digitando da linea di comando i seguenti comandi: > javac DriverChioscoWelfare.java > java DriverChioscoWelfare Inizio dei test....f... Time: 0,015 There was 1 failure: 1) testclassivalide(driverchioscowelfare)junit.framework.assertionfailederror: expected:<2010> but was:<2003> at DriverChioscoWelfare.testClassiValide(DriverChioscoWelfare.java:14) at sun.reflect.nativemethodaccessorimpl.invoke0(native Method) at sun.reflect.nativemethodaccessorimpl.invoke(unknown Source) at sun.reflect.delegatingmethodaccessorimpl.invoke(unknown Source) at DriverChioscoWelfare.main(DriverChioscoWelfare.java:8) FAILURES!!! Tests run: 8, Failures: 1, Errors: 0 Test completato Il test ha evidenziato un malfunzionamento, relativo al caso di test 1. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
20 Passo 4: Codice sorgente del programma da testare Questo codice viene riportato per completezza. // File ChioscoWelfare.java public class ChioscoWelfare { static int input1, input2; // servono per immagazzinare l input public static int datapensionamento(int nascita, int prima_assunzione) { if (prima_assunzione - nascita <= 25) return nascita + 60; else return prima_assunzione + 35; public static void controllaargomenti(string [] args) throws Exception { if (args.length!= 2) throw new Exception(); else { Integer nascita = Integer.valueOf(args[0]), prima_assunzione = Integer.valueOf(args[1]); input1 = nascita.intvalue(); input2 = prima_assunzione.intvalue(); if (input2 - input1 <= 15) Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
21 throw new Exception(); public static void main (String [] args) { try { controllaargomenti(args); catch (Exception e) { System.out.println("Comando errato: digitare"); System.out.println(" java ChioscoWelfare n a"); System.out.println("con: n anno di nascita"); System.out.println(" System.out.println(" a - n >= 15"); System.exit(1); a anno di prima assunzione"); System.out.println("E possibile andare in pensione nell anno " + datapensionamento(input1,input2));
22 Esercizi 1. Localizzare e correggere l errore determinato dal test. 2. Considerare l esercitazione sul test a scatola nera e applicare la metodologia proposta ai relativi programmi. Ing. del SW: Esercitazione test scatola nera in Junit. Marco Cadoli. Univ. La Sapienza. A.A
Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)
Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale M-Z A.A. 2005-06 ESERCITAZIONE SUL TEST
DettagliProgrammazione ad Oggetti. Programmazione ad Oggetti. JUnit è un ambiente di test per programmi Java. Sviluppato da Kent Beck
Test con Junit V 1.2 Marco Torchiano 2005 Test con JUnit JUnit è un ambiente di test per programmi Java Sviluppato da Kent Beck E un framework che offre tutte le funzionalità utili per il test E integrato
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliRETI DI CALCOLATORI Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione
DettagliFONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client
DettagliEccezioni. Comportamento di default (esempio) Propagazione delle eccezioni
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di
DettagliGestione delle eccezioni
Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito
DettagliPolimorfismo parametrico vs polimorfismo per inclusione
Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.)
SAPIENZA Università di Roma Facoltà di Ingegneria Sede di Latina Corso di Laurea in Ingegneria Informatica e dell Informazione Requisiti Corso di PROGETTAZIONE DEL SOFTWARE Prof. Domenico Lembo A.A. 2008-09
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliUguaglianza e copia di oggetti
Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La
DettagliProgrammazione con Java
Programmazione con Java con Eclipse Introduzione Sviluppare software è un attività umana e quindi possibilmente soggetta ad errori Tipi di errori Failure (malfunzionamento) il programma non funziona il
DettagliCorso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
DettagliIl Perché del Testing
Introduzione al Testing e al Test Driven-Development 1 Il Perché del Testing I programmi sono descrizioni statiche a cui possono corrispondere molteplici esecuzioni dinamiche I compilatori moderni sono
DettagliServer Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione
Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client
Dettagli7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:
7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)
Dettagli24 - Possibili approfondimenti
24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliOCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
DettagliProva d Esame Compito A
Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando
DettagliProgettazione del Software
Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016
DettagliClassi Wrapper. int Integer float Float char Char byte Byte double Double. classe "wrapper"
1 Classi Wrapper classe "wrapper" int Integer float Float char Char byte Byte double Double Generano oggetti che hanno come variabile di istanza un tipo di dato primitivo con nome uguale Integer int Float
DettagliLa fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo & Monica Scannapieco Anno Accademico 2003/04 LA FASE DI PROGETTO E
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliCompute engine generici in RMI
Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del
DettagliOOP: L13: Eccezioni e loro trattamento in Java
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica A. Acc. 2005/2006 Programmazione Orientata agli Oggetti OOP: L13: Eccezioni e loro trattamento
DettagliEsempio: Interfacce. Gioco Interfacce
Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita
DettagliEsempio: Interfacce. Gioco Interfacce
Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica
DettagliLaboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
ed ed Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario ed scrittura su in Java ed ed di testo Scrivere stringhe su di testo
DettagliTest 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
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corso di Laurea in Ingegneria Informatica ed Automatica Corso
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliLinguaggi di programmazione II AA 2010/2011 Esercitazione 2
Linguaggi di programmazione II AA 2010/2011 Esercitazione 2 1) Scrivere l'output del seguente programma Java public class Bean private String str; Bean(String str ) this.str = str; public String tostring()
DettagliEsempi in Java di program.ne O-O
Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico
DettagliRTTI Run-time type identification
RTTI Run-time type identification Come determinare il tipo di un oggetto durante l'esecuzione RTTI 1 Ereditarietà Forma Linea Rettangolo Cerchio interface Forma { class Linea implements Forma { void ;
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
DettagliAlberi Binario in Java
Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un
DettagliProgrammazione 2 - Marco Ronchetti. Fondamenti di Java. Fac.Scienze Università di Trento. Static
1 Fondamenti di Java Static 2 Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola variabile condivisa
DettagliLe basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
DettagliCorso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione
Domanda n. 1 Corso: Fondamenti di Informatica (Canale 5) a.a. 2016-17 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab10 Argomento: Algoritmi e complessita'
DettagliEsercizio monitor. Sistemi Operativi T 1
Esercizio monitor Si consideri un piccolo Aereoporto, nel quale sia presente una sola pista, utilizzata sia per i decolli che per gli atterraggi. La pista puo` anche essere percorsa da mezzi di servizio:
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliEccezioni. Corso di Tecniche di Programmazione
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Eccezioni Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e
DettagliIntroduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
DettagliJava, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
DettagliProgrammazione ad Oggetti. Java Parte II
Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una
DettagliUniversità degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B. Esercitazioni 7 e 8
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 7 e 8 Bounded Buffer con sincronizzazione Java (1) public class BoundedBuffer private
DettagliMultithreading in Java I parte. Lorenzo Gallucci
Multithreading in Java I parte Lorenzo Gallucci Java: un linguaggio ed un sistema predisposti per il multitasking È possibile creare e gestire Thread nativamente (senza dover ricorrere a librerie esterne)
DettagliEccezioni ed asserzioni
Eccezioni ed asserzioni I concetti relativi ad eccezioni, errori ed asserzioni e le relative gestioni, permettono allo sviluppatore di scrivere del software robusto, ovvero che riesca a funzionare correttamente,
DettagliLaboratorio di reti I
Laboratorio di reti I Stefano Brocchi brocchi@dsi.unifi.it 13 ottobre, 2009 Stefano Brocchi Laboratorio di reti I 13 ottobre, 2009 1 / 27 Introduzione Obiettivi del corso Aspetti di programmazione Java
DettagliCompute engine generici in RMI
Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del
DettagliEsercitazione 15. Il problema dello Sleeping Barber
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
DettagliConcetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla
DettagliModulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti
DettagliEsempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo
Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il
DettagliReflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliMain System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
Dettagli56789:;<( !"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$( .()"+)&%/&+%0,%/+"1+,22,3("'&% 425(&'6&%7(%)8(09//"%:;!<=>%?&)@"'&%7&00&%&AA&3("'(%
!"#$%&'%()$(*+$,-../(0!+!( %( %11%2$/&$(!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 56789:;
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliJUNIT. Angelo Gargantini Info 3 B 2011
JUNIT Angelo Gargantini Info 3 B 2011 Unit testing alla XP JUnit è un framework per l automazione del testing di unità di programmi Java che si ispira al extreme Programming Ogni test contiene le asserzioni
DettagliUniversità di Roma La Sapienza Facoltà di Ingegneria
Università di Roma La Sapienza Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Ing. Informatica) Prof. Marco Cadoli, Canale A-L, A.A. 2005-06 ESERCITAZIONE 1: INTRODUZIONE ALLA PROGETTAZIONE
DettagliOrganizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()
Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
DettagliProgrammazione, 5 a lezione
Programmazione, 5 a lezione Eugenio Omodeo Dipartimento di Matematica e Informatica, Università degli Studi di Trieste. Trieste, 12.10.2010 Esecuzione sequenziale I All avvio di un programma, il processo
DettagliAlbero Binario GT 7.3. interfacce di Positio<E>, Tree<E>, e BinaryTree<E>; il file TestLinkedBinaryTree.java
Laboratorio Java Albero Binario GT 7.3 Esercitazione Sono dati : interfacce di Positio, Tree, e BinaryTree; il file TestLinkedBinaryTree.java e i file.class che implementano le interfacce www.dei.unipd.it/corsi/fi2ae
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore
DettagliCorso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni
DettagliIl linguaggio Java. Le eccezioni
Il linguaggio Java Le eccezioni Shit happens! Gli errori nei programmi si verificano Quello che è realmente importante è: cosa succede dopo che un errore si è verificato? TIGA 2 Eccezione Un'eccezione
DettagliVerifica 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
DettagliCorso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: JUnit versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.
DettagliRiferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)
Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Riferimenti ad oggetti: Cosa si può fare con i riferimenti?
DettagliCifratura simmetrica
Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliNetBeans. 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
DettagliIntroduzione a Java. Riferimenti
Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia
DettagliRicerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5
Ricerca e ordinamento su array di oggetti Corso di Programmazione 2 Esercitazione 5 Sommario Ricercare in array di oggetti Interfaccia comparable Ordinare array di oggetti Problema Come ordinare, ricercare
DettagliJava thread, concorrenza
Java thread, concorrenza laboratorio 1 A.Memo febbraio 2004 il thread principale in Java ogni programma in esecuzione è un thread il metodo main() è associato al main thread per poter accedere alle proprietà
DettagliLaboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una
DettagliSAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria
Dettaglipublic class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.
javac Hello.java javac.exe javac.exe java Hello Hello, World! java.exe java.exe console public HelloWorld InsiemeDiCaratteri ContoPersonalizzato HelloworldHelloWorld HelloWorld class classpublic public
DettagliEccezioni Precisazioni e approfondimenti
Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di
DettagliIndice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma
Indice Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java Introduzione all ambiente di sviluppo - Compilazione ed esecuzione di un programma - Compilazione ed esecuzione
DettagliStudente (Cognome Nome):
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Terzo Scritto 7 Febbraio 2006 Si noti che le soluzioni ai quesiti saranno considerate valide
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliProgrammazione orientata agli oggetti La classe Object, metodi e classi final, this. Object
Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza
DettagliSTRUTTURE DATI: OLTRE GLI ARRAY LISTE
STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Uso dell ambiente di sviluppo Eclipse API di Java Istruzione di scrittura Istruzione di lettura 16/01/2013 2 Installazione di
DettagliUnit Tes)ng: JUnit (xunit) basics. Angelo Di Iorio
Unit Tes)ng: JUnit (xunit) basics Angelo Di Iorio Tipi di test Esistono diversi )pi di test che perme?ono di verificare i requisi) funzionali di un sistema, a diversi livelli di granularità: Unit Tes)ng:
Dettagli