Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una...

59
Politecnico Politecnico di Milano di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL [email protected]

Transcript of Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una...

Page 1: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

PolitecnicoPolitecnicodi Milanodi Milano

© 2005 - CEFRIEL

Un esempio di modellazione con UML:

Gestione di una biblioteca

Luigi LavazzaCEFRIEL

[email protected]

Page 2: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

2 © 2005 - CEFRIELUnified Modeling Language

Gestione di una bibliotecaGestione di una biblioteca

Una biblioteca desidera passare da una gestione manuale ad una supportata da calcolatore.

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.)

Page 3: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

3 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: organizzazioneorganizzazione

La biblioteca è organizzata in settori, a ciascuno dei quali corrisponde un argomento (storia, narrativa, saggistica, arti pratiche, scienza, tecnologia, fantascienza, musica, ecc.).

I settori contengono documenti di vario genere: libri, riviste, materiale audio (dischi, cd, cassette) e video (cassette e video dischi).

I documenti risiedono in scaffali opportunamente numerati.

Page 4: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

4 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: prestitiprestiti

La biblioteca concede il prestito dei documenti fino a 15 giorni e un singolo rinnovo di una settimana.

I prestiti sono concessi agli utenti registrati. La registrazione è effettuata automaticamente su

domanda dell'utente. All’utente registrato viene associato un codice. Se i documenti in prestito non vengono restituiti nel

termine stabilito la biblioteca avverte l’utente sollecitando la restituzione. Al sollecito segue una ingiunzione con multa. Se anche questa azione non sortisce effetto, l'utente viene sospeso.

Page 5: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

5 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: prestitiprestiti

Non tutti i documenti sono prestabili, per vari motivi (sono rari o preziosi o devono essere sempre consultabili).

Le riviste contengono collezioni di articoli, che sono memorizzati singolarmente nel database di sistema. Le riviste sono presenti in copia unica e non sono prestabili.

Page 6: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

6 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: le responsabilità del sistemale responsabilità del sistema

I documenti sono descritti da appositi cartellini contenuti in schedari che gli utenti possono consultare. Ogni cartellino riporta: titolo, autore, editore e anno di emissione del documento ed altre informazioni per ciascun documento.

Il sistema dovrà – supportare il lavoro di amministrazione della biblioteca, il

servizio prestiti e le ricerche di materiale da parte dell'utente.

– gestire l'elenco degli utenti, con tutte le informazioni relative agli utenti stessi che possano risultare utili.

Page 7: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

7 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: le responsabilità del sistemale responsabilità del sistema

Il sistema sarà in grado di registrare i prestiti, e supporterà le azioni nei confronti degli utenti che trattengono i documenti in prestito oltre il lecito.

Il sistema contiene l'elenco dei documenti presenti nella biblioteca, e consente di manipolare tale elenco per tenere conto di: vendita o smarrimento di documenti, acquisizione di nuovi documenti, ecc.

Page 8: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

8 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: ricerchericerche

Il sistema dovrà consentire le ricerche bibliografiche da parte degli utenti permettendo l’utilizzo di diversi criteri.

Ogni documento dell’insieme deve riportare, oltre alle caratteristiche sue proprie (titolo, autore, ecc.), anche una descrizione e le informazioni relative alla sua localizzazione in modo da facilitare il reperimento.

Inizialmente si vuole fornire all'utente uno strumento di ricerca che sia sufficientemente potente e flessibile, senza per questo risultare eccessivamente costoso sia in termini di realizzazione che di prestazioni.

Page 9: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

9 © 2005 - CEFRIELUnified Modeling Language

Il dominio del problema: Il dominio del problema: evoluzioneevoluzione

Si intende lasciare che gli utenti sperimentino la prima release prototipale del sistema ed esprimano delle richieste che verranno vagliate ed eventualmente incluse in una release successiva.

