Progettazione : Design Pattern Creazionali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progettazione : Design Pattern Creazionali"

Transcript

1 Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali Factory Method Singleton Prototype Abstract Factory Builder Fondamenti di Informatica II

2 Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali(1/2) I Design Pattern Creazionali creano delle astrazioni sul processo di istanziazione rendendo il sistema indipendente da come gli oggetti sono creati (Esempi Principale: Pattern AbstractFactory). Spesso sono utilizzati quando la creazione di un oggetto o di un sistema è definita per piccoli componenti più piccoli piuttosto che creando complessi meccanismo gerarchici basati sull ereditarietà (Esempi Principale: Pattern Builder). Si astrae sui componenti di un modulo, mentre la struttura del modulo resta concreta. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

3 Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali(2/2) Due caratteristiche ricorrenti in questi pattern: Nascondono la conoscenza riguardo a quali classi concrete sono effettivamente usate. Nascondono il modo con cui specifiche istanza vengono create ed organizzate. Nota Come vedremo anche per gli altri pattern, ci sono circostanze in cui i pattern creazionali sono alternativi tra di loro, così come casi in cui è utili usarli in modo misto. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

4 Factory Method Factory Method Nome alternativo : Costruttore Virtuale Obiettivo Definire una funzione astratta per la generazione di un oggetto, in modo tale che la generazione dell oggetto sia delegata alle sotto classi. Esempio Si vuole scrivere una libreria generale per la gestione dei dati di un insieme di Dipendeti, che venga poi applicata alla gestione dei dati dei Muratori che sono dipendenti di una azienda impegnata nell Edilizia. La Classe Muratore estende la Classe Dipendente Voglio tuttavia scrivere delle funzionalità sui Dipendenti che funzionino per qualsiasi Dipendente. Nella mia applicazione, il processo dovrebbe usare solo istanza di Muratore. Ho bisogno di un meccanismo che astragga sol modo con cui sono istanziati i Dipendenti. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

5 Factory Method Factory Method: Struttura A. Martinelli () Design Pattern Creazionali 30/11/ / 21

6 Factory Method Factory Method: Partecipanti e Caratteristiche Partecipanti: Product definisce l interfaccia o la generalizzazione per oggetti prodotti dal FactoryMethod (il Dipendente). ConcreteProduct oggetto concreto che implementa/estende il Prodotto (il Muratore). Creator definise il Factory Method, che ritorna un oggetto di tipo prodotto. ConcreteCreator implementa il Factory Method, fornendo una istanza di ConcreteProduct. Caratteristiche: Astrarre sul modo con cui un oggetto viene istanziato. Possono essere utilizzati per l implementazione delle AbstractFactory. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

7 Factory Method Factory Method: Esempio di Codice Un Factory Method Astrazione : publ ic i n t e r f a c e DipendenteCreator { public Dipendente generatedipendente ( String nome, String cognome, Date nascita, i nt matricola ) ; } Implementazione : publ ic i n t e r f a c e MuratoreCreator implements DipendeteCreator { public Dipendente generatedipendente ( String nome, String cognome, Date nascita, i nt matricola ){ return new Muratore (nome, cognome, nascita, i nt matricola ) ; } } A. Martinelli () Design Pattern Creazionali 30/11/ / 21

8 Prototype Prototype Obiettivo Specifica le istanze che devono essere generate fornendo dei prototipi. I prototipi possono essere clonati, fornendo nuove istanze per una certa tipologia di oggetti. Esempio Si vuole realizzare un applicativo per l editing digitale di spartiti musicali. Il programma consente di posizionare su un Pannello contenente un pentagramma note, pause ed altri simboli. Gli elementi sono generati premendo su alcuni pulsanti che generano elementi grafici da trascinare all interno del pentagramma. Ogni nota porta con se informazioni relative al suono ed una rappresentazione grafica. Premendo su appositi pulsanti, sono in grado di generare nuove istanze per un certo oggetto, ad esempio la nota da un quarto Tutte le note da un quarto sono uguali all inizio del processo di inserimento Trascinando una nota in un punto del pentagramma, le vengono assegnate informazioni aggiuntive. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

9 Prototype Prototype: Struttura A. Martinelli () Design Pattern Creazionali 30/11/ / 21

