Esercitazioni di Teoria dei Sistemi

Document Sample
Esercitazioni di Teoria dei Sistemi Powered By Docstoc
					Esercitazioni di Teoria
     dei Sistemi
  Anno Accademico 2007-2008

   Prof. Alessandro Raymondi

                               1
    Introduzione all‟OOP (I)

Linguaggio più vicino all‟uomo che al
calcolatore
Più simile alla realtà che ci circonda
OOP come rappresentazione della
conoscenza
Il problema va analizzato „a oggetti‟


                                         2
       Introduzione all‟OOP (II)
   Programmazione            Programmazione ad
      tradizionale                 oggetti
Programma = {riga;               Programma
               riga}
Procedure e funzioni       Metodi

Tipi di dati (Int, Char,   Classi
String…)
Costanti                   Oggetti

Variabili                  Variabili
                                                 3
              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.


                                                 4
                  Gli oggetti (II)
Per poter comunicare con l‟oggetto, gli invio
 un messaggio:




      messaggio        oggetto ricevente



                                                5
            Gli oggetti (III)



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

                       2

                                            6
               Gli oggetti (IV)
Dal punto di vista strutturale:

                         Oggetto

                        attributo1
                        attributo2
                        attributo3


Attributi pubblici: accessibili dall‟esterno
Attributi privati: accessibili solo dall‟interno della classe
Attributi protetti: accessibili solo dalla classe e dalle sue
sottoclassi                                                     7
             Gli oggetti (V)
Mettiamo insieme i due punti di vista:

                    Oggetto

      attributo1
      attributo2
      attributo3
      funzione1()
      funzione2()
      funzione3()
                                         8
    La dinamica degli oggetti
Quando ad un oggetto mando un messaggio
 viene eseguito un metodo
               Oggetto
            attributo1
            attributo2
            attributo3
            funzione1()
            funzione2()       Public function1()
            funzione3()       …
                              End;              9
             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


                                             10
       Dall‟oggetto alla classe
La classe è l‟insieme di tutti gli oggetti che
  hanno la stessa struttura e lo stesso
  comportamento


        2
                             Integer
     34531

                                                 11
La gerarchia delle classi

              Object

    Array    Magnitude    Windows

              Number


     Float     Fraction     Integer




                                      12
  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
                                                 13
Esempi di classi (I)
            Frazione

  numeratore
  denominatore
  *
  +
  -
  /
  print()
  …                    14
Esempi di classi (II)
          Matrice

  m
  n
  celle
  *
  +
  -
  /
  trasposta()
                        15
Esempi di classi: ereditarietà (III)
                     Matrice

                  m
                  n
                  celle
                  *
                  +
                  -
                  /
MatriceQuadrata   trasposta()


determinante()
inversa()
…                                             Se per le
                   MatriceTriangolare     matrici triangolari
                                        conosco un metodo
                                            migliore lo
                   determinante()
                                           reimplemento
                                                                16
Esempi di classi (IV)
                Biro

  colore
  punta
  stato
  foglio
  posizione
  livello
  accenditi()
  spegniti()
  vai()
                        17
Analisi degli oggetti: astrazione
Dai requisiti alle classi
Modalità top/down
Dal punto di vista statico:
    individuare le entità
    individuare le relazioni
    individuare gli attributi delle singole classi
Dal punto di vista dinamico:
    individuare le funzionalità
Disegno dell‟architettura
Sviluppo
                                                      18
Gestione degli studenti: le entità


        Studente   Corso   Facoltà




        Esame              Archivio




                                      19
Gestione degli studenti: le relazioni

   Corso                     Facoltà




               Studente


   Esame                     Archivio




                                        20
Gestione degli studenti: alcune classi
    Facoltà        Corso         Esame
codice        codice         corso
descrizione   descrizione    data_esame
sede          docente        esito
corsi         esercitatore
              crediti
              anno




                                          21
Gestione degli studenti: la classe
           studente
          Studente        Dati_anagrafici
      numero_matricola   indirizzo
      nome               località
      cognome            cap
      dati_anagrafici    provincia
      facoltà            stato
      data_iscrizione    data_di_nascita
      esami_sostenuti    stato_civile
                         …




                                            22
Dal punto di vista dinamico
           Studente
       numero_matricola
       …
       esami_sostenuti
       iscrizione()
       sostieneEsame()
       media()
       archivia()
       stampaLibretto()
       crediti()




                              23
La logica di sviluppo: a tre livelli
  I strato - la GUI, cioè l‟interfaccia 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

                                                     24
   La gestione di un caseificio
