© m. badella, g. malnati, l. tessitore 2003-05 programmazione ad oggetti a.a. 2004-05 il paradigma...

42
© M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

Upload: ennio-mazzoni

Post on 02-May-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

A.A. 2004-05

Il paradigma ad oggetti

Page 2: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

2

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Argomenti della lezione

Sistemi informativiModellare la realtà (1):

classi e oggettiModellare la realtà (2):

relazioniProgettazione ad oggetti

Page 3: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

3

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Sistemi informativi

La realtà che ci circonda è estremamente complessaMolteplicità di elementi, interazioni,

comportamenti, …

Il compito del software è modellare porzioni di tale realtà allo scopo di realizzare sistemi informativi In grado di raccogliere, elaborare, trasmettere

dati per offrire servizi ai loro utilizzatori

Page 4: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

4

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Software

L’insieme di programmi strutture dati documentazione test

necessari a sviluppare validare far funzionare manutenere

un dato sistema informativo

Page 5: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

5

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Il ruolo dei linguaggi di programmazione

Il comportamento di un sistema informativo non dovrebbe dipendere dal modo con cui è stato realizzato Ma solo dalle sue specifiche

Alcune proprietà (manutenibilità, possibilità di riuso, …) possono però dipendere molto dalle scelte fatte in fase di progetto In particolare dalla metodologia di progetto e dai linguaggi

di codifica adottati Alcuni linguaggi offrono astrazioni più potenti

L’esperienza mostra che sono più adatti a modellare situazioni complesse e in forte evoluzione

Page 6: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

6

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Programmazione strutturata

Il codice è suddiviso in moduli Ogni modulo è composto da procedure e strutture

dati Le procedure operano sui dati, modificandoli Riflette l’organizzazione di un elaboratore Modello soggiacente al linguaggio “C”

Non c’è un legame forte tra procedure e dati: Qualsiasi procedura in grado di accedere ad un dato lo può

modificare Approccio che non scala al crescere delle dimensioni del

problema

Page 7: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

7

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Un’arte difficile

La programmazione richiede molte abilità: Creatività Capacità di analizzare e risolvere problemi Capacità di pensiero strutturato Precisione e attenzione ai particolari Conoscenza approfondita del linguaggio di

programmazione adottato … e altre cose!

L’approccio strutturato non semplifica il problema Basso livello di astrazione Il numero di dettagli di cui occuparsi cresce troppo al

crescere della dimensione del problema trattato

Page 8: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

8

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Ulteriorioggetti

Oggetto

Oggetto

Un approccio nell’osservare il mondo

Page 9: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

9

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Oggetti e realtà

Il mondo fisico è costituito da un insieme di oggetti variamente strutturati che interagiscono tra loro

Ciascuno è dotato di: Una propria identità (è riconoscibile) Uno stato (ricorda la storia passata) Un comportamento (reagisce a stimoli esterni in un modo

prevedibile)

Si può estendere la metafora al software Ogni entità logica che deve essere manipolata può essere

immaginata come un “oggetto”

Page 10: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

10

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Stato

Page 11: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

11

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Stato

Ogni oggetto ha uno stato: L’insieme dei parametri caratteristici che contraddistinguono

un oggetto in un dato istante Riflette la storia dell’oggetto

Composto da un un gruppo di “attributi” Ogni attributo modella un particolare aspetto dello stato Può essere un valore elementare o un altro oggetto…

Implementato mediante un blocco di memoria Contiene i valori degli attributi

Principio fondamentale: incapsulamento Lo stato “appartiene” all’oggetto Un utente esterno non può manipolare direttamente lo stato

Page 12: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

12

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Comportamento

Richiesta

Richiesta

Richiesta

Page 13: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

13

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Comportamento Gli oggetti interagiscono a seguito di “richieste” esterne (messaggi)

Dotate di eventuali parametri che ne specificano i dettagli Ogni oggetto sa reagire ad un ben determinato insieme di

messaggi Costituiscono la sua interfaccia

Ad ogni richiesta è associato un comportamento Modifica dello stato Invio di richieste verso altri oggetti Comunicazione di informazioni (risultato)

Implementato attraverso un blocco di codice (metodo) Contiene la sequenza delle operazioni da svolgere