10 Prototype Prototype: Partecipanti e Caratteristiche Partecipanti: Prototype un oggetto che dichiara una interfaccia per clonare se stesso ConcretePrototype Un oggetto che implementa Prototype Client Un programma che a run-time crea un nuovo oggetto clonando un prototipo. Caratteristiche: Consente di istanziare e selezionare le classi corrette a run-time. E una soluzione che consente di scrivere meno codice quando l alternativa sarebbe usare l ereditarietà per creare un numero molto grande di classi poco dissimili tra di loro (nell esempio: una classe diversa per ogni nota o pausa). E utile inoltre quando le istanze di una classe posso avere soltanto un numero finito (e piccolo) di combinazioni dei parametri. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

11 Singleton Singleton Obiettivo Il Singleton si applica quando è importante assicurarsi che di una classe esista unicamente una istanza Esempio Quando realizzo un sistema, spesso ci sono delle funzionalità condivise, di cui ci deve essere una unica istanza a disposizione Gestore del File System Gestore delle Risorse di Stampa A. Martinelli () Design Pattern Creazionali 30/11/ / 21

12 Singleton Singleton: Struttura A. Martinelli () Design Pattern Creazionali 30/11/ / 21

13 Singleton Singleton: Esempio di Codice Un Singleton publ ic cl a s s Singleton { private s t a t i c Singleton s i n gletonin s t a nce=new Singleton ( ) ; private Singleton (){ } publ ic s t a t i c Singleton getsi ngletoninstance (){ return s i ngletoninstance ; } publ ic void function1 (){ } publ ic void function2 (){ } } NOTA Se il costruttore viene definito private, nessuno sarà in grado di estendere un Singleton Se il costruttore viene definito protected, sarà possibile fornire implementazioni differenti di un Singleton per ereditarietà. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

14 Abstract Factory Abstract Factory Nomi alternativi: Kit Obiettivo Creare una interfaccia da utilizzare per la creazione di famiglie o gruppi di oggetti senza specificare le loro classi concrete. Esempio Ad un libreria per interfacce grafiche si vuole associare differenti look-and-feel. E necessario creare un sistema che consenta di assegnare componenti differenti per il look-and-feel di ogni elemento (pulsanti, pannelli) Per fare questo, è necessario astrarre sui singoli elementi, ad esempio creando una astrazione PulsanteDrawer, PannelloDrawer etc. Il meccanismo è implementato con una Factory, ovvero una classe in grado di fabbricare istanze di PulsanteDrawer, PannelloDrawer etc. Tuttavia: anche per la Factory si vuole creare una astrazione, in modo tale da poter cambiare dinamicamente il modo in cui i Drawer vengono prodotti. Questo consente di assegnare all intero sistema dei look differenti. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

15 Abstract Factory Abstract Factory: Struttura A. Martinelli () Design Pattern Creazionali 30/11/ / 21

16 Abstract Factory Abstract Factory: Partecipanti Partecipanti: AbstractFactory: dichiara una interfaccia per operazioni che creano istanze di oggetti di tipo AbstractProduct ConcreteFactory: implementa le operazioni per ottenere istanze di prodotti concreti. AbstractProduct: dichiara una interfaccia per un tipo di oggetto da Produrre ConcreteProduct: definisce un prodotto, che deve essere istanziato da una specifica ConcreteFactory. Implementa la AbstractProduct interface. Client: il sistema che ha bisogno delle istanze di ConcreteProduct, ma che dipende unicamente dalle interfacce. NOTA in questo pattern, è corretto (anzi necessario) che ci sia una Dipendenza tra la ConcreteFactory e i suoi ConcreteProduct. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

17 Abstract Factory Abstract Factory: Caratteristiche Normalmente, un sistema avrà sempre bisogno di una unica Istanza di una Abstract/ConcreteFactory. Per questo motivo spesso la AbstractFactory si implementa con un Pattern Singleton. La singola AbstractFactory si basa su un meccanismo di istanziazione dei singoli elementi che di fatto è implementabile con un Pattern Factory Method. L implementazione di una AbstractFactory può poi basarsi sul meccanismo dei Pattern Prototype. Isola le classi concrete necessarie ad un sistema Consente un rapido cambio di famiglie intere di prodotti/istanze Rende più semplice la gestione di famiglie di elementi che devono per forza cooperare tra di loro (sui quali, cioè, è indispensabile che ci siano delle dipendenze) Svantaggio: rende difficile allargare una famiglia di prodotti introducendo nuove tipologie di elementi. E quindi meno adatta su un sistema dove non è possibile definire facilmente tutte le tipologie di AbstractProduct. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

