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