1 |
Si progetti un
sistema informativo per una società che gestisce appartamenti in
multiproprietà.
Il sistema deve gestire il patrimonio immobiliare della società,
la vendita dei pacchetti di multiproprietà ai clienti e le richieste
di scambi fra proprietari.
Il patrimonio immobiliare consta di insiemi di appartamenti raggruppati
in insediamenti turistici. Ogni appartamento è caratterizzato da
un identificatore univoco, all'interno dell'insediamento, da un livello
di qualità (lusso, medio, spartano) e dal numero di posti letto.
Un insediamento turistico è caratterizzato dalla località,
l'indirizzo, il numero di appartamenti, il periodo di apertura (tutto l'anno,
oppure stagioni particolari) e una breve descrizione delle attrazioni -
naturali e non - offerte.
La società offre ai clienti l'acquisto di settimane (una o più)
di soggiorno presso un appartamento di una determinata località.
Ogni settimana di soggiorno ha un prezzo proporzionale alla località
ed al periodo scelto: l'alta stagione costa di più rispetto agli
altri periodi dell'anno. Al fine di concludere un contratto d'acquisto,
si deve verificare la disponibilità di un appartamento nell'insediamento
turistico richiesto e nella settimana desiderata. Al contrario, quando un
cliente decide di vendere la propria settimana di soggiorno, la società
deve prendere atto della volontà di vendere e del prezzo chiesto,
e deve aggiungere la settimana in vendita fra quelle da vendere, al prezzo
richiesto e non a quello della società.
Un cliente, una volta acquisito il diritto di soggiorno in un appartamento
per una determinata settimana, può inoltrare una richiesta per permutare
la sua settimana con quella di un altro cliente, specificando l'insieme
di località e di settimane di gradimento. Nel caso non si dovesse
trovare nessuna "nuova settimana" in grado di soddisfare le richieste,
l'offerta di scambio resta valida fino a trenta giorni prima dall'inizio
del soggiorno effettivamente acquistato.
Un cliente può, anche, decidere di affittare la propria settimana,
inoltrando richiesta e canone d'affitto. La società deve compilare
una lista di settimane "affittabili" e renderla disponibile alla
clientela.
E' richiesto il diagramma di contesto, un numero adeguato di diagrammi di
flusso dei dati, per rappresentare il problema ad un livello d'astrazione
adeguato, le viste e lo schema entità-relazione integrato.
|
2 |
Si progetti un sistema informativo per una società di autonoleggio.
Il sistema deve gestire le auto in possesso della società, e quindi
affittabili dai clienti, la possibilità di fare prenotazioni telefoniche
e la possibilità di "noleggi diretti", cioè clienti
che si presentano direttamente nei terminali della società e richiedono
il noleggio di un'auto.
Il patrimonio "auto" consta di un insieme di autoveicoli, caratterizzati
dal numero di targa, il nome della vettura, la classe di appartenenza
e gli optional disponibili (ad esempio, aria condizionata). Ogni macchina
deve essere localizzabile in un particolare terminale della società.
Questo per poter assegnare ad ogni cliente la macchina più vicina
che soddisfa le richieste fatte.
I clienti possono prenotare l'auto telefonicamente, specificando il modello
o la classe di vettura, gli optional richiesti e il periodo di noleggio.
Si tenga conto del fatto che il periodo richiesto potrebbe variare rispetto
a quello reale. Un cliente potrebbe presentarsi in ritardo o tenere la
macchina per qualche giorno in più. Il numero effettivo di giorni
di noleggio è l'informazione necessaria per poter emettere la fattura,
una volta che la macchina è stata restituita.
Se, invece, un cliente si presenta direttamente ad un punto di noleggio,
è costretto a scegliere fra le macchine a disposizione, senza poter
fare richieste particolari. Anche in questo caso, il periodo di noleggio
dichiarato potrebbe differire rispetto al periodo reale.
Il sistema deve, anche, periodicamente controllare le macchine noleggiate
e inviare un messaggio di sollecito a tutti i clienti che sono in ritardo
di più di una settimana nella riconsegna della macchina.
E' richiesto lo use case diagram, il class diagram e un insieme di iteraction
diagram per spiegare le interazioni fra oggetti più complesse.
|
3 |
Si progetti un sistema informativo per gestire gli obiettori di coscienza
in servizio presso un ente convenzionato con il Ministero della Difesa.
Il sistema deve gestire l'anagrafica degli obiettori (nome, cognome, data
di nascita e indirizzo), il loro titolo di studio, le esperienze lavorative
pregresse e la loro posizione: domanda presentata, domanda accettata,
in attesa di servizio, in servizio e servizio completato.
Il sistema gestisce anche le diverse attività svolte dall'ente.
Combinando le attività "scoperte" con le capacità
degli obiettori in servizio, ci si propone di ottimizzare l'assegnazione
degli obiettori alle diverse mansioni e, quindi, di migliorare la qualità
dei servizi offerti.
L'ente in questione mette a disposizione degli appartamenti per fornire
vitto e alloggio durante l'obiezione. Il sistema, quindi, deve tenere
traccia degli appartamenti disponibili, della disposizione deglio obiettori
nei diversi appartamenti e di eventuali posti liberi.
Per gli obiettori in servizio, il sistema deve gestire anche le licenze
(supponiamo per un totale di 20 giorni) e i permessi (al massimo 10).
Ogni mese, il sistema deve:
-
calcolare automaticamente gli stipendi, in base ai giorni di servizio
effettivo (giorni del mese meno licenze e permessi);
-
definire i rimborsi per il vitto e alloggio, in base alle informazioni
relative ai diversi appartamenti;
-
produrre la documentazione riassuntiva da inviare al distretto.
Il sistema deve anche fornire la lista degli obiettori in servizio e
la lista degli obiettori in attesa (sia tutti quelli in attesa, che solamente
quelli che hanno fatto domanda in un mese preciso).
Lo studente rappresenti il sistema con le notazioni che ritiene più
opportune e, in base alla notazione scelta, fornisca un numero di modelli
sufficienti per definire le diverse attività.
|
4 |
Si progetti un sistema informativo per la gestione di un supermercato.
Il sistema deve gestire il magazzino. Questo significa tenere traccia della
merce effettivamente in magazzino e di quella sugli scaffali. Quando il
quantitativo di un determinato prodotto diventa minore di una certa soglia,
si deve prevedere un meccanismo di approvvigionamento semiautomatico. Il
sistema deve segnalare i prodotti che sono in via di esaurimento e suggerire,
secondo politiche predefinite, la quantità da acquistare.
Il sistema deve gestire anche le casse. Attraverso lettori di codici a barre,
deve riconoscere la merce in uscita. Questa ovviamente è una condizione
necessaria per poter completare il passo precedente. Il sistema deve registrare
tutti gli acquisti effettuati, al fine di riconoscere profili utente specifici,
ed essere in grado di fare promozioni mirate alle diverse classi d'utenti.
Tutte le promozioni devono essere registrate dal sistema.
Oltre al normale scontrino, il supermercato emette anche tessere a punti.
Un punto corrisponde a 5,16 Euro (10.000 lire) di spesa. Il sistema deve
gestire e registrare tutte le tessere emesse. Quando un cliente si presenta
alla cassa e presenta la tessera, il sistema deve aggiornare la situazione
e registrarla sia sulla tessera del cliente, che nel sistema centrale. Il
sistema deve, anche, avvisare il cliente che si presenta alla cassa se i
punti totalizzati fino a quel momento gli danno diritto a premi o sconti
particolari.
Il candidato modelli il sistema con la notazione che ritiene più
opportuna (analisi strutturata e schemi entità relazione, oppure
UML). Scelta la notazione, il candidato fornisca un numero di diagrammi
che ritiene sufficiente per descrivere il problema.
|
5 |
Si progetti un sistema informativo per la gestione di un "negozio
virtuale" di libri.
Il sistema deve gestire i clienti. Attenzione
che le informazioni richieste riguardano solamente i clienti che richiedono
l'acquisto di un libro, non si deve gestire l'anagrafica di qualsiasi
persona che acceda al sito del negozio solamente per consultazione. Oltre
ai dati anagrafici veri e propri, si devono richiedere le modalità
di pagamento.
Ovviamente deve essere noto il magazzino libri, cioè tutti i titoli
a disposizione, le diverse edizioni (ad esempio, copertina rigida o molle),
il prezzo, lo sconto e la disponibilità, sia in termini di numero
di copie, che di giorni richiesti per la consegna al cliente.
Il sistema deve gestire le transazioni degli utenti. Queste possono essere
suddivise in due categorie: ricerche e/o acquisti. La ricerca di un libro
deve essere facilitata fornendo i soli ausili alla ricerca: ricerca per
parole singole e parziali, ricerca per parole simili, ecc. La procedura
d'acquisto deve offrire un "carrello della spesa" virtuale e
gestirlo in maniera opportuna. Se l'utente decide di acquistare la merce
nel carrello, il sistema deve provvedere alla compilazione sia delle fattura
(ricevuta) per il cliente, che del modulo da inoltrare al magazzino per
la consegna dell'ordine.
Il candidato modelli il sistema con la notazione che ritiene più
opportuna (analisi strutturata e schemi entità relazione, oppure
UML). Scelta la notazione, il candidato fornisca un numero di diagrammi
che ritiene sufficiente per descrivere il problema.
|
6 |
Si progetti un sistema informativo per la gestione di una agenzia di
viaggi.
L'agenzia fornisce sia servizi tradizionali, che servizi innovativi.
Tradizionalmente, un'agenzia deve vendere:
-
settimane di villeggiatura scelte da appositi cataloghi;
-
biglietti aerei, ferroviari e per traghetti;
-
soggiorni in alberghi particolari.
Per i servizi innovativi, l'agenzia deve offrire la possibilità
di:
-
cercare il volo più economico per una determinata località;
-
cercare il soggiorno più esclusivo, più economico, oppure
più caratteristico;
-
confrontare le diverse offerte per la medesima località turistica;
-
scegliere fra rinunce e offerte della settimana, che devono essere
vendute a prezzi scontati.
L'agenzia deve tener traccia anche del fatturato accumulato da ogni cliente
e del volume d'affari con ogni catalogo trattato. Nel primo caso, le informazioni
raccolte potrebbero essere utilizzate per definire offerte o sconti particolari.
Nel secondo caso, le informazioni potrebbero servire per spuntare prezzi
d'acquisto (per l'agenzia) migliori.
Il candidato modelli il sistema utilizzando UML. Si definiscano, almeno,
uno use case diagram, un class diagram e due diagrammi, scelti fra interaction
diagram, activity diagram o statecharts diagram, per formalizzare due
attività particolari.
|
7 |
Si progetti un sistema informativo per la gestione e la consultazione
della programmazione delle sale cinematografiche della provincia (regione).
L'applicazione deve gestire le informazioni relative ai film in programmazione
nei diversi cinema della regione. Nel caso di cinema multisala, si deve
poter consultare la programmazione relativa ad ogni singola sala. In particolare
si è interessati a conoscere l'ubicazione (indirizzo) del cinema,
gli orari e il costo del biglietto. La disponibilità di tariffe
agevolate in giorni particolari della settimana, oppure per categorie
specifiche (anziani, militari, ecc.), deve essere opportunamente segnalata.
Per quanto riguarda le pellicole in programmazione, deve essere disponibile
il titolo del film, l'anno e la nazione di provenienza, il genere, il
regista, la casa di produzione, gli attori principali, la trama e eventuali
giudizi critici. Per ogni attore (attrice), deve essere disponibile la
scheda anagrafica e la filmografia, cioè l'insieme dei film in
cui ha recitato.
L'applicazione in questione prevede due possibili figure di utenti: il
gestore ed il cliente. Il gestore deve essere in grado di modificare ed
aggiungere informazioni. Il cliente, invece, può solamente consultare
le informazioni disponibili.
Devono essere possibili ricerche per città (ad esempio, i film
in programmazione a Cremona), sala cinematografica ( ad esempio, i(l)
film in programmazione al cinema Odeon), genere (ad esempio, tutti i film
comici in programmazione), attore (ad esempio, tutti film in programmazione
in cui recita Sandra Bullock) o regista (ad esempio, tutti i film in programmazione
il cui regista è Woody Allen) diversamente combinate fra loro.
Il candidato modelli il sistema con la notazione che ritiene più
opportuna (analisi strutturata e schemi entità relazione, oppure
UML). Scelta la notazione, il candidato fornisca un numero di diagrammi
che ritiene sufficiente per descrivere il problema.
|
8 |
Si progetti un sistema informativo per la gestione della manutenzione
delle strade del vostro comune.
Il comune "identifica" un insieme di interventi che, per semplicità,
possono essere: asfaltatura, messa in opera di nuove tubature e/o cavi,
oppure semplice manutenzione ordinaria. Per la manutenzione straordinaria
(asfaltatura e messa in opera), il comune indice una gara d'appalto, identificando
la tipologia dell'intervento, i vincoli temporali e il tetto massimo di
spesa. Chi partecipa alla gara deve presentare la propria offerta, specificando
il periodo proposto e il preventivo di spesa. Il comune deve essere in
grado di selezionare l'offerta migliore sia in termini temporali (la data
proposta per l'inizio dei lavori e` la piu` vicina a quella richiesta),
che in termini economici (il preventivo di spesa piu' basso, oppure inferiore
di una certa percentuale rispetto alla spesa massima). Per la manutenzione
ordinaria, invece, il comune si rivolge sempre e solo a ditte convenzionate.
Appena prima che comincino i lavori, il comune deve essere in grado di
identificare le strade coinvolte. Questo significa identificare anche
gli incroci, che richiedono personale per il controllo del traffico (banalmente,
gli incroci collegati dalle strade coinvolte), e le strade che diventerebbero
inutilizzabili a fronte delle vie chiuse per lavori e dei sensi unici
esistenti. Per semplicita`, il nome di una via identifica una strada che
connette esattamente due incroci. Un incrocio puo' connettere un numero
illimitato di strade.
Si progetti il diagramma delle classi usando UML e si emplifichi il funzionamento
del sistema definendo almeno due sequence diagram (interaction diagram
oppure cooperation diagram) che rappresentano gli scenari seguenti:
-
Via Mazzini deve essere riasfaltata. Il comune indice una gara per
l'assegnazione dei lavori, da svolgersi durante la prima settimana di
ottobre e per un ammontare massimo di 10.000.000. Tra le proposte, il
comune sceglie la ditta Rossi perche' propone uno sconto del 20% rispetto
alla cifra prevista.
-
Si determinino quali saranno gli incroci coinvolti e le strade "isolate"
il giorno in cui inizieranno i lavori in via Mazzini.
|
9 |
Si progetti un sistema informativo per la gestione "evoluta"
di una farmacia.
La farmacia deve conoscere tutti i medicinali prescrivibili.
Per ogni prodotto, deve tener traccia del prezzo di vendita, dei vincoli
imposti per legge alla vendita (ad esempio, solo su presentazione di ricetta
medica) e di eventuali effetti collaterali. Il farmacista dovrebbe essere
in grado di consigliare oppure sconsigliare il cliente se il prodotto
richiesto dovesse presentare effetti collaterali "troppo" nocivi,
oppure fosse sconsigliato in presenza di patologie o disturbi particolari.
Ovviamente, ogni farmaco ha una casa produttrice che deve essere contatta
nel momento in cui le scorte del prodotto dovessero andare sotto il livello
di guardia. La farmacia registra anche ogni cliente, sia per fornire un
servizio migliore, cioè per tener traccia di allergie, patologie,
oppure problemi che potrebbero sconsigliare l'assunzione di un particolare
prodotto, sia per produrre statistiche d'uso dei diversi farmaci per l'ASL.
A questo proposito la farmacia registra anche i medici che hanno proposto
le diverse prescrizioni. Ancora la finalità è duplice: instaurare
un rapporto di collaborazione con il medico e produrre le statistiche
per l'ASL. A richiesta la farmacia deve anche saper ricostruire lo storico
(l'ultimo anno, ad esempio) del singolo cliente, oppure del singolo medico.
Si progetti il sistema utilizzando UML, oppure DFD e schemi ER. Si esemplifichi
anche il comportamento de sistema nei due casi seguenti:
-
Il cliente Giuseppe Rossi si rivolge alla farmacia per comprare una
scatola di aspirine. A fronte della vendita del prodotto, il sistema
deve segnalare la necessità di riordinare il prodotto per mantere
inalterate le scorte.
-
L'ASL richiede i dati relativi al consumo di antidepressivi per l'anno
1999.
|
10 |
Si progetti un sistema informativo per la classificazione dei ristoranti
italiani.
I ristoranti devono essere organizzabili sia in ordine alfabetico che
per città. Ogni ristorante può segnalarsi per le sue specialità,
il prezzo e la citazione in una o più guide gastronomiche (Michelin,
Veronelli, Gambero Rosso, ecc.). Se un ristorante viene citato in una
particolare guida, oltre al nome della guida, deve essere disponibile
l'intera valutazione (voto, note di merito e di demerito). Si consideri
che l'utente potrebbe essere interessato anche a consultare la lista di
ristoranti in base alla guida di suo gradimento. Ad esempio, si potrebbe
essere interessati ai primi cinque ristoranti della guida Michelin 2000.
Inoltre, si potrebbe voler definire una graduatoria comparata dei migliori
ristoranti interpolando i risultati delle diverse guide.
Si progetti il sistema iniziando con uno use-case UML, oppure con un DFD
di primo livello (non di contesto) . Si definisca il class diagram UML
per gli oggetti (elementi) necessari. Si esemplifichi poi il comportamento
del sistema nei due casi seguenti (interaction diagram):
-
Il cliente Giuseppe Rossi vuole ottenere il miglior ristorante di
Milano secondo tutte le guide note (quelle prese in considerazione dal
sistema informativo).
-
Il cliente Giuseppe Rossi vuole ottenere il miglior ristorante in
provincia di Lecco, per mangiare pesce, e vuole che non sia citato in
alcuna guida nota.
|
11 |
Si progetti un sistema informativo per la gestione di unimpresa
edile.
Il sistema deve gestire i cantieri, i dipendenti e il magazzino
centrale.
Ogni cantiere, oltre alla propria posizione, descrizione, data di inizio
lavori e data di fine prevista, deve conoscere i dipendenti (muratori,
carpentieri, autisti, geometri, ecc.) assegnati. Si noti che un dipendente
potrebbe lavorare in più cantieri. Per ogni dipendente, oltre ai
dati anagrafici, si deve conoscere la qualifica, la fascia di stipendio
e eventuali richieste e/o capacità particolari.
L'impresa ha un magazzino centrale e un "piccolo magazzino"
per ogni cantiere aperto. Ogni magazzino registra i prodotti per costruzione
(mattoni, tegole, cemento, ecc.) , gli strumenti e i mezzi disponibili
in ogni magazzino. Il magazzino centrale deve essere in grado di assegnare
il materiale (strumento o mezzo) richiesto ad ogni cantiere cercando di
minimizzare i tempi e le distanze. Ad esempio, deve essere possibile localizzare
il carico di mattoni più vicino al cantiere che l'ha richiesto
e deve essere possible "spostarlo" da un magazzino ad un altro.
A richiesta il cantiere deve anche saper calcolare il costo "corrente"
di un cantiere. Deve anche saper ricostruire lo storico (l'ultimo anno,
ad esempio) del singolo cantiere, del singolo dipendente, oppure del singolo
mezzo.
Si progetti il sistema utilizzando UML, oppure DFD e schemi ER. Si esemplifichi
anche il comportamento del sistema in due casi che si ritengono significativi.
|
12 |
Si progetti un sistema informativo per la gestione della coppa del mondo
di sci.
Il sistema deve gestire l'archivio storico delle diverse edizioni della
coppa del mondo. Ogni anno, la coppa viene assegnata considerando i risultati
ottenuti in un certo numero di gare. Ad ogni gara (slalom speciale, slalom
gigante, super gigante e discesa libera) partecipano un certo numero di
atleti. Ogni gara "produce" una classifica; ogni atleta è
caratterizzato dalla nazione di nascita, dalla nazione per la quale gareggia,
dai risultati ottenuti in cariera e dai materiali che usa. Ogni atleta
deve usare almeno un paio di sci, un paio di scarponi e un paio di attacchi.
Il sistema deve gestire anche le ditte produttrici dei diversi materiali,
a prescindere dal fatto che vengano effettivamente usati dai diversi atleti.
Il sistema deve però controllare che non ci siano ditte che non
forniscono atleti da più di due anni; in caso contrario il sistema
dovrebbe informare le diverse aziende e invitarle a sponsorizzare alcuni
atleti partecipanti alla coppa.
Il sistema deve anche occuparsi di gestire i contratti pubblicitari che
di riferiscono alla coppa del mondo. Sono ammessi quanti contratti si
vuole, ma le aziende interessate devono appartenere a settori merceologici
diversi.
Dopo aver modellato il sistema usando UML, oppure l'analisi strutturata
e gli schemi ER, si semplifichi il comportamento del sistema nei due casi
seguenti:
-
Il sistema deve calcolare la media punti di Cristian Ghedina nelle
ultime 3 edizioni della coppa del mondo.
-
Il sistema vuole calcolare quante e quali gare sono state annullate
per mancanza di neve nelle ultime 5 stagioni.
|
13 |
Si progetti un sistema informativo per la gestione di una società
di autobus.
Il sistema deve gestire le linee servite dalla società. Ogni linea
ha una stazione di testa e una stazione di coda e gli autobus la possono
percorrere nelle due direzioni (dalla testa alla coda, oppure viceversa).
Si noti che le fermate nelle due direzioni protrebbero essere diverse
(ad esempio, una strada potrebbe essere a senso unico). Ogni linea è
coperta da un certo numero di corse giornaliere: si supponga che la cadenza
e l'orario di inizio e di fine delle corse dipendano dal giorno della
settimana e/o da particolari giorni di festa (giorni lavorativi, sabato,
domenica e festività). Una corsa però non deve necessariamente
coprire l'intera tratta, ma potrebbe anche essere limitata ad un sottoinsieme
delle fermate previste dalla linea.
Il sistema deve stampare anche l'orario stagionale e deve gestire gli
autisti e gli autobus. Solitamente un mezzo è assegnato a una particolare
linea (corsa) e un autista è assegnato a un particolare mezzo.
Il sistema deve controllare che ogni autista non lavori mai per più
di 7 ore al giorno, quindi il numero di corse effettuabili da ogni autista
e il numero di autisti necessari per coprire una singola linea devono
essere calcolati in base ai tempi di percorrenza.
Dopo aver modellato il sistema usando UML, oppure l'analisi strutturata
e gli schemi ER, si esemplifichi il comportamento del sistema nei due
casi seguenti:
-
Il sistema deve calcolare il numero di autisti necessario per coprire
la linea Topolinia-Paperopoli, sapendo che la tratta completa consta
di 12 fermate e che il tempo medio da una fermata alla successiva è
di 10 minuti.
-
Il sistema vuole calcolare il numero di mezzi necessari per coprire
tutte le corse individuate.
|
14 |
Si progetti il sistema informativo (semplificato) della motorizzazione
civile.
Il sistema deve gestire sia le immatricolazioni dei mezzi di trasporto,
sia l'emissione delle patenti. I mezzi di trasporto sono suddivisi in
motociclette, automobili, pullman e camion.
La motorizzazione vuole tenere traccia sia dei modelli, che dei singoli
autoveicoli. I modelli possono essere modelli standard (identificati da
nome del modello, codice e data di omologazione), oppure prototipi (identificati
da nome del prototipo, codice, data di immatricolazione e persona che
ha presentato la richiesta di immatricolazione).
Ogni mezzo di trasporto è identificato da numero di telaio, modello,
data di immatricolazione, targa e proprietario. I proprietari possono
essere persone fisiche, oppure società. Ad ogni persona fisica
può essere associata una patente; non è ovviamente possibile
associare patenti a società. Le persone e le società sono
identificate attraverso i soliti attributi, Le patenti devono avere un
proprietario, una data di rilascio, eventuali note specifiche e eventuali
rinnovi.
Si modelli il sistema utilizzando le notazioni che si ritengono più
opportune. Si descriva anche, il comportamento del sistema nei seguenti
casi:
-
Il sistema (l'utente) vuole immatricolare una nuova macchina: Fiat
Punto blu, data immatricolazione 20/06/2000, telaio # 123AS34, targa
FS 904 LB, proprietario Antonio Rossi.
-
Il sistema (l'utente) vuole identificare il proprietario della Alfa
Romeo 156 targata FR 374 CB, telaio # 453HH92.
|
15 |
Si progetti un sistema informativo per la gestione del programma fedeltà
della compagnia aerea MyAir.
La premessa, magari non nota a tutti, è
che chi si iscrive al programma, ogni volta in cui vola con MyAir, accumula
punti (miglia) che danno diritto a premi. Ad esempio, bisogna volare per
almeno 25.000 miglia per avere diritto a un volo gratuito in Europa; ci
vogliono 65.000 miglia per un volo negli Stati Uniti; bastano 5.000 per
un buono acquisto in un negozio convenzionato.
Il sistema deve gestire i clienti della compagnia che partecipano al programma.
I partecipanti sono organizzati in tre fasce di merito in funzione delle
miglia volate durante un anno solare: tutti appartengono al primo livello.
Se si volano 35.000 miglia si passa al secondo livello; si accede al terzo
livello con 100.000 miglia volate in un anno. I tre livelli danno diritto
a facilitazioni e premi differenziati.
Oltre ai clienti, il sistema deve gestire i premi, ovvero la tipologia
di premio (volo gratuito, soggiorno gratuito, buono sconto), il numero
di miglia richieste per ogni premio particolare (un volo gratuito a New
York richiede più miglia di un volo per Roma) e lo storico dei
clienti: quanti voli ha effettuato ogni cliente, quante miglia ha guadagnato,
quali premi ha già riscosso e quante miglia gli restano da "spendere".
Si fa notare che le miglia scadono dopo 5 anni dal momento in cui sono
state acquisite, cioè dalla data del volo.
Il sistema deve essere in grado di aggiornare la posizione di ogni cliente
in funzione di ogni volo effettuato e di ogni premi richiesto. Deve anche
gestire l'effettiva disponibilità dei premi. Ad esempio, un volo
gratuito potrebbe non essere soddisfacibile se il volo richiesto fosse
già pieno.
Si progetti il sistema definendo il diagramma delle classi UML e si esemplifichi
il comportamento del sistema nei due casi seguenti:
-
Il signor Rossi chiede un volo premio per Nairobi. Il sistema deve
verificare le miglia in possesso del signor Rossi, confrontarle con
quelle richieste per un volo per Nairobi e ricordare al signor Rossi
che non ha miglia sufficienti.
-
Il signor Bianchi ha effettuato il decimo volo del 2000 e questo significa
che la classe di merito cambia da quella base al secondo livello. Il
sistema deve modificare l'immagine del signor Bianchi (cioè i
dati memorizzati) e deve predisporre l'invio della nuova tessera di
fideizzazione.
|
16 |
Si progetti un sistema informativo per la gestione di un oratorio.
Il
sistema deve gestire tutte le attività svolte in oratorio (catechismo,
corsi di informatica, corsi di ballo, vacanze estive, ecc.). Ogni attività
ha un responsabile, un insieme di persone di riferimento, che coadiuva
il responsabile, e gruppo di ragazzi (persone) che seguono (svolgono)
l'attività in questione. Il catechismo è rivolto solamente
a ragazzi in età scolare, mentre ad esempio i corsi sono rivolti
a tutti. Le attività non sono fisse e predefinite, ma possono cambiare
nel corso dell'anno. Le attività con un numero elevato di partecipanti
sono organizzate in classi. Ogni attività ha anche un bilancio:
le entrate sono le sovvenzioni del comune, della parrocchia, di qualche
ente benefico, oppure le quote di iscrizione richieste ai partecipanti;
le uscite sono ovviamente le spese vive più qualche compenso proforma
ai responsabili. L'obiettivo è di mantenere ogni attività
in attivo o in pareggio. Eventuali "utili" servirebbero per
finanziare altre attività.
Il sistema deve essere in grado di elaborare anche il bilancio complessivo
dell'oratorio sia mese per mese, che alla fine di ogni anno.
Si progetti il sistema definendo il diagramma delle classi UML e si esemplifichi
il suo comportamento nei due casi seguenti:
-
L'oratorio organizza un corso di balli latino-americani riscotendo
un notevole successo. Si calcoli il bilancio del corso sapendo che:
non è stata concessa alcuna sovvenzione, ma i 30 partecipanti
hanno pagato 50.000 lire di quota d'iscrizione, e si è deciso
di dare 500.000 lire ad ognuno dei due maestri.
-
Il signor Bianchi vuole iscrivere il figlio Francesco al corso di
free-climbing. Il signor Bianchi deve pagare la quota
|
17 |
Si progetti un sistema informativo per la gestione di un'azienda dolciaria.
Il sistema deve classificare e gestire tutti i prodotti dell'azienda.
Ogni prodotto richiede una ricetta e un certo numero di materie prime.
Il sistema deve poter controllare la ricetta scelta e decidere se esistono
scorte sufficienti per preparare il prodotto nella quantità stabilita.
Se non ci fossero materie prime sufficienti, il sistema dovrebbe provvedere
all'espletamento delle pratiche per il riordino: la modalità può
essere sia automatica, che manuale. Nel primo caso, è il sistema
che fa tutto; nel secondo caso, il sistema segnala solamente le materie
prime mancanti e lascia la decisione finale all'operatore.
L'azienda dispone, anche, di un proprio sito Internet con il quale presenta
e vende i prodotti. La presentazione è attraverso particolari "tour
per golosi"; la vendita è una classica vendita via Inter-net:
i clienti scelgono cosa comprare e decidono modalità di spedizione
e tempi di consegna. Chiaramente tempi di consegna e modalità diverse
hanno prezzi diversi.
Gli utenti del sistema possono caratterizzare i loro profili, specificando
i gusti (ad esempio, prodotti alla panna, oppure torte con la glassa)
e richieste (ad esempio, consegna sempre tramite fattorino). Le preferenze
devono essere usate dal sistema per organizzare i "tour per golosi",
privilegiando quelli che corrispondono ai gusti dichiarati. Ad esempio,
i fanatici del cioccolato dovranno avere tutti i tour con prodotti al
cioccolato, come prima scelta, e poi via via gli altri. I tour de-vono
anche presentare l'equivalente calorico di ogni prodotto, giusto per infierire
sul cliente.
Si progetti il sistema definendo il diagramma delle classi UML e si esemplifichi
il suo comporta-mento (interaction o activity diagram) nei due casi seguenti:
-
Si deve produrre la torta della nonna e si scopre che mancano alcuni
ingredienti (ad esempio, uova e pinoli). Il sistema, in modalità
automatica, deve provvedere all'emissione degli ordini d'acquisto.
-
L'utente Rosso Rossi richiede la consegna di una bavarese alla fragola
per corriere espresso entro 12 ore. Supponendo che la cosa sia possibile,
il sistema deve calcolare il costo dell'operazione (spedizione più
involucro protettivo) e deve emettere la fattu-ra virtuale al cliente.
|