Prova Scritta di Ingegneria del Software
Secondo Appello 11 luglio 2011
Si richiede di modellare, progettare e testare un sistema software per la
gestione di una biblioteca.
L'applicazione informatica dovrà servire sia al personale della biblioteca per
gestire il lavoro amministrativo (prestiti, inventario, registrazione delle
acquisizioni, ecc...) sia agli utenti (reperimento volumi, assistenza nelle
ricerche bibliografiche, ecc...).
La biblioteca è organizzata in settori, a ciascuno dei quali corrisponde un
argomento (storia, narrativa, saggistica, artigianato, scienza, tecnologia,
fantascienza, musica, ecc...). I settori contengono documenti di vario genere:
libri, riviste, materiale audio (CD) e video (DVD). I documenti risiedono su
scaffali opportunamente numerati.
La biblioteca concede i documenti in prestito. Un prestito può durare fino a
quindici giorni. E' possibile un singolo rinnovo di sette giorni. I prestiti
sono concessi agli utenti registrati. La registrazione è effettuata
automaticamente su domanda dell'utente. All'utente registrato è associato un
codice numerico.
Se i documenti in prestito non sono restituiti nel termine stabilito, la
biblioteca avverte l'utente sollecitandone la restituzione. Al sollecito segue
un'ingiunzione con multa. Se anche questa azione non sortisce effetto, l'utente
viene sospeso dal servizio prestiti.
Da notare, infine, che non tutti i documenti possono essere concessi in
prestito, questo per vari motivi (sono rari o preziosi o devono essere sempre
disponibili).
Il sistema software così descritto dovrà:
- essere modellato tramite un'analisi dei requisiti comprendente almeno un
diagramma ER, un diagramma dei casi d'uso, una lista di requisiti funzionali e
non funzionali e un Product Backlog
- essere progettato tramite un diagramma delle classi e una serie di interfacce
Java
- essere verificato scrivendo una lista di casi di test con almeno un JUnit
test.