La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "1 Esercitazioni di Teoria dei Sistemi Anno Accademico 2007-2008 Prof. Alessandro Raymondi."— Transcript della presentazione:

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


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

Presentazioni simili


Annunci Google