Principio fondamentale: delega Chi effettua la richiesta non vuole conoscere i dettagli di come la richiesta sia

evasa

Page 14: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

14

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Metodi e funzioni

Un metodo è simile ad una funzione Ha un nome Può avere dei parametri Può avere un valore di ritorno È composto da un insieme di istruzioni

Ma… Agisce su un oggetto specifico (il destinatario del metodo) Il codice effettivamente eseguito dipende dal destinatario

o cosa succede quando si compone un numero su un cellulare rispetto a quando si compone lo stesso numero su un telefono fisso?

Page 15: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

15

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Classificare la realtà

Page 16: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

16

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Classificare la realtà

Nel mondo reale esistono molti oggetti Per ogni “tipo” di oggetto le persone hanno sviluppato un

apposito “concetto”

Il concetto esiste nella mente delle singole persone e indica: le caratteristiche ed il comportamento atteso di un oggetto Le sue relazioni (a livello concettuale) con altri oggetti

I singoli oggetti esistono nella realtà Hanno una propria identità ed un proprio stato Si comportano (dovrebbero comportarsi) coerentemente

con il modello concettuale

Page 17: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

17

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Oggetti e classi

Nei sistemi informativi, ogni oggetto appartiene ad una classeÈ istanza della classeLa classe costituisce il “progetto” dell’oggetto e

ne specifica i metodi e gli attributi

Oggetti appartenenti alla stessa classe hanno lo stesso comportamento e lo stesso insieme di attributiMa possono avere stati (valori) differenti

Page 18: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

18

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Oggetti e classi

Gli oggetti sono caratterizzati da un insieme di dati (stato) un insieme di istruzioni (comportamento)

Gli oggetti si “costruiscono” a partire dalla classeCostruire un oggetto significa allocare un blocco

di memoria e registrare al suo interno lo statoNel “progetto” (classe) sono contenute apposite

istruzioni circa la corretta creazione/configurazione degli oggetti “nuovi”

Page 19: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

19

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Esempio

Classe telefono…attributo numero!

Telefono1Numero:

011 5647044

Telefono2Numero:

011 5647091

Memoria

Page 20: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

20

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

TelefonoCellulareTelefonoCellulare

Rappresentare le classi

acceso: booleancaricaResidua: intoccupato: booleancampoRicevuto: int

acceso: booleancaricaResidua: intoccupato: booleancampoRicevuto: int

chiama(numero): voidsquilla(): voidspegni(): voidaccendi(): void

chiama(numero): voidsquilla(): voidspegni(): voidaccendi(): void

Nome

Attributi

Metodi

Page 21: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

21

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Esempi

SvegliaDa quali attributi è composto

il suo stato?Che tipo di informazione contengono?Quali metodi offre?Qual è la logica associata a ciascun metodo?

Calcolatrice tascabileSi trascurino cifre decimali,

memoria, percentualeProblema più complesso!

Page 22: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

22

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Relazioni tra le classi

Concetti (classi) diversi possono essere tra loro collegati: Il motore è parte di un’automobileUna persona è figlia di due genitoriUn veicolo è guidato da un autista…

Si rappresentano tali legami attraverso linee che connettono le classi

Persona AziendaLavora per

Page 23: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

23

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Ruoli e molteplicità Ogni classe svolge un ruolo specifico in una

relazione Lo si esprime dando un nome alle estremità della linea

Data una relazione che coinvolge un dato oggetto, l’altro ruolo può essere svolto da 0..1 – zero o uno N – un numero specifico (ad esempio, 1, 2, …) * – qualunque numero (scritto anche 0..*) 1..* – uno o più oggetti

Persona

lavoratore datoredi lavoro

1..* 0..* AziendaLavora per

Page 24: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

24

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Relazioni multiple

Tra una data coppia di classi, possono esistere più relazioni che le uniscono

Volo AeroportoParte da

Arriva a

Possono esistere relazioni che coinvolgono una sola classe

Persona

genitore

0..2

figlio0..*

È genitore di

Page 25: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

25

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Appartenenza

Oggetti complessi sono composti da parti più semplici Le funzionalità dell’oggetto composto sono il risultato della

composizione delle funzionalità dei singoli elementi Un’automobile “contiene” un motore, una carrozzeria,

quattro ruote, …

Il ciclo di vita dell’oggetto composto può coincidere o meno con quello dei componenti: Nel primo caso si parla di composizione (stretta) Nel secondo, di aggregazione (lasca)

Page 26: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

26

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Aggregazione

Le singole parti possono esistere indipendentemente dall’oggetto composto

Una singola parte può essere aggregata a più oggetti composti

Si indica con la notazione

CorsoDiLaurea Persona1..*0..1

Page 27: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

27

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Composizione

Le parti cessano di esistere quando l’oggetto composto cessa di esistereLa costruzione/distruzione dell’oggetto composto

comporta la costruzione/distruzione dei componenti

Un’entità può far parte di un solo compostoSi indica con la notazione

eMailIntestazione

Corpo

Page 28: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

28

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

EsempioMotoreMotore

giri: doubleacceso: booleangiri: doubleacceso: boolean

accendi(): voidspegni(): voidaccelera(): voidrallenta(): voidleggiGiri(): double

accendi(): voidspegni(): voidaccelera(): voidrallenta(): voidleggiGiri(): double

CambioCambio

marcia: intmarcia: int

inserisci(m:int): voidrapportoRiduzione(): double

inserisci(m:int): voidrapportoRiduzione(): double

AutomobileAutomobilevelocità: doublevelocità: double

accendi(): voidspegni(): voidinserisci(m:int)accelera():voidrallenta(): void

accendi(): voidspegni(): voidinserisci(m:int)accelera():voidrallenta(): void

1

1

1

1

Page 29: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

29

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Gerarchie concettuali (1) Alcune classi modellano concetti generali che

comprendono insiemi di concetti più specifici Le caratteristiche (stato e comportamento) dei concetti più

generici sono condivise dai concetti più specifici Si utilizza la notazione

super-classe

sotto-classi

EssereVivente

Animale Vegetale

Persona

Page 30: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

30

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Gerarchie concettuali (2)

La relazione “è più specifico di” riveste un ruolo particolare nei linguaggi ad oggetti: Fondamento dell’ereditarietà

La classe più specifica “eredita” attributi, metodi, aggregazioni e altre relazioni da quella più generica A questi, si affiancano attributi , metodi, aggregazioni e

relazioni propri della sotto-classe

La sotto-classe può ridefinire il comportamento legato ai metodi ereditati A condizione di mantenerne intatta la definizione (numero

e tipo dei parametri, tipo ritornato): polimorfismo

Page 31: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

31

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

EsempioTelefonoTelefono

stato: {agganciato, sganciato}tono: {linea, libero, occupato, nessuno}

suoneria: boolean

stato: {agganciato, sganciato}tono: {linea, libero, occupato, nessuno}

suoneria: boolean

componi(n:int):voidsgancia(): voidaggancia(): voidriproduci(tono):voidsquilla(): void

componi(n:int):voidsgancia(): voidaggancia(): voidriproduci(tono):voidsquilla(): void

CellulareCellulare

batteria: intcampo: intidCella: intidOperatore: int

batteria: intcampo: intidCella: intidOperatore: int

ricarica(): voidaccendi(): voidspegni(): void

ricarica(): voidaccendi(): voidspegni(): void

Page 32: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

32

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Rappresentare gli oggetti

Il mondo reale è costituito da oggetti Così i programmi scritti con il paradigma ad oggetti sono

composti da blocchi di memoria nel calcolatore Data una classe, possono esistere molte istanze

Ogni istanza è distinguibile dalle altre Si rappresentano gli oggetti attraverso i diagrammi

delle istanze Per ogni oggetto, indicano:

il nome (arbitrario ma univoco) la classe di appartenenza i collegamenti cui partecipano (che devono soddisfare i

vincoli sulla molteplicità)

Page 33: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

33

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Diagrammi delle istanze

tizio: Personatizio: Persona

caio: Persona

sempronio: Personasempronio: Persona

acme: Aziendaacme: Azienda

orion: Aziendaorion: Azienda

Lavora per

Lavora perLavora per

È genitore diLavora per

Page 34: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

34

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Interazione tra oggetti

Un oggetto reagisce a richieste del mondo esterno Eseguendo il codice associato al metodo richiesto

La richiesta può comportare l’interazione con altri oggetti La composizione di un numero su un telefono, richiede alla

centrale telefonica di instaurare un collegamento con il destinatario

Si può interagire solo con chi si conosce Gli oggetti interagenti devono essere connessi da una qualche

relazione Si rappresenta questo insieme di interazioni tramite i

“diagrammi di sequenza” Mostrano quali interazioni avvengono tra oggetti e la relativa

sequenza temporale

Page 35: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

35

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Diagrammi di sequenzatel1:

Telefonotel1:

Telefonocentrale4:

CentraleTelefonicacentrale4:

CentraleTelefonicatel7:

Telefonotel7:

Telefono

componi(737)richiediLinea()

tono di linea

chiama(737)

faiSquillare()

risposta: ok

comunicazione:attiva

comunicazione:attiva

t

Page 36: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

36

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Il processo di creazione del software (1)

Dapprima, occorre capire cosa viene chiesto di fareAnalisi: definisce i termini del problemaTraduce le parole (ambigue) del committente in

requisiti verificabili

Poi, occorre capire come farloProgetto: definisce l’architettura della soluzioneSceglie come realizzare i requisiti attraverso

classi, oggetti, relazioni, …

Page 37: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

37

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Il processo di creazione del software (2)

Quindi è utile definire come verificareProgetto del test: definisce i controlli da attuareTraduce i requisiti in un insieme di misure

Da ultimo, si scrive e verifica il codiceSviluppo: produce la soluzione Implementa l’architettura

Il processo è iterativoLe diverse fasi si susseguono raffinando

progressivamente la soluzione

Page 38: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

38

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Progettare ad oggetti

Si parte dal testo delle specifiche Si individuano i nomi e i verbi

Tra i nomi, si individuano le possibili classi di oggetti Con i relativi attributi

Tra i verbi, si individuano metodi e relazioni Di solito, i verbi di azione si modellano come metodi ( “X

apre Y” ), quelli di stato come relazioni ( “A si trova presso B” )

L’interazione tra due oggetti sottende l’esistenza di una relazione tra gli stessi

Attenzione alle forme passive e ai sostantivi deverbali!

Page 39: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

40

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Esempio: controllo accessi

Permette di aprire le serrature collegate ad un lettore magnetico a fronte dell’inserimento di una tessera La tessera riporta l’identità del titolare

Un sistema centralizzato mantiene l’elenco di quali serrature siano apribili da quali tessere Quando si inserisce la tessera, il lettore richiede

l’autorizzazione al sistema centrale e, in caso affermativo, fa scattare la serratura

Il sistema centrale consente anche di aggiornare l’elenco delle autorizzazioni, aggiungendo ed eliminando coppie tessera/serratura

Page 40: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

41

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Serratura

Lettore

Tessera

Controllore

Apre

0..*1..*

Pilota

1

1

Richiede autorizzazione 1*

Controllo accessi: analisi

Elenco

Autorizzazione

*

1

1

0..*

1

*

Si i

nse

risc

e

Page 41: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

42

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Controllo accessi: analisiTesseraTessera

id: intid: int

leggiId(): intleggiId(): int

SerraturaSerratura

apri(): voidapri(): void

LettoreLettoreid: intid: int

valida(Tessera): voidvalida(Tessera): void

ControlloreControllore

verifica( idTessera: int, idLettore: int): boolean

verifica( idTessera: int, idLettore: int): boolean

ElencoElenconumAut: intnumAut: int

cerca( idTessera:int, idLettore:int): boolean

cerca( idTessera:int, idLettore:int): boolean

AutorizzazioneAutorizzazioneidTessera: intidLettore: intidTessera: intidLettore: int

confronta( tessera:int, lettore:int): boolean

confronta( tessera:int, lettore:int): boolean

Page 42: © M. Badella, G. Malnati, L. Tessitore 2003-05 Programmazione ad Oggetti A.A. 2004-05 Il paradigma ad oggetti

43

© M

. Bad

ella

, G. M

alna

ti, L

. Tes

sito

re 2

003-

05

Programmazione ad Oggetti

Controllo accessi: diagramma di sequenza

Tessera5Tessera5Lettore3Lettore3

Serratura3Serratura3

Controllore1Controllore1

t

inserisci(Tessera5)leggiId()

5

verifica(5,3)

true

apri()