18 Builder Builder Obiettivo Astrarre sul meccanismo di costruzione di un oggetto, delegando alcune parti della costruzione dell oggetto stesso a classi derivate. In questo modo, un unico algortimo di costruzione consente di ottenere oggetti diversi. Esempio Si vuole creare una funzionalità di esportazione per un programma che usa formati file differenti: I dati del programma sono sempre gli stessi ed hanno la stessa struttura L algoritmo di scrittura dei file quindi segue gli stessi passaggi Tuttavia il modo con cui i singoli elementi di un file devono essere scritti può cdambiare A. Martinelli () Design Pattern Creazionali 30/11/ / 21

19 Builder Builder: Struttura A. Martinelli () Design Pattern Creazionali 30/11/ / 21

20 Builder Builder: Partecipanti e Caratteristiche Partecipanti: Builder: interfaccia astratta per creare una parte o un elemento di un oggetto. ConcreteBuilder: una implementazione del Builder che costruisce ed assembla le parti di un prodotto. Director: costruisce un oggetto usando il builder. Il Director implementa tecnicamente un algoritmo astratto. Product: rappresenta l oggetto effettivamente costruito, di cui il ConcreteBuilder definisce la parte. NOTA la coppia Director-Builder è definita con una classe concreta dipendente da una interfaccia. Una alternativa in alcune circostanza buona può essere quella di fondere i due elementi in una unica classe astratta, che contiene le funzionalità concrete del Director e le astrazioni del Builder. Caratteristiche Isola il codice necessario alla costruzione e rappresentazione di un Prodotto. consente di variare la rappresentazione interna di un oggetto. A. Martinelli () Design Pattern Creazionali 30/11/ / 21

21 Builder Builder: Un Algoritmo di Costruzione A. Martinelli () Design Pattern Creazionali 30/11/ / 21

Progettazione! Progettazione! Progettazione! Progettazione!

Progettazione! Progettazione! Progettazione! Progettazione! Creare un oggetto specificandone la classe esplicitamente! Orienta ad una particolare implementazione invece che ad una interfaccia! Può complicare i cambiamenti futuri! E meglio creare oggetti indirettamente!

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI 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

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

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

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Gerarchie di Tipi Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Notazione UML Relazione Simbolo Significato Ereditarietà Implementazione Aggregazione Dipendenza

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Algoritmi per suddividere il testo in righe in un editor di testo

Algoritmi per suddividere il testo in righe in un editor di testo Strategy Esempio Algoritmi per suddividere il testo in righe in un editor di testo Ne esistono di varia natura, più o meno complessi (es. numero fisso di parole, lunghezza fissa di una riga, etc) Includere

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

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

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

CRM Configurazione e gestione accessi

CRM Configurazione e gestione accessi Gestione dei Reparti VtigerCrm fornisce funzionalità per configurare i privilegi di accesso ai dati in maniera granulare per ogni utente o gruppo di utenti registrato nel programma. Le funzionalità di

Dettagli

SISTEMA CONTROLLO ACCESSO PARCHI AVVENTURA JUNGLE TRACK

SISTEMA CONTROLLO ACCESSO PARCHI AVVENTURA JUNGLE TRACK SISTEMA CONTROLLO ACCESSO PARCHI AVVENTURA JUNGLE TRACK LISTA DELLE OPZIONI DISPONIBILI NELLA VERSIONE COMPLETA ATTIVITA E LISTINI Si possono gestire in contemporanea attività basate su listini indipendenti.

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

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

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

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

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

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

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

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

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

Dettagli

ESEMPIO DI QUERY SUL FILE Formario_minuscolo

ESEMPIO DI QUERY SUL FILE Formario_minuscolo ESEMPIO DI QUERY SUL FILE Formario_minuscolo Tutte le interrogazioni possono essere condotte su qualsiasi campo della base di dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...). Poniamo ad esempio

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1 Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Ingegneria del Software. Introduzione al pattern