E’ probabile quindi che i metodi di ricerca debbano essere adattati in futuro secondo le nuove richieste degli utenti. – Il sistema potrà contemplare la caratterizzazione dei

documenti in base a parole chiave, o altri metodi ritenuti utili.

Page 10: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

10

© 2005 - CEFRIELUnified Modeling Language

Il dominio del problema:Il dominio del problema:dettagli operatividettagli operativi

Il sistema deve ovviamente essere multitasking, nel senso che l'amministrazione deve poter lavorare contemporaneamente alle consultazioni da parte degli utenti.

Le consultazioni sono strettamente in sola lettura, cioè gli utenti non devono avere la possibilità di modificare in alcun modo il database.

Page 11: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

11

© 2005 - CEFRIELUnified Modeling Language

Il diagramma di contestoIl diagramma di contesto

Librarymachine

Profiloutenti

Prestiti

Bibliotecario

Lettore

Documenti

Page 12: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

12

© 2005 - CEFRIELUnified Modeling Language

Use Case: Gestione prestitiUse Case: Gestione prestiti

PrestitoBibliotecario

Utente

VerificaRegistrazione

Registrazione

VerificaAbilitazioneRestituzione

<<include>>

AggiornaSituazione

<<include>>

<<include>>

<<include>>

<<include>>

Page 13: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

13

© 2005 - CEFRIELUnified Modeling Language

Use case: Gestione sollecitiUse case: Gestione solleciti

Sollecito

Bibliotecario

Utente

Disabilitazione

GestionePrestiti

<<include>>

LetturaDatiUtente

<<include>>

<<include>><<include>>

Page 14: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

14

© 2005 - CEFRIELUnified Modeling Language

Use Case: RicercheUse Case: Ricerche

RicercaBibliograficaUtente

Page 15: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

15

© 2005 - CEFRIELUnified Modeling Language

Identificazione di classi e Identificazione di classi e oggetti: i candidatioggetti: i candidati

La biblioteca è organizzata in settori, a ciascuno dei quali corri-sponde un argomento (storia, narrativa, saggistica, arti pratiche, scienza, tecnologia, fantascienza, musica, ecc.).I settori contengono documenti di vario genere: libri, riviste, materiale audio (dischi, cd, cassette) e video (cassette e video dischi). I documenti risiedono in scaffali opportunamente numerati.

La biblioteca concede prestiti (fino a 15 giorni) e un singolo rinnovo di una settimana. I prestiti sono concessi agli utenti registrati. La registrazione è effettuata automaticamente su domanda dell'utente. Se la restituzione dei documenti in prestito non avviene entro termine stabilito la biblioteca avverte l’utente tramite sollecito. Se anche questa azione non sortisce effetto, si passa alla sospensione dal prestito dell’utente.

Page 16: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

16

© 2005 - CEFRIELUnified Modeling Language

Identificazione di classi e Identificazione di classi e oggetti: i candidatioggetti: i candidati

Non tutti i documenti sono prestabili, per vari motivi (sono rari o preziosi o devono essere sempre consultabili). Le riviste contengono collezioni di articoli, che sono memorizzati singolarmente nel database di sistema. Le riviste sono presenti in copia unica e non sono prestabili.

I documenti sono descritti da appositi cartellini contenuti in schedari che gli utenti possono consultare. Ogni cartellino riporta: titolo, autore, editore e anno di emissione del documento ed altre informazioni per ciascun documento.

Page 17: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

17

© 2005 - CEFRIELUnified Modeling Language

Diagramma delle classiDiagramma delle classi

Sollecito

Azione

Sospensione

Prestito Utente

Video

Biblioteca

Libro

Documento SettoreDescrizione Scaffale

Audio Rivista Articolo

Page 18: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

18

© 2005 - CEFRIELUnified Modeling Language

Identificazione delle relazioniIdentificazione delle relazioni

La biblioteca è organizzata in settori... I settori contengono documenti di vario genere:

libri, riviste, materiale audio (dischi, cd, cassette) e video (cassette e video dischi).

