ODD Object Design Document

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ODD Object Design Document"

Transcript

1 UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) ODD Object Design Document Membri del gruppo: Calè Giuseppe Gemmellaro Claudio Lo Grasso Marco Minacori Attilio

2 INDICE 1 Introduzione 2 2 Diagramma delle classi del package ClassificaERicerca 3 3 JavaDoc del package ClassificaERicerca Classe AbstractionRicerca Classe ClassificaERicercaAdapter Classe ClassificaERicercaFacade Classe ClassificaERicercaTarget 15 4 Scheletro delle classi del package ClassificaERicerca Classe AbstractionRicerca Classe ClassificaERicercaAdapter Classe ClassificaERicercaFacade Classe ClassificaERicercaTarget

3 1 Introduzione Nel seguente documento viene presentata la descrizione dettagliata di tutte le classi del sottosistema ClassificaERicerca. Questo sottosistema è costituito da un componente centrale ClassificaERicerca che effettua la classificazione automatica dei documenti e fornisce le funzionalità di ricerca. Questo componente, essendo già esistente e non essendo stato sviluppato all interno di questo progetto, si è scelto di riutilizzarlo adattandolo al sistema. I design pattern utilizzati nel sottosistema ClassificaERicerca sono: Facade, che implementa un interfaccia più semplice per il sottosistema invocando i metodi delle classi di livello più basso AbstractionRicerca e ClassificaERicercaTarget. Adapter, che permette di adattare l interfaccia esistente ClassificaERicerca con quella che il sistema si aspetta, utilizzando a tale scopo le classi ClassificaERicercaTarget e ClassificaERicercaAdapter. Bridge, che definisce l interfaccia visibile al sistema tramite la classe astratta AbstrationRicerca e la classe ClassificaERicercaTarget che raffina i metodi presente nella classe astratta. Questo design pattern è stato inserito per permettere future espansioni delle funzionalità del sistema. 2

4 2 Diagramma delle classi del sottosistema ClassificaERicerca 3

5 3 JavaDoc delle classi del package ClassificaERicerca 3.1 Classe AbstractionRicerca Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD ClassificaERicerca Class AbstractionRicerca java.lang.object ClassificaERicerca.AbstractionRicerca public abstract class AbstractionRicerca extends java.lang.object Abstraction del Pattern Bridge. Definisce l'interfaccia dell'abstraction. E' utilizzata direttamente dal Facade ClassificaERicercaFacade. Version: 0.9 Author: Attilio Minacori, Giuseppe Calè Field Summary ClassificaERicercaFacade classificaericercafacade ClassificaERicercaTarget classificaericercatarget Constructor Summary AbstractionRicerca() Method Summary void abstractionricerca() costruttore della classe java.lang.string[] cercaavanzato(java.lang.string nome, java.lang.string categoria, java.lang.string tipo, java.lang.string gruppo) ricerca avanzata per nome, categoria, gruppo e tipo utilizzando i metodi cerca(), cercacategoria(), cercatipo() e cercagruppo() di ClassificaERicercaTarget java.lang.string[] cercanome(java.lang.string nome) 4

6 ricerca semplice per nome utilizzando il metodo cerca() di ClassificaERicercaTarget java.lang.string[] cercanomecategoria(java.lang.string nome, java.lang.string categoria) ricerca per nome e categoria utilizzando il metodo cercacategaria() e cerca() di ClassificaERicercaTarget Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Field Detail classificaericercatarget public ClassificaERicercaTarget classificaericercatarget classificaericercafacade public ClassificaERicercaFacade classificaericercafacade Constructor Detail AbstractionRicerca public AbstractionRicerca() Method Detail cercanome public java.lang.string[] cercanome(java.lang.string nome) ricerca semplice per nome utilizzando il metodo cerca() di ClassificaERicercaTarget nome - nome documento array di riferimento ai documenti trovati cercanomecategoria public java.lang.string[] cercanomecategoria(java.lang.string nome, java.lang.string categoria) ricerca per nome e categoria utilizzando il metodo cercacategaria() e cerca() di ClassificaERicercaTarget 5

7 nome - nome documento categoria - categoria documento array di riferimenti ai documenti trovati cercaavanzato public java.lang.string[] cercaavanzato(java.lang.string nome, java.lang.string categoria, java.lang.string tipo, java.lang.string gruppo) ricerca avanzata per nome, categoria, gruppo e tipo utilizzando i metodi cerca(), cercacategoria(), cercatipo() e cercagruppo() di ClassificaERicercaTarget nome - nome documento categoria - categoria documento tipo - tipo documento gruppo - tipo gruppo array di riferimenti ai docuementi trovati abstractionricerca public void abstractionricerca() costruttore della classe Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD 6