Ingegneria del Software. Introduzione al pattern Ingegneria del Software Introduzione al pattern 1 Esempio introduttivo (1/3) Si pensi ad un modello di oggetti che rappresenta gli impiegati (Employee) di una azienda. Tra gli impiegati esistono, ad esempio,

Dettagli

VPN CIRCUITI VIRTUALI

VPN CIRCUITI VIRTUALI & TUNNELING 1 Il termine VPN viene pesantemente abusato, con varie definizioni ma possiamo definire intuitivamente una VPN considerando dapprima l'idea dì una rete privata. Le aziende con molte sedi si

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 14 - Packages 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

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Basi di Dati Claudio Marrocco I report I Report sono lo strumento più adatto per ottenere una copia stampata dei dati e delle informazioni ricavate dalle

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi di dati 9 febbraio 2010 Compito A Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli

Dettagli

Object Oriented Software Design

Object Oriented Software Design Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved. SCENARIO Personas SCENARIO È una delle tecniche che aiuta il designer a far emergere le esigente dell utente e il contesto d uso. Gli scenari hanno un ambientazione, attori (personas) con degli obiettivi,

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Rich Media Communication Using Flash CS5

Rich Media Communication Using Flash CS5 Rich Media Communication Using Flash CS5 Dominio 1.0 Impostare i requisiti del progetto 1.1 Individuare lo scopo, i destinatari e le loro esigenze per i contenuti multimediali. 1.2 dentificare i contenuti

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Silca Software GLOSSARIO. February 2013 Copyright Silca S.p.A. V.2.0

Silca Software GLOSSARIO. February 2013 Copyright Silca S.p.A. V.2.0 GLOSSARIO Che cos è una SCHEDA? SCHEDA ovvero l insieme dei parametri relativi a spazi, profondità, basi del taglio, angoli, riferimenti, morsetto, fresa ( un totale di circa 250 parametri per ogni asse

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

Dettagli

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE L approvazione di una manifestazione nazionale od internazionale comporta spesso la trasmissione

Dettagli

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte. I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

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

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

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

10. Design Patterns. Andrea Polini. Ingegneria del Software Corso di Laurea in Informatica. (Ingegneria del Software) 10. Design Patterns 1 / 36

10. Design Patterns. Andrea Polini. Ingegneria del Software Corso di Laurea in Informatica. (Ingegneria del Software) 10. Design Patterns 1 / 36 10. Design Patterns Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 10. Design Patterns 1 / 36 Problemi Ci focalizziamo nelle problematiche riguardanti la

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

L isola del futuro. Guida per l insegnante

L isola del futuro. Guida per l insegnante Obiettivi educativi generali Compito di esplorazione - Dà risposte originali. - È capace di produrre molte idee. - Comprende la molteplicità dei punti di vista. Guida per l insegnante Compito di cristallizzazione

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

CMS ERMES INFORMATICA

CMS ERMES INFORMATICA 01/07/2014 Guida di riferimento alla pubblicazione di contenuti sul portale Il presente documento costituisce una guida di riferimento all aggiornamento e alla pubblicazione di contenuti sui portali web

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale Modulo Bacheca 1 INDICE 1 Generalità...3 2 Accesso al sistema...4 2.1 Requisiti tecnici 5 3 Elenco funzioni e tasti di navigazione...6 3.1

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

7.4 Estrazione di materiale dal web

7.4 Estrazione di materiale dal web 7.4 Estrazione di materiale dal web Salvataggio di file Salvataggio della pagina Una pagina web può essere salvata in locale per poterla consultare anche senza essere collegati alla Rete. Si può scegliere

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Gestione delle formazione

Gestione delle formazione IL SOFTWARE PER LA SICUREZZA E L AMBIENTE STRUMENTO Individuazione delle esigenze e programmazione della formazione Gestione delle formazione Il metodo di Risolvo per gestire un piano formativo dinamico

Dettagli

SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE

SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE 1 Informazioni generali...2 2 Procedura di autenticazione...2 2.1 Registrazione impresa...3 3 Anagrafica impresa...4 3.1 Impresa...4 3.2 Ricerca persone

Dettagli