Progettazione concettuale

Abbiamo seguito una strategia mista individuando delle entità direttamente dalle specifiche (secondo il metodo "bottom-up") e costruendo uno schema scheletro da affinare successivamente (seguendo il metodo "top-down")

Identificazione delle entità e relazioni (Bottom-Up)

Seguendo la strategia bottom-up sono state identificate le seguenti entità: fornitori, rotoli di tetrapak, prodotti non confezionati, macchine, macchine guaste, macchine di riserva, serbatoi asettici, prodotti confezionati, ordini, clienti.

Scheletro dello schema E-R (top-down)

Le entità considerate precedentemente si suddividono in tre gruppi principali: fornitori, azienda confezionatrice, clienti.

 

 

Dove fornitura è l'atto di acquisto di prodotti non confezionati e rotoli di tetrapak effettuato dall'azienda confezionatrice, mentre vendita è l'atto di vendita di prodotti confezionati diretto ai clienti.

Sviluppo delle componenti dello scheletro

Fornitori:

 

L'entità Fornitori è una generalizzazione delle due entità Fornitori di prodotti non confezionati e Fornitori di rotoli di tetrapak. Esse hanno entrambi gli stessi attributi: il codice (che rappresenta l'identificatore primario), il nome, il telefono, il fax, l'e-mail e l'indirizzo (rappresentato da un attributo composto). Sono presenti inoltre, le entità Prodotti non confezionati e Rotoli di tetrapak, entrambi sono identificati dall'attributo codice. I prodotti non confezionati e i rotoli di tetrapak hanno sempre uno e un solo fornitore. Mentre i fornitori possono non aver mai fornito prodotti non confezionati o rotoli di tetrapak, oppure averne fornito una o più volte. Questo concetto è rappresentato dalle due relazioni uno a molti Fornitura di prodotti non confezionati e Fornitura di rotoli di tetrapak.


Azienda confezionatrice:

L'entità Azienda è una generalizzazione delle entità Magazzino, Macchine e Serbatoio Asettico. Il magazzino è rappresentato, tramite una generalizzazione, da Rotoli di tetrapak in magazzino e Prodotti non confezionati in magazzino. I prodotti in magazzino sono identificati dal loro tipo, per questo sono legati alle entità Rotoli di tetrapak e Prodotti non confezionati con relazioni di tipo uno a molti (Immagazzinamento rotoli di tetrapak e Immagazzinamento prodotti non confezionati). Il confezionamento di prodotti avviene assegnando ad una macchina un prodotto non confezionato e un rotolo di tetrapak, presenti in magazzino. Il concetto è espresso dalla relazione molti a molti Confezionamento Prodotti. L'entità Macchine è suddivisa, per mezzo di una generalizzazione totale ed escusiva, nei sottoinsiemi Macchine guaste, Macchine in produzione e Macchine di riserva. Ogni macchina appartiene ad uno ed un solo gruppo (concetto espresso dalla relazione uno a molti Assegnamento ad un gruppo). Ad ogni Gruppo di macchine è associato un Serbatoio asettico, ma alcuni serbatoi possono rimanere inutilizzati; tale concetto è rappresentato dalla relazione uno ad uno Collegamento al serbatoio. Ogni Gruppo di macchine ha una ed una sola macchina di riserva, come risulta dalla relazione uno ad uno Assegnamento macchina di riserva. La relazione Produzione, che è di tipo uno a molti, permette di associare i Prodotti confezionati alle macchine che hanno effettuato il confezionamento.



Clienti:

L'entità Ordine rappresenta la richiesta di prodotti confezionati effettuata da parte di un cliente. Ogni oggetto dell'entità Ordine è legato ad un oggetto dell'entità Prodotto confezionato mediante la relazione uno ad uno Produzione prodotto ordinato, che rappresenta il confezionamento del prodotto richiesto. Il prodotto confezionato è venduto al cliente che lo ha richiesto, come è rappresentato dalla relazione uno a molti Vendita prodotto confezionato.

 

 

 

