parte 1a - Dipartimento di Ingegneria Informatica e delle

Transcript

parte 1a - Dipartimento di Ingegneria Informatica e delle
Il problema
!
Si chiede di sviluppare un‘applicazione per la
gestione del sistema bibliotecario universitario. La
soluzione deve implementare le operazioni basilari
per la gestione della biblioteca ed inoltre deve
fornire supporto alla ricerca on-line dei libri. Il
sistema deve essere interattivo.
Requisiti (I)
!
Libri e riviste:
• La biblioteca contiene libri e riviste.
• Alcuni libri sono disponibili in più copie.
• Certi libri possono essere presi in prestito soltanto per un
breve periodo.
• Tutti gli altri libri possono essere prestati da tutti i membri
della biblioteca per un periodo massimo di tre settimane.
• Il personale della biblioteca può prestare anche riviste.
• Un membro della biblioteca può prendere in prestito al
massimo 6 libri, mentre il personale 12 libri e/o riviste.
• Nuovi libri e riviste arrivano durante tutto l’anno.
• Alla fine di ogni anno, le riviste dell’anno appena concluso
sono raccolte in un unico volume.
Requisiti (II)
!
Il prestito:
• Il sistema deve tener traccia dei prestiti in corso (quando
sono stati prestati e ritornati i libri e le riviste).
• Inoltre, il sistema deve fornire un meccanismo che
segnala la scadenza dei prestiti.
• Una richiesta futura potrebbe permettere ad un membro
di estendere un prestito alla sua scadenza se il libro non è
stato prenotato.
Requisiti (III)
!
Ricerca dei libri e delle riviste:
• Il sistema deve permettere la ricerca di un libro
specificando la tematica, l’autore, il titolo, ecc.
• Inoltre, deve permettere di vedere se un libro (rivista)
sia disponibile (una sua copia) e in caso negativo di
poter prenotarlo.
• Qualsiasi persona deve poter effettuare una ricerca
usando il sistema informatico.
Si chiede:
!
!
!
Diagramma dei casi d’uso
Diagramma delle classi
Diagramma delle attività per i seguenti casi d’uso:
• Presta copia libro
• Estende prestito
Il modello dei casi d’uso (I)
!
!
!
Descrive il comportamento esteriormente visibile e
controllabile del sistema.
Un sistema è considerato di grande qualità se i suoi
utenti sono soddisfatti delle funzionalità fornite.
Quindi, l’analisi del sistema sarà realizzata dal punto
di vista dell’utente (delle funzionalità offerte
all’utente).
Il modello dei casi d’uso (II)
!
Utenti – attori
•
•
•
•
prestatario di libri
prestatario di riviste
responsabile bibliotecario
utente del motore di ricerca
dei libri e delle riviste
!
Funzionalità – casi d’uso
•
•
•
•
•
•
cerca libro/rivista
presta/ritorna copia del libro
presta/ritorna rivista
estende prestito
prenota libro
aggiorna catalogo
Attori
utente motore di ricerca
prestatario libri
prestatario riviste
responsabile bibliotecario
I casi d’uso
presta copia
del libro
cerca
libro/rivista
ritorna copia
del libro
ritorna rivista
prenota libro
presta rivista
estende prestito
aggiorna
catalogo
Diagramma dei casi d’uso
cerca
libro/rivista
ritorna rivista
utente motore
di ricerca
prestatario
riviste
presta rivista
presta copia
del libro
prestatario
libri
ritorna copia
del libro
prenota libro
estende prestito
aggiorna
catalogo
responsabile
bibliotecario
Iterazioni
!
!
!
Un sistema è sviluppato in più fasi oppure
iterazioni.
Ogni iterazione fornisce le informazioni
necessarie per un sottoinsieme dei casi d’uso.
La prima iterazione fornisce soltanto operazioni
basilari e funzionalità essenziali.
Una prima iterazione (I)
!
Una prima iterazione si concentra sui seguenti casi
d’uso:
• presta/ritorna copia del libro;
• presta/ritorna rivista.
presta copia
del libro
prestatario
libri
ritorna copia
del libro
ritorna rivista
prestatario
riviste
presta rivista
Una prima iterazione (II)
!
Libri e riviste:
• La biblioteca contiene libri e riviste.
• Alcuni libri sono disponibili in più copie.
• Certi libri possono essere presi in prestito soltanto per un
breve periodo.
• Tutti gli altri possono essere prestati da tutti i membri
della biblioteca per un periodo massimo di tre settimane.
• Il personale della biblioteca può prestare anche riviste.
• Un membro della biblioteca può prendere in prestito al
massimo 6 libri, mentre il personale 12 libri e/o riviste.
Una prima iterazione (III)
!
Il prestito:
• Il sistema deve tener traccia dei prestiti in corso
(quando sono stati prestati e ritornati i libri e le riviste).
Identificazione delle classi (I)
!
!
Identificazione dei sostantivi
=> lista dei candidati alle classi
Libri e riviste:
• La biblioteca contiene libri e riviste.
• Alcuni libri sono disponibili in più copie.
• Certi libri possono essere presi in prestito soltanto per un
breve periodo.
• Tutti gli altri possono essere prestati da tutti i membri della
biblioteca per un periodo massimo di tre settimane.
• Il personale della biblioteca può prestare anche riviste.
• Un membro della biblioteca può prendere in prestito al
massimo 6 libri, mentre il personale 12 libri e/o riviste.
Identificazione delle classi (II)
!
Il prestito:
• Il sistema deve tener traccia dei prestiti in corso
(quando sono stati prestati e ritornati i libri e le riviste).
Identificazione delle classi (III)
!
La lista dei sostantivi significativi per creare le
classi:
•
•
•
•
libro
rivista
copia (di un libro)
membro della biblioteca – presta/ritorna una copia di un
libro
• personale della biblioteca – presta/ritorna una copia di
un libro o una rivista
Una prima versione del diagramma
delle classi
Libro
è una copia
1
1..*
Membro della
biblioteca
presta/ritorna
0..1
0..*
Copia Libro
0..*
presta/ritorna
0..1
Personale della
biblioteca
presta/ritorna
0..1
0..*
Rivista
Diagramma delle classi
Libro
1
è una copi a
1..*
M em broB ibliotec a
pres ta/ritor na
0..1
P ers onaleB ibliotec a
CopiaLibro
0.. *
pres ta/ritorna
0..1
Rivist a
0..*
Una seconda iterazione (I)
!
Una seconda iterazione si concentra sui seguenti
casi d’uso:
• cerca libro/rivista;
• prenota libro;
• estende prestito.
prenota libro
cerca
libro/rivista
utente motore
di ricerca
prestatario
libri
estende
prestito
Una seconda iterazione (II)
!
Ricerca dei libri e delle riviste:
• Il sistema deve permettere la ricerca di un libro specificando la
tematica, l’autore, il titolo, ecc.
• Inoltre, deve permettere di vedere se un libro (rivista) sia
disponibile (o una sua copia) e in caso negativo di poter prenotarlo.
• Qualsiasi persona deve poter effettuare una ricerca usando il
sistema informatico.
!
Il prestito:
• Il sistema deve fornire un meccanismo che segnala la scadenza dei
prestiti.
• Una richiesta futura potrebbe permettere ad un membro di estendere
un prestito alla sua scadenza se il libro non è stato prenotato.
Diagramma delle classi
c erca
Ut ente
Libro
1
prenota
è una copia
1..*
cerca
presta/ritorna/estende/scade
Mem bro Bi bl iot eca
0.. 1
presta/ritorna/scade
Rivista
0.. *
PersonaleBiblioteca
0..1
CopiaLibro
0..*
Una terza iterazione
!
Una terza iterazione si concentra sul seguente caso
d’uso:
• aggiorna catalogo.
!
Libri e riviste:
• Nuovi libri e riviste arrivano durante tutto l’anno.
• Alla fine di ogni anno, le riviste dell’anno appena concluso
sono raccolte in un unico volume.
aggiorna
catalogo
responsabile
bibliotecario
aggiorna
catalogo
aggiungi
libro
<<include>>
<<
in
in
<<
responsabile
bibliotecario
<<
in
clu
de
>>
Caso d’uso
rimuovi
libro
clu
de>
>
c lu
aggiungi
rivista
>
de>
rimuovi
rivista
Diagramma delle classi
cerca
Utente
Libro
1
prenota
è una copi a
1.. *
cerca
presta/ritorna/estende/scade
MembroBiblioteca
0..1
presta/ritorna/scade
Rivista
0..*
PersonaleBiblioteca
0..1
aggiungi/rimouvi
CopiaLibro
0..*
aggiungi/rimouvi
Modellazione delle attività (I)
!
!
!
Il modello delle attività rappresenta il flusso di
eventi di un caso d’uso.
Sono un passo intermedio tra i modelli dei casi
d’uso (alto livello di astrazione) e i modelli di
interazione (baso livello di astrazione).
Mostrano gli eventi di un caso d’uso senza che tali
eventi siano assegnati ad oggetti.
Modellazione delle attività (II)
!
!
!
!
Mostrano i passi di una computazione.
Un passo = uno stato in cui si esegue “qualcosa”.
Un passo di esecuzione = un stato di attività.
Una transizione = il passaggio del flusso di
controllo da un’attività alla seguente.
Modellazione delle attività (III)
!
!
Mostrano le attività eseguite in sequenza e
concorrentemente.
Mostrano il flussi principali e alternativi.
Osservazione
!
!
I casi d’uso – sono definiti dal punto di vista di un
attore esterno.
I modelli d’attività – sono definiti dal punto di
vista interno del sistema.
Attività
!
In UML, un rettangolo con angoli arrotondati
rappresenta:
• uno stato di attività: l’attività necessita del tempo per
essere completata;
• uno stato di azione: l’azione è instantanea.
Diagrammi di attività
!
!
!
!
Rappresentano il flusso logico nei programmi OO.
Mostrano le transizioni tra le attività.
Hanno uno stato iniziale e uno o più stati finali.
Le transazioni si possono:
• separare (branch) e fondere (merge).
!
!
Si creano cammini (threads) di computazione alternativi.
Sono creati e fusi con rombi.
• biforcarsi (fork) e riunirsi (join).
Si creano cammini (threads) di computazione concorrenti
(paralleli).
! Sono attivati e riuniti con barre di sincronizzazione.
!
Il sistema bibliotecario
universitario (I)
!
Diagramma dei casi d’uso:
presta rivista
UtenteMotoreRicerc
a
cerca libro/rivista
PrestatarioRiviste
ritorna rivista
prest a co pia libro
ritorna co pia libro
ResponsabileBibliot
ecari o
PrestatarioLibri
pren ota li bro
estende prestito
aggiorna catalogo
Presta copia libro:
diagramma di attività
Richiesta Libro
Is crizione Nuovo
Membro
Verifica Membro
Biblioteca
[ Non i scrit to ]
[ iscritto ]
[ CANCEL ]
Verifica Prestiti
Mem bro
[ OK ]
[ Raggiunto no. max. libri ]
[ OK ]
[ OK ]
[ CANCEL ]
Verifica
Disponibilità Libro
[ NON Di sponi bi le ]
Nuova Richiesta
[ Disponibile ]
Aggirona Stato
Libro
Aggiorna Stato
Prestiti Membro
Estende prestito:
diagramma di attività
Ri chi esta
Est ensi one Prestito
Verific a Memb ro
Biblioteca
[ NON VALIDO ]
[ VALIDO ]
[ OK ]
Verifica
Prenot azioni Libro
[ NON OK ]
Estende
Prestito