8 3.2 Classe ClassificaERicercaAdapter Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD ClassificaERicerca Class ClassificaERicercaAdapter java.lang.object ClassificaERicerca.ClassificaERicercaTarget ClassificaERicerca.ClassificaERicercaAdapter public class ClassificaERicercaAdapter extends ClassificaERicercaTarget Adapter. Adatta l'interfaccia di ClassificaERicerca all'interfaccia ClassificaERicercaTarget. Version: 0.9 Author: Attilio Minacori Field Summary ClassificaERicerca.ClassificaERicerca classificaericerca ClassificaERicerca.Documento documento Fields inherited from class ClassificaERicerca.ClassificaERicercaTarget abstractionricerca, classificaericercafacade Constructor Summary ClassificaERicercaAdapter() Method Summary java.lang.string[ ] java.lang.string[ ] java.lang.string[ ] java.lang.string[ ] cerca(java.lang.string nome) ricerca per nome documento cercacategoria(java.lang.string categoria) ricerca per categoria di documenti cercagruppo(java.lang.string gruppo) ricerca dei documenti appartenenti ad un gruppo cercatipo(java.lang.string tipo) ricerca per tipo di documento 7

9 void ClassificaERIcercaAdapter() costruttore di default void ClassificaERicercaAdapter(ClassificaERicerca.ClassificaERice rca adaptee) Costruttore con l' Adaptee come parametro java.lang.string[ ] listacategorie() serve per avere la lista delle categorie presenti nel sistema java.lang.string[ ] listagruppi(java.lang.string nomeutente) serve ad ottenere la lista dei gruppi a cui appartiene l'utente java.lang.string[ ] listatipo() serve ad ottenere la lista dei tipi di documenti presenti nel sistema Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Field Detail documento public ClassificaERicerca.Documento documento classificaericerca public ClassificaERicerca.ClassificaERicerca classificaericerca Constructor Detail ClassificaERicercaAdapter public ClassificaERicercaAdapter() Method Detail cerca public java.lang.string[] cerca(java.lang.string nome) ricerca per nome documento Overrides: cerca in class ClassificaERicercaTarget nome - nome documento array riferimento ai documenti trovati 8

10 cercacategoria public java.lang.string[] cercacategoria(java.lang.string categoria) ricerca per categoria di documenti Overrides: cercacategoria in class ClassificaERicercaTarget categoria - categoria del documento array di riferimenti ai documenti trovati cercatipo public java.lang.string[] cercatipo(java.lang.string tipo) ricerca per tipo di documento Overrides: cercatipo in class ClassificaERicercaTarget tipo - tipo documento array di riferimenti ai documenti trovati cercagruppo public java.lang.string[] cercagruppo(java.lang.string gruppo) ricerca dei documenti appartenenti ad un gruppo Overrides: cercagruppo in class ClassificaERicercaTarget gruppo - nome gruppo array di riferimenti ai documenti trovati listacategorie public java.lang.string[] listacategorie() serve per avere la lista delle categorie presenti nel sistema Overrides: listacategorie in class ClassificaERicercaTarget 9

11 la lista delle categorie presenti nel sistema listatipo public java.lang.string[] listatipo() serve ad ottenere la lista dei tipi di documenti presenti nel sistema Overrides: listatipo in class ClassificaERicercaTarget la lista dei tipi presenti nel sistema listagruppi public java.lang.string[] listagruppi(java.lang.string nomeutente) serve ad ottenere la lista dei gruppi a cui appartiene l'utente Overrides: listagruppi in class ClassificaERicercaTarget nomeutente - nome dell'utente di cui si vuole conoscere i gruppi a cui appartiene lista dei gruppi a cui appartiene l'utente ClassificaERIcercaAdapter public void ClassificaERIcercaAdapter() costruttore di default ClassificaERicercaAdapter public void ClassificaERicercaAdapter(ClassificaERicerca.ClassificaERicerca adaptee) Costruttore con l' Adaptee come parametro adaptee - oggetto che viene adattato al sistema Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes All Classes SUMMARY: NESTED FIELD CONSTR METHOD DETAIL: FIELD CONSTR METHOD 3.3 Classe ClassificaERicercaFacade 10