Unione delle componenti nello schema finale

(per semplicità si omettono gli attributi):



Dizionario dei dati

Entità:

Nome entità Descrizione Attributi Identificatore
Fornitore Società che tratta la vendita dei prodotti non confezionati o di rotoli di tetrapak Nome (stringa)
Telefono (numerico)
Città (stringa)
CAP (numerico)
Via (stringa)
N° Civico (stringa)
Fax (numerico)
E-mail (stringa)
Codice (numerico)
Fornitori di prodotti non confezionati Società che tratta la vendita di prodotti non confezionati Nome (stringa)
Telefono (numerico)
Città (stringa)
CAP (numerico)
Via (stringa)
N° Civico (stringa)
Fax (numerico)
E-mail (stringa)
Codice (numerico)
Fornitori di rotoli di tetrapak Società che tratta la vendita di rotoli di tetrapak Nome (stringa)
Telefono (numerico)
Città (stringa)
CAP (numerico)
Via (stringa)
N° Civico (stringa)
Fax (numerico)
E-mail (stringa)
Codice (numerico)
Prodotti non confezionati Oggetti quali latte, panna, succhi di frutta, che vengono acquistati dall'azienda confezionatrice Tipo di prodotto (stringa)
Quantità (numerico)
Codice (numerico)
Prodotti non confezionati in magazzino Oggetti quali latte, panna, succhi di frutta, acquistati dall'azienda confezionatrice e presenti nel magazzino Tipo di prodotto (stringa)
Quantità (numerico)
Codice (numerico)
Rotoli di tetrapak Oggetti di acquisto utilizzati per il confezionamento dei prodotti non confezionati Tipo di rotolo (stringa)
Lunghezza (numerico)
Codice (numerico)
Rotoli di tetrapak in magazzino Rotoli di tetrapak acquistati presenti nel magazzino Tipo di rotolo (stringa)
Lunghezza (numerico)
Codice (numerico)
Cliente Società che richiede prodotti confezionati Nome (stringa)
Telefono (numerico)
Città (stringa)
CAP (numerico)
Via (stringa)
N° Civico (stringa)
Fax (numerico)
E-mail (stringa)
Codice (numerico)
Ordine Richiesta di prodotti confezionati effettuata dai clienti Data di consegna (data) Codice (numerico)
Prodotti confezionati Oggetti in vendita definiti in base all'ordine - esterno:
con l'entità Ordine
Macchine Macchinari industriali adibiti al confezionamento dei prodotti non confezionati utilizzando i rotoli di tetrapak - Nome (stringa)
Macchine guaste Macchinari industriali non funzionati per il  confezionamento dei prodotti non confezionati  - Nome (stringa)
Macchine in produzione Macchinari industriali funzionanti adibiti al confezionamento dei prodotti non confezionati utilizzando i rotoli di tetrapak - Nome (stringa)
Macchine di riserva Macchinari industriali per il confezionamento che entrano in funzione solo nel caso in cui vi sia una macchina guasta all'interno dello stesso gruppo  - Nome (stringa)
Gruppo di macchine Raggruppamento concettuale di un insieme di macchine in produzione e di una e una sola macchina di riserva Rotolo utilizzabile (stringa)
Prodotto confezionabile (stringa)
Numero(numerico)
Serbatoio asettico Serbatoio asettico che entra in funzione insieme alla macchina di riserva Prodotto contenibile (stringa) Nome (stringa)
Magazzino Insieme dei prodotti non confezionati e dei rotoli che sono pronti a essere utilizzati dalle macchine - -
Azienda Azienda che si occupa di confezionare i prodotti. - -

 

Relazioni:

