Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore
|
|
- Concetta Rosa
- 8 anni fa
- Visualizzazioni
Transcript
1 Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter garantire al progettista un buon livello di astrazione. Utilizzando tali relazioni si può gestire l ereditarietà e il polimorfismo Corso di Laurea in Ingegneria Informatica A.A Semestre Corso (A-M) Prof. Giovanni Pascoschi 2 2 Relazioni tra oggetti e classi : Aggregazione Relazioni tra oggetti e classi : Aggregazione Collegamenti e associazioni L'aggregazione consente di poter formare aggregati di oggetti, così come avviene nel mondo reale se abbiamo un oggetto composto da più parti è piu comodo rappresentarlo in termini di queste ultime e non dell'intero oggetto, in quanto è meglio gestire piccole classi che una sola grande classe. Esistono due tipi di aggregazione una lasca e una stretta. 1. L'aggregazione lasca indica che l'oggetto "contenuto" ha vita propria anche senza l'oggetto "contenitore simbolo 2. L'aggregazione stretta invece indica che l'oggetto non ha vita propria, quindi deve essere distrutto assieme al "contenitore simbolo Si parla in questo caso di composizione (le parti esistono solo in relazione al tutto) Contenimento lasco: ciclo di vita degli oggetti contenuto e contenitore indipendenti il contenitore non è responsabile della creazione e della distruzione dell oggetto si realizza mediante un puntatore al contenuto il coordinatore dell aggregazione deve: Creare oggetto contenuto Definire e inizializzare un puntatore ad esso Costruire oggetto contenitore passando puntatore al contenuto
2 Relazioni tra oggetti e classi : Composizione Relazioni tra oggetti e classi : esempio di Aggregazione Contenimento stretto l oggetto contenuto non ha una vita propria l oggetto contenitore è responsabile della costruzione e distruzione si realizza con un oggetto contenuto interno al contenitore il coordinatore della composizione deve: creare l oggetto contenitore fornire valori all oggetto contenuto il compilatore richiama il costruttore e il distruttore del contenuto Carrozzeria num_matricola : int colore : string modello : string marca : string potenza : int Accendi ( ) num_valvole : int cilindrata : int classe contenitore Ruota diametro : int marca_pneum : string Avvia ( ) Relazioni tra oggetti e classi : Aggregazione Relazioni tra oggetti e classi : esempio di Aggregazione + molteplicità Nel grafico precedente vi è la presenza di tre associazioni lasche, in quanto la ruota, il motore e la carrozzeria hanno vita propria anche se esse non sono integrate per formare un'automobile. modello : string marca : string potenza : int classe contenitore Questo grafico si puo arricchire aggiungendo la specifica della molteplicità. Grazie a tali numeri posti nei pressi della freccia che indica l'aggregazione, indichiamo di quante occorrenze necessitiamo di una classe per ogni aggregazione quando vogliamo indicare molte occorrenze utilizzeremo il simbolo '*'. 1 Carrozzeria 1 Accendi ( ) Ruota num_matricola : int colore : string num_valvole : int cilindrata : int diametro : int marca_pneum : string Avvia ( )
3 Confronto tra contenimento e derivazione Relazioni tra oggetti e classi : Associazione Consideriamo i due casi: La classe B contiene la classe A (contenimento) La classe B è derivata dalla classe A (ereditarietà) In entrambi i casi l oggetto B contiene l oggetto A Interfacce: Contenimento: l interfaccia di A e B indipendenti Derivazione: interfaccia di B comprende quella di A Ereditarietà più forte del contenimento: B può eseguire overriding delle funzioni di A Un puntatore a B può essere assegnato a puntatore a A Un oggetto B può essere assegnato ad un oggetto A L'associazione fra una o più classi permette di esprimere i legami che ci sono fra di esse. E' caratterizzata da: un nome una molteplicità una direzione La molteplicità ha lo stesso significato visto in precedenza. Se l'associazione è realizzata con un unione senza freccia, indica che è bidirezionale; in caso contrario il verso della freccia indica il senso di lettura dell'associazione Relazioni tra oggetti e classi : Associazione - esempio Relazioni tra oggetti e classi : Associazione La convenzione grafica da usare è la seguente: 1 0..* Persona possiede Descrive quante istanze di una classe possono relazionarsi ad una singola istanza della classe associata Simboli terminatori: 1 uno e solo uno 0..1 zero o uno (opzionale) M..N da M a N * 0 o più (molti) 0..* 0 o più (molti) 1..* 1 o più (molti)
4 Regole per passare da UML a C++ Regole per passare da UML a C++ (specializzazione) Una volta sviluppati un certo numero di diagrammi UML, per la descrizione del nostro progetto, bisogna passare alla fase di traduzione in C++ In generale gli strumenti CASE (Computer Aided Software Engeneering), sono in grado di costruire da soli lo scheletro del nostro prodotto a partire dai nostri grafici In alcuni casi lo strumento CASE puo fare degli errori è necessario sapere come affrontare tale traduzione anche manualmente Gerarchia di Generalizzazione (Specializzazione) Questa gerarchia implica la presenza di una classe Base che funziona da interfaccia generale, ovvero in essa sono presenti gli attributi e i metodi comuni a tutte le classi che da esse deriveranno, le quali a loro volta conterranno ulteriori attributi e metodi con i quali sarà possibile specializzare (ereditarietà+polimorfismo) la classe Base. La codifica di tale gerarchia è stata già vista nelle lezioni precedenti Regole per passare da UML a C++ (specializzazione) Regole per passare da UML a C++ (specializzazione) class Base { void f1(); virtual void f2() = 0; virtual void f3(); protected: void f4(); // variabili membro class Derivata:public Base { void f2(); void f3(); void f5(); protected: // variabili membro Classe Base Base::f1() è una funzione direttamente richiamabile dall'utente, in quanto contenuta nella parte public della classe base Base::f2() DEVE essere ridefinita in TUTTE le classi derivate poichè essa è una funzione virtuale pura, ovvero è una funzione che deve essere specializzata, quindi essa non risulta essere utilizzabile dall'utente della classe Base Base::f3() al contrario della precedente questa funzione PUO' essere specializzata da classi derivate ma non lo deve essere necessariamente, in quanto essa è una funzione virtuale NON pura Base::f4() questa funzione può essere richiamata per funzionalità comuni a classi derivate in quanto essa è inserita nella parte protected della classe, ciò implica che tale funzione verrà automaticamente ereditata da tutte le classi figlie. Insieme alla funzione f4() vengono ereditati dai figli anche tutte le variabili membro che sono qui contenute
5 Regole per passare da UML a C++ (specializzazione) Regole per passare da UML a C++ (aggregazione) Classe Derivata Derivata::f2() è la ridefinizione della funzione virtuale pura presente nella classe Base Derivata::f3() è l'eventuale ridefinizione della funzione virtuale NON pura. Anche in questo caso nella parte protected della classe andranno messe le variabili membro proprie di quella specializzazione, così che si possa creare una nuova gerarchia di specializzazione Derivata::f5() è la definizione di un nuovo metodo specifico della classe Derivata Aggregazione Contenimento lasco modello : string marca : string potenza : int fcontenitore ( ) num_valvole : int cilindrata : int fcontenuto ( ) Regole per passare da UML a C++ (aggregazione) Regole per passare da UML a C++ (aggregazione) Contenuto class { ( ); void fcontenuto( ); private: // variabili membro ::( ) è il costruttore della classe ::fcontenuto( ) è una funzione pubblica della classe nella parte privata vanno inserite le variabili membro della classe Contenitore #include.h class { private: * c; (* q):c(q){ void fcontenitore( ) { c -> fcontenuto( ); /* serve per inserire all interno della classe la classe */ // puntatore alla classe (* q):c(q){ è il costruttore della classe il quale usa il costruttore della classe a mezzo del puntatore precedentemente dichiaratoviene inizializzato il puntatore c all indirizzo dell oggetto puntato da q appartenente alla classe ::fcontenitore() è una funzione appartenente alla classe c -> fcontenuto(); permette di utilizzare la funzione membro fcontenuto() di all'interno della classe
6 Regole per passare da UML a C++ (aggregazione) Regole per passare da UML a C++ (composizione) Una volta effettuato ciò l'utente della classe Contenitore deve: 1. creare l'oggetto contenuto 2. definire e inizializzare un puntatore ad esso 3. costruire l'oggetto contenitore passandogli il puntatore al contenuto Composizione modello : string marca : string potenza : int int main( ) { c(lista valori iniziali); * ptr=&c; A(ptr); A.fcontenitore(); /* tale chiamata opera su un oggetto contenitore e indirettamente sul contenuto */ } Contenimento stretto fcontenitore ( ) num_valvole : int cilindrata : int fcontenuto ( ) Regole per passare da UML a C++ (composizione) Regole per passare da UML a C++ (associazione) Associazione tra classi è come se avessimo una classe all interno di un altra classe bisogna aggiungere una variabile membro alla classe di tipo implementare il costruttore del in modo da richiamare il costruttore dell Per realizzare l'associazione abbiamo bisogno di un metodo che colleghi entrambe le classi mediante l'uso dei puntatori, in quanto non ci basta utilizzare il costruttore di una classe poichè non funzionerebbe nel caso in cui l'associazione fosse binaria. All'utente toccherà quindi: 1.creare le due istanze degli oggetti 2.Collegare le due classi con il metodo apposito passandogli i puntatori
7 Regole per passare da UML a C++ (associazione) Regole per passare da UML a C++ (associazione) Associazione 1 a 1 bidirezionale Ogni classe ha un metodo collegati al partner Esso rappresenta una associazione bidirezionale uno a uno, il che significa che i ruoli dell'associazione sono differenti a seconda della classe che stiamo usando. Classe A ruolo A ruolo B Classe B class A { private: B* ruolo_b; // lista di inizializzazione per B collega(b* ptr): ruolo_b(ptr){ } } class B { private: A* ruolo_a; //lista di inizializzazione per A collega(a* ptr): ruolo_a(ptr){ } } void main() { A a; // crea oggetto a B b; // crea oggetto b // collega i due oggetti a.collega(&b); b.collega(&a); } Regole per passare da UML a C++ (associazione) Classi astratte Associazione 1 a molti Tale tipo di associazione non differisce da quello precedente, l'unica differenza è che dal lato ove compare 1 come molteplicità, bisogna gestire una lista di puntatori all'altro tipo di oggetto lista statica di puntatori se si conosce il numero massimo di oggetti, altrimenti una lista dinamica Si definisce Classe astratta una classe che non può avere istanze. Nei diagrammi UML, una classe astratta viene rappresentata scrivendone il nome in corsivo. E una estensione del concetto di generalizzazione; la superclasse è completamente generica, dal momento che non contiene l implementazione di nessun metodo: l implementazione è a carico delle classi derivate. Nota bene: le classi derivate devono implementare i metodi definiti nella classe astratta!
8 Caso di studio di un progetto con UML Compilazione condizionale Analisi del progetto d anno dello studente Fabio Stroppa argomenti.txt Nel caso in cui includiamo per sbaglio piu volte lo stesso file header.h, possono comparire degli errori in fase di compilazione perchè possono essere ridefiniti alcuni attributi/metodi delle nostri classi La soluzione ci e` fornita dal precompilatore stesso ed e` nota come compilazione condizionale consiste cioe` nello specificare quando includere o meno determinate porzioni di codice Per far cio` ci si avvale delle direttive: #ifndef SIMBOLO // per verificare se il simbolo è già definito #define SIMBOLO // per definire un simbolo // codice... #endif // fine della direttiva condizionale Compilazione condizionale : esempio Analisi degli esercizi risolti dagli studenti // Contenuto del file automezzo.h #ifndef AUTOMEZZO_H #define AUTOMEZZO_H class automezzo { int valore; automezzi(); char nome; void setvalore(int); int getvalore(); #endif Analisi degli esercizi risolti dagli studenti (esercizi su compagnia telefonica, diplomati scuola) 31 32
9 Esercizio n.1 Un negozio noleggia CD musicali (100) e film in DVD (200 DVD). Per ogni articolo devono essere gestiti almeno i seguenti dati : codice, titolo, autore, costo. Per i CD musicali viene inoltre memorizzato il numero dei brani, mentre per i DVD la lunghezza in minuti del film. Le classi hanno i metodi per gestire gli attributi (get & set). Creare una classe base denominata Articolo e due classi derivate denominate CD e DVD. Implementare le seguente funzionalità con allocazione statica: 1. visualizzazione del CD e del DVD con costo di noleggio maggiore 2. ordinamento degli array di oggetti CD e DVD in ordine decrescente di costo di noleggio 3. realizzare l esercizio utilizzando l allocazione dinamica anzichè quella statica 4. realizzare l esercizio utilizzando il binding dinamico per il metodo stampa() di cui si fa l overriding nelle classi derivate e che permette la stampa dei dati del singolo articolo 33
Fondamenti di Informatica
Relazioni tra classi Fondamenti di Informatica 27. Standard UML 2. parte Generalizzazione: (ereditarietà) relazione in cui una classe (sottoclasse) eredita gli attributi e le operazioni di una superclasse:
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni
DettagliUML 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
DettagliCorso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliInformatica 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 -
DettagliI casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
DettagliInizializzazione, 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
DettagliProgrammazione 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
DettagliObject Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
DettagliSoluzione 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
DettagliIdentificare le classi in un sistema
3.7 (Caso di studio facoltativo) Pensare a oggetti: identificare le classi nella specifica del problema Cominciamo ad affrontare la progettazione del simulatore di ascensore introdotto nel capitolo. Iniziamo
DettagliUniversità degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi
Università degli Studi di L Aquila Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Prof. Gaetanino Paolone Dott. Ottavio Pascale a.a.2003-2004 Progetto Campo
DettagliCorso 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
DettagliProgettaz. 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
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliUno 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
DettagliRappresentazione grafica di entità e attributi
PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema
DettagliUML Unified Modeling Language
UML Unified Modeling Language Lezione 4-1 - UML Il diagramma delle classi Parte Seconda - 2 - Relazioni tra Classi&Oggetti I diagrammi delle classi mettono in evidenza i blocchi costitutivi del sistema
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
Dettaglihttp://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliEredità 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
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
DettagliProgrammi 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
DettagliProgrammazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)
Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliTesto Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.
Testo Esercizio Si consideri la realizzazione di un semplice programma grafico per il disegno di figure geometriche in due dimensioni. Si analizzino i requisiti e se ne rappresentino i risultati in UML
DettagliModulo 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
DettagliIl modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono:
IL MODELLO EER Modellazione Entità-Associazione estesa 2 Modellazione EER (modellazione ER-estesa) Il modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono: i concetti
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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
DettagliLE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA CONCETTUALE LE ASSOCIAZIONI
LE BASI DI DATI Seconda parte La progettazione di database Relazionali SCHEMA CONCETTUALE LE ASSOCIAZIONI L'associazione (in inglese Relationship) descrive eventuali legami concettuali tra una, due o più
DettagliModellazione dei dati in UML
Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):
DettagliIntroduzione ai tipi di dato astratti: applicazione alle liste
Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione
DettagliCapitolo 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
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliMODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
MODELLO E/R Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Modellazione dei dati Modellare i dati significa: costruire una rappresentazione semplificata della realtà osservata individuandone
DettagliEsercitazione 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:
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
DettagliUniversità degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Analisi Giulio Destri Ing. del software: Analisi - 1 Scopo del modulo Definire
DettagliParola chiave extends
Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi
Dettaglicostruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
DettagliDatabase. 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
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliProff. Fabio Ciao e Raffaele Bortone
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud
DettagliProgettazione concettuale
Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi
DettagliAlgoritmi 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
DettagliMANUALE 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
DettagliProgetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06
Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06 13 febbraio 2006 1 Descrizione Il progetto si compone delle seguenti fasi: 1. caricamento di soluzioni in formato
DettagliTabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice
- Albo pretorio virtuale e gestione della consultazione documentale - Argomenti Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
DettagliFondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
DettagliIngegneria del Software T
Home Finance 1 Requisiti del cliente 1 Si richiede di realizzare un sistema per la gestione della contabilità familiare. Il sistema consente la classificazione dei movimenti di denaro e la loro memorizzazione.
DettagliElementi 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
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliUNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria
ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta
DettagliObject 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
DettagliDatabase. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014
Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche
DettagliCreare una nuova spedizione personalizzata.
Gestione spedizioni La piattaforma ecommerce compry.it offre una gestione estremamente potente dei costi di spedizione da applicare al cliente che effettua acquisti. Il sistema, oltre al classico calcolo
DettagliEsercizio: gestione di un conto corrente
Esercizio: gestione di un conto corrente Si realizzi un conto corrente bancario mediante: - una ASTRAZIONE DI DATO - un TIPO DI DATO ASTRATTO Il conto corrente è caratterizzato dalle seguenti informazioni:
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliEditing e gestione delle views per il modulo Landing Page Espositore
Editing e gestione delle views per il modulo Landing Page Espositore Revisione 1.0 29 Marzo 2011 Editing e gestione delle views per il modulo Landing Page Espositori Per modificare il comportamento dei
DettagliGuida 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
DettagliGestione della memoria. Paginazione Segmentazione Segmentazione con paginazione
Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base
DettagliIntroduzione 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
DettagliProf. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA
Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA ES 02 - ORGANIZER Voglio un gestionale (organizer) che permetta a ciascun dipendente della mia azienda di inserire le attività che svolgono
DettagliHR - Sicurezza. Parma 17/12/2015
HR - Sicurezza Parma 17/12/2015 FG Software Produce software gestionale da più di 10 anni Opera nel mondo del software qualità da 15 anni Sviluppa i propri software con un motore completamente proprietario
DettagliDiagrammi di Interazione
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Diagrammi di Interazione Definizioni Diagrammi di Interazione una interazione specifica i dettagli
DettagliFondamenti 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
DettagliIndice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
DettagliLa 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,
DettagliOrganizzazione 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
DettagliPROGETTAZIONE CONCETTUALE
PROGETTAZIONE CONCETTUALE 1 Il Modello Concettuale Nella progettazione concettuale la descrizione dei dati da rappresentare avviene a livello astratto indipendentemente dal computer e dal software utilizzato.
DettagliProgetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore
ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013
DettagliProgettazione della componente applicativa
7 Progettazione della componente applicativa In questo capitolo illustreremo la progettazione della componente applicativa di un sistema informativo. La metodologia da noi utilizzata sarà basata sull utilizzo
DettagliCorso 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
DettagliReflection 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
DettagliMetodologie 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
DettagliDFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA
UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA DISPENSA DEL CORSO DI SISTEMI INFORMATIVI Prof. Carlo Combi DFD Appunti a cura di E. Peri M. Devincenzi Indice 1
DettagliIL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI
Pagina 1 UN SISTEMA DI NEWS Sommario UN SISTEMA DI NEWS...1 Introduzione...2 Scelgo l'area su cui operare...3 Un minimo di teoria...3 Creo le Pagine...4 Definizione dello Schedario Novità...6 Compilo la
DettagliBasi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER
Basi di Dati Progettazione del Modello ER Dai requisiti allo schema ER Entità, relazioni e attributi non sono fatti assoluti dipendono dal contesto applicativo Nella pratica si fa spesso uso di una strategia
DettagliLinguaggio C. Fondamenti. Struttura di un programma.
Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione
DettagliLiberare la memoria allocata dinamicamente.
Scrivere un programma per la gestione dei libri e dei prestiti di una biblioteca universitaria. I libri sono caratterizzati dalle seguenti informazioni: titolo, autore, collocazione del libro, numero di
DettagliBasi 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)
DettagliMon Ami 3000 Varianti articolo Gestione di varianti articoli
Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione
DettagliI Sistemi Informativi
I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e
DettagliArchivio CD. Fondamenti di Programmazione
Archivio CD Una persona possiede un certo numero di CD musicali e desidera organizzare il proprio archivio tramite uno strumento software. Il programma deve permettere: - l inserimento di un nuovo CD nella
DettagliConcetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
DettagliProgrammazione 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
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliGuida all uso delle Web View su ios
Guida all uso delle Web View su ios Tesina per il corso di Programmazione di Sistemi Mobile Lorenzo Pellegrini Matricola: 0000653299 Cosa sono le Web View? Le web view sono componenti grafiche, integrabili
DettagliCreare diagrammi di Gantt con Visio 2003
Creare diagrammi di Gantt con Visio 2003 La fase di pianificazione di un progetto è sicuramente molto delicata e alquanto complessa, in quanto bisogna riuscire a definire una scomposizione del progetto
DettagliEsame dell 8 settembre 2012
Basi di Dati e Sistemi Informativi Errori ricorrenti nella progettazione concettuale Questo documento ha, come scopo, presentare alcuni gravi errori che ricorrono spesso nella progettazione concettuale
DettagliProtezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
DettagliBDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Dettagli