12 Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD ClassificaERicerca Class ClassificaERicercaFacade java.lang.object ClassificaERicerca.ClassificaERicercaFacade public class ClassificaERicercaFacade extends java.lang.object Facade. Assegna le richieste del client alle appropriate classi del sottosistema. Version: 0.9 Author: Giuseppe Calè e Attilio Minacori Field Summary AbstractionRicerca abstractionricerca ClassificaERicercaTarget classificaericercatarget Constructor Summary ClassificaERicercaFacade() Method Summary java.lang.string[] cerca(java.lang.string nome) ricerca semplice per nome documento java.lang.string[] cercaavanzata(java.lang.string nome, java.lang.string categoria, java.lang.string tipo, java.lang.string gruppo) ricerca avanzata per nome, categoria, tipo e gruppo di appartenenza java.lang.string[] cercanomecategoria(java.lang.string nome, java.lang.string categoria) ricerca semplice per nome e categoria java.lang.string[] cercanomegruppo(java.lang.string nome, java.lang.string gruppo) ricerca per nome e gruppo void ClassificaERicercaFacade() 11

13 costruttore di default java.lang.string[] listacategorie() ritorna la lista delle categorie presenti nel sistema java.lang.string[] listagruppi(java.lang.string nomeutente) ritorna la lista dei gruppi a cui appartienen l'utente che richiede la ricerca java.lang.string[] listatipo() ritorna la lista dei tipi presenti nel sistema Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Field Detail abstractionricerca public AbstractionRicerca abstractionricerca classificaericercatarget public ClassificaERicercaTarget classificaericercatarget Constructor Detail ClassificaERicercaFacade public ClassificaERicercaFacade() Method Detail cerca public java.lang.string[] cerca(java.lang.string nome) ricerca semplice per nome documento nome - nome del documento da cercare un'array di riferimenti ai documenti trovati cercanomecategoria public java.lang.string[] cercanomecategoria(java.lang.string nome, java.lang.string categoria) 12

14 ricerca semplice per nome e categoria nome - nome del documento da ricercare categoria - categoria del documento da ricercare un'array di riferimenti ai documenti trovati cercaavanzata public java.lang.string[] cercaavanzata(java.lang.string nome, java.lang.string categoria, java.lang.string tipo, java.lang.string gruppo) ricerca avanzata per nome, categoria, tipo e gruppo di appartenenza nome - nome documento categoria - categoria documenti tipo - tipo del documento gruppo - gruppo a cui appartiene il documento un'array di riferimenti ai documenti trovati cercanomegruppo public java.lang.string[] cercanomegruppo(java.lang.string nome, java.lang.string gruppo) ricerca per nome e gruppo nome - nome del documento gruppo - gruppo a cui appartiene il documento un'array di riferimenti ai documenti trovati listacategorie public java.lang.string[] listacategorie() ritorna la lista delle categorie presenti nel sistema lista di tutte le categorie listatipo 13

15 public java.lang.string[] listatipo() ritorna la lista dei tipi presenti nel sistema lista di tutti i tipi di documento listagruppi public java.lang.string[] listagruppi(java.lang.string nomeutente) ritorna la lista dei gruppi a cui appartienen l'utente che richiede la ricerca nomeutente - nome dell'utente lista dei gruppi a cui appartiene l'utente ClassificaERicercaFacade public void ClassificaERicercaFacade() costruttore di default Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD 14

16 3.4 Classe ClassificaERicercaTarget Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD ClassificaERicerca Class ClassificaERicercaTarget java.lang.object ClassificaERicerca.ClassificaERicercaTarget Direct Known Subclasses: ClassificaERicercaAdapter public class ClassificaERicercaTarget extends java.lang.object Target. Definisce l'interfaccia dell'adapter ClassificaERicercaAdapter. E' anche parte del pattern Bridge e fa da "Implementor" per la classe AbstractionRicerca. Version: 0.9 Author: Giuseppe Calè Field Summary AbstractionRicerca abstractionricerca ClassificaERicercaFacade classificaericercafacade Constructor Summary ClassificaERicercaTarget() Method Summary java.lang.string[] cerca(java.lang.string nome) ricerca semplice per nome void cercacategoria(java.lang.string categoria) ricerca semplice per categoria java.lang.string[] cercagruppo(java.lang.string gruppo) ricerca semplice per gruppo java.lang.string[] cercatipo(java.lang.string tipo) ricerca semplice per tipo 15