Nome relazione Descrizione Entità coinvolte Attributi
Fornitura di prodotti non confezionati Associa i prodotti non confezionati al fornitore che li ha forniti Fornitori di prodotti non confezionati (0,N)
Prodotti non confezionati (1,1)
Data (data)
Spesa (numerico)
Fornitura di rotoli di tetrapak Associa i rotoli di tetrapak al fornitore che li ha forniti Fornitori di rotoli di tetrapak (0,N),
Rotoli di tetrapak (1,1)
Data (data)
Spesa (numerico)
Richiesta di prodotti confezionati Associa l'ordine al cliente che l'ha effettuato Clienti (0,N)
Ordine (1,1)
Data (data)
Vendita prodotto confezionato Associa il prodotto confezionato al cliente che l'ha richiesto Clienti (0,N)
Prodotto confezionato (1,1)
Data (data)
Ricavo (numerico)
Produzione prodotto ordinato Associa a ogni ordine il prodotto confezionato corrispondente Ordine (1,1)
Prodotto confezionato (1,1) 
Tipo di prodotto (stringa)
Quantità (numerico)
Capacità (numerico)
Tipo di confezione (stringa)
Immagazzinamento rotoli di tetrapak Associa il rotolo di tetrapak con il corrispondente oggetto presente in magazzino Rotoli di tetrapak in magazzino (1,N)
Rotoli di tetrapak (0,1)
-
Immagazzinamento di prodotti non confezionati Associa i prodotti non confezionati con il corrispondente oggetto presente in magazzino Prodotti non confezionati in magazzino (1,N)
Prodotti non confezionati (0,1)
-
Produzione Associa i prodotti confezionati con le macchine in produzione adibite al confezionamento  Prodotti confezionati (1,1)
Macchine (0,N)
Lunghezza rotolo utilizzato (numerico)
Confezionamento prodotto Associa i prodotti non confezionati ed i rotoli di tetrapak presenti in magazzino con ogni macchina per permetterne il confezionamento Prodotti non confezionati in magazzino (0,N)
Rotoli di tetrapak in magazzino (0,N)
Macchine (0,N)
-
Assegnamento macchina di riserva Associa una macchina di riserva ad ogni gruppo di macchine Gruppo di macchine (1,1)
Macchine di riserva (1,1)
-
Collegamento al serbatoio Associa ogni serbatoio asettico ad un gruppo di macchine Serbatoio asettico (0,1)
Gruppo di macchine (1,1)
-
Assegnamento ad un gruppo Associa ad ogni macchina un gruppo Macchine (1,1)
Gruppo di macchine (1,N)
-

 

Vincoli di integrità

Regole di vincolo
RV1 Una macchina di riserva non può mai diventare una macchina guasta
RV2 La lunghezza di un rotolo di tetrapak acquistato deve essere  > 0
RV3 La quantità di un prodotto non confezionato acquistato deve essere > 0
RV4 La lunghezza di un rotolo di tetrapak in magazzino deve essere >= 0
RV5 La quantità di un prodotto non confezionato in magazzino deve essere >= 0
RV6 La capacità di un prodotto confezionato deve essere > 0
RV7 La quantità di un prodotto confezionato deve essere > 0
RV8 La lunghezza di un rotolo di tetrapak utilizzato per confezionare deve essere > 0
RV9 La spesa per l'acquisto di un rotolo di tetrapak deve essere >= 0
RV10 La spesa per l'acquisto di un prodotto non confezionato deve essere >= 0
RV11 Il ricavo di una vendita di prodotti confezionati deve essere >= 0
RV12 Una macchina guasta non può produrre
RV13 Una macchina di riserva può produrre solo se esiste una macchina guasta nel suo stesso gruppo
Regole di derivazione
RD1 La lunghezza dei "rotoli di tetrapak in magazzino" di uno stesso tipo si ottiene dalla differenza tra la somma delle lunghezze dei rotoli di quel tipo acquistati e la somma dei rotoli di quel tipo utilizzati per il confezionamento
RD2 La lunghezza dei "prodotti non confezionati in magazzino" si ottiene dalla differenza tra la somma delle lunghezze dei prodotti non confezionati acquistati e quella dei prodotti confezionati

 

[Indice] - [Analisi dei requisiti] - [Progettazione logica] - [Codifica SQL] - [Testing]