Progettazione orientata agli oggetti



Похожие документы
Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Claudia Raibulet

Progettaz. e sviluppo Data Base

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

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Soluzione dell esercizio del 2 Febbraio 2004

Database. Si ringrazia Marco Bertini per le slides

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Object Oriented Software Design

Strumenti di modellazione. Gabriella Trucco

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

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Reti di Calcolatori. Il Livello delle Applicazioni

Reti di Telecomunicazione Lezione 6

3. Introduzione all'internetworking

Dalla progettazione concettuale alla modellazione di dominio

BASI DI DATI - : I modelli di database

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Strutturazione logica dei dati: i file

UNICO WEB DbLan Group SRL

Esercizio data base "Biblioteca"

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

B.P.S. Business Process Server ALLEGATO C10

Modellazione dei dati in UML

Corso di Informatica

GLI INDIRIZZI DELL INTERNET PROTOCOL (IP ADDRESS) 2. Fondamenti sugli indirizzi dell Internet Protocol 2. Struttura di un indirizzo IP 2

Gestione del workflow

Organizzazione degli archivi

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

I database relazionali (Access)

Traccia di soluzione dell esercizio del 25/1/2005

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Class Discovery E.

Il fenomeno della geolocalizzazione. Ugo Benini

MODELLO E/R. Modellazione dei dati

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

Lezione V. Aula Multimediale - sabato 29/03/2008

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

I database. Cosa sono e a cosa servono i Database

Progettazione : Design Pattern Creazionali

Informatica (Basi di Dati)

Lo scenario: la definizione di Internet

Concetti di base di ingegneria del software

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011.

Diagrammi di Interazione

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

SISTEMI DI NUMERAZIONE E CODICI

Protocolli applicativi: FTP

Registratori di Cassa

Reti di Telecomunicazione Lezione 8

PROGETTAZIONE CONCETTUALE

Linguaggi di programmazione

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

UML Unified Modeling Language

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

MODELLO RELAZIONALE. Introduzione

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

GE 032 DESCRIZIONE RETI GEOGRAFICHE PER MX 650

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

TECNICHE DI SIMULAZIONE

Internet e posta elettronica. A cura di Massimiliano Buschi

Progettazione di Database. Un Esempio

Dispensa di database Access

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

FPf per Windows 3.1. Guida all uso

Database 1 biblioteca universitaria. Testo del quesito

FotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE

Officina Meccanica. Analisi, progetto e sviluppo

Introduzione al data base

Esercitazione su UML Ingegneria del Software - San Pietro

Progettazione di Basi di Dati

Diagrammi dei package

Guida all uso di Java Diagrammi ER

Lezioni di Laboratorio sui Data Base

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

Basi di dati 9 febbraio 2010 Compito A

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

DATABASE RELAZIONALI

I Sistemi Informativi

Programmi e Oggetti Software

