Test e validazione 1 La fase di test 1.1 Tecniche Ispezione: checklist Test white box: grafo di controllo complessità ciclomatica

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Test e validazione 1 La fase di test 1.1 Tecniche Ispezione: checklist Test white box: grafo di controllo complessità ciclomatica"

Transcript

1 Test e validazione 1 La fase di test Il test è il processo di verifica di un programma con lo scopo di individuare errori prima della consegna all utente finale. Tipicamente, correggere i difetti sul software evidenziati dopo il rilascio è molto svantaggioso in termini d immagine e soprattutto economici Il software deve quindi essere testato e collaudato per la ricerca di errori commessi durante la fase di progetto e di realizzazione. Normalmente, secondo Glenford J. Myers, un programmatore più o meno esperto individua solo il 50% delle categorie di test necessarie. Questo dimostra che il test è tutt altro che banale e va affrontato in maniera sistematica, possibilmente automatizzato e soprattutto documentato. Lo scopo di questa fase, a cui si dedica a seconda delle risorse tra il 30% e il 40% della durata dell intero progetto (quasi la metà), è proprio quello di ridurre il numero di errore nel software a un livello accettabile; in questo aiuta l idea che un test fallisce quando non trova errori e che un programmatore non debba testare i propri moduli. L obiettivo di questo documento è quello di descrivere il piano di test del software adottato per il collaudo del sistema Monopoli definendo quali sono stati i moduli testati, le tecniche utilizzate e l analisi dei risultati ottenuti. 1.1 Tecniche Esistono varie tecniche per test del software, di queste alcune fanno uso di un calcolatore, altre tengono conto semplicemente di situazioni comuni che tendono a verificarsi di cui è utile tenerne conto per avere una prima scrematura dei difetti più evidenti. Queste sono le principali tecniche utilizzate in questo progetto: Ispezione: Questa tecnica viene tipicamente impiegata subito dopo la fine della codifica e va considerata preliminare al test automatizzato. Il programmatore, aiutandosi con una lista di errori ricorrenti (checklist), ispeziona il codice da testare alla ricerca soprattutto di: errori di calcolo, errori di confronto, errori di interfaccia...; per questo motivo si parla di test umano. Test white box: Il test white box (scatola bianca) è un test strutturale che si esegue guardando dentro il codice da testare, per questo può essere progettato soltanto quando il codice è disponibile. Un approccio topologico per il progetto di test a scatola bianca si basa sul grafo di controllo del programma composto da un nodo per ogni istruzione atomica ed un arco per ogni transizione. I casi di test vengono definiti da determinati cammini sul grafo seguendo il criterio di copertura di condizioni e decisioni che permette di ricavare il maggior numero di errori possibile. Il numero di cammini da cercare deve essere pari alla complessità ciclomatica, un valore ottenuto da: CC = Archi Nodi + 2

2 Una volta ricavati i cammini, è utile sapere se questi formano una base ovvero sono tra loro linearmente indipendenti. Questo si ottiene calcolando il rango della matrice di incidenza, in cui sono riportati, per ogni cammino, tutti gli archi ricoperti, e controllando che sia massimo. Test black box: Il test black box (scatola nera) è un test funzionale che testa la logica del programma, complementare al test white-box e assolutamente non alternativo. Il dominio di input e di output della funzione viene partizionato in classi di equivalenza: una serie di insiemi di dati che auspicabilmente provocano lo stesso comportamento, e possono essere valide o non valide. Le intersezioni tra le classi possono essere sfruttate tra classi valide e testarle con un solo input, mentre vanno evitate, ammesso che sia possibile (inclusione) per le classi non valide perché è importante sapere dove ricade l errore. I criteri da seguire per individuare le classi di equivalenza sono: intervalli di valori, numero di valori, insiemi di valori, condizioni vincolanti. Per la sua natura, questo tipo di test può e va progettato prima della codifica, appena i requisiti sono stabili, in modo da programmare sapendo quali difetti ci si aspetta che vengano trovati. Abbiamo deciso di non fare il test walkthrow onestamente per mancanza di tempo ma anche e soprattutto perché ci siamo accorti di avere affrontato (forse sbagliando) lo sviluppo dell applicazione in maniera abbastanza corale coinvolgendo tutti i membri in praticamente tutti i moduli del programma. Per questo sarebbe un po venuto meno lo scopo di questo lavoro basato proprio sul fatto che vada ispezionato codice altrui senza conoscerne la struttura e il contenuto. 1.2 Strategie Il principio di una buona strategia per il collaudo deve avere prove a basso livello per verificare che un piccolo segmento di codice sorgente sia stato realizzato in maniera corretta e prove ad alto livello capaci di assicurare che i requisiti utente siano stati soddisfatti a pieno. Le fasi seguite sono state rispettivamente: Revisione: La fase propedeutica al test intensivo è quella di revisionare il codice attraverso ispezione e test umano. La checklist che abbiamo utilizzato è la seguente: 1. Correttezza dei commenti 2. Errori di interfaccia tra pagine web e servlet, tra servlet e JSP 3. Errori di cast 4. Errori di interfaccia tra i moduli 5. Ridurre la ridondanza