I documenti risiedono in scaffali opportunamente numerati.

La biblioteca concede il prestito dei documenti... I prestiti sono concessi agli utenti registrati. La

registrazione é effettuata automaticamente su domanda dell'utente.

Le riviste contengono collezioni di articoli, che sono memorizzati singolarmente nel database di sistema.

Page 19: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

19

© 2005 - CEFRIELUnified Modeling Language

Class diagram con relazioniClass diagram con relazioni

Sollecito Sospensione

Video LibroAudio

PrestitoAzione Utente

DescrizioneArticoloRivista

Documento Scaffale Settore

Biblioteca

Page 20: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

20

© 2005 - CEFRIELUnified Modeling Language

OsservazioniOsservazioni

Nel class diagram visto manca un legame esplicito tra gli utenti (istanze della classe Utente) e la Biblioteca.

È opportuno introdurre tale legame, attraverso una classe RegistroUtenti.– … ma avrà una sola istanza!– però garantisce flessibilità

• ad es. in futuro potrebbero esserci diverse tipologie di utenti, appartenenti a registri diversi: normali, studenti, sostenitori, ricercatori, …

– per di più corrisponde a quanto succede in pratica: gli “oggetti utente” dovranno pure essere raggruppati in qualche contenitore.

Page 21: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

22

© 2005 - CEFRIELUnified Modeling Language

Cardinalità delle relazioniCardinalità delle relazioni

Specificare correttamente le relazioni e la loro cardinalità in genere porta ad acquisire una maggior conoscenza del problema, permette di scoprire incongruenze ed incompletezze delle specifiche, ecc.

Esempio:– un singolo prestito può riguardare più documenti ?

(possibili risposte: sì, no, sì, ma limitatamente a documenti omogenei perché documenti di tipo diverso hanno durate di prestito diverse, ecc.)

Page 22: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

23

© 2005 - CEFRIELUnified Modeling Language

Il modello delle classi con Il modello delle classi con relazionirelazioni

Sollecito Sospensione

Video LibroAudio Rivista

1..*

Articolo

1..*

0..2

Azione

1..*

0..1

Descrizione

0..*Documento

1..*

Scaffale0..*1..*

Settore

1..*

0..*

Prestito

0..2

1..*

0..1

Biblioteca

1..*

ResistroUtenti

0..*

Utente

0..*

0..*

Page 23: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

24

© 2005 - CEFRIELUnified Modeling Language

Osservazioni sulle relazioni:Osservazioni sulle relazioni:Settore-Scaffale-DocumentoSettore-Scaffale-Documento

Finora si è fatta l’ipotesi che uno scaffale appartenga ad un unico settore, che rappresenta l’argomento condiviso da tutti i libri dello scaffale stesso.– Settore-Scaffale è 1-m– Settore-Documento è ricavabile

transitivamente da Settore-Scaffalee Scaffale-Documento.

0..*

1..*

ScaffaleDocumento 0..*1..*

Settore

1..*

Biblioteca

1..*

Page 24: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

25

© 2005 - CEFRIELUnified Modeling Language

Osservazioni sulle relazioni:Osservazioni sulle relazioni:Settore-Scaffale-DocumentoSettore-Scaffale-Documento

È anche possibile classificare i documenti per argomento in settori "trasversali" (ad es. libri in inglese).

I settori trasversali non hanno esistenza fisica– cioè qualunque libro in inglese sarà nel settore

corrispondente al suo argomento specifico (storia, romanzi, musica, …)

Conviene introdurre una nuova classe per rappresentare i settori trasversali, e rappresentare Documento-SettoreTrasversale esplicitamente.

D’ora in avanti facciamo tuttavia l’ipotesi che la relazione 1-m per Settore-Scaffale sia adeguata

Page 25: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

26

© 2005 - CEFRIELUnified Modeling Language

