Refactoring e Test GBerio. Migliorare la codifica: il refactoring Metodo strutturato e disciplinato per riscrivere o modificare il codice prodotto Tali.

Slides:



Advertisements
Presentazioni simili
Sperimentazioni di Ingegneria del Software
Advertisements

Linguaggi algoritmici
Unified Modeling Language
Recupero debito quarto anno Primo incontro Esercizi
1 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
Introduzione ai Sistemi Operativi
Processo software il processo.
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Sistemi e Tecnologie della Comunicazione
Per crittografia si intende la protezione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
La gestione della marca
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Testing e Debugging.
Ripresa di concetti Negli anni 90 la necessità di risanamento della finanza pubblica impone il distaccamento della gestione del servizio dalla pubblica.
CONCETTO DI FUNZIONE Una funzione f da X in Y consiste in:
Ciclo di vita del software
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Introduzione alla modellazione di sistemi interattivi
INDEX. HOME PAGE La pagina è composta da una banda in alto (titolo del sito, orologio digitale, stato aggiornamenti e punto in cui ci si trova) e da 3.
Scritture Segrete Lezione n. 2
Gestione degli errori, delegates,eventi 1. Eccezione – Situazione anomala che potrebbe avvenire durante lesecuzione del programma – try{…}catch(…){…}finally{…}
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
File ad accesso casuale o random
TRASDUTTORI E SENSORI.
Introduzione alla programmazione Object Oriented
Posteitaliane CAMPAGNA COMMERCIALE PRODOTTI FINANZIAMENTO (2 MAGGIO – 30 GIUGNO 2011) MODALITÀ E CONDIZIONI OPERATIVE.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 1 - Cicli di vita Ernesto Damiani Università degli Studi di Milano.
Ingegneria del software Modulo 4 -Processi software Unità didattica 2 -eXtreme Programming Ernesto Damiani Università degli Studi di Milano Lezione 2 –
Ingegneria del software Modulo 4 -Processi software Unità didattica 2 -eXtreme Programming Ernesto Damiani Università degli Studi di Milano Lezione 3 –
Il Personale Del Front-office
Esercitazioni di Ingegneria del Software con UML
Cammini minimi da un sorgente
Sessione live Testing. Esercizio Quesito 1 Soluzione 1.
Lezione 1 Panoramica sui paradigmi di programmazione
CORSO PER ALLENATORI DI PRIMO GRADO
Impostare i caratteri. Le prime versioni del linguaggio HTML così come le prime versioni dei browser consentivano unicamente la scelta tra due tipi di.
Diagramma delle Classi
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
1 L’attivo delle imprese di assicurazione Università di Macerata.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 1 -Cicli di vita Ernesto Damiani Università degli Studi di Milano Lezione.
Corso IS I /03 Esame Scritto - Parte generale 18 Febbraio 2003 Punteggio massimo totale punti 18; soglia superamento prova 10 Avvertenza Si vuole.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 5 -Test e verifica Ernesto Damiani Università degli Studi di Milano.
Ingegneria del software Modulo 4 -Processi software Unità didattica 1 -Rational Unified Process Ernesto Damiani Università degli Studi di Milano Lezione.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 1 -Cicli di vita Ernesto Damiani Università degli Studi di Milano Lezione.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 -I costi del software Ernesto Damiani Università degli Studi di Milano Lezione.
UNITA’ OPERATIVA DISI UNIVERSITA’ DI GENOVA Progetto MURST 5% Multimedialita’ Linea di ricerca 4 “Applicazione ai beni culturali”
Mercato Privati CAMPAGNA COMMERCIALE POSTELOFFICE CAMPAGNA COMMERCIALE POSTELOFFICE (2 – 31 MAGGIO 2011) Livello up retail con area impresa MODALITÀ E.
Mercato Privati CAMPAGNA COMMERCIALE POSTESHOP (1 ottobre - 30 novembre) CANALE FRONT END E CANALE UP Livello Filiale MODALITÀ E CONDIZIONI OPERATIVE.
Mercato Privati CAMPAGNA COMMERCIALE SIM POSTEMOBILE UP TRADIZIONALI CAMPAGNA COMMERCIALE SIM POSTEMOBILE UP TRADIZIONALI (1 GIUGNO - 31 LUGLIO)
Mercato Privati CAMPAGNA COMMERCIALE SIM POSTEMOBILE UP RETAIL CON AREA IMPRESE CAMPAGNA COMMERCIALE SIM POSTEMOBILE UP RETAIL CON AREA IMPRESE (1 GIUGNO.
1 Il regolamento di organizzazione A cura del dott. Arturo Bianco.
Progettazione concettuale Castagnozzi Savino Ciaramello Massimo Emiliano Galeazzi Federico Guerriero Lorenzo Macauda Giorgio.
NOTIFICHE  Notifich è una funzionalità interna al nostro sistema che permette di inviare brevi messaggi di notifiche agli utenti che porto.
UML Unified Modelling Language Linguaggio per la modellazione unificato.
LE FRODI ALIMENTARI.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Come fare una presentazione =). Semplici regole… 1.Essere chiari 2.Essere diretti 3.Essere brevi 4.Essere chiari… ;-)
Transcript della presentazione:

Refactoring e Test GBerio

Migliorare la codifica: il refactoring Metodo strutturato e disciplinato per riscrivere o modificare il codice prodotto Tali riscritture o modifiche devono avvenire nell’ipotesi di non alterare il comportamento del codice Il refactoring può essere combinato, in modo sistematico, con il test di regressione

Esempio di refactoring Extract methodTrasforma un metodo lungo in uno equivalente più breve estraendo una parte ed inglobandola in un metodo privato

Test

Obiettivi del test e UP In generale: “trovare i difetti” UP: test unità e codifica insieme cioè definiti i casi test d’unità (cioè di classi) si implementa il codice su cui eseguire i casi, quindi si eseguono i casi (TDD, Test Driven Development) Si passa quindi a test d’integrazione usando un concetti simile a quelli introdotti con i moduli (ad esempio, le dipendenze date dalle associazioni, con la navigabilità, nel diagramma delle classi indicano come fare un test d’integrazione “bottom-up”) Il TDD è quindi tipicamente black-box e si applica a metodi singoli (dotati di pre/post condizioni)ovvero a sequenze di metodi identificate attraverso diagrammi d’interazione Il test white box si può sempre applicare ai metodi, soprattutto singoli, ed al loro codice, in seguito

Test delle operazioni Per ogni operazione è possibile definire un test white box e/o black box Vi sono sequenze di operazioni (anche la medesima eseguita più volte) che devono eventualmente dare luogo ad alcune post-condizioni: –Casuali –Partizione degli attributi (coprire almeno una volta tutti gli attributi) –Collaborazioni (coprire almeno un volta tutti i cammini della collaborazione) –Statechart (coprire almeno una volta ogni stato)

Associazioni come Dipendenze