Corso di Progettazione del Software

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Progettazione del Software"

Transcript

1 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 1/22 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza S.R.1 La fase di Realizzazione: realizzazione di strutture dati versione del February 26, 2008

2 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 2/22 odifiche rispetto alle versioni precedenti Rispetto alla versione del 6 Marzo 2007 degli attributi concettuali) Corretto un errore nella slide n. 19 (Accesso e modifica

3 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 3/22 La fase di realizzazione L input di questa fase è costituito da: L output della fase di Progetto, formato da: Diagramma realizzativo delle classi e degli oggetti Specifiche realizzative delle strutture dati, delle classi, e degli use-case Tabella della corrispondenza dei tipi; Tabelle della rappresentazione degli stati dei diagrammi degli stati e transizioni; Vincoli sulla gestione e sull evoluzione delle proprietà delle classi (attributi e associazioni). Parte dell output della fase di Analisi, in particolare: La specifica delle classi e degli use-case che non è stata raffinata durante la fase di progetto; La specifica concettuale dei tipi di dato (anche se raffinata in fase di Progetto); I diagrammi degli stati e delle transizioni

4 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 4/22 Output della fase di Realizzazione Un programma Java che realizza in modo completo e corretto la specifica iniziale dei requisiti, ed è coerente con tutte le scelte fatte in fase di Analisi e di Progetto. La documentazione associata al codice.

5 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 5/22 La fase di Realizzazione: metodologia In questa sezione verrà mostrato come realizzare in Java: Le strutture dati progettate in fase di Progetto; Le classi del diagramma delle classi realizzativo, e le loro operazioni; Le associazioni del diagramma delle classi realizzativo; I diagrammi degli stati definiti in fase di Analisi e progettati durante la fase di Progetto; Gli use-case.

6 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 6/22 Realizzazione delle strutture dati

7 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 7/22 Realizzazione delle strutture dati Per ogni struttura dati da realizzare, è stata prodotta, durante la fase di progetto, una specifica realizzativa, nella quale è esplicitato: Gli attributi (con relativi tipi) che sono stati scelti per rappresentare i valori della struttura; Le operazioni che deve essere possibile effettuare sui valori della struttura (con eventuali costruttori); nel caso gli attributi realizzativi sono diversi da quelli concettuali (cf. la specifica concettuale del tipo di dato) tra le operazioni esisteranno sicuramente quelle che permettono di calcolare il valore degli attributi concettuali a partire da quello degli attributi realizzativi; Lo schema realizzativo che si è scelto per la realizzazione (con o senza side-effect, con o senza condivisione di memoria); Il meccanismo per il controllo dell uguaglianza tra gli oggetti.

8 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 8/22 Realizzazione delle strutture dati (cont.) La realizzazione della struttura dati S viene effettuata per mezzo di una classe Java S, tale che: 1. La classe S contiene un campo dato private per ogni attributo realizzativo della struttura dati, del tipo associato. 2. Se la specifica realizzativa della struttura dati presenta definizioni esplicite di costruttori, nella classe Java sarà definito un costruttore per ognuno di essi, che genera un eccezione di class EccezionePrecondizioni nel caso le sue precondizioni non siano verificate. Nel caso invece la specifica realizzativa non ha definizioni esplicite di costruttori, ci si comporta come se tale specifica contenesse la dichiarazione di un unico costruttore con un argomento di input per ogni attributo concettuale del tipo realizzato dalla struttura dati, che inizializza gli attributi della classe (corrispondenti agli attributi realizzativi della struttura dati). Tale costruttore non ha precondizioni (a meno di quelle di carattere generale descritte in seguito). 3. La classe Java conterrà la definizione di operazioni per ottenere ed eventualmente modificare i valori degli attributi concettuali del tipo di dato che realizza; 4. La classe Java conterrà la definizione di tutte le operazioni definite nella specifica realizzativa della struttura dati. La realizzazione di tali operazioni seguirà gli algoritmi presenti nella specifica realizzativa, e sarà quindi coerente con lo schema realizzativo scelto.

9 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 9/22 Realizzazione delle strutture dati (cont.) 5. La classe Java conterrà la ridefinizione dei metodi equals() e hashcode(), al fine di consentire il controllo dell uguaglianza profonda tra oggetti, secondo quanto esplicitato nella specifica realizzativa; 6. La classe Java conterrà la ridefinizione del metodo clone() per consentire la copia profonda tra oggetti.

10 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 10/22 Costruttori Per ogni costruttore S(arg1 : T1,... argn : Tn) della struttura dati S, la corrispondente classe Java definisce un costruttore di segnatura: public S(T1 arg1,..., Tn argn) throws EccezionePrecondizioni (senza la clausola throws se il costruttore della struttura dati non ha precondizioni e non c è necessità di verificare le condizioni di ammissibilità lato server per gli attributi). Se la specifica realizzativa non ha costruttori (che quindi sono assenti anche nella specifica concettuale), ci comportiamo come se ne esistesse uno con un argomento per ogni attributo concettuale. Nota: abbiamo usato gli stessi simboli S, Tk e S e Tk (in font diversi) per indicare le diverse strutture dati e le classi Java che le realizzano. Il corpo del costruttore si occuperà di inizializzare opportunamente il valore per gli attributi della classe, come esplicitato dall algoritmo sintetizzato in fase di Progetto, e coerentemente con lo schema realizzativo scelto per realizzare la struttura dati.

11 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 11/22 Costruttori (cont.) Ad esempio, supponiamo che l attributo attr di tipo T vada inizializzato con il valore di uno degli argomenti del costruttore, sia arg. Si ha che il costruttore conterrà una tra queste istruzioni: Se T è un tipo base Java: attr = arg; Se T è una classe Java che implementa una struttura dati progettata secondo lo schema senza side-effect, allora: Se lo schema realizzativo della struttura dati S che stiamo implementando è con condivisione : attr = arg; Altrimenti ( senza condivisione ): attr = (T)arg.clone(); Se T è una classe Java che implementa una struttura dati progettata secondo lo schema con side-effect, allora: attr = (T)arg.clone(); Inoltre, nel caso il tipo Java scelto per arg è semanticamente più esteso del corrispondente tipo UML, va implementata la verifica delle condizioni di ammissibilità lato server. Analogo discorso vale, nel caso il tipo di arg sia una classe Java, per evitare di creare l oggetto quando arg vale null (a meno che il corrispondente attributo non sia opzionale). In questi casi, il costruttore deve generare un opportuna eccezione.

12 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 12/22 Costruttori (cont.) In questo corso, per semplicità, assumiamo che ogni modulo che verifica condizioni di ammissibilità o precondizioni genera, in caso queste non siano soddisfatte, una eccezione di classe EccezionePrecondizioni. Tale classe estende da Exception ed è definita in seguito: package ProSW; public class EccezionePrecondizioni extends Exception { public EccezionePrecondizioni() { super(); public EccezionePrecondizioni(String messaggio) { super(messaggio); //: Ovviamente, nei casi reali, è opportuno prevedere una classe distinta per ogni tipologia di eccezione.

13 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 13/22 Esempio: costruttore della classe Data Dalle specifiche concettuale e realizzativa ricordiamo che: Gli attributi concettuali del tipo di dato Data sono giorno : [1..31], mese : [1..12], anno : intero > 0; La specifica concettuale ha un costruttore Data(giorno : [1..31], mese : [1..12], anno : intero > 0) con delle precondizioni; Gli attributi realizzativi della struttura dati che realizza il tipo sono giorno, mese, anno: int; Ovviamente, anche la specifica realizzativa ha un costruttore, raffinamento di quello sintetizzato in fase di Analisi.

14 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 14/22 Esempio: costrutt. classe Data (cont.) La classe Java Data sarà allora definita nel modo seguente: public class Data { private int giorno, mese, anno; public Data(int g, int m, int a) throws EccezionePrecondizioni { if ( /* Controllo precondizioni: 1. Se gli argomenti non sono di tipo base, questi non possono essere null: */ // nulla /* 2. Verifica ammissibilita dei valori per gli arg. il cui tipo Java e semanticamente piu esteso del corrisp. tipo UML: (g >= 0 && g <= 31) && (m >= 0 && m <= 12) && (a > 0) /* 3. Verifica prec. nella specifica realizzativa */ //...ovvero che g/m/a sia un valore legale del tipo Data... (omesso) ) { // Precondizioni verificate: Posso creare l oggetto giorno = g; mese = m; anno = a; else throw new EccezionePrecondizioni(""+g+"/"+m+"/"+a + " non e un valore legale del tipo Data!");...

15 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 15/22 Esempio: costruttore della classe Ora Dalle specifiche concettuale e realizzativa ricordiamo che: Gli attributi concettuali del tipo di dato Ora sono ore : [0..23], min : [0..59], sec : [0..59]; La specifica concettuale non ha costruttori, dato che ogni combinazione di valori legali degli attributi concettuali denota un istanza legale del tipo di dato; Gli attributi realizzativi della struttura dati che realizza il tipo sono diversi da quelli concettuali. In particolare abbiamo sec: int (secondi dalla mezzanotte); La specifica realizzativa prevede quindi le operazioni ore(), minuti(), secondi() che calcolano e ritornano i valori degli attributi concettuali a partire da quelli degli attributi realizzativi; La specifica realizzativa non ha costruttori: ci comportiamo come se ne avesse uno con segnatura Ora(ore:int, minuti:int, secondi:int) (con un argomento per ogni attributo concettuale).

16 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 16/22 Esempio: costr. classe Ora (cont.) La classe Java Ora sarà allora definita nel modo seguente: public class Ora { private int sec; public Ora(int ore, int minuti, int secondi) throws EccezionePrecondizioni { if ( /* Controllo precondizioni: 1. Se gli argomenti non sono di tipo base, questi non possono essere null: */ // nulla /* 2. Verifica ammissibilita dei valori per gli arg. il cui tipo Java e semanticamente piu esteso del corrisp. tipo UML: (ore >= 0 && ore < 24) && (minuti >= 0 && minuti < 60) && (secondi >= 0 && secondi < 60) /* 3. Verifica prec. nella specifica realizzativa */ // nulla ) { // Precondizioni verificate: Posso creare l oggetto sec = secondi + minuti*60 + ore*3600; else throw new EccezionePrecondizioni(""+ore+":"+minuti+":"+secondi + " non e un valore legale del tipo Ora!");...

17 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 17/22 ostrutt. classe DataOra (senza side-effect, Dalle specifiche concettuale e realizzativa ricordiamo che: Gli attributi concettuali del tipo di dato DataOra sono data : Data, ora : Ora; La specifica concettuale non ha costruttori; Gli attributi realizzativi della struttura dati che realizza il tipo sono data : Data, ora : Ora; La specifica realizzativa non ha costruttori: ci comportiamo come se ne avesse uno con segnatura DataOra(data:Data, ora:ora) (con un argomento per ogni attributo concettuale).

18 Esempio: costr. classe DataOra (cont.) La classe Java Data sarà allora definita nel modo seguente: public class DataOra { private Data data; private Ora ora; public DataOra(Data d, Ora o) throws EccezionePrecondizioni { if ( /* Controllo precondizioni: 1. Se gli argomenti non sono di tipo base, questi non possono essere null: */ (d!= null && o!= null) /* 2. Verifica ammissibilita dei valori per gli arg. il cui tipo Java e semanticamente piu esteso del corrisp. tipo UML: // nulla /* 3. Verifica prec. nella specifica realizzativa */ // nulla ) { // Precondizioni verificate: Posso creare l oggetto: data = d; // Se Data non permette side-effect e DataOra permette condiv. // altrimenti: data = (Data)d.clone(); ora = o; // Se la classe Ora non permette side-effect e DataOra permette condiv. // altrimenti: ora = (Ora)o.clone(); else throw new EccezionePrecondizioni(""+d+", " + o + " non e un valore legale del tipo DataOra!");... T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 18/22

19 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 19/22 Accesso e modif. degli attrib. concettuali Tra le operazioni della class Java avremo sicuramente quelle per accedere (ed eventualmente manipolare) il valore degli attributi concettuali del tipo di dato che la classe Java realizza. In particolare, per ogni attributo concettuale attr: T, si ha un metodo public T getattr(), definito come segue: Nel caso T sia un tipo base: return attr; Nel caso T sia una classe: Se T non permette side-effect: return attr; Inoltre: Altrimenti: return (T)attr.clone(); se lo schema realizzativo è con side-effect, per ogni attributo concettuale attr: T, si ha un metodo public void setattr(t x) il cui corpo è definito in modo del tutto analogo a quanto descritto a proposito dei costruttori (ovvero assegnando ad attr il valore di x se T è un tipo base oppure se T è una classe che non permette side-effect e la struttura che stiamo realizzando permette la condivisione di memoria, oppure, in caso contrario, clonando l oggetto puntato da x ed assegnando il riferimento del clone ad attr). Il comportamento dei metodi get...() e set...() viene generalizzato nel modo già visto per i costruttori nel caso gli attributi realizzativi siano diversi da quelli concettuali.

20 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 20/22 Esempio: la classe Data Vediamo i metodi della classe Java Data per accedere agli attributi concettuali del tipo: public class Data { private int giorno, mese, anno; public Data(int g, int m, int a) throws EccezionePrecondizioni {... public int getgiorno() { return giorno; public int getmese() { return mese; public int getanno() { return anno; // Nel caso la classe Data segua lo schema con side-effect : public void setgiorno(int g) throws EccezionePrecondizioni { if (g>=1 && g <= 31 && /* "g/mese/anno" e un istanza legale */ ) { giorno = g; else throw new EccezionePrecondizioni(""+g+"/"+mese+"/"+anno + " non e un valore legale del tipo Data"); // Idem per setmese() e setanno();...

21 T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 21/22 Esempio: la classe Ora I metodi della classe Java Ora per accedere agli attributi concettuali del tipo sono invece: public class Ora { private int sec; public Ora(int ore, int minuti, int secondi) throws EccezionePrecondizio public int getore() { return (int)math.floor(sec*1.0/3600); public int getminuti() { return (int)math.floor( (sec % 3600) *1.0/60); public int getsecondi() { return sec % 60; // Nel caso la classe Ora segua lo schema con side-effect : public void setore(int ore) throws EccezionePrecondizioni { if (ore>=0 && ore < 24) { int this_ore = getore(); sec += (ore-this_ore)*3600; else throw new EccezionePrecondizioni(""+ore+"/"+ getminuti()+"/"+getsecondi() + " non e un valore legale del tipo Ora"); // Idem per setminuti() e setsecondi();...

22 Esempio: la classe DataOra I metodi della classe Java DataOra per accedere agli attributi concettuali del tipo sono invece: public class DataOra { private Data data; private Ora ora; public DataOra(Data d, Ora o) throws EccezionePrecondizioni {... public int getdata() { return data; // se Data non permette side-effect // Altrimenti: return (Data)data.clone(); // Idem per getora() // Nel caso la classe DataOra segua lo schema con side-effect : public void setdata(data d) throws EccezionePrecondizioni { if (d!= null) { data = d; // se Data non perm. side-effect, e DataOra perm. condiv. // Altrimenti: data = (Data)d.clone(); else throw new EccezionePrecondizioni(...); // Idem per setora()... T. Mancini & M. Scannapieco S.R.1 La fase di Realizzazione: realizzazione di strutture dati February 26, 2008 p. 22/22

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.R.3 La fase di Realizzazione: realizzazione di associazioni a resp. singola February 26, 2008 p. 1/35 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso

Dettagli

Requisiti. Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

Requisiti. Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria Sapienza - Università di Roma Facoltà di Ingegneria 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 d esame

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA 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

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software simulazione di esame III Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Requisiti L'applicazione da progettare riguarda la

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

SOLUZIONE. 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

Dettagli

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo

La 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

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software La fase di realizzazione (parte I) Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco E.P.2 Progetti universitari (SOLUZIONE) February 26, 2008 p. 1/21 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Simulazione di esame II Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Requisiti L applicazione

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza Facoltà di Ingegneria

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza Facoltà di Ingegneria Università di Roma La Sapienza Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Proff. Marco Cadoli e Giuseppe De Giacomo Canali A-L & M-Z A.A. 2005-06

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.)

SOLUZIONE. 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

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco E.P.1 Segreteria Studenti (SOLUZIONE) February 25, 2008 p. 1/20 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Requisiti L applicazione

Dettagli

Progettazione del Software

Progettazione 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

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.JOO.3 Java: le classi Object e Class February 2, 2008 p. 1/12 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.JOO.5 Java: copia profonda February 2, 2008 p. 1/22 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software La fase di progetto Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Le slide di questo corso sono

Dettagli

Università di Roma La Sapienza Facoltà di Ingegneria

Università di Roma La Sapienza Facoltà di Ingegneria Università di Roma La Sapienza Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Proff. Giuseppe De Giacomo e Marco Cadoli Canali A-L & M-Z A.A. 2004-05

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza, Facoltà di Ingegneria

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza, Facoltà di Ingegneria Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Ing. Informatica) Proff. Marco Cadoli e Maurizio Lenzerini, Canali A-L & M-Z A.A. 2003-04 Compito d esame del

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software La fase di progetto Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE 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

Dettagli

La fase di realizzazione

La fase di realizzazione SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I Laurea in Ingegneria Informatica Prof. Giuseppe De Giacomo A.A. 2007/08 QUARTA PARTE: LA FASE DI REALIZZAZIONE (versione

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software La fase di realizzazione Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Le slide di questo corso

Dettagli

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Sapienza Università di Roma A.A

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Sapienza Università di Roma A.A Sapienza Università di Roma A.A. 2010-2011 Laurea in Ingegneria dell Informazione Sede di Latina Laurea in Ingegneria dell Informazione consorzio Nettuno Corso di PROGETTAZIONE DEL SOFTWARE Esercitazione

Dettagli

Tipi riferimento e stringhe

Tipi riferimento e stringhe Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 8 Tipi riferimento e stringhe A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Tipi riferimento e stringhe 1

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.P.1 La fase di Progetto February 18, 2008 p. 1/65 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione

Dettagli

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

SAPIENZA Università di Roma, Facoltà di Ingegneria

SAPIENZA Università di Roma, Facoltà di Ingegneria SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. E.Casalicchio A.A. 2008/09 QUARTA PARTE: Soluzioni Esercizi 13-23 Soluzione

Dettagli

La fase di realizzazione. Realizzazione di una classe UML con soli attributi. Traduzione in Java del diagramma delle classi

La fase di realizzazione. Realizzazione di una classe UML con soli attributi. Traduzione in Java del diagramma delle classi SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. Giuseppe De Giacomo A.A. 2008/09 La fase di realizzazione si occupa di: La

Dettagli

Fasi del ciclo di vita del software (riassunto)

Fasi del ciclo di vita del software (riassunto) 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) Insegnamento di PROGETTAZIONE

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 Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Fasi del ciclo di vita del

Dettagli

Progetto PI , passo A.3 versione del 28 marzo 2007

Progetto PI , passo A.3 versione del 28 marzo 2007 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Progetto PI.20050411,

Dettagli

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza Università di Roma La Sapienza Facoltà di Ingegneria - Laurea in Ing. Gestionale Progettazione del Software Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A DOMANDA1 Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { protected int value; public static boolean flag = false; public General() { value = 1; public

Dettagli

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

Dettagli

Diagramma delle classi UML. Diagramma e specifica degli use case. Specifica delel classi del diagramma

Diagramma delle classi UML. Diagramma e specifica degli use case. Specifica delel classi del diagramma Università di Roma La Sapienza, Facoltà di Ingegneria Diagramma delle classi UML Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME

Dettagli

La fase di realizzazione

La fase di realizzazione SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. Giuseppe De Giacomo LA FASE DI REALIZZAZIONE (Diagrammi delle classi) La fase

Dettagli

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo

Dettagli

LA CLASSE Data ESERCIZIO. Definiamo la classe Data che incapsuli giorno, mese e anno (tutti int)

LA CLASSE Data ESERCIZIO. Definiamo la classe Data che incapsuli giorno, mese e anno (tutti int) PROVA PRATICA Contenuti: Uso del JDK e di un ambiente integrato per lo sviluppo Semplici programmi che utilizzino: Classi Classi astratte (Interfacce) Ereditarietà (protezione, costruttori) Tempo a disposizione:

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA 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

Dettagli

Uso di Asserzioni alla Hoare nei Linguaggi O.O. Java Modeling Language

Uso di Asserzioni alla Hoare nei Linguaggi O.O. Java Modeling Language Uso di Asserzioni alla Hoare nei Linguaggi O.O. Java Modeling Language Gennaio 2002 NB: tutti gli esempi in JML NON sono stati testati quindi non garantisco sulla sintassi! Scopo: descrivere in modo astratto

Dettagli

Programmazione orientata agli oggetti Oggetti Composti. Oggetti composti

Programmazione orientata agli oggetti Oggetti Composti. Oggetti composti Programmazione orientata agli oggetti Oggetti Composti 1 - 1 Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - 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/

Dettagli

17 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce 17 - 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/

Dettagli

Progettazione del Software Anno Accademico

Progettazione del Software Anno Accademico Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Giuseppe De Giacomo & Prof. Monica Scannapieco

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA8 B1 Accesso sequenziale 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione 2 1 Introduzione In questa Unità vediamo

Dettagli

Introduzione al Java Collections Framework. Progettazione del Software Anno Accademico Interfacce del Collections Framework

Introduzione al Java Collections Framework. Progettazione del Software Anno Accademico Interfacce del Collections Framework Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Giuseppe De Giacomo & Prof. Monica Scannapieco

Dettagli

Uguaglianza e copia di oggetti

Uguaglianza 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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 09 ADT: Lista, Pila, Coda A. Miola Marzo 2007 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti Tipo

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI 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,

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

JAVA GENERICS. Angelo Di Iorio Università di Bologna

JAVA GENERICS. Angelo Di Iorio Università di Bologna JAVA GENERICS Angelo Di Iorio Università di Bologna Tipi parametrici In diversi casi è utile definire classi che operano su tipi di dato diverso e implementano un comportamento comune e indipendente dal

Dettagli

Oggetti Composti (1) Oggetti Composti (2)

Oggetti Composti (1) Oggetti Composti (2) Oggetti Composti () Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi dei riferimenti ad oggetti di qualche classe

Dettagli

Diagramma delle classi UML

Diagramma delle classi UML Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Giuseppe De Giacomo e Monica Scannapieco, A.A. 2003-04 SOLUZIONE ESAME DEL 11/07/2003 Roma, 9

Dettagli

Corso di Progettazione del Software

Corso di Progettazione del Software T. Mancini & M. Scannapieco S.JOO.4 Java: uguaglianza superficiale e profonda February 2, 2008 p. 1/31 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale

Dettagli

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona di Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona su Sommario di su di di di su Astrazione sugli oggetti di su Il concetto di classe Classe: realizza l astrazione

Dettagli

19 - 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 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

Dettagli

Programmazione a oggetti

Programmazione 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

Dettagli

9 - 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 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

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione 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

Dettagli

Progetto PI , passo A.1 versione del 10 aprile 2007

Progetto PI , passo A.1 versione del 10 aprile 2007 Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Progetto PI.20070402,

Dettagli

Progettazione del Software Analisi

Progettazione del Software Analisi Progettazione del Software Analisi: UML Use Cases & Documenti di Specifica Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti SAPIENZA Università di Roma Le slide di questo

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA 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

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Eccezioni. 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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso 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

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe/array Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

COGNOME NOME MATRICOLA DATA

COGNOME NOME MATRICOLA DATA COGNOME NOME MATRICOLA DATA 1. Scrivere la classe Automobile che ha i seguenti attributi colore: una stringa indicante il colore dell automobile, velocità: un numero con la virgola indicante la velocità

Dettagli

Oggi. La programmazione strutturata - III. Sequenza e selezione. Dove siamo. Iterazione: while e do/while. Raffinamenti successivi.

Oggi. La programmazione strutturata - III. Sequenza e selezione. Dove siamo. Iterazione: while e do/while. Raffinamenti successivi. La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 6 Oggi Stefano

Dettagli

Corso 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 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

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Analisi: UML Use Cases & Documenti di Specifica Domenico Lembo Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Corso di Laurea in Ingegneria

Dettagli

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)

Riferimenti 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?

Dettagli

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) 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

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI 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

Dettagli

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I {

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I { Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Il diagramma delle classi è raffigurato in Figura 1, insieme alla descrizione della responsabilità sulle associazioni.

Il diagramma delle classi è raffigurato in Figura 1, insieme alla descrizione della responsabilità sulle associazioni. SAPIENZA Università di Roma Facoltà di Ingegneria - Corso di Laurea in Ingegneria Informatica Corso di Progettazione del Software A.A. 2008/2009 Prova al calcolatore (riveduta) del 5 giugno 2009 L applicazione

Dettagli

Esercitazione. Docente Ing. Mariateresa Celardo

Esercitazione. Docente Ing. Mariateresa Celardo Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore del motorino, velocità: un

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Sommario 2 2» Struttura

Dettagli

! Riassunto. ! for. ! Cicli annidati. ! Esempi, esercizi, errori tipici. ! Programmazione strutturata. ! break e continue I1; I2; I3;

! Riassunto. ! for. ! Cicli annidati. ! Esempi, esercizi, errori tipici. ! Programmazione strutturata. ! break e continue I1; I2; I3; La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 6 Oggi Stefano Mizzaro

Dettagli

//UML-class-diagram.txt. entrambe Molo e PostoBarca hanno responsabilità su contiene. solo PostoBarca ha responsabilità su assegnato, e

//UML-class-diagram.txt. entrambe Molo e PostoBarca hanno responsabilità su contiene. solo PostoBarca ha responsabilità su assegnato, e Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo, A.A. 2001-02 SOLUZIONE ESAME DEL 25/06/2002 //UML-class-diagram.txt

Dettagli

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

Dettagli

Progettazione del Software

Progettazione del Software Progettazione del Software Giuseppe De Giacomo & Massimo Mecella Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Diagramma degli stati e delle transizioni: concorrenza Progettazione

Dettagli

Diagramma delle classi UML

Diagramma delle classi UML Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo, A.A. 2001-02 SOLUZIONE ESAME DEL 25/06/2002 Roma, 23 giugno 2003 1

Dettagli

Oggetti. Oggetti e occultamento delle informazioni. Definire oggetti. Oggetti. Definire oggetti la sintassi. Convenzione sugli identificatori

Oggetti. Oggetti e occultamento delle informazioni. Definire oggetti. Oggetti. Definire oggetti la sintassi. Convenzione sugli identificatori Oggetti Oggetti e occultamento delle informazioni Paolo Coppola Dipartimento di Matematica e Informatica Università degli Studi di Udine http://www.dimi.uniud.it/coppola/ coppola@dimi.uniud.it I metodi

Dettagli

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione 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

Dettagli

Progettazione Logica e Modello Realizzativo

Progettazione Logica e Modello Realizzativo Progettazione Logica e Modello Realizzativo Metodologia di SI PREFERIBILMENTE ITERATIVA (1) Analisi dei Requisiti (Modello di Business): analisi di scenario, individuando i processi, gli attori coinvolti

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

CloneNotSupportedException clone() Object clone() protected native Object clone() throws CloneNotSupportedException this

CloneNotSupportedException clone() Object clone() protected native Object clone() throws CloneNotSupportedException this Clonazione Importante esempio di eccezione controllata è CloneNotSupportedException che può essere lanciata dal metodo nativo clone() della classe Object. La dichiarazione di clone() è la seguente: protected

Dettagli