Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAdelina Amato Modificato 10 anni fa
1
1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi
2
2 Introduzione allOOP (I) Linguaggio più vicino alluomo che al calcolatore Più simile alla realtà che ci circonda OOP come rappresentazione della conoscenza Il problema va analizzato a oggetti
3
3 Introduzione allOOP (II) Programmazione tradizionale Programmazione ad oggetti Programma = {riga; riga} riga}Programma Procedure e funzioni Metodi Tipi di dati (Int, Char, String…) Classi CostantiOggetti VariabiliVariabili
4
4 Gli oggetti (I) Dal punto di vista operativo: Cioè una scatola nera che contiene funzionalità, scritte tramite un linguaggio. Contiene una serie di procedure e funzioni che gli competono.
5
5 Gli oggetti (II) Per poter comunicare con loggetto, gli invio un messaggio: messaggiooggetto ricevente
6
6 Gli oggetti (III) Quando un oggetto riceve un messaggio, loggetto dà il via allesecuzione di un programma, procedura o funzione: 2
7
7 Gli oggetti (IV) Dal punto di vista strutturale: Oggetto attributo1 attributo2 attributo3 Attributi pubblici: accessibili dallesterno Attributi privati: accessibili solo dallinterno della classe Attributi protetti: accessibili solo dalla classe e dalle sue sottoclassi
8
8 Gli oggetti (V) Mettiamo insieme i due punti di vista: Oggetto attributo1attributo2attributo3 funzione1()funzione2()funzione3()
9
9 La dinamica degli oggetti Quando ad un oggetto mando un messaggio viene eseguito un metodo Oggetto attributo1attributo2attributo3 funzione1()funzione2()funzione3() funzione1() Public function1() … End;
10
10 Il polimorfismo E la capacità che hanno oggetti di natura diversa di rispondere in maniera appropriata allo stesso messaggio Es. il metodo print (o write) Stesso messaggio, il metodo è diverso
11
11 Dalloggetto alla classe La classe è linsieme di tutti gli oggetti che hanno la stessa struttura e lo stesso comportamento 2 34531 Integer
12
12 La gerarchia delle classi Object ArrayMagnitude Number Float Integer Fraction Windows
13
13 Ereditarietà e sovrascrizione Ogni classe eredita dalle classi da cui discende tutte le proprietà: attributi e metodi I vantaggi: codice più ordinato, scritto nella classe adatta, risparmio nella scrittura Si può comunque sovrascrivere un metodo ereditato
14
14 Esempi di classi (I) Frazione numeratoredenominatore *+-/print()…
15
15 Esempi di classi (II) Matrice mncelle *+-/trasposta()
16
16 Esempi di classi: ereditarietà (III) Matrice mncelle *+-/trasposta() MatriceQuadratadeterminante()inversa()… MatriceTriangolaredeterminante() Se per le matrici triangolari conosco un metodo migliore lo reimplemento
17
17 Esempi di classi (IV) Biro colorepuntastatofoglioposizionelivello accenditi()spegniti()vai()
18
18 Analisi degli oggetti: astrazione Dai requisiti alle classi Modalità top/down Dal punto di vista statico: individuare le entità individuare le entità individuare le relazioni individuare le relazioni individuare gli attributi delle singole classi individuare gli attributi delle singole classi Dal punto di vista dinamico: individuare le funzionalità individuare le funzionalità Disegno dellarchitettura Sviluppo
19
19 Gestione degli studenti: le entità StudenteCorsoFacoltà ArchivioEsame
20
20 Gestione degli studenti: le relazioni Studente Corso Facoltà Archivio Esame
21
21 Gestione degli studenti: alcune classi Facoltà codicedescrizionesedecorsiCorsocodicedescrizionedocenteesercitatorecreditiannoEsamecorsodata_esameesito
22
22 Gestione degli studenti: la classe studente Studente numero_matricolanomecognomedati_anagraficifacoltàdata_iscrizioneesami_sostenuti Dati_anagraficiindirizzolocalitàcapprovinciastatodata_di_nascitastato_civile…
23
23 Dal punto di vista dinamico Studente numero_matricola…esami_sostenuti iscrizione()sostieneEsame()media()archivia()stampaLibretto()crediti()
24
24 La logica di sviluppo: a tre livelli I strato - la GUI, cioè linterfaccia grafica II strato - la logica: le entità che rappresentano la mia problematica III strato – la persistenza, cioè classi che si occupano di archiviare gli oggetti che si creano nel mio sistema Sono strati indipendenti: uno comunica solo con quello sottostante. Possono essere sviluppati con tecnologie differenti
25
25 La gestione di un caseificio Parte gestionale: - gestire lacquisto del latte dai conferenti e dai fornitori non diretti - controllare lesubero delle quote - far analizzare il latte in entrata - calcolare la qualità - emettere le fatture per i conferenti
26
26 La gestione di un caseificio La produzione: - prelevare il latte dal silos - ricetta per produrre il formaggio - produzione con la tracciabilità - fasi esterne: stagionatura - vendita a clienti - fatture clienti
27
27 La gestione di un caseificio: le entità LatteConferenteFornitori AnalisiQuota QualitàFatturaMovimento
28
28 La gestione di un caseificio: concetto di prodotto Articolo codicedescrizionetipocostoprezzo Latteum__raccoltacoefficienteProdottoricettatempo_stagionatura
29
29 La gestione di un caseificio: concetto di listino Listino codicedescrizionetipo_AVprodottoprezzo e poi ogni conferente ha un listino ogni conferente ha un listino ogni cliente ha un listino
30
30 La gestione di un caseificio: concetto di conferente e altri fornitori latte Fornitore codicedescrizionedatiAnagraficipartitaIVAlistinodataInizioAttivitàdataCessazione ConferentequotanumeroCapiFornitoreNonDirettonazione
31
31 La gestione di un caseificio: concetto di analisi e di movimento del latte Analisi dataconferentelaboratoriograssoproteinecarica_battericacellule_somatiche Movimentodataconferenteprodottoquantitàum
32
32 La gestione di un caseificio: concetto di qualità del latte A seconda dei valori di analisi in un certo periodo il latte può dare origine ad un premio qualità (negativo indica una penale): Qualità periodoconferentemedia_Grassomedia_Proteinemedia_CaricaBattericamedia_CelluleSomatichepremio
33
33 La gestione di un caseificio: concetto di fattura per il conferente Fattura annonumerodataperiodoconferentetitolonoterigheRiga_Fatturarigaprodottoquantitàumprezzo
34
34 La gestione di un caseificio: la fatturazione Dato un conferente ed un periodo di calcolo si scorrono i movimenti del periodo indicato si creano tante righe quanti sono i listini nel periodo (ad es. una riga per il latte normale ed una per il latte non idoneo) se nellanno il totale raccolto supera la quota assegnata, penale per superamento quota se nel periodo ho una qualità, aggiungo in fattura la riga con premio/penale
35
35 La gestione di un caseificio: la dinamica per la fatturazione del latte Conferente consegnaLatte()esegueAnalisi()acquistaQuota()cessaAttività() Qualitàcalcolo()stampa() Fatturacalcola()*calcolaLatte()*calcolaEsubero()*calcolaQualitàstampa()importo()numeroRighe() * sono metodi privati Riga_Fatturastampa()importo()
36
36 La gestione di un caseificio: le entità per la produzione LatteProdottoRicetta StagionaturaProduzione VenditaFatturaCliente Magazzino in rosso sono indicati i processi
37
37 La gestione di un caseificio: il concetto di cliente Cliente codicedescrizionedatiAnagraficipartitaIVAlistino quindiSoggettocodicedescrizionedatiAnagraficipartitaIVAlistino FornitoredataInizioAttivitàdataCessazione Clienteagenteindirizzo_Spedizione
38
38 La gestione di un caseificio: altre entità Ricetta codicedescrizionecomponentifasiderivati Magazzinocodicedescrizionestabilimentolotticapacitàtemperatura carica()scarica()giacenza()prodotti()costo() SilosumtipoLatte svuota()
39
39 La gestione di un caseificio: i processi Processo data_ora_iniziodata_ora_fineresponsabilestatodocumento esegui()interrompi() Produzionericettaquantitàsiloslotto prelevaLatte()prelevaComponenti()versaDerivati()Stagionaturaterzistamagazzinoprodottoquantitàlotto RientrostagionaturalottoTerzistacosto
40
40 La gestione di un caseificio: la dinamica per la produzione Produzione ricettaquantitàsiloslotto prelevaLatte()prelevaComponenti()versaDerivati() Il processo di produzione muove tutte le entità: nella ricetta trovo i prodotti da movimentare dal magazzino silos prelevo il prodotto latte dai magazzini prodotti prelevo i componenti nei magazzini prodotti verso i derivati in questo momento nasce il lotto
41
41 La gestione di un caseificio: la vendita Processo data_ora_iniziodata_ora_fineresponsabilestatodocumento esegui()interrompi() Venditaclienteprodottolottoquantità
42
42 La gestione di un caseificio: la rintracciabilità Devo essere in grado di risalire dal prodotto che invio al cliente al latte che ho usato parto dal prodotto / lotto nella vendita (fattura) cerco tutti il documento di produzione in cui è presente il prodotto / lotto in questione dal processo risalgo alla data/ora di inizio cerco i carichi latte con data e ora inferiore a questa ora di inizio nel carico è indicato il conferente che mi ha dato il latte eventualmente avariato
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.