3 Questo tipo di lavoro è stato svolto da ognuno di noi durante l implementazione su proprie porzioni di codice stabile. Test di unità: Il test di unità verifica ciascun modulo separatamente, assicurandone il corretto funzionamento come unità distinte. Si adatta bene ad un assemblaggio incrementale e fa largo uso delle tecniche white box e black box. Test di integrazione: Il test di integrazione si specializza sull interazione tra i moduli proprio perché molti errori si nascondono nel passaggio scorretto di parametri e nella errata interpretazione dei valori di ritorno. Per questo tipo di test è utile avere a disposizione l albero di chiamate delle funzioni e richiede che vengano progettati dei moduli aggiuntivi che simulano il calcolo sui valori di ritorno (stub) e il passaggio corretto di parametri (driver). Test di accettazione: Eseguito a valle del test di sistema (che nel nostro caso non è previsto), il test di accettazione verifica l effettiva funzionalità del prodotto simulando un tipico scenario di utilizzo. Test di regressione: È la fase che tipicamente troviamo alla fine di ogni step di test e controlla che tutte le correzioni apportate al codice non abbiano prodotto altri problemi. Questo si ottiene rieseguendo tutti o parte dei test definiti nelle fasi precedenti. Al termine della fase di test il software e pronto per la consegna ed entra a in manutenzione. 1.3 Tool I tool di cui ci siamo serviti per implementare i casi di test pianificati sono: JUnit : JUnit ( è un framework java da utilizzare per il test di unità. Mette a disposizioni funzioni per inizializzare le strutture dati secondo i modi previsti e per testare condizioni, valori di ritorno ed eccezioni. Jakarta Cactus: Cactus (jakarta.apache.org/cactus) è un estensione di JUnit per testare oggetti server-side (servlet e JSP). Prevede infatti la possibilità di definire le strutture dati utilizzate da questi oggetti (es: session, request, response...) e di verificare la pagina di risposta. 2 Pianificazione ed esecuzione dei test Si passa ora alla trattazione degli aspetti legati alla pianificazione. La pianificazione dei test è un concetto che va oltre la definizione di cosa testare e come testarlo, ovvero di quelle attività che tipicamente vanno sotto il nome di piano dei test ; ma si occupa di tutti gli aspetti coinvolti nel progetto dei

4 test, nella loro esecuzione e nella correzione. Per raggiungere un buon livello di qualità e di descrizione, è importante stabilire dettagliatamente la strategia d azione di come definire e implementare un caso di test, come comportarsi nell eseguirlo, come affrontare le correzioni di eventuali errori e cosa fare a seguito di queste. Tutto ciò deve essere poi supportato da un equa suddivisione del lavoro definendo responsabilità e referenti di ogni attività. 2.1 Piano dei test Il piano dei test ha preso in considerazione soltanto gli scenari e le funzioni più importanti dell applicazione, le funzioni sono state scelte però in modo tale da sfruttare il più possibile analogie strutturali e funzionali in modo da propagare, entro certi limiti, il test a più componenti. Questo significa però stare più attenti alle correzioni apportate, lavorando bene con il test di regressione per non rischiare di allargare possibili malfunzionamenti ad altre unità. Da notare che tutte queste attività tralasciano il test del codice HTML. Questo produce problemi soprattutto nell annidamento di tag e sugli script di controllo. Gli errori più evidenti sono stati comunque rivisti con il test di accettazione. 2.2 Test black box Test del metodo login di ControllerUtente 1. Tecnica del test: black box 2. Descrizione 3. Segnatura: boolean login(utente u) 4. Obiettivo: il metodo controlla se per lo username in questione la password corrisponde a quella inserita in fase di registrazione 5. Parametri 6. Utente u 7. Valore restituito: booleano (true se la password è corretta) 8. Definizione delle classi d'equivalenza ID Classe Valida/Non Valida C1 Utente presente sul DB Valida C2 Utente = null Non Valida C3 Utente non presente sul DB Valida 1. Definizione dei casi di test 1. Test Case TL1 1. Copre la classe C1 2. Input: utente1 3. Output atteso: true 2. Test Case TL2 1. Copre la classe C2

5 2. Input: null 3. Output atteso: java.lang.nullpointerexception.class N.B. Il caso di un utente = null viene testato ma non si può comunque presentare poiché i controlli vengono preliminarmente effettuati dal codice javascript della pagina di registrazione 3. Test Case TL3 1. Copre la classe C3 2. Input: utente2 3. Output atteso: false

6 Test del metodo insert di DaoUtente 1. Tecnica del test: black box 2. Descrizione 1. Segnatura: void insert (Utente u) 2. Obiettivo: inserire un nuovo utente nella tabella Utente 3. Parametri 1. Utente u 4. Valore restituito: nessun valore 3. Definizione delle classi d'equivalenza ID Classe Valida/Non Valida C1 Utente valido Valida C2 Utente = null Non Valida Definizione dei casi di test Test Case TI1 Copre la classe C1 Input: utente Output atteso: nessun output Test Case TI2 Copre la classe C2 Input: null Output atteso: RuntimeException.class N.B. Il caso di un utente = null viene testato ma non si può comunque presentare poiché i controlli vengono preliminarmente effettuati dal codice javascript della pagina di registrazione

7 Test del metodo nickpresente di DcsUtente Tecnica del test: black box Descrizione Segnatura: boolean nickpresente (Utente u) Obiettivo: il metodo controlla se per lo username in questione l'utente corrispondente è presente nel DB Parametri: Utente u Valore restituito: booleano (true se l'utente è presente nel DB) Definizione delle classi d'equivalenza ID Classi Valida/Non Valida C1 Utente presente sul DB Valida C2 Utente = null Non Valida C3 Utente non presente sul DB Valida Definizione dei casi di test Test Case TN1 Copre la classe C1 Input: utente1 Output atteso: true Test Case TN2 Copre la classe C2 Input: null Output atteso: java.lang.nullpointerexception.class N.B. Il caso di un utente = null viene testato ma non si può comunque presentare poiché i controlli vengono preliminarmente effettuati dal codice javascript della pagina di registrazione Test Case TN3 Copre la classe C3 Input: utente2 Output atteso: false

