Dovrei rappresentare il Database nei miei casi d'uso?

2

Sto creando casi d'uso per la mia applicazione web e mi chiedevo se una rappresentazione del DB dovesse essere elencata come attore. Ad esempio, un utente può controllare il suo profilo e modificarlo (presumendo che abbia effettuato l'accesso). I due casi d'uso sarebbero:
- L'utente può visualizzare il suo profilo
- L'utente può modificare il suo profilo

I casi d'uso sarebbero quindi ad esempio:
Attore: utente, DB
Caso d'uso: visualizza il profilo

O posso escludere il DB come attore? Purtroppo non ho trovato alcun modo coerente per disegnare i casi d'uso.

    
posta Bas 13.04.2011 - 09:54
fonte

3 risposte

10

Direi che se il DB è interno alla tua app (cioè è utilizzato esclusivamente da questa app e il mondo esterno non interagisce direttamente con esso direttamente in ogni caso, solo tramite la tua app), non dovresti rappresentarlo come un attore separato.

Se il DB è condiviso e utilizzato direttamente da utenti / sistemi esterni, è probabilmente meglio rappresentarlo come attore separato.

    
risposta data 13.04.2011 - 10:50
fonte
3

Quando definisci i tuoi casi d'uso, devi pensare al comportamento dei tuoi attori anziché alla struttura.

Il database è un riflesso statico dell'attore. Se usiamo l'antropomorfizzazione, chiamare un database come un attore è come chiamare la fotografia o i ricordi dell'amato come veri umani.

    
risposta data 13.04.2011 - 10:41
fonte
3

Secondo il mio punto di vista, penso che gli Use Case siano disegnati in gran parte per rappresentare l'interazione tra sistema e ambiente esterno.

Quindi, DB è un'entità interna che si confronta con il sistema, quindi non vale la pena disegnare DB come attore a meno che non sia un'entità esterna. Allo stesso tempo, va detto che sebbene sia un corpo esterno, accedervi direttamente può sollevare problemi di sicurezza, giusto!

Quindi, a meno che tu non abbia una ragione molto speciale per farlo in quel modo, non è saggio descrivere DB come attore in Use Case. Ovviamente lo puoi fare in Sequence Diagrams: non esiste questo problema, poiché mostra l'interazione tra attori e oggetti.

    
risposta data 15.07.2013 - 02:33
fonte

Leggi altre domande sui tag