PIANO DI TUTELA DELLE ACQUE DELLA SICILIA (di cui all'art. 121 del Decreto Legislativo 3 aprile 2006, n 152)

Le Basi di Dati. Le Basi di Dati

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Gli strumenti della geografia

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

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

UML Diagrammi delle classi. UML Diagramma classi 1

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Organizzazione delle informazioni: Database

GERARCHIA IS-A (è un) GENERALIZZAZIONI / SPECIALIZZAZIONI ESEMPIO 1

Транскрипт:

Progettazione orientata agli oggetti Introduzione alle tecniche orientate agli oggetti Modelli ad oggetti Oggetti, classi, associazioni, aggregazione

OO - Introduzione Il compito del programmatore: collegare lo spazio del problema (problem space) con quello della soluzione (solution space) L approccio ad oggetti: descrizione in termini dello spazio del problema non in quello della macchina programmazione ad oggetti 2

OO - Panoramica Un sistema software viene realizzato mediante un insieme di oggetti che cooperano alla soluzione Gli oggetti comunicano tramite messaggi (una metafora che evidenzia la separazione tra gli oggetti) Gli oggetti sono descritti da classi, che ne definiscono le caratteristiche (metodi e proprietà) Le classi sono collegate tramite relazioni di varie tipologie Le relazioni tra le classi valgono anche per gli oggetti da esse definiti programmazione ad oggetti 3

Oggetti Un sistema complesso viene suddiviso in oggetti collegati tra loro e cooperanti Gli oggetti sono scatole nere completamente blindate: l unica parte visibile di un oggetto è la sua superficie (interfaccia) definita sulla base dei messaggi che scambia con gli altri oggetti Corrispondono agli attori, alle entità fondamentali di un sistema o una situazione (termini definitori presi nel problem space) programmazione ad oggetti 4

Classi Ogni oggetto deriva da una classe (si dice che è l istanza di una classe) La classe descrive caratteristiche e comportamenti di un insieme di oggetti Le classi sono organizzate in gerarchie e sono in relazione tra loro programmazione ad oggetti 5

Classi: fabbriche di oggetti Le classi sono fabbriche di oggetti Ogni volta che serve un oggetto, si usa la classe come uno stampo per generare un nuovo oggetto avente le proprietà definite dalla classe (si istanzia la classe nell oggetto) Cfr. con tipi di dato e variabili (classe come tipo, oggetto come variabile) programmazione ad oggetti 6

Esempi Persona classe Claudio oggetto Franco oggetto Protocollo di Rete classe Hyper Text Transfer Protocol File Transfer Protocol oggetto oggetto programmazione ad oggetti 7

Modularità E molto difficile descrivere un sistema complesso (controllo di reti idriche, rete di comunicazione, base di dati geografici...) come una unica entità. Oggetti e classi permettono di decomporre il sistema in unità più piccole aventi comportamento e caratteristiche più semplici da comprendere... divide et impera... programmazione ad oggetti 8

Minima distanza semantica Le entità con cui abbiamo a che fare in un sistema OO sono una traduzione quasi diretta degli attori che compaiono nel problema: la distanza semantica tra modello e originale è molto piccola Veicolo Veicolo Cliente Cliente Rivenditore Rivenditore programmazione ad oggetti 9

Diagrammi Diagrammi delle classi struttura logica del sistema componenti e relazioni tra essi descrizioni generiche di sistemi (casi generali) Diagrammi degli oggetti particolari istanze di sistemi (casi particolari) programmazione ad oggetti 10

Esempio Veicolo Veicolo Cliente Cliente SV 314510 Rivenditore Rivenditore SV 314510 classi oggetti Mario Rossi Mario Rossi AutoPiù v. Garibaldi 28 17100 Savona AutoPiù programmazione ad oggetti 11

Attributi Gli attributi modellano le caratteristiche fondamentali degli oggetti o delle classi (cfr. variabili) Ad ogni attributo in una classe corrisponde un Persona valore in un oggetto eta nome istanza Paolo (Persona) Persona eta: integer nome: string istanza Lara (Persona) eta=18 nome="lara" eta=28 nome="paolo" programmazione ad oggetti 12

Messaggi e metodi Gli oggetti collaborano tra loro scambiandosi messaggi - qualunque scambio di informazione in un sistema ad oggetti è modellato in questo modo Ogni oggetto reagisce alla ricezione di un messaggio in un determinato modo, chiamato metodo (codice in C++) I metodi sono uguali per tutti gli oggetti di una stessa classe - il comportamento di un oggetto dipende dalla sua classe programmazione ad oggetti 13

Messaggi e metodi Persona Implementazione del metodo eta: integer nome: string scrivinome scrivieta { cout << nome; } Insieme dei dei metodi e definizione dei dei messaggi che che un un oggetto di di classe Persona può può ricevere: Interfaccia programmazione ad oggetti 14

Incapsulamento Incapsulamento significa occultamento della informazione: ogni componente di un sistema deve conoscere del resto del sistema solo ciò che gli è indispensabile L interfaccia di ciascun componente (l insieme dei suoi metodi, a rigore) deve essere tale da rivelare il meno possibile della sua struttura interna (importanza delle interfacce) Progettare a compartimenti stagni significa facilitare il riuso programmazione ad oggetti 15

Associazioni Sono connessioni concettuali tra oggetti o classi Le associazioni sono generalmente bidirezionali Le associazioni in C++ vengono implementate con puntatori: per questo spesso è utile definire un verso di navigazione preferenziale della relazione programmazione ad oggetti 16

Associazioni La relazione di associazione implica una interazione tra oggetti o classi: due oggetti o classi in associazione di solito interagiscono attraverso l invio di messaggi oggetto/ classe comunica con... usa i servizi di... è in relazione con...... oggetto2/ classe2 programmazione ad oggetti 17

Associazioni 1: dammilistaveicoli Casello Autostradale uomo Veicoloentrato-da 2: dammitarga cliente sposato-con donna acquisto automobile Dipendente lavora per Azienda programmazione ad oggetti 18

Molteplicità Esattamente uno molti (zero o più) opzionale (zero o uno) 1+ 3..10 programmazione ad oggetti 19

Associazioni e attributi Una associazione può essere caratterizzata da attributi Cliente Automobile Acquisto data di acquisto programmazione ad oggetti 20

Associazione, attributo o classe? Coniuge Persona Uomo sposato-con Donna Uomo Donna sposato-con anno-dimatrimonio Uomo Matrimonio Donna programmazione ad oggetti 21

Ruoli Un ruolo è un nome che identifica univocamente un estremo della associazione Un ruolo viene utilizzato per attraversare l associazione senza menzionarla eliminando eventuali ambiguità di interpretazione Un ruolo spesso è rappresentato con un sostantivo e una associazione con un verbo programmazione ad oggetti 22

Ruoli Utente possessore possiede Directory contiene possessore possiede contiene contenitore contenuto File programmazione ad oggetti 23

Aggregazione E una associazione che indica contiene, è costituito da... Stanza 4 Parete programmazione ad oggetti 24

Aggregazione Gli oggetti componenti diventano proprietà esclusiva dell oggetto composto che diventa così la loro interfaccia per i messaggi ricevuti da altri oggetti 1: MettiInMoto Automobile 4 Ruota 2: CominciaRotazione Propagazione del messaggio programmazione ad oggetti 25

Modello ad Oggetti di VCR - TV programmazione ad oggetti 26

Modello ad Oggetti VCR-TV di VCR - TV Attributi: Modo VCR Operazioni: Play Pausa Registra Avanti Veloce Riavvoglimento Stop Eject Attributi: Canale TV Operazioni: Canale avanti Canale indietro Attributi: Ora Orologio Meccanica nastro Attributi: NastroInserito Operazioni: Set Operazioni: Play Pausa Registra Avanti veloce Riavvolgimento Stop programmazione ad oggetti Eject 27

Modello ad Oggetti di un Calcolatore programmazione ad oggetti 28

Modello ad Oggetti di un Attributi: Calcolatore Calcolatore Operazioni: Part Of Attributi: Tasto Operazioni: Premi Contiene Display Tasto Diplay Taso Operazione Attributi: Operazioni: Clear AggiungiCifra Mostra Attributi: Operazioni: Attributi: Operazioni: Relazione Cifra Decimale Attributi: Valore Punto decimale Attributi: IsA Operazioni: Operazioni: programmazione ad oggetti 29

GeoFacts -- Un piccolo database turistico programmazione ad oggetti 30

Diagramma ad Oggetti Attributi: GeoFacts GeoFacts Operazioni: Continente Attributi: Nome Operazioni: Antartide Fatto Sud America Nord America Africa Asia Attributi: Nome Operazioni: Europa IsA Campagna Lago Deserto Fiume Ghiacciaio Isola Città Banchisa programmazione ad oggetti 31 Montagna

Esercizi Costruire un modello ad oggetti che descriva il funzionamento di uno dei programmi grafici che state utilizzando (es. finestra di login ) Costruire un modello ad oggetti che descriva le relazioni tra utenti, processi, directory, file in un sistema operativo tipo Unix programmazione ad oggetti 32