Relazione Settore-Scaffale-Relazione Settore-Scaffale-DocumentoDocumento

0..*

1..*

Scaffale

1..*

Settore

Argomento1..*

Biblioteca

1..*

0..*

Documento 0..*

SettoreTrasversale

Argomento0..*

0..*

0..*

0..*

0..*

Page 26: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

27

© 2005 - CEFRIELUnified Modeling Language

Osservazioni sulla relazione Osservazioni sulla relazione Descrizione-DocumentoDescrizione-Documento

Le relazioni 1-1 sono sempre sospette.– Ad es., consideriamo la relazione Descrizione-Documento: non

sarebbe possibile includere la descrizione direttamente nel documento ?

– consideriamo l’eliminazione della classe Descrizione:• ha uno stato ? no• ha operazioni ? sì (es. visualizza)• possiamo eliminare la classe (e la relazione), includendo la descrizione

direttamente nel documento, con perdita di flessibilità (mantenendola possiamo cambiare la descrizione con un impatto su Documento minore o nullo)

– A livello di analisi non ha molta importanza come rappresentare l’informazione, purché sia rappresentata correttamente: entrambi i modi vanno bene.

Page 27: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

28

© 2005 - CEFRIELUnified Modeling Language

Identificazione degli attributiIdentificazione degli attributi

Scopi: – dettagliare le astrazioni rappresentate dalle classi – attribuire alle classi le proprietà rilevanti per il sistema– descrivere gli elementi che concorrono a definire lo stato

degli oggetti Per determinare gli attributi dell’insieme di classi ed

oggetti si esaminano i requisiti, identificando così le proprietà più evidenti degli elementi del dominio del problema.

Page 28: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

29

© 2005 - CEFRIELUnified Modeling Language

Class diagram con attributiClass diagram con attributi

Sollecito

Numero

Sospensione

Nota

Video

SistemaDurata

Libro

ISBNNumeroPagine

Audio

TipoDurata

Rivista

VolumeNumero

1..*

Articolo

PaginaInizioPaginaFine

1..*

0..2

Azione

Data

1..*

0..1

Descrizione

GenereKeywordsAbstract

0..*Documento

TitoloAutoreEditore

1..*Scaffale

NumeroUbicazione

0..*

1..*

Settore

Nome1..*

0..*

Prestito

DataRinnovato0..2

1..*

0..1

Biblioteca

NomeIndirizzo

1..*

RegistroUtenti

0..*

Utente

NomeRecapitoDataRegistrazioneSospeso

0..*

0..*

Page 29: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

30

© 2005 - CEFRIELUnified Modeling Language

Iterazione e raffinamentoIterazione e raffinamentodel Class diagramdel Class diagram

Revisione delle specifiche iniziali– Le specifiche iniziali vengono riviste criticamente,

possibilmente insieme al committente.– Nel nostro caso vengo rilevate alcune omissioni:

• la rappresentazione dei sottosettori (ad es. il settore Storia comprende i sottosettori storia medievale, storia contemporanea, ecc.)

• un documento può esistere in più copie o esemplari

Page 30: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

31

© 2005 - CEFRIELUnified Modeling Language

Revisione del Class diagram Revisione del Class diagram

Sollecito

Numero

Sospensione

Nota

Descrizione

GenereKeywordsAbstract

1..*

0..1

sottosettore

0..*

0..2

Azione

Data

1..*

Settore

Nome

0..1

0..*

Biblioteca

NomeIndirizzo

1..*

0..*

RegistroUtenti

0..*

Utente

NomeRecapitoDataRegistrazioneSospeso

0..*

Prestito

DataRinnovato

0..2

0..*

Scaffale

NumeroUbicazione

1..*

0..11..*

Copia

NumCopiaUsuraRilegatura

0..11..*

0..*

Documento

TitoloAutoreEditoreNumMatricola

1..*1..*

0..*

Page 31: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

32

© 2005 - CEFRIELUnified Modeling Language