17 java.lang.string[] listacategorie() lista delle categorie presenti nel sistema java.lang.string[] listagruppi(java.lang.string nomeutente) lista dei gruppi a cui un utente appartiene java.lang.string[] listatipo() lista dei tipi presenti nel sistema Methods inherited from class java.lang.object clone, equals, finalize, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait Field Detail abstractionricerca public AbstractionRicerca abstractionricerca classificaericercafacade public ClassificaERicercaFacade classificaericercafacade Constructor Detail ClassificaERicercaTarget public ClassificaERicercaTarget() Method Detail cerca public java.lang.string[] cerca(java.lang.string nome) ricerca semplice per nome nome - nome documento un'array di riferimenti ai documenti trovati cercacategoria public void cercacategoria(java.lang.string categoria) ricerca semplice per categoria 16

18 categoria - nome categoria cercatipo public java.lang.string[] cercatipo(java.lang.string tipo) ricerca semplice per tipo tipo - tipo documento un'array di riferimenti ai documenti trovati cercagruppo public java.lang.string[] cercagruppo(java.lang.string gruppo) ricerca semplice per gruppo gruppo - nome del gruppo o archivio un'array di riferimenti ai documenti trovati listacategorie public java.lang.string[] listacategorie() lista delle categorie presenti nel sistema lista delle categorie listatipo public java.lang.string[] listatipo() lista dei tipi presenti nel sistema lista dei tipi di documenti listagruppi public java.lang.string[] listagruppi(java.lang.string nomeutente) 17

19 lista dei gruppi a cui un utente appartiene nomeutente - nome utente lista dei a cui appartiene l'utente Package Class Tree Deprecated Index Help PREV CLASS NEXT CLASS SUMMARY: NESTED FIELD CONSTR METHOD FRAMES NO FRAMES All Classes All Classes DETAIL: FIELD CONSTR METHOD 18

20 4 Scheletro delle classi del package ClassificaERicerca 4.1 Scheletro della classe AbstractionRicerca package ClassificaERicerca; / Abstraction del Pattern Bridge. Definisce l'interfaccia dell'abstraction. E' utilizzata direttamente dal Facade Attilio Giuseppe 0.9 / public abstract class AbstractionRicerca { / <p>ricerca semplice per nome utilizzando il metodo cerca() di nome nome array di riferimento ai documenti trovati / public String[] cercanome(string nome) { / <p>ricerca per nome e categoria utilizzando il metodo cercacategaria() e cerca() di nome nome categoria categoria array di riferimenti ai documenti trovati / public String[] cercanomecategoria(string nome, String categoria) { / <p>ricerca avanzata per nome, categoria, gruppo e tipo utilizzando i metodi cerca(), cercacategoria(), cercatipo() e cercagruppo() di nome nome categoria categoria tipo tipo gruppo tipo array di riferimenti ai docuementi trovati / public String[] cercaavanzato(string nome, String categoria, String tipo, String gruppo) { 19