Parte gestionale:
 - gestire l‟acquisto del latte dai conferenti e
 dai fornitori non diretti
 - controllare l‟esubero delle quote
 - far analizzare il latte in entrata
 - calcolare la qualità
 - emettere le fatture per i conferenti

                                               25
   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

                                        26
La gestione di un caseificio: le entità



         Latte    Conferente   Fornitori




         Quota                 Analisi



        Qualità   Movimento    Fattura




                                           27
La gestione di un caseificio: concetto di
                prodotto
                       Articolo
                    codice
                    descrizione
                    tipo
                    costo
                    prezzo
          Latte                        Prodotto
     um__raccolta                 ricetta
     coefficiente                 tempo_stagionatura




                                                       28
La gestione di un caseificio: concetto di
                 listino
                    Listino
                 codice
                 descrizione
                 tipo_AV
                 prodotto
                 prezzo




e poi
         ogni conferente “ha” un listino
         ogni cliente “ha” un listino
                                           29
La gestione di un caseificio: concetto di
    conferente e altri fornitori latte
                        Fornitore
                    codice
                    descrizione
                    datiAnagrafici
                    partitaIVA
       Conferente                        FornitoreNonDiretto
                    listino
     quota          dataInizioAttività   nazione
     numeroCapi     dataCessazione




                                                               30
La gestione di un caseificio: concetto di
    analisi e di movimento del latte
       Analisi         Movimento
  data                data
  conferente          conferente
  laboratorio         prodotto
  grasso              quantità
  proteine            um
  carica_batterica
  cellule_somatiche




                                        31
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à
                  periodo
                  conferente
                  media_Grasso
                  media_Proteine
                  media_CaricaBatterica
                  media_CelluleSomatiche
                  premio



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

            Fattura         Riga_Fattura
    anno              riga
    numero            prodotto
    data              quantità
    periodo           um
    conferente        prezzo
    titolo
    note
    righe




                                           33
      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 nell‟anno 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

                                                    34
      La gestione di un caseificio: la
   dinamica per la fatturazione del latte
    Conferente
                          Fattura
                                            Riga_Fattura
consegnaLatte()
                  calcola()
esegueAnalisi()
                  *calcolaLatte()     stampa()
acquistaQuota()
                  *calcolaEsubero()   importo()
cessaAttività()
                  *calcolaQualità
                  stampa()
      Qualità     importo()
                  numeroRighe()
calcolo()
stampa()


* sono metodi privati

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


       Latte           Prodotto           Ricetta




     Produzione       Magazzino        Stagionatura



      Vendita           Cliente           Fattura



           in rosso sono indicati i processi

                                                      36
        La gestione di un caseificio: il
             concetto di cliente
     Cliente
codice
                                                   Soggetto
descrizione
datiAnagrafici                                 codice
partitaIVA
                 quindi                        descrizione
listino                                        datiAnagrafici
                              Fornitore        partitaIVA
                                                                      Cliente
                                               listino
                          dataInizioAttività                    agente
                          dataCessazione                        indirizzo_Spedizione




                                                                                37
    La gestione di un caseificio: altre
                 entità
    Ricetta
                               Magazzino
codice
                            codice
descrizione
                            descrizione
componenti
                            stabilimento
fasi
                            lotti
derivati
                    Silos   capacità
              um            temperatura
              tipoLatte     carica()
              svuota()      scarica()
                            giacenza()
                            prodotti()
                            costo()




                                           38
La gestione di un caseificio: i
          processi
                         Processo
                      data_ora_inizio
     Produzione       data_ora_fine      Stagionatura
ricetta               responsabile      terzista
quantità              stato             magazzino
silos                 documento         prodotto
lotto                 esegui()          quantità
prelevaLatte()        interrompi()      lotto
prelevaComponenti()
versaDerivati()
                           Rientro
                      stagionatura
                      lottoTerzista
                      costo


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

     Produzione       Il processo di produzione muove tutte le entità:
ricetta                   nella ricetta trovo i prodotti da movimentare
quantità
                          dal magazzino silos prelevo il prodotto latte
silos
lotto                     dai magazzini prodotti prelevo i componenti
prelevaLatte()            nei magazzini prodotti verso i derivati
prelevaComponenti()       in questo momento nasce il lotto
versaDerivati()




                                                                      40
La gestione di un caseificio: la
           vendita
                    Processo
                 data_ora_inizio
       Vendita   data_ora_fine
                 responsabile
 cliente
                 stato
 prodotto
                 documento
 lotto
 quantità        esegui()
                 interrompi()




                                   41
    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

                                                  42

				
DOCUMENT INFO