1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi.
-
Upload
adelina-amato -
Category
Documents
-
view
216 -
download
0
Transcript of 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
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’
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
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.
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
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
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
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()
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;
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
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
1212
La gerarchia delle classiLa gerarchia delle classi
Object
Array Magnitude Windows
Number
Float IntegerFraction
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
1414
Esempi di classi (I)Esempi di classi (I)
FrazioneFrazione
numeratorenumeratore
denominatoredenominatore
**
++
--
//
print()print()
……
1515
Esempi di classi (II)Esempi di classi (II)
MatriceMatrice
mm
nn
cellecelle
**
++
--
//
trasposta()trasposta()
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
1717
Esempi di classi (IV)Esempi di classi (IV)
BiroBiro
colorecolore
puntapunta
statostato
fogliofoglio
posizioneposizione
livellolivello
accenditi()accenditi()
spegniti()spegniti()
vai()vai()
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
1919
Gestione degli studenti: le entitàGestione degli studenti: le entità
Studente Corso Facoltà
ArchivioEsame
2020
Gestione degli studenti: le relazioniGestione degli studenti: le relazioni
Studente
Corso Facoltà
ArchivioEsame
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
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
……
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()
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
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
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
2727
La gestione di un caseificio: le entitàLa gestione di un caseificio: le entità
Latte Conferente Fornitori
AnalisiQuota
Qualità FatturaMovimento
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
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
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
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
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
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
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
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()
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
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
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()
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
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
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à
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