8 2.3 Test white box Servlet ServHome /*inizio*/ protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { /*1*/ HttpSession sessione=request.getsession(true); ServletContext sc=getservletcontext(); String user=request.getparameter("t4"); String pwd=request.getparameter("t5"); String address = null; Utente u=controllerutente.getutente(user, pwd); /*2*/ if(controllerutente.login(u)){ /*3*/ if(!servletutil.login(u,sc) ){ /*4*/ sc.setattribute(u.getnick(),u); sessione.setattribute("utente",u); address="redirect6.htm"; /*5*/ sessione.setattribute("err","utente Loggato"); address="erroriaccesso.jsp"; /*6*/ sessione.setattribute("err"," Nick o Password errati\\no registrazione non effettuata"); address="erroriaccesso.jsp"; /*7*/ RequestDispatcher dispatcher=request.getrequestdispatcher(address); dispatcher.forward(request, response); /*fine*/ Grafo:

9 Complessità Ciclomatica: V(G)=3 Cammini Ricoprenti: 9. C1: a-b-c-e 10. C2: a-b-d-f 11. C3: a-g-h Matrice d'incidenza: a b c d e f g h C1 X X X X C2 X X X X C3 X X X coperto X X X X X X X X Casi Testati: ID Input Output Esito TSHC1 Utente u є DB, u.getpass() = DcsUtente.getPassword(u), u.getnick()!є contesto Redirect6.htm OK TSHC2 Utente u є DB, u.getpass() = DcsUtente.getPassword(u), u.getnick() є contesto ERRORIACCESSO.jsp OK TSHC3 Utente u є DB, u.getpass()!= DcsUtente.getPassword(u) ERRORIACCESSO.jsp OK

10 Servlet ServReg /*inizio*/ protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { /*1*/ HttpSession sessione=request.getsession(true); String nome=request.getparameter("t2"); String cognome=request.getparameter("t3"); String =request.getparameter("t4"); String nato=(request.getparameter("d2")+"/"+request.getparameter("d3")+"/"+request.getp arameter("d4")); String nick=request.getparameter("t5"); String pwd=request.getparameter("t7"); Utente utente= new Utente(nome,cognome,nato, ,nick,pwd); String address=null; /*2*/ if(!controllerutente.nickpresente(utente)){ /*3*/ if(controllerutente.registrazione(utente)){ /*4*/ ControllerUtente.insert(utente); address="redirect2.htm"; /*5*/ sessione.setattribute("err","utente già registrato"); address="erroriaccesso.jsp"; /*6*/ sessione.setattribute("err","nick già in uso"); address="erroriaccesso.jsp"; /*7*/ RequestDispatcher dispatcher=request.getrequestdispatcher(address); dispatcher.forward(request, response); /*fine*/ Grafo:

11 Complessità Ciclomatica: V(G)=3 Cammini Ricoprenti: C1: a-b-c-e C2: a-b-d-f C3: a-g-h Matrice d'incidenza: a b c d e f g h C1 X X X X C2 X X X X C3 X X X coperto X X X X X X X X Casi Testati: ID Input Output Esito TSRC1 u.nick!є DB && tupla <u.nome, u.cognome, u.datanascita>!є DB Redirect2.htm OK TSRC2 u.nick!є DB && tupla <u.nome, u.cognome, u.datanascita> є DB ERRORIACCESSO.jsp OK TSRC3 u.nick є DB ERRORIACCESSO.jsp OK

12 Servlet ServSA /*inizio*/ public void doget(httpservletrequest request,httpservletresponse response)throws ServletException, IOException { /*1*/ HttpSession sessione=request.getsession(true); ServletContext sc=getservletcontext(); String Tipo=request.getParameter("D3"); String Pedina=request.getParameter("D4"); int NumGiocatori=Integer.parseInt(request.getParameter("D5")); String Nome=request.getParameter("D1"); String Ora=request.getParameter("D6")+":"+request.getParameter("D10")+" "+request.getparameter("d11"); String Data=request.getParameter("D7")+"/"+request.getParameter("D8")+"/"+request.getPa rameter("d9"); String address = null; Utente u=(utente)sessione.getattribute("utente"); sessione.setattribute("pedina",pedina); /*2*/ if ( Tipo.equals("Crea")) { /*3*/ Partita p=new Partita(Nome); Semaphore sem= new Semaphore(0); sem.release(); int count=numgiocatori-1; String c2=servletutil.codsem(p); String c1=servletutil.codifica(p); String cod=servletutil.codifica(p,pedina); /*4*/ if(!servletutil.controllocreazione(cod, sc)){ /*5*/ Contesto con=new Contesto(p,0,u,NumGiocatori); sessione.setattribute("game",p); sc.setattribute(cod,con); sc.setattribute(c2,sem); sc.setattribute(c1, count); address ="Redirect7.htm"; /*6*/ sessione.setattribute("err","partita già esistente"); address="errore.jsp"; /*7*/ else if (Tipo.equals("Partecipa")){ /*8*/ Partita p =new Partita(Nome,Data,Ora); String c2p=servletutil.codsem(p); String c1p=servletutil.codifica(p); /*9*/ if(servletutil.controllopartecipazione(c2p,sc)&& ServletUtil.controlloPartecipazione(c1P,sc)){ /*10*/ Semaphore semp; semp=(semaphore)sc.getattribute(c2p); semp.acquireuninterruptibly(); int count=(integer) sc.getattribute(c1p); /*11*/ if(count!=0){ /*12*/ count=count-1; String cod=servletutil.codifica(p,pedina); /*13*/ if(servletutil.controllocreazione(cod, sc)){ /*14*/ if(!servletutil.controllopartecipazione(cod, sc)){ /*15*/ address ="Redirect11.htm"; sessione.setattribute("game",p); Contesto con=new Contesto(p,0,u);

13 sc.setattribute(cod,con); sc.setattribute(c1p, count); semp.release(); /*16*/ sessione.setattribute("err","pedina in uso"); address="errore.jsp"; semp.release(); /*17*/ sessione.setattribute("err","partita non presente"); address="errore.jsp"; semp.release(); /*18*/ sessione.setattribute("err","partita Completa"); address="errore.jsp"; semp.release(); /*19*/ sessione.setattribute("err","la partita Non Esiste"); address="errore.jsp"; /*20*/ Partita p =new Partita(Nome,Data,Ora); try { /*21*/ if(controllerpartita.partitapresente(p)&&servletutil.verificalogati(sc, sessione, p)){ /*22*/ sessione.setattribute("game", p); Utente u2=(utente)sessione.getattribute("utente"); String cod=servletutil.codificarip2(p); /*23*/ if(!servletutil.controllopartecipazione(cod, sc)){ /*24*/ LinkedList<String> list=new LinkedList<String>(); list.add(u2.getnick()); String c2=servletutil.codificarip(p); sc.setattribute(c2, 0); sc.setattribute(cod, list); address="redirect12.htm"; /*25*/ LinkedList<String> list=(linkedlist<string>) sc.getattribute(cod); list.add(u2.getnick()); address="redirect15.htm"; /*26*/ sessione.setattribute("err","la partita Non Esiste o non vi puoi partecipare"); address="errore.jsp";

14 catch (SQLException e) { // TODO Auto-generated catch block e.printstacktrace(); catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printstacktrace(); /*27*/ RequestDispatcher dispatcher=request.getrequestdispatcher(address); dispatcher.forward(request, response); Grafo:

15 Complessità Ciclomatica: V(G)=10 Cammini Ricoprenti: 2. C1: a-b1-c1-d1-f1 3. C2: a-b1-c1-e1-g1 4. C3: a-b-c2-d2-e2-f2-g2-h2-i2-l2-m2 5. C4: a-b-c2-d2-e2-f2-g2-h2-i2-u2-n2 6. C5: a-b-c2-d2-e2-f2-g2-h2-o2-p2 7. C6: a-b-c2-d2-e2-f2-q2-r2 8. C7: a-b-c2-d2-s2-t2 9. C8: a-b-c3-d3-e3-f3-g3-h3 10. C9: a-b-c3-d3-e3-f3-i3-l3 11. C10: a-b-c3-d3-m3-n3 Matrice d'incidenza: a b b1 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3 h2 h3 i2 i3 l2 l3 m2 m3 n2 n3 o2 p2 q2 r2 s2 t2 u2 C1 X X X X X C2 X X X X X C3 X X X X X X X X X X X C4 X X X X X X X X X X X C5 X X X X X X X X X X C6 X X X X X X X X C7 X X X X X X C8 X X X X X X X X X C9 X X X X X X X X C10 coper to X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Casi Testati: ID Input Output Esito TSSAC1 Tipo = Crea, Partita.p!є al contesto Redirect7.htm OK TSSAC2 Tipo = Crea, Partita.p є al contesto ERRORE.jsp OK TSSAC3 TSSAC4 Tipo = Partecipa, (semaphore && count) є al contesto, count!= 0, Partita p є contesto, pedina!є contesto Tipo = Partecipa, (semaphore && count) є al contesto, count!= 0, Partita p є contesto, pedina є contesto Redirect11.htm ERRORE.jsp TSSAC5 Tipo = Partecipa, (semaphore && count) є al contesto, count!= 0, Partita p!є contesto ERRORE.jsp OK TSSAC6 Tipo = Partecipa, (semaphore && count) є al contesto, count = 0 ERRORE.jsp OK TSSAC7 Tipo = Partecipa, (semaphore && count)!є al contesto ERRORE.jsp OK TSSAC8 Tipo!= Crea Partecipa, (Partita p є DB && (Utente.nome,Partita p) є DB) == true, Partita.p!є contesto TSSAC9 Tipo!= Crea Partecipa, (Partita p є DB && (Utente.nome,Partita p) є DB) == true, Partita.p є contesto TSSAC10 Tipo!= Crea Partecipa, (Partita p є DB && (Utente.nome,Partita p) є DB) == false Redirect12.htm Redirect15.htm ERRORE.jsp OK OK OK OK OK

16 2.4 Note Cactus Difficile installazione nell ambiente di lavoro (Eclipse), ci ha portato ad un ritardo considerevole nella consegna del progetto

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software.

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Test Giulio Destri Ing. del Software: Test - 1 Scopo del modulo Definire

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Testing - Tecniche di Collaudo del Software Collaudabilità Un attributo di qualità del software E il grado di semplicità con cui il software può essere collaudato Si compone di

Dettagli

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

Progetto di Gestione Documenti in Ambiente Web

Progetto di Gestione Documenti in Ambiente Web Progetto di Gestione Documenti in Ambiente Web Sessione Febbraio 2013 Marco Taddei 726523 Federico Valentini 726584 Il progetto SharesShop simula un portale web di una banca che mette a disposizione dei

Dettagli

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi

Dettagli

Test del Software. Definizione SCOPO LIMITI DEL TEST

Test del Software. Definizione SCOPO LIMITI DEL TEST Definizione! Verifica dinamica del comportamento del software rispetto a quello atteso, utilizzando un insieme finito di casi di test, appropriatamente selezionati nel dominio di tutti i casi possibili

Dettagli

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame Ingegneria del Software MINR Esercitazione: esempi di esercizi di esame EserciziEsame.1 Struttura del compito 2/3 ore di tempo esercizi su Function point Test scatola nera Test scatola bianca Pianificazione

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

13: Il test del software. 13Test.1

13: Il test del software. 13Test.1 13: Il test del software 13Test.1 Concetti fondamentali Costo estremamente elevato Filosofia distruttiva Eseguire un programma con l intento di trovare degli errori; Un caso di test e ben studiato se ha

Dettagli

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti Definizioni Problemi del testing:criterio di selezione dei casi di test Test Funzionale: suddivisione in classi di equivalenza e analisi dei valori limite Test Strutturale: basato sul flusso di controllo

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

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

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

Dettagli

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

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

Dettagli

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

Dettagli

Prova d Esame 07.04.2006 Compito A

Prova d Esame 07.04.2006 Compito A DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "Ciao"; protected int n; public General() { n = 1; public

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Collaudo e qualità del software Quali test eseguire

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

Dettagli

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 4 Codifica, Test e Collaudo. Al termine della fase di progettazione, a volte anche in parallelo, si passa alla fase di codifica e successivamente alla fase di test e collaudo. In questa parte viene approfondita

Dettagli

Progettazione del Software A.A.2008/09

Progettazione del Software A.A.2008/09 Laurea in Ing. Informatica ed Ing. dell Informazione Sede di latina Progettazione del Software A.A.2008/09 Domenico Lembo* Dipartimento di Informatica e Sistemistica A. Ruberti SAPIENZA Università di Roma

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

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

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

Dettagli

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

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

Dettagli

Test di unità con JUnit4

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

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Prova d Esame 07.04.2006 Compito B

Prova d Esame 07.04.2006 Compito B DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public

Dettagli

Esercizi su. Funzioni

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

Dettagli

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438 tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438 Obbiettivi del progetto: Sviluppo di un applicazione Flex in AdobeFlashBuilder

Dettagli

Verifica e validazione della qualità del sw

Verifica e validazione della qualità del sw Verifica e validazione della qualità del sw Tecniche di Programmazione Lez. 07 Università di Firenze a.a. 2009/10, I semestre 1/40 contenuti Termini e definizioni Tecniche rispetto alle caratteristiche

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani

Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani www.sapienzafinanziaria.com Corso Sapienza Trading Automatico la formazione finanziaria è il miglior investimento per il tuo domani Lezione n. 1 Edizione marzo 2015 Traduzione di un'idea in codice www.sapienzafinanziaria.com

Dettagli

Workflow di Test. Valerio Mercanti - ISP0607 1

Workflow di Test. Valerio Mercanti - ISP0607 1 Workflow di Test Valerio Mercanti - ISP0607 1 Obiettivo del workflow di test Verificare l interazione tra oggetti e componenti Verificare la corretta integrazione di tutti i componenti del software Verificare

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

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

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

Dettagli

Organizzazione 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. (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

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti 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

Dettagli

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente

3. DOCUMENTO DI DEFINIZIONE DEI REQUISITI FORNITO DAL CLIENTE 3.1 Richieste del cliente T4 Contenuto di un analisi dei requisiti Presentate un indice di un documento di analisi dei requisiti e descrivete in modo sintetico contenuto e ruolo di ogni capitolo. INDICE 1. STORIA DELLE REVISIONI

Dettagli

Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti

Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti Corso di Sicurezza Informatica Sicurezza del software Ing. Gianluca Caminiti SQL Injection Sommario Premessa sul funzionamento dei siti dinamici SQL Injection: Overview Scenari di attacco: Errata gestione

Dettagli

Portal e Portlet ClassLoader. Mancini Marco

Portal e Portlet ClassLoader. Mancini Marco Portal e Portlet ClassLoader Mancini Marco Project Manager, 3F Consulting s.r.l. Classloading in liferay Tre differenti classpath: Global classpath, tutte le librerie presenti nella nostra JVM, e nelle

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

Caso Utente San Paolo IMI: la Test Factory nasce dall'anno 2000. Giorgio Marras

Caso Utente San Paolo IMI: la Test Factory nasce dall'anno 2000. Giorgio Marras Caso Utente San Paolo IMI: la Test Factory nasce dall'anno 2000 Giorgio Marras 2 Titolo L'adeguamento del software per Anno 2000 e Euro ha richiesto un investimento rilevante da parte delle aziende. Alcune

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

Rischi 1. Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi

Rischi 1. Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi Rischi 1 Definizione di rischio nello sviluppo del software Analisi dei rischi Gestione dei rischi Un ingegnere del software viene coinvolto direttamente nel processo di identificazione delle aree potenziali

Dettagli

Laboratorio di reti II: Servlet

Laboratorio di reti II: Servlet Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34 Le servlet Una servlet è una classe Java eseguita

Dettagli

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript tesi di laurea di difetti all interno di codice Javascript Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Domenico Amalfitano candidato Vincenzo Riccio Matr.

Dettagli

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto) Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

Svantaggi delle servlet

Svantaggi delle servlet Svantaggi delle servlet Le servlet sono la tecnologia principale di J2EE per comunicare con i browser dei client. Tuttavia ci sono degli inconvenienti per gli sviluppatori di applicazioni web: le servlet

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Sequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo.

Sequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo. Corso di Ingegneria del software - Seconda prova di verifica in itinere, 17 dicembre 2008 C, Montangero, L. Semini Dipartimento di Informatica, Università di Pisa a.a. 2008/09 La prova si svolge a libri

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

Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato

Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato tesi di laurea Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Giuseppe

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

PROCEDURA PR.07/03. Progettazione e sviluppo software STATO DI REVISIONE. Verificato da

PROCEDURA PR.07/03. Progettazione e sviluppo software STATO DI REVISIONE. Verificato da PROCEDURA PR.07/03 Progettazione e sviluppo software STATO DI REVISIONE NUMERO REVISIONE DATA Emesso da DT Fabio 0 15/07/03 Matteucci 1 22/12/03 Fabio Matteucci 2 Verificato da Rappresentante della Direzione

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Metodologie di programmazione in Fortran 90

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

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Centro Servizi Territoriali (CST) Asmenet Calabria

Centro Servizi Territoriali (CST) Asmenet Calabria Cofinanziamento Fondi CIPE Progetto CST CUP J59H05000040001 Centro Servizi Territoriali (CST) Asmenet Calabria Convenzione per la costituzione di un Centro Servizi Territoriale tra la Regione Calabria

Dettagli

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga Software Testing Lezione 2 Livelli di test Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Rabini/F.Spiga 1 2 Livelli di test Unit Testing Integration Testing System Testing Unit Testing

Dettagli

Test della libreria JSetL tramite JUnit

Test della libreria JSetL tramite JUnit UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE e NATURALI Corso di Laurea in Informatica Tesi di Laurea Test della libreria JSetL tramite JUnit Relatore: Prof. Gianfranco Rossi

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 it.unibas.pinco versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Concetti di base di ingegneria del software

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

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il primo

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages 1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti Programmazione Java Avanzata MVC Model, View,, Controller Ing. Gianluca Caminiti Uso di JSP: complessità crescente Invocare codice Java direttamente. Posizionare tutto il codice Java in una pagina JSP

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Introduzione agli Abstract Data Type (ADT)

Introduzione agli Abstract Data Type (ADT) Introduzione agli Abstract Data Type (ADT) La nozione di tipo di dato astratto Sappiamo già che quando si affrontano problemi complessi è necessario procedere in due fasi: Specifica dell algoritmo Implementazione

Dettagli

Normalizzazione. Relazionali

Normalizzazione. Relazionali Normalizzazione di Schemi Relazionali Normalizzazione Forme Normali Una forma normale è una proprietà di uno schema relazionale che ne garantisce la qualità, cioè l assenza di determinati difetti Una relazione

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

ALLEGATO 4 AL CAPITOLATO TECNICO. Requisiti di qualità specifici della fornitura

ALLEGATO 4 AL CAPITOLATO TECNICO. Requisiti di qualità specifici della fornitura CONSIP S.p.A. ALLEGATO 4 AL CAPITOLATO TECNICO Requisiti di qualità specifici della fornitura Capitolato relativo all affidamento dei servizi di Sviluppo, Manutenzione, Assistenza e Servizi intellettivi

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Verifica del codice con Interpretazione Astratta

Verifica del codice con Interpretazione Astratta Verifica del codice con Interpretazione Astratta Daniele Grasso grasso@dsi.unifi.it grasso.dan@gmail.com Università di Firenze, D.S.I., Firenze, Italy December 15, 2009 D.Grasso (Università di Firenze)

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Reflection 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

Dettagli

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola Politecnico di Milano Ingegneria del Software a.a. 2006/07 Appello del 14 settembre 2007 Cognome Nome Matricola Sezione (segnarne una) Baresi, Ghezzi, Morzenti, SanPietro Istruzioni 1. La mancata indicazione

Dettagli

Esercizi di Ingegneria del Software

Esercizi di Ingegneria del Software Esercizi di Ingegneria del Software Il caso della Grande Distribuzione V. Ambriola, C. Montangero e L. Semini Corso di Laurea in Informatica Corso di Laurea in Informatica Applicata Dipartimento di Informatica

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli