1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI"

Transcript

1 IL LINGUAGGIO JAVA Dispense per il corso di laboratorio di sistemi I.T.I.S. ABACUS A.S. 2008/2009 Autore: Roberto Amadini Testo di riferimento: La programmazione ad oggetti C++ Java (Lorenzi, Moriggia, Rizzi ATLAS) 1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI 1.1 Introduzione Il mondo in cui viviamo è molto complesso Bisogna saper gestire e controllare la complessità degli oggetti che lo compongono. Ciò avviene mediante un opportuna ASTRAZIONE della realtà (oggetti reali): L astrazione (o modellazione) è un procedimento che consente di semplificare la realtà che si sta analizzando, mediante opportune tecniche che permettono di considerare tutti e soli gli aspetti rilevanti di tale realtà, evitando di prendere in considerazione dettagli inutili. Il risultato (output) del processo di astrazione è la creazione di un MODELLO, ossia una rappresentazione semplificata della realtà in esame. PROBLEMA REALE p ASTRAZIONE DI p MODELLO DI p Esempi: Rappresentazione delle vie di una città piantina stradale Rappresentazione del profitto di un alunno pagella L astrazione svolge un ruolo fondamentale nell Informatica; la risoluzione di problemi infatti avviene sempre per mezzo di astrazioni più o meno evidenti, mediante l utilizzo di programmi sviluppati secondo diversi paradigmi di programmazione. Per PARADIGMA DI PROGRAMMAZIONE si intende la modalità concettuale attraverso la quale il programmatore analizza, modella e risolve un dato problema. Ogni linguaggio di programmazione è generalmente ispirato (o riconducibile) ad un certo paradigma; i principali paradigmi di programmazione sono: Imperativo: Il problema viene risolto mediante una sequenza ordinata di passi (algoritmo). L operazione principale è quella di assegnamento (es. x = 7) e l ordine di esecuzione delle istruzioni è fondamentale (es. x = 7; x++; x *= 3; in C++ ha una semantica ben diversa da x = 7; x *= 3; x++). Un paradigma di questo tipo è quindi orientato all algoritmo, cioè a come (how) il programma deve risolvere un dato problema. Esempi di linguaggi di programmazione imperativi sono ad esempio Fortran, Pascal, C. Dichiarativo: Questo paradigma è invece orientato al problema, cioè a cosa (what) il programma deve fare per risolvere un dato problema. I linguaggi di programmazione dichiarativa si dividono principalmente in logici (basati sulla logica

2 matematica, es. Prolog) e funzionali (basati sul concetto di funzione matematica, es. Lisp, Haskell). Un linguaggio dichiarativo molto diffuso per la manipolazione di basi di dati è l SQL. ORIENTATO AGLI OGGETTI: Il problema da risolvere viene analizzato e modellato secondo un opportuno SISTEMA DI OGGETTI che comunicano tra loro scambiandosi messaggi. In generale, un SISTEMA è una realtà costituita da elementi eterogenei caratterizzati da proprietà (attributi rilevanti) e azioni (relazioni fra componenti). Un OGGETTO si può invece vedere come un entità caratterizzata da un proprio stato (insieme di valori che l oggetto assume ad un certo istante di tempo) e da una propria algebra (insieme di operazioni che è possibile eseguire su tale oggetto). Questo paradigma sta alla base dei linguaggi di programmazione orientati agli oggetti (OOP, Object Oriented Programming). I linguaggi OO sono quindi un evoluzione dei linguaggi ad alto livello imperativi (Pascal, C) che, anziché essere orientati all algoritmo, sono orientati al concetto di sistema di oggetti, cioè sistemi i cui componenti fondamentali sono proprio gli oggetti. 1.2 Programmazione Orientata agli Oggetti (OOP) L orientamento agli oggetti si è sviluppato a partire dagli anni 70 partendo dal concetto di sistema. Questo approccio al problema, grazie ai suoi vantaggi, si è sviluppato fino ai giorni nostri toccando anche altri settori dell informatica quali ad esempio la gestione di database e l ingegneria del software. Il processo di astrazione consiste in un ANALISI dettagliata del problema reale, che produce un MODELLO del sistema, composto dagli oggetti e dalle relazioni che intercorrono tra essi. Tale modello non entra nei dettagli implementativi (cioè, non dice come deve essere implementato) ma si ferma ad un livello di astrazione più alto (cioè, indica solamente cosa deve fare il programma). In realtà, non è possibile parlare di oggetti senza prima aver introdotto il concetto di CLASSE: Una classe è un TIPO DI DATO ASTRATTO (ADT, Abstract Data Type) cioè un entità caratterizzata da un dominio di valori (cioè, un insieme di possibili valori che l entità può assumere) e da un algebra su tale dominio (cioè, un insieme di operazioni possibili su tale insieme). Ad esempio, sono ADT anche i tipi primitivi dei linguaggi di programmazione tradizionali (ad es. il tipo int in C++ ha come dominio l insieme degli interi compresi tra e e come operazioni possibili +, -, *, /, % ecc ). In una classe il dominio è composto da tutti gli ATTRIBUTI (cioè, tutte le proprietà che caratterizzano la classe) mentre le operazioni sugli attributi possono essere effettuate dall utente mediante l invocazione di appositi METODI della classe (cioè, l utente richiama apposite funzioni proprie di quella classe). A questo punto, posso definire un OGGETTO obj DI UNA CERTA CLASSE C come un ISTANZA (cioè, un membro, un rappresentante) di tale classe C. Ovviamente, obj erediterà tutti gli attributi ed i metodi della classe C. Il valore assunto dagli attributi di obj ne definirà lo stato. I metodi di obj corrisponderanno alle operazioni possibili sull oggetto (ad es. potrò invocare metodi di obj per leggere o modificare i suoi attributi).

3 Esempio: l automobile Supponiamo di voler modellare un sistema di automobili. Il componente principale (classe) sarà quindi l automobile. Quale sarà il suo dominio? Cioè quali saranno i suoi attributi? Ad esempio, alcune caratteristiche standard per ogni automobile sono: Costruttore Modello Colore Potenza Cilindrata Ecc Tali proprietà saranno quindi attributi della classe Automobile. Individuiamo ora i comportamenti, cioè le operazioni che è possibile effettuare con una generica automobile: Avvio Accelera / Decelera Fermati Gira a destra / sinistra Ecc Tali azioni saranno quindi metodi della classe Automobile. E gli oggetti? A cosa corrisponderanno? Per definizione, un oggetto è un istanza di una certa classe, per cui un oggetto della classe Automobile corrisponderà ad un rappresentante di tale classe, caratterizzato da un proprio stato (i valori di colore, modello, potenza ecc ) e da un insieme di operazioni possibili sull oggetto (tutti i metodi della classe Automobile: avvio, accelerazione ecc ) Ad es., potrei definire un oggetto miamacchina di classe Automobile con i seguenti attributi: Costruttore = Peugeot Modello = 206 Colore = Grigio Fer Potenza = 75 Cilindrata = 1360 Una volta definito tale oggetto potrei quindi utilizzarne i metodi per avviare l automobile, rallentare, scalare marcia ecc Inoltre, è possibile creare un numero indefinito di oggetti della classe Automobile; viceversa non è possibile definire un oggetto senza aver prima creato una classe, in quanto un oggetto si riferisce sempre ad una certa classe. Posso ad esempio creare un altro oggetto di classe Automobile: macchinadeimieigenitori: Costruttore = Ford Modello = Escort Colore = Nero Ecc

4 1.3 Principali caratteristiche dell OOP 1. INCAPSULAMENTO: Possibilità di incorporare in un oggetto sia dati (attributi) che funzioni (metodi). Ad es. la stessa entità miaautomobile racchiude sia le caratteristiche tecniche dell oggetto sia le funzioni per poterlo utilizzare. 2. INFORMATION HIDING: Possibilità di nascondere le informazioni non necessarie all utente. Ad esempio, richiamando il metodo avvia l utente potrà avviare la macchina senza che egli sappia quale meccanismo stia realmente dietro all avvio dell automobile (all utente non interessano le fasi del motore a quattro tempi, basta che la macchina parta ). Strettamente legato all Information Hiding è il problema dell ACCESSO AGLI ATTRIBUTI di una classe: non tutti gli attributi di una classe possono essere acceduti dall utente esterno. Ad es. per ogni automobile si vuole tenere segreto un particolare attributo che tenga traccia del numero di riparazioni effettuate in modo che esso sia invisibile all utente. Stesso discorso per i metodi: ad es. potrebbe esserci un metodo raffreddamento richiamato dall automobile stessa qualora la temperatura del motore risulti troppo elevata; tale azione però non deve essere intrapresa dall utente bensì dall oggetto in modo invisibile all utente. Per distinguere ciò che un oggetto vuole mostrare all esterno da ciò che invece vuole tenere nascosto si utilizzano una sezione pubblica (contenente attributi e metodi utilizzabili dall esterno) ed una sezione privata (contenente attributi e metodi invisibili all utente esterno). 3. EREDITARIETA : Si riferisce alla capacità di creare, a partire da una certa classe C, un qualsiasi numero di SOTTOCLASSI o CLASSI FIGLIE di C (che quindi diventerà classe PADRE o SOVRACLASSE delle sue classi figlie). Tali relazioni tra classi inducono naturalmente una GERARCHIA di classi, cioè un ordinamento delle classi (strict weak ordering). Ad esempio: E B A D C A, B, C, D, E sono classi qualsiasi. La freccia da una qualsiasi classe X ad una qualsiasi altra classe Y sta ad indicare che X è sottoclasse di Y. In questo caso, B e C sono sottoclassi di A; D è sottoclasse di B e C; E è sottoclasse di B. Ma E è sottoclasse di A? Stesso discorso per D Certo, perché questa relazione gode della proprietà transitiva: potremmo dire che A è classe nonna di E e D, D ha due padri B e C (che sono tra loro fratelli ). L ereditarietà è un concetto fondamentale dell OOP; noi ci limiteremo solamente a considerare l ereditarietà PUBBLICA e SINGOLA, cioè: PUBBLICA: Ogni sottoclasse C1, C2,, Cn di una certa classe C eredita tutti i metodi e gli attributi pubblici di C, che può utilizzare per i propri scopi. SINGOLA: Ogni sottoclasse può avere al massimo una classe padre (nell esempio precedente D non usa l ereditarietà singola, perché eredita sia da B che da C)

5 NOTA: La relazione di ereditarietà tra una classe figlia F ed una classe padre P è detta anche relazione ISA (da IS A, cioè è un ). Infatti F eredita tutti gli attributi ed i metodi di P, quindi in un certo senso F è un P, con opportune modifiche e/o specializzazioni. Esempio: MezziDiTrasporto MezziAMotore MezziNonAMotore Automobile Moto Bicicletta Sia i MezziAMotore che i MezziNonAMotore sono (ISA) MezziDiTrasporto. L Automobile e la Moto sono MezziAMotore (e quindi anche MezziDiTrasporto) ma non sono MezziNonAMotore. La Bicicletta fa parte dei MezziNonAMotore (e quindi anche dei MezziDiTrasporto) ma non dei MezziAMotore. QUANDO SI USA L EREDITARIETA? In generale, l ereditarietà consente ad una certa sottoclasse di utilizzare le caratteristiche (attributi e metodi) della classe padre da cui eredita. Come si differenzia quindi la sottoclasse dalla classe padre? Principalmente in tre modi: Per ESTENSIONE: la sottoclasse aggiunge nuovi attributi e/o metodi che si sommano a quelli ereditati dalla classe padre, in modo che l utente possa avere a disposizione un insieme di funzionalità esteso alle proprie necessità. Ad es., nella classe Automobile potrei aggiungere un metodo accenditergicristalli che è proprio dell auto e non dei mezzi a motore in generale (la moto non ha tergicristalli ). Per RESTRIZIONE: la sottoclasse restringe alcuni attributi e/o metodi della padre, cioè inibisce il loro utilizzo in modo che l utente abbia a disposizione solamente gli attributi ed i metodi dei quali necessita realmente. Ad es., se il metodo accenditergicristalli fosse presente nella classe MezziAMotore, nella classe Moto dovrei inibirlo in quanto la moto non presenta tale funzionalità. Per SPECIALIZZAZIONE: Simile all estensione; in questo caso però non aggiungo nuove funzionalità ma ridefinisco (o sovrascrivo, overriding) alcuni (o tutti) i metodi ereditati dalla classe padre. Tali metodi vengono quindi specializzati dalla sottoclasse in base al loro utilizzo. Ad es., supponiamo che la classe MezziDiTrasporto presenti un metodo avvia. Tale metodo dovrebbe essere ridefinito per le classi Automobile, Moto e Bicicletta in base al tipo di avvio del mezzo di trasporto (per avviare una macchina non spingo sui pedali ). I linguaggi OO permettono quindi la definizione di CLASSI ASTRATTE, cioè classi interfaccia che non possono generare oggetti in quanto almeno uno dei suoi metodi non è implementato. Sarà quindi compito delle sue sottoclassi implementare (cioè, specializzare) tali metodi lasciati indefiniti.

6 POLIMORFISMO: Si riferisce alla capacità di uno stesso metodo di assumere più forme, cioè la possibilità di avere un interfaccia comune per attività strettamente correlate. Si suddivide in: DINAMICO: realizzato con il meccanismo dell ereditarietà e dell overriding di metodi; ad es. il metodo avvia è polimorfo in quanto pur avendo la stessa interfaccia (lo stesso nome) è specializzato in modo differente da auto, biciclette, moto a seconda delle caratteristiche della sottoclasse che lo ridefinisce. Si dice dinamico perché il processo di associazione tra l oggetto che invoca il metodo ridefinito ed il metodo stesso avviene a tempo di esecuzione (run-time). In questo caso si parla anche di late binding. STATICO: un metodo con la stessa interfaccia (stesso nome) può essere sovraccaricato (overload) cioè differenziarsi per numero e tipo degli argomenti. Ad esempio per un Automobile potrei avere un metodo cambiamarcia() che di default mette una marcia in più, ma potrei anche avere un metodo cambiamarcia(n) che cambia n marce alla volta (es. n = -1 scalo di una marcia, n = 0 metto in folle, n = 1 metto una marcia in più ecc ). Si dice statico perché il processo di associazione tra l oggetto che invoca il metodo ridefinito ed il metodo stesso avviene a tempo di compilazione (compile-time). 1.4 I linguaggi orientati agli oggetti (Object Oriented) Un linguaggio è orientato agli oggetti se fornisce costrutti per gestire le principali caratteristiche del paradigma OOP: oggetti, classi, ereditarietà, polimorfismo. Si dividono in linguaggi OO puri (ogni entità è un oggetto, ad esempio Smalltalk e Eiffel) e ibridi (esistono entità che non sono oggetti, come ad es. i tipi primitivi int, char, float ecc ). Un linguaggio ibrido è meno formale e rigoroso, ma permette maggiore elasticità ed efficienza. I più importanti linguaggi OO ibridi ad oggi sono C++ e Java; in particolare noi ci soffermeremo sulle caratteristiche principali di quest ultimo. Si osservi tuttavia che spesso Java viene considerato linguaggio puro, in quanto gli oggetti costituiscono la base del linguaggio mentre i tipi primitivi solamente una parte marginale.

Corso di Informatica

Corso 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

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Object Oriented Programming

Object 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

Dettagli

Modellazione dei dati in UML

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

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

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

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

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti Alessio Bechini - Corso di - Il paradigma OO e le relative metodologie di progettazione Metodologie OO Programmazione orientata agli oggetti La programmazione ad oggetti (OOP) è un paradigma di programmazione

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore 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

Dettagli

Abstract Data Type (ADT)

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

Dettagli

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi Introduzione alla Programmazione Orientata agli Oggetti Classi, Oggetti e Messaggi Agenda 1. La metodologia di progettazione ad oggetti Concetti fondamentali: oggetti, classi, messaggi 2. I concetti fondamentali

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

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

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

Dettagli

Proff. Fabio Ciao e Raffaele Bortone

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

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 Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le

Dettagli

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni LA PROGETTAZIONE DI BASI DI DATI Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni La progettazione dei dati è l attività più importante Per progettare i dati al

Dettagli

Introduzione alla Programmazione ad. Oggetti (OOP)

Introduzione alla Programmazione ad. Oggetti (OOP) Introduzione alla Programmazione ad Oggetti (OOP) Prof. Emanuele Papotto Introduzione alla Programmazione ad Oggetti Cosa Faremo: I linguaggi OOP Definizione di : classe, oggetto, attributi, metodi Cenni

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

Dettagli

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 11 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

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

UML Unified Modeling Language

UML 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

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I 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

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

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

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte Java riutilizzo delle classi G. Prencipe prencipe@di.unipi.it Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi

Dettagli

Progettazione concettuale

Progettazione 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

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1 La progettazione concettuale: il modello ER 17/12/2007 Unità di Apprendimento A2 1 1 La progettazione concettuale Prima di procedere con la progettazione concettuale è necessario effettuare un analisi

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Il meccanismo dell ereditarietà a.a. 2008/2009 Claudio De Stefano 1 L ereditarietà consente di definire nuove classi per specializzazione o estensione di classi preesistenti,

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

Parola chiave extends

Parola 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

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione 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

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

SISTEMA DI CONTROLLO ORIENTAMENTO PANNELLI SOLARI

SISTEMA DI CONTROLLO ORIENTAMENTO PANNELLI SOLARI SISTEMA DI CONTROLLO ORIENTAMENTO PANNELLI SOLARI Lezione 1: User Requirements, Modellizzazione e Identificazione. 1.1 Introduzione: Un cliente ha chiesto la realizzazione di un sistema per l'orientamento

Dettagli

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1] Progettazione di basi di dati Progettazione di basi di dati Requisiti progetto Base di dati Struttura Caratteristiche Contenuto Metodologia in 3 fasi Progettazione concettuale Progettazione logica Progettazione

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Le Basi di dati: generalità. Unità di Apprendimento A1 1 Le Basi di dati: generalità Unità di Apprendimento A1 1 1 Cosa è una base di dati In ogni modello di organizzazione della vita dell uomo vengono trattate informazioni Una volta individuate e raccolte devono

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 Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Data Base. Prof. Filippo TROTTA

Data Base. Prof. Filippo TROTTA Data Base Definizione di DataBase Un Database può essere definito come un insieme di informazioni strettamente correlate, memorizzate su un supporto di memoria di massa, costituenti un tutt uno, che possono

Dettagli

Introduzione agli Abstract Data Type (ADT)

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

Dettagli

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

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

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

Istituto di Istruzione Superiore Statale Carlo Emilio Gadda PIANO DI LAVORO ANNO SCOLASTICO 2015/2016. I.I.S.S '' C. E. GADDA Sede di FONOVO

Istituto di Istruzione Superiore Statale Carlo Emilio Gadda PIANO DI LAVORO ANNO SCOLASTICO 2015/2016. I.I.S.S '' C. E. GADDA Sede di FONOVO Presidenza e Segreteria: v. Nazionale 6 43045 Fornovo di Taro (PR) Tel. 0525 400229 Fax 0525 39300 E-mail: ssitsos@scuole.pr.it Sito web: www.itsosgadda.it Pec: prtf02000r@pec.istruzione.it Istituto di

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione 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

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

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

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe

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

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

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

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

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

Dettagli

F.O.A.M. Free Object Access Method. Un introduzione. Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo

F.O.A.M. Free Object Access Method. Un introduzione. Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo F.O.A.M. Free Object Access Method Un introduzione Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo Il protocollo FOAM. FOAM (Free Object Access Method) è un protocollo

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

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Progettazione del Software

Progettazione del Software L4.4 Progettazione del Software Emiliano Casalicchio Dipartimento di Informatica e Sistemistica SAPIENZA Università di Roma Sede di Rieti http://www.ce.uniroma2.it/courses/psw Seconda Parte La fase di

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

Progettazione ad oggetti

Progettazione ad oggetti Progettazione ad oggetti Gli elementi reali vengono modellati tramite degli oggetti Le reazioni esistenti nel modello reale vengono trasformate in relazioni tra gli oggetti Cos'è un oggetto? Entità dotata

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

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

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Tecnologie dei Linguaggi di Programmazione

Tecnologie dei Linguaggi di Programmazione Tecnologie dei Linguaggi di Programmazione a.a. 2013/2014 romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Goal Object Oriented Programming (OOP) Conoscere il paradigma di programmazione

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0

PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO 147 6/001.0 PIANIFICAZIONE E REALIZZAZIONE DI UN SISTEMA INFORMATIVO ELEMENTI FONDAMENTALI PER LO SVILUPPO DI SISTEMI INFORMATIVI ELABORAZIONE DI

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

SWIM v2 Design Document

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

Dettagli

Modellazione di sistema

Modellazione di sistema Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI Contenuti Approcci di analisi Linguaggi di specifica Modelli di

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39 sommario 24-06-2004 10:18 Pagina V SOMMARIO INTRODUZIONE.......................................XV CAPITOLO 1: PRESENTAZIONE.......................................1 1.1 Introduzione...2 1.2 L organizzazione

Dettagli

Concetti preliminari teorici per il corso di Access Avanzato - Sc.Elem Falcone - PON 2010 - Prof. M. Simone

Concetti preliminari teorici per il corso di Access Avanzato - Sc.Elem Falcone - PON 2010 - Prof. M. Simone Concetti preliminari per il corso di Access di database e di DBMS Un database è un insieme ben organizzato di informazioni distribuite su più tabelle all interno dello stesso file e gestite da un apposito

Dettagli

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

7. Architetture Software

7. Architetture Software 7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20 Scopo della fase di design

Dettagli

Ingegneria del Software: UML Class Diagram

Ingegneria del Software: UML Class Diagram Ingegneria del Software: UML Class Diagram Due on Mercoledì, Aprile 1, 2015 Claudio Menghi, Alessandro Rizzi 1 Contents Ingegneria del Software (Claudio Menghi, Alessandro Rizzi ): UML Class Diagram 1

Dettagli

IL DAT A B A S E DI ALGE B R A N D O

IL DAT A B A S E DI ALGE B R A N D O IL DAT A B A S E DI ALGE B R A N D O Un progetto di: Davide Valeriani Matricola 190883 davide.valeriani@studenti.unipr.it Corso di laurea in Ingegneria Informatica Esame di Basi di Dati A Prof. Stefano

Dettagli

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori Programmazione ad oggetti in Java Daniela Micucci Outline La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori 2 Programmazione ad oggetti in Java 1 OOP Java

Dettagli

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy.

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com

Dettagli

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Progettazione della componente applicativa

Progettazione 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

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA DAL PROBLEMA AL PROGRAMMA Scopo del modulo Conoscere alcuni concetti fondamentali dell informatica:algoritmo, l automa, linguaggio formale Essere in grado di cogliere l intreccio tra alcuni risultati della

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

Definizione Un modello astratto è la rappresentazione formale di idee e conoscenze relative a un fenomeno.

Definizione Un modello astratto è la rappresentazione formale di idee e conoscenze relative a un fenomeno. MODELLI INFORMATICI 1 Definizione Un modello astratto è la rappresentazione formale di idee e conoscenze relative a un fenomeno. Aspetti di un modello: il modello è la rappresentazione di certi fatti;

Dettagli

Breve Excursus su Evoluzione della Programmazione. Corso di Linguaggi e Metodologie di Programmazione

Breve Excursus su Evoluzione della Programmazione. Corso di Linguaggi e Metodologie di Programmazione Breve Excursus su Evoluzione della Programmazione Corso di Linguaggi e Metodologie di Programmazione Introduzione Le slide presenti in questo documento hanno il solo scopo di riassumere i momenti fondamentali

Dettagli

Un modello è ragionevole quando contiene queste tre caratteristiche.

Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Si consideri un agenzia che opera come biglietteria ferroviaria, aerea e navale, accettando diversi modi di pagamento. Si identifichino le principali entità coinvolte illustrando le gerarchie

Dettagli