21 / <p>costruttore della classe</p> / public void abstractionricerca() { / / public ClassificaERicerca.ClassificaERicercaTarget classificaericercatarget; / / public ClassificaERicerca.ClassificaERicercaFacade classificaericercafacade; 20

22 4.2 Scheletro della classe ClassificaERicercaAdapter package ClassificaERicerca; / Adapter. Adatta l'interfaccia di ClassificaERicerca all'interfaccia Attilio 0.9 / public class ClassificaERicercaAdapter extends ClassificaERicerca.ClassificaERicercaTarget { / / public ClassificaERicerca.Documento documento; / <p>ricerca per nome nome nome array riferimento ai documenti trovati / public String[] cerca(string nome) { / <p>ricerca per categoria di categoria categoria del array di riferimenti ai documenti trovati / public String[] cercacategoria(string categoria) { / <p>ricerca per tipo di tipo tipo array di riferimenti ai documenti trovati / public String[] cercatipo(string tipo) { / <p>ricerca dei documenti appartenenti ad un gruppo</p> 21

23 @param gruppo nome array di riferimenti ai documenti trovati / public String[] cercagruppo(string gruppo) { / <p>serve per avere la lista delle categorie presenti nel la lista delle categorie presenti nel sistema / public String[] listacategorie() { / <p>serve ad ottenere la lista dei tipi di documenti presenti nel la lista dei tipi presenti nel sistema / public String[] listatipo() { / <p>serve ad ottenere la lista dei gruppi a cui appartiene nomeutente nome dell'utente di cui si vuole conoscere i gruppi a cui lista dei gruppi a cui appartiene l'utente / public String[] listagruppi(string nomeutente) { / <p>costruttore di default</p> / public void ClassificaERIcercaAdapter() { / <p>costruttore con l' Adaptee come adaptee oggetto che viene adattato al sistema / public void ClassificaERicercaAdapter(ClassificaERicerca.ClassificaERicerca adaptee) { 22

24 / / public ClassificaERicerca.ClassificaERicerca classificaericerca; 23

25 4.3 Scheletro della classe ClassificaERicercaFacade package ClassificaERicerca; / Facade. Assegna le richieste del client alle appropriate classi del Giuseppe Calè e Attilio 1.01 / public class ClassificaERicercaFacade { / <p>ricerca semplice per nome nome nome del documento da un'array di riferimenti ai documenti trovati / public String[] cerca(string nome) { / <p>ricerca semplice per nome e nome nome del documento da categoria categoria del documento da un'array di riferimenti ai documenti trovati / public String[] cercanomecategoria(string nome, String categoria) { / <p>ricerca avanzata per nome, categoria, tipo e gruppo di nome nome categoria categoria tipo tipo del gruppo gruppo a cui appartiene il un'array di riferimenti ai documenti trovati / public String[] cercaavanzata(string nome, String categoria, String tipo, String gruppo) { / <p>ricerca per nome e nome nome del gruppo gruppo a cui appartiene il documento 24

26 @return un'array di riferimenti ai documenti trovati / public String[] cercanomegruppo(string nome, String gruppo) { / <p>ritorna la lista delle categorie presenti nel lista di tutte le categorie / public String[] listacategorie() { / <p>ritorna la lista dei tipi presenti nel lista di tutti i tipi di documento / public String[] listatipo() { / <p>ritorna la lista dei gruppi a cui appartienen l'utente che richiede la nomeutente nome lista dei gruppi a cui appartiene l'utente / public String[] listagruppi(string nomeutente) { / <p>costruttore di default</p> / public void ClassificaERicercaFacade() { / / public ClassificaERicerca.AbstractionRicerca abstractionricerca; / 25

27 / public ClassificaERicerca.ClassificaERicercaTarget classificaericercatarget; 26

28 4.4 Scheletro della classe ClassificaERicercaTarget package ClassificaERicerca; / Target. Definisce l'interfaccia dell'adapter ClassificaERicercaAdapter. E' anche parte del pattern Bridge e fa da "Implementor" per la classe Giuseppe 0.9 / public class ClassificaERicercaTarget { / <p>ricerca semplice per nome nome un'array di riferimenti ai documenti trovati / public String[] cerca(string nome) { / <p>ricerca semplice per categoria nome categoria / public void cercacategoria(string categoria) { / <p>ricerca semplice per tipo tipo un'array di riferimenti ai documenti trovati / public String[] cercatipo(string tipo) { / <p>ricerca semplice per gruppo nome del gruppo o un'array di riferimenti ai documenti trovati / public String[] cercagruppo(string gruppo) { 27

29 / <p>lista delle categorie presenti nel lista delle categorie / public String[] listacategorie() { / <p>lista dei tipi presenti nel lista dei tipi di documenti / public String[] listatipo() { / <p>lista dei gruppi a cui un utente nomeutente nome lista dei a cui appartiene l'utente / public String[] listagruppi(string nomeutente) { / / public ClassificaERicerca.AbstractionRicerca abstractionricerca; / / public ClassificaERicerca.ClassificaERicercaFacade classificaericercafacade; 28

La classe Object. Ce li ha anche HelloWorld!!!

La classe Object. Ce li ha anche HelloWorld!!! La classe Object Ogni classe estende implicitamente la classe java.lang.object La classe java.lang.object contiene dei metodi che vengono implicitamente ereditati I metodi ereditati sono: clone equals

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

Infrastruttura per la Cooperazione Applicativa - C.A.R.T.

Infrastruttura per la Cooperazione Applicativa - C.A.R.T. Infrastruttura per la Cooperazione Applicativa - C.A.R.T. Linee guida per lo sviluppo dei proxy applicativi page 1/36 Indice 1 Introduzione... 5 1.1Scopo... 5 1.2Acronimi e Abbreviazioni... 5 2Linee guide

Dettagli

Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso)

Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso) 1) Si considerino le classi Java: Corso Linguaggi di programmazione II - Unina Esercitazione (prova intercorso) class Card Card (String seed, int value) this.seed=seed; this.value=value; String seed; int

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Commenti per documentare il codice (doc comments) I commenti speciali devono essere delimitati da /**... */.

Commenti per documentare il codice (doc comments) I commenti speciali devono essere delimitati da /**... */. Linguaggi Corso di Laurea Ingegneria Informatica (M-Z) A.A. 2006-2007 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Documentazione in Java 1 Javadoc Terminology

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

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 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo

Dettagli

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione.

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione. Obiettivi Unità B2 Gli oggetti: concetti avanzati Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione Ereditarietà L ereditarietà permette

Dettagli

Il linguaggio Java. La superclasse universale Object

Il linguaggio Java. La superclasse universale Object Il linguaggio Java La superclasse universale Object La classe Object La classe Object è la superclasse, diretta o indiretta, di ogni classe La classe Object definisce lo stato ed il comportamento base

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

Dettagli

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe

Dettagli

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo. Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Classi astratte Le classi astratte sono un ibrido tra le classi concrete e le interfacce. Hanno le stesse caratteristiche di una

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

Dettagli

Livelli di astrazione

Livelli di astrazione Realizzare Classi Astrazione Perdita di dettaglio Utile nella descrizione, progettazione, implementazione e utilizzo di sistemi complessi Dettagli trascurabili vengono incapsulati in sottosistemi più semplici

Dettagli

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione 15. Java Remote Method Invocation (3) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il design pattern

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

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

Introduzione al Java Collections Framework. Java Collections Framework (cont.) Interfacce del Collections Framework

Introduzione al Java Collections Framework. Java Collections Framework (cont.) Interfacce del Collections Framework 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) Introduzione al Java Collections

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

Dettagli

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,

Dettagli

Introduzione al Java Collections Framework

Introduzione al Java Collections Framework 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

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola demola.francesco@unimore.it DII, Modena Via Vignolese (lab. Dottorandi

Dettagli

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni

SOMMARIO DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE. Introduzione. Proprietà e Operazioni. Proprietà e Operazioni SOMMARIO Introduzione Proprietà e Operazioni DIAGRAMMI DELLE CLASSI E DEGLI OGGETTI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica,

Dettagli

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...

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

DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE INTRODUZIONE ADAPTER. Scopo Convertire l interfaccia di una classe in un altra.

DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE INTRODUZIONE ADAPTER. Scopo Convertire l interfaccia di una classe in un altra. DESIGN PATTERN STRUTTURALI DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

Esempi in Java di program.ne O-O

Esempi in Java di program.ne O-O Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico

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

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73 Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe

Dettagli

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA OO. OO in Java

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA OO. OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 21 1 febbraio 2006

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

La classe Object. L2-Linguaggi di Programmazione II-unina 1

La classe Object. L2-Linguaggi di Programmazione II-unina 1 La classe Object L2-Linguaggi di Programmazione II-unina 1 JAVA è dotata di una classe speciale, una classe cosmica, denominata Object Qualsiasi altra classe deriva da Object Object Una variabile di tipo

Dettagli

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008 UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata

Dettagli

Giuseppe Callegarin Java, Oggetti e Strutture Dati Cedam INDICE

Giuseppe Callegarin Java, Oggetti e Strutture Dati Cedam INDICE Giuseppe Callegarin Java, Oggetti e Strutture Dati Cedam 2004 www.javaosd.org INDICE CAP. 1 Macchine, linguaggi e comunicazioni...1 1.1 Dai grandi elaboratori all era dei dispositivi programmabili e comunicanti...1

Dettagli

Richiami su oggetti e OOP

Richiami su oggetti e OOP Richiami su oggetti e OOP Un oggetto (object) è una entità caratterizzata da una struttura dati alla quale si associa l insieme delle operazioni che è possibile compiere su di essa. Un oggetto può essere

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

03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016

03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016 03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016 Obiettivi dell esercitazione: Utilizzo del pattern MVC Utilizzo di HashSet Introduzione alla complessità ESERCIZIO 1

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

24 - Possibili approfondimenti

24 - Possibili approfondimenti 24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Concorrenza e sincronizzazione

Concorrenza e sincronizzazione Concorrenza e sincronizzazione Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Cosa faremo oggi 2 Concorrenza Sincronizzazione Concorrenza 3 Nei programmi Java fino ad ora sviluppati è presente

Dettagli

Errata Corrige di Manuale di Java 8

Errata Corrige di Manuale di Java 8 Errata Corrige di Manuale di Java 8 pag. 43 - par. 2.5.1 - primo riquadro che riporta linee di codice public class Punto { public Punto() //metodo costruttore { deve essere corretto come di seguito: public

Dettagli

Introduzione Generics Iteratori. Collezioni in Java. Dr. Giulio Pellitta. 13 aprile 2011

Introduzione Generics Iteratori. Collezioni in Java. Dr. Giulio Pellitta. 13 aprile 2011 13 aprile 2011 Cos è una collezione? Gerarchia delle collezioni Introduzione Una collezione è semplicemente un oggetto che raggruppa più oggetti (detti elementi della collezione) in una singola unità.

Dettagli

Javadoc: Documentazione semi-automatica

Javadoc: Documentazione semi-automatica Javadoc: Documentazione semi-automatica Il sistema di documentazione di Java (Javadoc) permette di generare automaticamente un documentazione in formato HTML dei vostri programmi. Il trucco consiste nel

Dettagli

Attraversamento di un albero (binario)

Attraversamento di un albero (binario) Attraversamento di un albero (binario) 1) Preordine Algorithm binarypreorder( T, v) //caso di albero binario Visita il nodo v; binarypreorder( T, T.leftChild(v)); //Attraversamento ricorsivo sottoalbero

Dettagli

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA. OO in Java

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA. OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 13 novembre 2013 Programmazione

Dettagli

Esempio: Costruttori ed ereditarietà

Esempio: Costruttori ed ereditarietà Esempio: 1 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il costruttore di default (quello senza parametri) Se in un costruttore

Dettagli

STRUTTURE DATI: OLTRE GLI ARRAY LISTE

STRUTTURE DATI: OLTRE GLI ARRAY LISTE STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

design pattern una soluzione progettuale generale a un problema ricorrente

design pattern una soluzione progettuale generale a un problema ricorrente DESIGN PATTERN DESIGN PATTERN Un design pattern può essere definito "una soluzione progettuale generale a un problema ricorrente". Esso non è una libreria o un componente di software riusabile, quanto

Dettagli

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

Dettagli

oggetti: Cenni generali Programmazione ad Ingegneria Informatica e dell'informazione Michelangelo Diligenti

oggetti: Cenni generali Programmazione ad Ingegneria Informatica e dell'informazione Michelangelo Diligenti Programmazione ad oggetti: Cenni generali Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@dii.unisi.it Argomenti Programmazione ad oggetti Motivazioni Classi Metodi e membri

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

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 Variabili membro, Metodi La parola chiave final

Programmazione Java Variabili membro, Metodi La parola chiave final Programmazione Java Variabili membro, Metodi La parola chiave final Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Sommario 2 2» Variabili membro»

Dettagli

DESIGN PATTERNS Parte 5. Facade Strategy Composite Interpreter

DESIGN PATTERNS Parte 5. Facade Strategy Composite Interpreter DESIGN PATTERNS Parte 5 Facade Strategy Composite Interpreter FACADE Per proteggere la nostra applicazione sfruttando il Protect Variation possiamo usare il pattern Facade. Questo pattern è ottimo per

Dettagli

Implementazione ADT: Alberi

Implementazione ADT: Alberi Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

singoli campi la classe Constructor permette di creare nuovi oggetti.

singoli campi la classe Constructor permette di creare nuovi oggetti. RIFLESSIONE (reflection) Il supporto alla riflessione consente a un programma di ispezionarsi ed operare su se stesso. Tale supporto comrende: la classe Class nel package java.lang; l intero package java.lang.reflect

Dettagli

Il linguaggio C# Ereditarietà ed Interfacce

Il linguaggio C# Ereditarietà ed Interfacce Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it

Dettagli

DESIGN PATTERNS Parte 6. State Proxy

DESIGN PATTERNS Parte 6. State Proxy DESIGN PATTERNS Parte 6 State Proxy STATE Il Design Pattern State nasce dall'esigenza di poter gestire gli stati di una classe senza dover usare dei costrutti come gli Enum e quindi delle switch. Prendiamo

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

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 romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

Javadoc Terminology 25/11/2011

Javadoc Terminology 25/11/2011 Javadoc Terminology API documentation (API docs) or API specifications (API specs) Descrizione On-line o stampata dell API, intended primarily for programmers writing in Java. Possono essere generate automaticamente

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015 Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3 Introduzione alle annotation di Hibernate3 a cura di Lucio Benfante Hibernate Hibernate è un framework che realizza un object/relational mapping (ORM) fra oggetti Java e strutture di un database relazionale

Dettagli

INTRODUZIONE DESIGN PATTERN STRUTTURALI ADAPTER. INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Scopo dei design pattern strutturali

INTRODUZIONE DESIGN PATTERN STRUTTURALI ADAPTER. INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Scopo dei design pattern strutturali DESIGN PATTERN STRUTTURALI rcardin@math.unipd.it DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2015

Dettagli

03 Una Rapida Parentesi su Java 5 e Annotazioni (JSR-175)

03 Una Rapida Parentesi su Java 5 e Annotazioni (JSR-175) Java 5 e Annotazioni Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2010/2011 Sistemi Distribuiti M 03 Una Rapida Parentesi su Java 5 e Annotazioni (JSR-175) Docente:

Dettagli

Il pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione

Il pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione Il pattern Factory Il pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione degli oggetti e delle problematiche

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli

Alcuni diagrammi. OCL (Object Constraint Language)

Alcuni diagrammi. OCL (Object Constraint Language) UML e Java UML Alcune discipline ingegneristiche dispongono di validi mezzi di rappresentazione (schemi, diagrammi di prestazioni e consumi,...) Il software non dispone ancora di tecniche efficaci per

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

TIPI PRIMITIVI: LIMITI

TIPI PRIMITIVI: LIMITI TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come

Dettagli

Web Services in Eclipse. Sistemi Informativi Aziendali A.A. 2011/2012

Web Services in Eclipse. Sistemi Informativi Aziendali A.A. 2011/2012 Web Services in Eclipse Outline Apache Axis Web Service Clients Creating Web Services 2 Creating Web Services Web Services in Eclipse At the core of a web service The methods of any(*) Java class may be

Dettagli

Modelli e strumenti per la generazione automatica di codice

Modelli e strumenti per la generazione automatica di codice tesi di laurea Anno Accademico 2005-2006 relatore Ch.mo prof. Porfirio Tramontana candidato Valerio Lombardi Matr. 534/237 Contesto e Contributo Fusione tra il mondo della modellazione e della programmazione

Dettagli

Fondamenti di Informatica I

Fondamenti di Informatica I Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:

Dettagli

Il pattern ABSTRACT FACTORY

Il pattern ABSTRACT FACTORY Il pattern ABSTRACT FACTORY Abstract Factory L intento è quello di fornire una interfaccia per creare famiglie di oggetti in relazione o dipendenti tra loro, senza dovere specificare le loro classi concrete.

Dettagli

Programmazione ad oggetti: Cenni generali

Programmazione ad oggetti: Cenni generali Programmazione ad oggetti: Cenni generali Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@diism.unisi.it Argomenti Programmazione ad oggetti Motivazioni Classi Metodi e membri

Dettagli

Java. Ereditarieta RIUSO DEL CODICE

Java. Ereditarieta RIUSO DEL CODICE Java Ereditarieta RIUSO DEL CODICE Durante lo sviluppo di codice frequentemente i programmatori sviluppano codice molto simile a codice gia esistente Questo, spesso, viene fatto manipolando il codice esistente

Dettagli

DESIGN PATTERNS Parte 4. Product Trader Service Manager Type Object Manager Adapter

DESIGN PATTERNS Parte 4. Product Trader Service Manager Type Object Manager Adapter DESIGN PATTERNS Parte 4 Product Trader Service Manager Type Object Manager Adapter PRODUCT TRADER Il Product Trader è un design pattern per la gestione delle estensioni in modo componibile, ovvero a plug-in.

Dettagli

Tipi di Dati Astratti

Tipi di Dati Astratti Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

Introduzione a Java. Jacopo Torrini. Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software. torrini@dsi.unifi.

Introduzione a Java. Jacopo Torrini. Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software. torrini@dsi.unifi. Introduzione a Java Jacopo Torrini Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software torrini@dsi.unifi.it Introduzione Il linguaggio Java è un linguaggio di alto livello con

Dettagli

Problema: un astrazione può avere una implementazione tra tante diverse fra loro

Problema: un astrazione può avere una implementazione tra tante diverse fra loro Bridge Problema: un astrazione può avere una implementazione tra tante diverse fra loro Tipica soluzione: ereditarietà Una classe astratta definisce l interfaccia dell astrazione e le sottoclassi realizzano

Dettagli

Polimorfismo parametrico vs polimorfismo per inclusione

Polimorfismo parametrico vs polimorfismo per inclusione Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico

Dettagli

TIPI PRIMITIVI E CLASSI WRAPPER

TIPI PRIMITIVI E CLASSI WRAPPER I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende

Dettagli

La programmazione ad oggetti (OOP)

La programmazione ad oggetti (OOP) Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente

Dettagli

Breve introduzione al Javadoc

Breve introduzione al Javadoc Premessa Javadoc è uno strumento che permette di documentare i sorgenti di un programma all interno dei sorgenti stessi. Anziché scrivere la documentazione di un programma in un file separato, il programmatore

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli