1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

42
1 Esercitazioni di Esercitazioni di Teoria dei Sistemi Teoria dei Sistemi Anno Accademico 2007-2008 Anno Accademico 2007-2008 Prof. Alessandro Raymondi Prof. Alessandro Raymondi

Transcript of 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

Page 1: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

11

Esercitazioni di Teoria Esercitazioni di Teoria dei Sistemidei Sistemi

Anno Accademico 2007-2008Anno Accademico 2007-2008

Prof. Alessandro RaymondiProf. Alessandro Raymondi

Page 2: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

22

Introduzione all’OOP (I)Introduzione all’OOP (I)

Linguaggio più vicino all’uomo che al Linguaggio più vicino all’uomo che al calcolatorecalcolatore

Più simile alla realtà che ci circondaPiù simile alla realtà che ci circonda

OOP come rappresentazione della OOP come rappresentazione della conoscenzaconoscenza

Il problema va analizzato ‘a oggetti’Il problema va analizzato ‘a oggetti’

Page 3: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

33

Introduzione all’OOP (II)Introduzione all’OOP (II)

Programmazione Programmazione tradizionaletradizionale

Programmazione ad Programmazione ad oggettioggetti

Programma = {riga;Programma = {riga;

riga}riga}

ProgrammaProgramma

Procedure e funzioniProcedure e funzioni MetodiMetodi

Tipi di dati (Int, Char, Tipi di dati (Int, Char, String…)String…)

ClassiClassi

CostantiCostanti OggettiOggetti

VariabiliVariabili VariabiliVariabili

Page 4: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

44

Gli oggetti (I)Gli oggetti (I)

Dal punto di vista operativo:Dal punto di vista operativo:

Cioè una scatola nera che contiene funzionalità, scritte Cioè una scatola nera che contiene funzionalità, scritte tramite un linguaggio.tramite un linguaggio.

Contiene una serie di procedure e funzioni che gli Contiene una serie di procedure e funzioni che gli competono.competono.

Page 5: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

55

Gli oggetti (II)Gli oggetti (II)

Per poter comunicare con l’oggetto, gli invio Per poter comunicare con l’oggetto, gli invio un messaggio:un messaggio:

messaggio oggetto ricevente

Page 6: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

66

Gli oggetti (III)Gli oggetti (III)

Quando un oggetto riceve un messaggio, Quando un oggetto riceve un messaggio, l’oggetto dà il via all’esecuzione di un l’oggetto dà il via all’esecuzione di un programma, procedura o funzione:programma, procedura o funzione:

2

Page 7: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

77

Gli oggetti (IV)Gli oggetti (IV)

Dal punto di vista strutturale:Dal punto di vista strutturale:

Oggetto

attributo1

attributo2

attributo3

Attributi pubblici: accessibili dall’esternoAttributi pubblici: accessibili dall’esterno

Attributi privati: accessibili solo dall’interno della classeAttributi privati: accessibili solo dall’interno della classe

Attributi protetti: accessibili solo dalla classe e dalle sue Attributi protetti: accessibili solo dalla classe e dalle sue sottoclassisottoclassi

Page 8: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

88

Gli oggetti (V)Gli oggetti (V)

Mettiamo insieme i due punti di vista:Mettiamo insieme i due punti di vista:

OggettoOggetto

attributo1attributo1

attributo2attributo2

attributo3attributo3

funzione1()funzione1()

funzione2()funzione2()

funzione3()funzione3()

Page 9: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

99

La dinamica degli oggettiLa dinamica degli oggetti

Quando ad un oggetto mando un Quando ad un oggetto mando un messaggiomessaggio viene eseguito un viene eseguito un metodometodo

OggettoOggetto

attributo1attributo1

attributo2attributo2

attributo3attributo3

funzione1()funzione1()

funzione2()funzione2()

funzione3()funzione3()

funzione1()

Public function1()…End;

Page 10: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1010

Il polimorfismoIl polimorfismo

E’ la capacità che hanno oggetti di natura E’ la capacità che hanno oggetti di natura diversa di rispondere in maniera diversa di rispondere in maniera appropriata allo stesso messaggioappropriata allo stesso messaggio

Es. il metodo print (o write)Es. il metodo print (o write)

Stesso messaggio, il metodo è diversoStesso messaggio, il metodo è diverso

Page 11: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1111

Dall’oggetto alla classeDall’oggetto alla classe

La classe è l’insieme di tutti gli oggetti che La classe è l’insieme di tutti gli oggetti che hanno la stessa struttura e lo stesso hanno la stessa struttura e lo stesso comportamentocomportamento

2

34531

Integer

Page 12: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1212

La gerarchia delle classiLa gerarchia delle classi

Object

Array Magnitude Windows

Number

Float IntegerFraction

Page 13: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1313

Ereditarietà e sovrascrizioneEreditarietà e sovrascrizione

Ogni classe Ogni classe ereditaeredita dalle classi da cui dalle classi da cui discende tutte le proprietà: attributi e discende tutte le proprietà: attributi e metodimetodi

I vantaggi: codice più ordinato, scritto nella I vantaggi: codice più ordinato, scritto nella classe adatta, risparmio nella scritturaclasse adatta, risparmio nella scrittura

Si può comunque Si può comunque sovrascriveresovrascrivere un metodo un metodo ereditatoereditato

Page 14: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1414

Esempi di classi (I)Esempi di classi (I)

FrazioneFrazione

numeratorenumeratore

denominatoredenominatore

**

++

--

//

print()print()

……

Page 15: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1515

Esempi di classi (II)Esempi di classi (II)

MatriceMatrice

mm

nn

cellecelle

**

++

--

//

trasposta()trasposta()

Page 16: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1616

Esempi di classi: ereditarietà (III)Esempi di classi: ereditarietà (III)MatriceMatrice

mm

nn

cellecelle

**

++

--

//

trasposta()trasposta()MatriceQuadrataMatriceQuadrata

determinante()determinante()

inversa()inversa()

……

MatriceTriangolareMatriceTriangolare

determinante()determinante()

Se per le matrici triangolari

conosco un metodo migliore lo

reimplemento

Page 17: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1717

Esempi di classi (IV)Esempi di classi (IV)

BiroBiro

colorecolore

puntapunta

statostato

fogliofoglio

posizioneposizione

livellolivello

accenditi()accenditi()

spegniti()spegniti()

vai()vai()

Page 18: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1818

Analisi degli oggetti: astrazioneAnalisi degli oggetti: astrazione

Dai requisiti alle classiDai requisiti alle classiModalità top/downModalità top/downDal punto di vista statico:Dal punto di vista statico: individuare le entitàindividuare le entità individuare le relazioniindividuare le relazioni individuare gli attributi delle singole classiindividuare gli attributi delle singole classi

Dal punto di vista dinamico:Dal punto di vista dinamico: individuare le funzionalitàindividuare le funzionalità

Disegno dell’architetturaDisegno dell’architetturaSviluppoSviluppo

Page 19: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

1919

Gestione degli studenti: le entitàGestione degli studenti: le entità

Studente Corso Facoltà

ArchivioEsame

Page 20: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2020

Gestione degli studenti: le relazioniGestione degli studenti: le relazioni

Studente

Corso Facoltà

ArchivioEsame

Page 21: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2121

Gestione degli studenti: alcune classiGestione degli studenti: alcune classi

FacoltàFacoltà

codicecodice

descrizionedescrizione

sedesede

corsicorsi

CorsoCorso

codicecodice

descrizionedescrizione

docentedocente

esercitatoreesercitatore

crediticrediti

annoanno

EsameEsame

corsocorso

data_esamedata_esame

esitoesito

Page 22: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2222

Gestione degli studenti: la classe Gestione degli studenti: la classe studentestudente

StudenteStudente

numero_matricolanumero_matricola

nomenome

cognomecognome

dati_anagraficidati_anagrafici

facoltàfacoltà

data_iscrizionedata_iscrizione

esami_sostenutiesami_sostenuti

Dati_anagraficiDati_anagrafici

indirizzoindirizzo

localitàlocalità

capcap

provinciaprovincia

statostato

data_di_nascitadata_di_nascita

stato_civilestato_civile

……

Page 23: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2323

Dal punto di vista dinamicoDal punto di vista dinamico

StudenteStudente

numero_matricolanumero_matricola

……

esami_sostenutiesami_sostenuti

iscrizione()iscrizione()

sostieneEsame()sostieneEsame()

media()media()

archivia()archivia()

stampaLibretto()stampaLibretto()

crediti()crediti()

Page 24: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2424

La logica di sviluppo: a tre livelliLa logica di sviluppo: a tre livelli

I strato - la GUI, cioè l’interfaccia graficaI strato - la GUI, cioè l’interfaccia graficaII strato - la logica: le entità che rappresentano II strato - la logica: le entità che rappresentano la mia problematicala mia problematicaIII strato – la persistenza, cioè classi che si III strato – la persistenza, cioè classi che si occupano di ‘archiviare’ gli oggetti che si creano occupano di ‘archiviare’ gli oggetti che si creano nel mio sistemanel mio sistema

Sono strati indipendenti: uno comunica solo con Sono strati indipendenti: uno comunica solo con quello sottostante. Possono essere sviluppati quello sottostante. Possono essere sviluppati con tecnologie differenticon tecnologie differenti

Page 25: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2525

La gestione di un caseificioLa gestione di un caseificio

Parte gestionale: Parte gestionale:

- gestire l’acquisto del latte dai conferenti e - gestire l’acquisto del latte dai conferenti e dai fornitori non direttidai fornitori non diretti

- controllare l’esubero delle quote- controllare l’esubero delle quote

- far analizzare il latte in entrata- far analizzare il latte in entrata

- calcolare la qualità- calcolare la qualità

- emettere le fatture per i conferenti- emettere le fatture per i conferenti

Page 26: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2626

La gestione di un caseificioLa gestione di un caseificio

La produzione: La produzione:

- prelevare il latte dal silos- prelevare il latte dal silos

- ricetta per produrre il formaggio- ricetta per produrre il formaggio

- produzione con la tracciabilità- produzione con la tracciabilità

- fasi esterne: stagionatura- fasi esterne: stagionatura

- vendita a clienti- vendita a clienti

- fatture clienti- fatture clienti

Page 27: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2727

La gestione di un caseificio: le entitàLa gestione di un caseificio: le entità

Latte Conferente Fornitori

AnalisiQuota

Qualità FatturaMovimento

Page 28: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2828

La gestione di un caseificio: concetto di La gestione di un caseificio: concetto di prodottoprodotto

ArticoloArticolo

codicecodice

descrizionedescrizione

tipotipo

costocosto

prezzoprezzoLatteLatte

um__raccoltaum__raccolta

coefficientecoefficiente

ProdottoProdotto

ricettaricetta

tempo_stagionaturatempo_stagionatura

Page 29: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

2929

La gestione di un caseificio: concetto di La gestione di un caseificio: concetto di listinolistino

ListinoListino

codicecodice

descrizionedescrizione

tipo_AVtipo_AV

prodottoprodotto

prezzoprezzo

e poie poi

ogni conferente “ha” un listinoogni conferente “ha” un listino

ogni cliente “ha” un listinoogni cliente “ha” un listino

Page 30: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3030

La gestione di un caseificio: concetto di La gestione di un caseificio: concetto di conferente e altri fornitori latteconferente e altri fornitori latte

FornitoreFornitore

codicecodice

descrizionedescrizione

datiAnagraficidatiAnagrafici

partitaIVApartitaIVA

listinolistino

dataInizioAttivitàdataInizioAttività

dataCessazionedataCessazione

ConferenteConferente

quotaquota

numeroCapinumeroCapi

FornitoreNonDirettoFornitoreNonDiretto

nazionenazione

Page 31: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3131

La gestione di un caseificio: concetto di La gestione di un caseificio: concetto di analisi e di movimento del latteanalisi e di movimento del latte

AnalisiAnalisi

datadata

conferenteconferente

laboratoriolaboratorio

grassograsso

proteineproteine

carica_battericacarica_batterica

cellule_somatichecellule_somatiche

MovimentoMovimento

datadata

conferenteconferente

prodottoprodotto

quantitàquantità

umum

Page 32: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3232

La gestione di un caseificio: concetto di La gestione di un caseificio: concetto di qualità del lattequalità del latte

A seconda dei valori di analisi in un certo periodo il A seconda dei valori di analisi in un certo periodo il latte può dare origine ad un premio qualità latte può dare origine ad un premio qualità (negativo indica una penale):(negativo indica una penale):

QualitàQualità

periodoperiodo

conferenteconferente

media_Grassomedia_Grasso

media_Proteinemedia_Proteine

media_CaricaBattericamedia_CaricaBatterica

media_CelluleSomatichemedia_CelluleSomatiche

premiopremio

Page 33: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3333

La gestione di un caseificio: concetto di La gestione di un caseificio: concetto di fattura per il conferentefattura per il conferente

FatturaFattura

annoanno

numeronumero

datadata

periodoperiodo

conferenteconferente

titolotitolo

notenote

righerighe

Riga_FatturaRiga_Fattura

rigariga

prodottoprodotto

quantitàquantità

umum

prezzoprezzo

Page 34: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3434

La gestione di un caseificio: la La gestione di un caseificio: la fatturazionefatturazione

Dato un conferente ed un periodo di calcoloDato un conferente ed un periodo di calcolo

si scorrono i movimenti del periodo indicatosi scorrono i movimenti del periodo indicato

si creano tante righe quanti sono i listini nel si creano tante righe quanti sono i listini nel periodo (ad es. una riga per il latte normale ed periodo (ad es. una riga per il latte normale ed una per il latte non idoneo)una per il latte non idoneo)

se nell’anno il totale raccolto supera la quota se nell’anno il totale raccolto supera la quota assegnata, penale per superamento quotaassegnata, penale per superamento quota

se nel periodo ho una qualità, aggiungo in se nel periodo ho una qualità, aggiungo in fattura la riga con premio/penalefattura la riga con premio/penale

Page 35: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3535

La gestione di un caseificio: la La gestione di un caseificio: la dinamica per la fatturazione del lattedinamica per la fatturazione del latteConferenteConferente

consegnaLatte()consegnaLatte()

esegueAnalisi()esegueAnalisi()

acquistaQuota()acquistaQuota()

cessaAttività()cessaAttività()

QualitàQualità

calcolo()calcolo()

stampa()stampa()

FatturaFattura

calcola()calcola()

*calcolaLatte()*calcolaLatte()

*calcolaEsubero()*calcolaEsubero()

*calcolaQualità*calcolaQualità

stampa()stampa()

importo()importo()

numeroRighe()numeroRighe()

* sono metodi privati* sono metodi privati

Riga_FatturaRiga_Fattura

stampa()stampa()

importo()importo()

Page 36: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3636

La gestione di un caseificio: le La gestione di un caseificio: le entità per la produzioneentità per la produzione

Latte Prodotto Ricetta

StagionaturaProduzione

Vendita FatturaCliente

Magazzino

in rosso sono indicati i processi

Page 37: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3737

La gestione di un caseificio: il La gestione di un caseificio: il concetto di clienteconcetto di cliente

ClienteCliente

codicecodice

descrizionedescrizione

datiAnagraficidatiAnagrafici

partitaIVApartitaIVA

listinolistino

quindi

SoggettoSoggetto

codicecodice

descrizionedescrizione

datiAnagraficidatiAnagrafici

partitaIVApartitaIVA

listinolistinoFornitoreFornitore

dataInizioAttivitàdataInizioAttività

dataCessazionedataCessazione

ClienteCliente

agenteagente

indirizzo_Spedizionindirizzo_Spedizionee

Page 38: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3838

La gestione di un caseificio: altre La gestione di un caseificio: altre entitàentità

RicettaRicetta

codicecodice

descrizionedescrizione

componenticomponenti

fasifasi

derivatiderivati

MagazzinoMagazzino

codicecodice

descrizionedescrizione

stabilimentostabilimento

lottilotti

capacitàcapacità

temperaturatemperatura

carica()carica()

scarica()scarica()

giacenza()giacenza()

prodotti()prodotti()

costo()costo()

SilosSilos

umum

tipoLattetipoLatte

svuota()svuota()

Page 39: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

3939

La gestione di un caseificio: i La gestione di un caseificio: i processiprocessi

ProcessoProcesso

data_ora_iniziodata_ora_inizio

data_ora_finedata_ora_fine

responsabileresponsabile

statostato

documentodocumento

esegui()esegui()

interrompi()interrompi()

ProduzioneProduzione

ricettaricetta

quantitàquantità

silossilos

lottolotto

prelevaLatte()prelevaLatte()

prelevaComponenti()prelevaComponenti()

versaDerivati()versaDerivati()

StagionaturaStagionatura

terzistaterzista

magazzinomagazzino

prodottoprodotto

quantitàquantità

lottolotto

RientroRientro

stagionaturastagionatura

lottoTerzistalottoTerzista

costocosto

Page 40: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

4040

La gestione di un caseificio: la La gestione di un caseificio: la dinamica per la produzionedinamica per la produzione

ProduzioneProduzione

ricettaricetta

quantitàquantità

silossilos

lottolotto

prelevaLatte()prelevaLatte()

prelevaComponenti()prelevaComponenti()

versaDerivati()versaDerivati()

Il processo di produzione muove tutte le entità:Il processo di produzione muove tutte le entità:

nella ricetta trovo i prodotti da movimentarenella ricetta trovo i prodotti da movimentare

dal magazzino silos prelevo il prodotto lattedal magazzino silos prelevo il prodotto latte

dai magazzini prodotti prelevo i componentidai magazzini prodotti prelevo i componenti

nei magazzini prodotti verso i derivatinei magazzini prodotti verso i derivati

in questo momento nasce il lottoin questo momento nasce il lotto

Page 41: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

4141

La gestione di un caseificio: la La gestione di un caseificio: la venditavendita

ProcessoProcesso

data_ora_iniziodata_ora_inizio

data_ora_finedata_ora_fine

responsabileresponsabile

statostato

documentodocumento

esegui()esegui()

interrompi()interrompi()

VenditaVendita

clientecliente

prodottoprodotto

lottolotto

quantitàquantità

Page 42: 1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.

4242

La gestione di un caseificio: la La gestione di un caseificio: la rintracciabilitàrintracciabilità

Devo essere in grado di risalire dal prodotto che Devo essere in grado di risalire dal prodotto che invio al cliente al latte che ho usatoinvio al cliente al latte che ho usatoparto dal prodotto / lotto nella vendita (fattura)parto dal prodotto / lotto nella vendita (fattura)cerco tutti il documento di produzione in cui è cerco tutti il documento di produzione in cui è presente il prodotto / lotto in questionepresente il prodotto / lotto in questionedal processo risalgo alla data/ora di iniziodal processo risalgo alla data/ora di iniziocerco i carichi latte con data e ora inferiore a cerco i carichi latte con data e ora inferiore a questa ora di inizioquesta ora di inizionel carico è indicato il conferente che mi ha dato nel carico è indicato il conferente che mi ha dato il latte eventualmente avariatoil latte eventualmente avariato