Capitolo 13 Verifica e debug Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004 - The McGraw-Hill.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Calcolo del minimo comune multiplo (m.c.m.) Luigi Sante
I linguaggi di programmazione
K. A. Merchant A.Riccaboni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 2 – Gli strumenti dell’analisi positiva
Matematica I: Calcolo differenziale, Algebra lineare, Probabilità e statistica Giovanni Naldi, Lorenzo Pareschi, Giacomo Aletti Copyright © The.
Iterazione Capitolo 17 febbraio 2004 Iterazione.
Array di array Capitolo 20 febbraio 2004 Array di array.
Istruzioni condizionali e blocco
Marketing Comportamento del consumatore.
Psicopatologia dello sviluppo – Storie di bambini e psicoterapia 2/ed Fabio Celi, Daniela Fontana Copyright © 2010 – The McGraw-Hill Companies srl MAPPE.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
Capitolo 1 Introduzione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Metodologie di Programmazione = decomposizione basata su astrazioni
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema della ricerca Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Testing e Debugging.
1Milano, 3 Novembre 2004Assemblea Nazionale FISM WORKSHOP La certificazione dei requisiti di qualità per le Società Medico-Scientifiche Presentazione del.
Capitolo 1: Introduzione ai computer e a Java
Strutture di controllo in C -- Flow Chart --
Introduzione alla Ricorsione
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Astrazione procedurale ed eccezioni
IL PROGETTO BCNL LA SCUOLA PATTO PER IL LAVORO. IL TUTOR.
Programmazione e controllo
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Tecnologie dell'informazione e della comunicazione - Stacey S. Sawyer, Brian K. Williams Copyright © The McGraw-Hill Companies srl “Le sfide dell’era.
Psicologia come scienza:
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Capitolo 9 Union-find Algoritmi e Strutture Dati.
Capitolo 1 Un’introduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
1 Copyright © 2010 – The McGraw-Hill Companies srl Capitolo 3 Il sistema di misurazione del costo pieno basato sulle attività Programmazione e controllo.
IL PROCESSO SOFTWARE EMERSO DALLA DOCUMENTAZIONE.
Transcript della presentazione:

Capitolo 13 Verifica e debug Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Nozioni fondamentali sulla verifica Verifica durante lo sviluppo È più facile individuare i bug prima che dopo I prototipi aiutano a identificare prima i problemi Categorie di bug Arresti anomali del software o danneggiamento dei dati Incapacità di soddisfare le specifiche Prestazioni scarse o inaccettabili Difficoltà di utilizzo

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Nozioni fondamentali sulla verifica Impossibilità di verificare completamente un programma Tre percorsi distinti attraverso il programma Se il ciclo viene eseguito 20 volte, vi sono 3 20 sequenze di esecuzione diverse

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Revisioni e ispezioni Ispezioni Processo formale di revisione del codice Impiegato per la prima volta da IBM nel 1976 Il lavoro precedente ha mostrato che la progettazione e le ispezioni rimuovono il 60% dei bug in un prodotto

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Revisioni e ispezioni Ruoli dei partecipanti Moderatore Esegue l'ispezione Assicura che il processo continui Riferisce la discussione Assicura lo svolgimento delle azioni Ispettore Una persona diversa dall'autore Interesse nel codice Rivede attentamente il codice prima della riunione di ispezione Autore Ruolo minore Può rispondere a domande sul codice

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Revisioni e ispezioni Ruoli dei partecipanti Scrittore Registra tutti gli errori rilevati Tiene un elenco delle azioni

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Revisioni e ispezioni Processo di ispezione Pianificazione Scelta del codice da rivedere Assegnazione dei compiti da parte del moderatore Creazione degli elenchi di controllo Assegnazione di un presentatore da parte del moderatore (solitamente uno degli ispettori) Panoramica L'autore descrive gli aspetti di alto livello del progetto che influiscono sulla progettazione o sul codice A volte viene ignorata (se tutti i partecipanti conoscono già le questioni)

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Revisioni e ispezioni Processo di ispezione Preparazione Lavorando individualmente, ogni ispettore rivede il codice, annotando problemi e questioni Non deve richiedere più di un paio d'ore Riunione di ispezione Il presentatore guida nel codice I problemi vengono discussi Lo scrittore registra tutti gli errori e le azioni Gli errori non vengono risolti, per ora Rapporto di ispezione Il moderatore prepara un rapporto scritto

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Test della scatola nera e bianca Il test della scatola bianca indica che è possibile "vedere" o esaminare il codice durante lo sviluppo dei casi di verifica Il test della scatola nera indica che non è possibile esaminare il codice durante l'ideazione dei casi di verifica La vista del codice può influenzare i casi di verifica creati Obbliga i collaudatori a utilizzare le specifiche, piuttosto che il codice Tecniche complementari

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Test della scatola nera e bianca Condizioni di confine dei test public static int binarySearch(char[] data, char key) { int left = 0; int right = data.length - 1; while (left <= right) { int mid = (left + right)/2; if (data[mid] == key) { return mid; } else if (data[mid] < key) { left = mid + 1; } else { right = mid - 1; } return data.length; }

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Test della scatola nera e bianca Condizioni di confine // convalida l'input if ((year 12)) { System.output.println("Bad request: " + year + "" + month); return; }

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Test della scatola nera e bianca Suggerisce i seguenti test di confine Anno di input Mese di input

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Test della scatola nera e bianca Copertura o test del percorso: creare casi di verifica che provochino l'esecuzione di ogni confine del grafico relativo al flusso di controllo del programma Esempio if (x != y) { y = 5; } else { z = z - z; } if (x > 1) { z = z / x; } else { z = 0; } if (x != 3) y = 5z = z - x if (x != 3) y = 5

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Test della scatola nera e bianca Suggerimenti per la verifica Eseguire subito i test Utilizzare l'ispezione Verificare i confini Verificare le condizioni eccezionali Fare in modo che i test siano facilmente ripetibili

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Verifica dell'integrazione e del sistema La verifica dell'integrazione viene svolta durante l'assemblaggio di componenti o moduli. Tenta di garantire che le parti funzionino insieme correttamente Verifica le interfacce tra i moduli La verifica del sistema avviene quando l'intero sistema viene messo insieme

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Debug Utilizzare il metodo scientifico Raccogliere i dati Sviluppare un'ipotesi Eseguire esperimenti Predire nuovi fattori Eseguire esperimenti Provare o smentire le ipotesi

Java – Guida alla programmazione - James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl Debug Suggerimenti e tecniche Semplificare il problema Stabilizzare l'errore Individuare l'errore Spiegare il bug a qualcun altro Riconoscere i bug comuni Superamento dell'indice Dereferenziamento di null Ricompilare tutto Raccogliere ulteriori informazioni Prestare attenzione agli avvisi del compilatore Correggere i bug individuati Prendersi una pausa