Scomposizione in packageScomposizione in package

Scopi:– leggibilità– modularità (in grande)– scomposizione ed organizzazione del lavoro

Separiamo le classi ed oggetti che descrivono la parte "fisica" del sistema da quelle che rappresentano le funzioni amministrative.– i package rappresentano sottodomini del problema– i due package sono lascamente connessi

Page 32: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

33

© 2005 - CEFRIELUnified Modeling Language

Visualizzazione delle Visualizzazione delle dipendenzedipendenze

Sollecito

Numero

Sospensione

Nota

Descrizione

GenereKeywordsAbstract

1..*

0..1

sottosettore

0..*

0..2

Azione

Data

1..*

Settore

Nome

0..1

0..*

Biblioteca

NomeIndirizzo

1..*

0..*

RegistroUtenti

0..*

Utente

NomeRecapitoDataRegistrazioneSospeso

0..*

Prestito

DataRinnovato

0..2

0..*

Scaffale

NumeroUbicazione

1..*

0..11..*

Copia

NumCopiaUsuraRilegatura

0..11..*

0..*

Documento

TitoloAutoreEditoreNumMatricola

1..*1..*

0..*

Page 33: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

34

© 2005 - CEFRIELUnified Modeling Language

PackagePackage

Amministrazione

+ RegistroUtenti+ Utente+ Sollecito+ Azione+ Sospensione+ Prestito+ Biblioteca

Settori

+ Articolo+ Audio+ Copia+ Rivista+ Scaffale+ Settore+ Video+ Libro+ Documento+ Descrizione+ Novità

Page 34: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

35

© 2005 - CEFRIELUnified Modeling Language

Definire i servizi (o metodi)Definire i servizi (o metodi)

Definire:– il comportamento degli oggetti– i servizi offerti (che possono essere richiesti ad un dato

oggetto)– la comunicazione tra oggetti

Page 35: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

36

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

I metodi per la classe utente sono:– creazione ed inizializzazione– disabilitazione ai prestiti– cambio dei dati anagrafici

(indirizzo, numero di telefono, ecc.)

– servizi di lettura di tutti gli attributi

UtenteNomeRecapitoDataRegistrazioneSospeso

Init(Data, Nome, Recapito)SetNome(Nome : String)SetRecapito(Recapito : String)Sospendi()GetNome() : StringGetRecapito() : StringSospeso() : Boolean

Page 36: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

37

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

I metodi per la classe documento sono:– creazione ed inizializzazione– cambio dello stato (usura, prestabilità , ecc.)– servizi di lettura di tutti gli attributi– controllo della rispondenza ad un criterio di ricerca

Page 37: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

38

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

I metodi per la classe descrizione sono:– creazione ed inizializzazione– servizi di lettura di tutti gli attributi, ivi compreso l'accesso

all'oggetto collegato (cioè il documento cui la descrizione si riferisce)

– la modifica degli attributi in prima approssimazione non dovrebbe essere necessaria, tuttavia può essere utile per correggere errori, aggiungere keywords relative a nuove classificazioni, ecc.

Page 38: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

39

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

I metodi per la classe prestito sono:– creazione ed inizializzazione– rinnovo– controllo se è scaduto– accesso agli attributi che rappresentano un collegamento

(utente beneficiario del prestito, documenti prestati, azioni relative)

Page 39: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

40

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

Gli oggetti aggregati di tipo generale (la biblioteca e il registro utenti) forniscono il seguente insieme di servizi:– creazione dell'insieme vuoto– aggiunta di un elemento– rimozione di un elemento– ecc.

Inoltre si hanno metodi specifici:– la biblioteca fornisce i metodi di ricerca (ancora da definire

nei dettagli)

Page 40: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

41

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

I metodi per la classe Scaffale sono:– creazione ed inizializzazione (inizialmente nessun

documento è presente sullo scaffale)– aggiunta o rimozione di documenti– accesso agli attributi che rappresentano un collegamento– tra i metodi di accesso sono notevoli le ricerche: lo scaffale

