Specifiche del progetto Ogni progetto deve produrre i seguenti

Specifiche del progetto
Ogni progetto deve produrre i seguenti elaborati
1) specifica testuale trasformata e ristrutturata, secondo le linee guida illustrate nel testo di riferimento
(capitolo Progettazione Concettuale); la specifica deve essere confermata dal committente (si veda sotto);
2) glossario dei termini e schema scheletro;
3) schema concettuale dettagliato;
4) schema concettuale ristrutturato e sua implementazione su MySql Workbench
5) progetto del database fisico ottenuto tramite MySqlWorkbench (ddl per le tabelle e
i vincoli)
6) creazione di un’istanza popolata del database
7) codifica in ambiente Java di almeno due delle operazioni associate alla specifica
(seguire le linee guide emesse dalla Prof. Bacci per la creazione del sw Java); si consiglia di limitare al
minimo indispensabile la creazione dell’interfaccia utente per le due operazioni.
Per il punto 1) è prevedibile una fase di interazione con il docente, che svolge la funzione di committente del
progetto e fornisce tutti i chiarimenti necessari a rendere non ambigua la specifica. L’interazione può
avvenire via e-mail (domande scritte in forma sintetica) o mediante un’intervista via Skype da concordare.
Il progetto risultato dei punti da 1) a 6) deve essere spedito al docente (una relazione in formato .doc o .pdf
con acclusi schemi grafici del diagramma scheletro e dello schema concettuale dettagliato, il file .mwb di
MySql Workbench, gli script SQL, un dump SQL delle tabelle). Il docente deve essere in grado di rigenerare
su un suo personal computer il database progettato, utilizzando la funzione di “Import from disk” dei servizi di
“Server Administration” di MySql Workbench, in una delle due opzioni possibili (preferita la “Import from selfcontained file”; si veda l’istantanea di schermo qui sotto)
In sede di appello il candidato illustrerà il progetto e dimostrerà la componente Java utilizzando
preferibilmente un computer portatile. Chi non potesse provvedere in questo senso, è pregato di prendere
accordi con il docente per l’utilizzo di un PC in uno dei laboratori.
Progetto A: ASSOCIAZIONE FEDERALE DI BRIDGE
Il gioco del bridge richiede una organizzazione ed una gestione:
esistono due livelli di ente incaricato di riunire i giocatori e curare i rapporti che intercorrono tra gli stessi.
Esiste, in prima istanza, una Federazione Italiana Gioco Bridge (FIGB), associata al CONI, il cui
compito è di fungere da coordinamento per tutte le associazioni locali, di cui tratteremo diffusamente in
seguito. Essa tiene anche nota delle classifiche generali dei giocatori raccogliendo i punteggi di tutte le gare
svolte nell'annata agonistica e organizza i campionati italiani. Mantiene rapporti con le Federazioni estere e
gestisce la formazione delle squadre che partecipano ai campionati internazionali. E' inoltre tribunale di
giustizia sportiva e gestisce le sezioni Regionali.
L’altro livello di ente è l'Associazione Bridge Locale. Ne esistono varie sul territorio. Si tratta di un
organismo composto da soci giocatori e coordinato da un organo direttivo eletto ogni 4 anni (in
corrispondenza del quadriennio olimpico) da tutti i soci. Il consiglio direttivo prende tutte le decisioni
necessarie per le attività della associazione in riunioni periodiche. Durante le stesse redige, tra l’altro, il
bilancio annuale (elencazione di entrate e spese, indicazione dell'avanzo/disavanzo di esercizio). E' possibile
indire anche assemblee dei soci.
Le funzioni gestite dall’associazione sono:
• tesseramento annuale,
• organizzazione di gare e di iniziative extra agonistiche,
• organizzazione di corsi,
IL TESSERAMENTO ANNUALE
Il tesseramento viene effettuato in base a quote stabilite dalla FIGB. Essa invia all'associazione la
tabella delle tariffe per l'anno unitamente all'elenco degli associati dell'anno precedente. Di ritorno
l'associazione deve inviare lo stesso elenco con l'indicazione per ogni socio del rinnovo o meno (e di
eventuali variazioni anagrafiche) e l'elenco dei nuovi soci.
Per ogni associato è necessario registrare:
i dati anagrafici - cognome, nome, dati relativi a indirizzo e recapito, data di nascita, sesso, codice
fiscale
i dati federali - codice federale, I anno di iscrizione, tipologia (socio ordinario o agonista (i soci
agonisti si possono specificare a loro volta in senior o junior), categoria, punteggio federale all'inizio
dell'anno in corso, franchigia e quorum (“tassa” annuale di punteggio per la categoria e livello di punteggio
per il passaggio alla categoria superiore o la permanenza alla attuale).
la situazione rispetto alle quote da versare.
L'ORGANIZZAZIONE DI GARE E ALTRE INIZIATIVE
L'associazione organizza gare periodiche od occasionali. Le prime si dividono in gare settimanali
che segnano l'attività dell'associazione per tutto l'anno (che possono essere organizzate in “cicli” cumulativi)
e gare a periodicità diversa, di solito mensile, organizzate dall’associazione o dalla FIGB. L'iscrizione alle
gare è fatta al momento, l'assegnazione del punteggio avviene alla fine di ogni serata per le gare settimanali
e alla fine di tutto il ciclo per le altre. Le gare occasionali possono avere degli sponsor. Ogni gara ha una
quota di iscrizione e un montepremi, è individuale o a coppie o a squadre, può avere una limitazione di tipo
(open, femminile, mista, senior, junior), ha una data o un calendario, una lista di partecipanti (associati
all'ente organizzatore e non associati), un arbitro (scelto da un elenco di arbitri tenuto presso l'associazione),
una sede (quella della associazione oppure un'altra scelta da un elenco di sedi possibili tenuto
dall'associazione). Per ogni gara vengono redatte classifiche. I tabulati sono inviati alla FIGB, la quale,
soltanto a fine anno, restituisce la classifica aggiornata di tutti gli associati (punteggio e posizione a livello
nazionale).
Differenti dalle gare sono i gironi di campionato che possono essere organizzati dall'associazione in oggetto.
In questo caso essa si occupa della sede, dell'arbitro, del materiale di gara e della redazione delle
classifiche, tutto il resto (ammissione dei partecipanti, gestione dei risultati, eventuali comunicazioni in
seguito) è gestito a livello federale.
Iniziative extra agonistiche (viaggi, cene sociali...) possono essere organizzate
dall'associazione. E' necessario tenere nota della descrizione, della data, della lista di partecipanti, della
quota di partecipazione.
L'ORGANIZZAZIONE DI CORSI
I partecipanti ai corsi non sono associati, essi rientrano nella tipologia "Allievi" e solo alla fine del periodo di
tesseramento come allievi (3 anni) potranno scegliere se associarsi o meno. L'associazione tiene nota dei
loro dati e sceglie per ogni corso un insegnante (da un elenco tenuto presso l'associazione). I corsi hanno
una data di inizio ed un calendario prestabilito, si svolgono solitamente presso la sede sociale.
Operazioni previste:
- Operazione 1 inserire un nuovo socio
-
Operazione 2 inserire una nuova gara e l’elenco degli iscritti
Operazione 3 inserire un nuovo corso
Operazione 4 elencare i soci che morosi (non hanno ancora rinnovato la tessera per l’anno in corso)
Operazione 5 produrre l’elenco delle gare organizzate in un dato intervallo, con il relativo elenco dei
partecipanti
Progetto B: Impresa di falegnameria
Si tratta di una impresa artigianale operante con crescente successo nel settore della produzione,
commercio ed installazione di piccoli prefabbricati in legno ad uso garage, deposito attrezzature
giardinaggio, canili e simili. I soci proprietari sono due e l’organico si compone di 11 addetti divisi in 9 operai
(3 a tempo pieno, 3 contratto formazione lavoro, 3 apprendisti) e 2 impiegate part time; la parte
amministrativa e gestionale è affidata ad una di queste che si avvale di un data base commerciale
Microsoft, rivelatosi non pienamente adatto per le esigenze della azienda. La intermediazione è affidata
all’opera di due agenti, operanti principalmente sul territorio delle provincie di Mantova, Ferrara, Modena,
Reggio Emilia, Cremona, Brescia; i prodotti sono presentati periodicamente al pubblico sia mediante
esposizioni presso grandi centri commerciali sia partecipando a fiere specializzate nel settore. Per quanto
riguarda le materie prime il legname viene fornito in esclusiva da un grossista della zona mentre per le altre
esigenze (coperture, vernici, materiali per le rifiniture, attrezzature ecc.) la società si rivolge ad una serie di
diversi rivenditori locali all’ingrosso.
Si vuole realizzare un sistema informativo che comprenda i principali aspetti gestionali dell’azienda: clienti,
dipendenti, fornitori, prodotti, incassi, presentazioni, agenti.
I clienti sono identificati da un codice oltre al quale si vogliono memorizzare nome e cognome, data di
nascita, codice fiscale, indirizzo, telefono, fax; se si tratta di società, vengono riportati ragione sociale partita
I.V.A., sede, telefono, fax, E-Mail, referenze.
Per ogni cliente si vuole rappresentare la situazione degli ordinativi evasi e di quelli in corso, specificando il
tipo di prodotto, caratteristiche, quantità, nome e cognome degli operai coinvolti nella consegna e
installazione, importi, modalità di pagamento e relativa fatturazione. Ogni corrispettivo pagato per l’acquisto
di un prodotto viene registrato negli incassi con emissione della relativa fattura in cui sono indicati
intestazione, dati identificativi del cliente, data, quantità, natura e qualità dei beni o servizi, importo, dettagli
aliquota IVA, imponibile, imposta, corrispettivo pagato, corrispettivo non pagato, totale documento. Il sistema
deve assicurare anche il monitoraggio di eventuali interventi in garanzia effettuati o da effettuare.
Gli incassi evidenziano un codice identificativo, la data, l’importo, le modalità.
Il flusso degli ordinativi provenienti dai clienti è di circa cento al mese, comprendendo tutti i tipi di prodotti.
Tale numero è abbastanza stabile per 8 mesi all’anno mentre si riduce alla metà nei mesi invernali.
Il contatto con il cliente può avvenire sia direttamente sia, più spesso, tramite l’operato dei due agenti; una
volta firmato il contratto i dati del nuovo cliente devono essere memorizzati e lo stesso deve avvenire per il o
i prodotti richiesti e per le modalità pattuite di pagamento. Per ogni cliente si vuole che sia possibile inserire
nell’ordine tutte le caratteristiche del prodotto richiesto: tipologia, misure del frontale, della profondità,
dell’eventuale veranda, della pavimentazione in legno interna, altezza in gronda, altezza in colmo, numero e
misure per le finestre, misure della porta, tonalità, eventuale presenza di perlinatura interna, lampada
esterna, piastre per il montaggio. Vanno inoltre indicate nell’ordine dal cliente la data di consegna, il prezzo,
le modalità di pagamento, l’acconto ed il saldo. In allegato agli ordini particolari viene inserita una planimetria
del luogo di installazione e del prodotto.
Il prodotto può essere di varie tipologie, tutte ampiamente personalizzabili: casette, garage, merendero,
legnaie, porticati, verande, canili. Ogni tipologia è caratterizzata da: misure del frontale, della profondità,
dell’eventuale veranda, della pavimentazione in legno interna, altezza in gronda, altezza in colmo, numero e
misure per le finestre, misure della porta, tonalità, eventuale presenza di perlinatura interna, lampada
esterna, piastre per il montaggio.
Deve inoltre essere prevista la memorizzazione di un codice che permetta di rintracciare nell’archivio
cartaceo aziendale i disegni e le planimetrie relativi ai prodotti di più spinta personalizzazione.
I fornitori sono circa 20, di cui una decina abituali e gli altri variano a seconda delle condizioni del mercato e
del tipo di fornitura. Possono essere di due tipi: fornitori di materie prime necessarie alla produzione oppure
fornitori di servizi di manutenzione macchinari, impianti e mezzi aziendali. Si vogliono memorizzare un
codice identificativo, ragione sociale, sede, partita I.V.A., telefono, fax, E-Mail.
Gli ordini verso i fornitori sono caratterizzati da forniture ordinate o già ricevute in quantità, importo, modalità
di pagamento, acconto con rimanente, data dell’ordine, data di ricezione concordata e effettiva, modalità
contrattuali.
Una volta ricevuti i lotti di materie dai fornitori questi vengono raccolte in un magazzino da cui poi sono
prelevate per la costruzione dei prodotti successivamente alla ricezione degli ordini.
I dipendenti sono 11 cui si aggiungono fino a 3 apprendisti stagionali durante il periodo estivo, vengono
individuati da nome, cognome, data di nascita, codice fiscale, svolgono determinate mansioni. Gli stipendi
vengono calcolati sulla base del contratto di lavoro, a cui si aggiungono le ore di straordinario. A discrezione
del titolare sono previsti premi una tantum per i dipendenti più produttivi e volenterosi.
Gli agenti sono liberi professionisti agenti di commercio, con un codice identificativo, nome, cognome,
indirizzo, numero di telefono cellulare, numero di contatti, contratti stipulati, trattative in corso, area di
competenza, provvigioni corrisposte.
I pagamenti vanno effettuati per stipendi dei dipendenti, agenti e società di intermediazione; i pagamenti agli
agenti sono calcolati in base agli ordini procurati. Per i pagamenti si vuole indicare un codice identificativo, la
data, l’importo, le modalità.
Operazioni previste:
Operazione 1: inserimento nuovo cliente, con indicazione di tutti i relativi dati. Frequenza: 25 alla settimana
Operazione 2: inserimento nuovo fornitore, con indicazione di tutti i relativi dati. Frequenza: 5 alla settimana
Operazione 3: inserimento nuovo dipendente, con indicazione di tutti i relativi dati. Frequenza: molto bassa
al max 3 all’anno (apprendisti stagionali).
Operazione 4: inserimento nuovo agente, con indicazione di tutti i relativi dati. Frequenza: molto bassa, al
max 1 all’anno
Operazione 5: inserimento nuovo prodotto, con indicazione di tutti i relativi dati. Frequenza: 25-30 alla
settimana.
Operazione 6: inserimento di un nuovo ordinativo di forniture. Frequenza: 10 alla settimana.
Operazione 7: inserimento di un nuovo ordinativo da cliente. Frequenza: 25 alla settimana.
Operazione 8: inserimento di una nuova planimetria in allegato all’ordine da cliente. Frequenza: 1 alla
settimana.
Operazione 9: inserimento di una nuova esposizione. Frequenza: 2 al mese.
Operazione 10: inserimento di un nuovo lotto di materie. Frequenza: 12 alla settimana.
Operazione 11: preparazione di una fattura. Frequenza: 25 alla settimana.
Operazione 12: calcolo dell’ammontare dello stipendio per ogni dipendente. Frequenza: 11-14 al mese.
Operazione 13: riepilogo numerosità ed entità degli ordini mensili attribuibili ad un agente. Frequenza: 2 al
mese.
Operazione 14: riepilogo situazione ordinativi di un cliente. Frequenza: 3 alla settimana.
Progetto C: Manutenzioni di workstation
Una ditta che fa manutenzione alle workstation registra in un archivio i dati relativi agli interventi di
manutenzione eseguiti dai suoi tecnici. Il tracciato record di questo archivio contiene i seguenti dati:
CodTec il codice (unico) del tecnico che fa l’intervento;
NomTec il nome del tecnico;
DatUlt la data dell’ultima uscita fatta dal tecnico;
CodCli il codice (unico) del cliente presso il quale viene fatto l’intervento;
PIVA
la partita IVA (unica) del cliente;
NomCli la ragione sociale del cliente;
SedCli la sede legale del cliente;
SedInv il luogo presso il quale viene fatto l’intervento;
NumInt un numero che identifica l’intervento (non dipende né dal tecnico né dal cliente);
DatInt
la data dell’intervento;
NumPro un numero progressivo che identifica l’intervento presso il cliente;
NumPre un numero che identifica l’intervento precedente fatto presso il cliente per lo stesso problema;
SerNum il numero di serie della workstation sulla quale avviene l’intervento;
OS
il sistema operativo della workstation;
Ver
la versione del sistema operativo;
CodPar il codice della parte trovata difettosa;
NomPar il nome della parte trovata difettosa;
NomCos il nome dell’azienda che ha prodotto la parte;
QuaPar il numero di parti (con lo stesso codice) che sono state necessarie come ricambio per l’intervento;
MagQua la quantità di parti (con un determinato codice) a magazzino.
Durante un medesimo intervento, il tecnico puo’ lavorare su una o piu’ workstation; le parti da sostituire
possono essere piu’ d’una per ogni workstation, ed in piu’ esemplari (cambio di memoria, in tre moduli
SIMM, e cambio di scheda Ethernet); l’azienda fornitrice di una parte e’ unica; un cliente ha normalmente
piu’ sedi che ospitano workstation.
Oltre ai dati qui elencati, è necessario anche registrare ulteriori informazioni:
- assunzione del tecnico (data, livello di inquadramento)
- richiesta di intervento da parte del cliente (con la data della richiesta, la data dell’uscita prevista)
- magazzino parti: la ditta mantiene un magazzino di parti, e tiene traccia della data di acquisto di ogni
singola parte, il costo di acquisto, giacenza della parte, livello minimo (sottostock: quantità sotto la quale si
va a riordinare la parte)
- ordini ai fornitori: data dell’ordine, elenco delle parti in ordine e relativa quantità ordinata
- anagrafica dei fornitori
Si devono preparare le seguenti operazioni
Operazione 1: inserire una richiesta di intervento
Operazione 2: generare gli ordini ai fornitori per tutte le parti sottostock
Operazione 3: elencare tutti gli interventi fatti da un tecnico
Progetto D: sistema ospedaliero
Sono dati i seguenti concetti:
ospedali, con denominazione, numero di dipendenti;
ambulatori, con nome, superficie, numero di addetti;
dipendenti, con CF, nome, data assunzione;
Medici, con CF, nome, specializzazione, data assunzione (opzionale).
Rappresentare i seguenti ulteriori fatti: gli ospedali ospitano vari ambulatori, ciascuno dei quali ha un solo
direttore tecnico, che è un dipendente dell’ospedale, ed un direttore scientifico, che è un medico. I medici
possono essere dipendenti oppure professionisti esterni; in questo caso se ne registra la partita IVA. Presso
ogni ambulatorio operano vari addetti, sia dipendenti non medici sia medici; i turni di lavoro sono
rappresentati su base settimanale (per ogni persona che lavora in un ambulatorio, si annota, per ogni giorno
della settimana, quante ore vi lavora). Mentre un non medico può prestare servizio in un solo laboratorio, un
medico può lavorare presso più laboratori. Indipendentemente dai laboratori presso i quali lavorano, i medici
sono raggruppati gerarchicamente all’interno di gruppi disciplinari che raccolgono medici con la stessa
specializzazione: per ogni medico esiste al più un superiore, ed uno o più colleghi dello stesso livello
gerarchico.
Su questi fatti si devono poi aggiungere anche le operazioni di prenotazione di visite da parte dei cittadini:
ogni prenotazione è relativa ad un solo ambulatorio, è relativa ad una data ed ad un’ora, e indica anche il
medico che farà la visita. Ogni cittadino è riconociuto mediante il suo numero di tessera sanitaria e fornisce
anche un recapito telefonico obbligatorio, che viene usato per l’invio automatico di un sms due giorni prima
della data della visita prevista. Per ogni cittadino il sistema registra tutte le prestazioni a cui ha avuto
accesso. Le prestazioni effettivamente erogate a seguito di una prenotazione danno esito ad una diagnosi: il
medico annota la diagnosi e prescrive eventuali successive visite che il paziene deve svolgere. Quando un
paziente non si presenta, si registra che la prestazione prenotata è rimasta inevasa, e si annota questo fatto
nello storico delle prestazioni del paziente. Alcuni cittadini devono pagare un ticket per ogni visita effettuata:
si tiene traccia di ciascun pagamento (data di pagamento, metodo di pagamento, che può essere contanti o
bonifico con estremi del bonifico). Il pagamento di una prestazione deve avvenire entro 90 giorni dalla
prestazione.
Operazioni da prevedere:
Operazione 1: inserire una nuova prenotazione
Operazione 2: elencare tutte le prestazioni che non sono state pagate nei tempi previsti
Operazione 3: dimissioni di un medico o di un dipendente
Operazione 4: elenco del numero di prestazioni eseguite in un dato intervallo da un ambulatorio