è in grado di restituire il set di documenti contenuti che rispondono ad un dato criterio. Per far questo lo scaffale deve semplicemente utilizzare il servizio fornito dai documenti stessi, che sono in grado di dire se rispondono al criterio dato.

Page 41: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

42

© 2005 - CEFRIELUnified Modeling Language

MetodiMetodi

I metodi per la classe settore sono:– creazione ed inizializzazione (inizialmente nessuno scaffale

è presente nel settore)– aggiunta o rimozione di scaffali– accesso agli attributi che rappresentano un collegamento– le ricerche avvengono con le stesse modalità delle ricerche

negli scaffali, salvo il fatto che il settore può essere composto di sottosettori anziché di soli scaffali

– servizi di aggregazione/disaggregazione: è possibile scomporre un settore in sottosettori o riaggregare più settori in un unico settore.

Page 42: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

43

© 2005 - CEFRIELUnified Modeling Language

State diagramState diagram

Per ogni classe occorre specificare in quali stati si può trovare, quali sequenze di operazioni sono ammesse, quali eventi sono rilevanti per lo stato della classe, ecc.:– quali sono gli stati possibili– come avvengono le transizioni tra stati (stati coinvolti,

eventi, operazioni, ...)– vincoli sullo stato (invarianti di classe)

Page 43: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

44

© 2005 - CEFRIELUnified Modeling Language

I passi per costruire i I passi per costruire i diagrammi di statodiagrammi di stato

– Preparazione degli scenari tipici associati ai diversi use case

– Classificazione degli eventi– Traduzione degli scenari in tracce degli eventi– Costruzione dei diagrammi degli stati– Verifica della consistenza

Page 44: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

45

© 2005 - CEFRIELUnified Modeling Language

Scenario 1: Registrazione (1)Scenario 1: Registrazione (1)

– Utente richiede di registrarsi– Il sistema verifica che l’utente non sia già registrato– Il sistema registra l’utente– il sistema comunica all’utente il suo codice

NB: non bisogna confondere gli utenti “in carne ed ossa” con gli “oggetti utente” che ne sono la rappresentazione nel sistema.

Due notazioni:

Utente : Utente

Page 45: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

46

© 2005 - CEFRIELUnified Modeling Language

Scenario 1: Registrazione (2)Scenario 1: Registrazione (2)

UnUtente : Utente

: Biblioteca DB_Utenti : RegistroUtenti

1: RichiestaRegistrazione2: VerificaRegistrazione

3: NonRegistrato

4: RegistraNuovoUtente

5: CodiceUtente

6: CodiceUtente

Utente

Page 46: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

47

© 2005 - CEFRIELUnified Modeling Language

Scenario 2: Richiesta prestito Scenario 2: Richiesta prestito (1)(1)

– Utente richiede un prestito– Il sistema verifica che l’utente sia abilitato– Il sistema verifica che il libro sia disponibile– Viene effettuato il prestito– Il prestito scade– Viene inviato un sollecito– Passa la quantità prefissata di tempo– L’utente viene sospeso– ...

Page 47: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

48

© 2005 - CEFRIELUnified Modeling Language

Scenario 2: Richiesta prestito Scenario 2: Richiesta prestito (2)(2)

: Utente : Biblioteca : RegistroUtenti : Documento : Prestito : Sollecito

RichiestaPrestitoControlloAbilitazione

True

ControlloDisponibilità

True

CreaPrestito

ControlloScadenza

True

CeaSollecito

Page 48: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

49

© 2005 - CEFRIELUnified Modeling Language

Classe utente: state diagramClasse utente: state diagram

Eventi– Registrazione(utente)– Sospensione(utente)– Riabilitazione(utente)

Stati– abilitato– disabilitato

Abilitato Disabilitatodisabilita

riabilita

registra

Page 49: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

50

© 2005 - CEFRIELUnified Modeling Language

Classe prestitoClasse prestito

Eventi– richiesta (utente,inventario,data)– rinnovo (prestito)– scadenza (prestito)– restituzione (prestito,data)– sollecito (prestito)

Scenari tipici: – richiesta, rinnovo, restituzione– richiesta, scadenza, sollecito, restituzione

Page 50: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

51

© 2005 - CEFRIELUnified Modeling Language

Classe prestito: state diagramClasse prestito: state diagram

/data scadenza =data scadenza + 7

[data corrente > data scadenza]

Normale

Iniziale RinnovatoIniziale Rinnovato

Concluso Sollecitato

Prestito

RestituzioneControlloScadenza

rinnovo

Restituzione

Page 51: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

52

© 2005 - CEFRIELUnified Modeling Language

Classe CopiaClasse Copia

Eventi– acquisto– prestito– restituzione– restituzione in cattivo stato– riparazione– vendita

Page 52: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

53

© 2005 - CEFRIELUnified Modeling Language

Classe Copia: state diagramClasse Copia: state diagram

Disponibile InPrestito

InManutenzioneAlienato

AcquistoPrestito

Restituzione [stato=buono]

Restituzione[ stato=cattivo ]

Riparato

Vendita

Vendita

Page 53: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

54

© 2005 - CEFRIELUnified Modeling Language

Verifica della consistenzaVerifica della consistenza

Verificare la consistenza di eventi di sincronizzazione che hanno effetto su più diagrammi (esempio, evento restituzione).

Controllare azioni associate a stati e transizioni. Verificare che gli scenari corrispondano a un

percorso del diagramma

Page 54: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

55

© 2005 - CEFRIELUnified Modeling Language

La richiesta di prestitoLa richiesta di prestito

Persona LaMiaBiblioteca : Biblioteca

: RegistroUtenti

: Settore

: Scaffale : Documento

1: RichiestaPrestito

2: VerificaRegistrazioneEAbilitazione3: VerificaDisponibilità

4: VerificaDisponibilità

5: LeggiTitoloEStato

Utente

Page 55: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

56

© 2005 - CEFRIELUnified Modeling Language

Biblioteca: emissione sollecitiBiblioteca: emissione solleciti

Bibliotecario

: Prestito

LaMiaBiblioteca : Biblioteca

1: EmissioneSolleciti

2: LeggiDataInizio

: RegistroUtenti

: Utente

3: LeggiDatiUtente

4: GetNome 5: GetRecapito

Page 56: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

57

© 2005 - CEFRIELUnified Modeling Language

Biblioteca: sospensioneBiblioteca: sospensione

Bibliotecario

: Sollecito

LaMiaBiblioteca : Biblioteca

: RegistroUtenti

: Utente

1: Sospensione

2: LeggiDataEmissione

3: LeggiDatiUtente

4: Sospendi( )

Page 57: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

58

© 2005 - CEFRIELUnified Modeling Language

Biblioteca: diagramma dei Biblioteca: diagramma dei componenticomponenti

DB documenti

Amministrazione

GUI

Page 58: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

59

© 2005 - CEFRIELUnified Modeling Language

Biblioteca: diagramma dei Biblioteca: diagramma dei componenticomponenti

Esplicitando le interfacce si ottiene una indicazione più precisa delle dipendenze

DB documenti

Amministrazione

GUI

Gestione amm.

Ricerca

Aggiorna

Leggi

Page 59: Politecnico di Milano © 2005 - CEFRIEL Un esempio di modellazione con UML: Gestione di una biblioteca Luigi Lavazza CEFRIEL lavazza@cefriel.it.

60

© 2005 - CEFRIELUnified Modeling Language

Deployment diagramDeployment diagram

Stazione utente

Stazione Bibliotecario

Document database

Server

DB documenti RicercaAggiornaLeggi

Amministrazione

Gestione amm.

GUI

GUI