Dovrei rappresentare casi speciali (come errori / eccezioni) nei diagrammi UML?

2

Diciamo che scrivi un programma che, una volta avviato, legge il suo file di configurazione per sapere quali moduli avviare, ecc. Se quel file di configurazione è mancante, probabilmente verrà visualizzato un errore. Questa è una situazione importante che deve essere sempre gestita.

Ho letto una statistica una volta che diceva che circa il 70% del codice in un programma tipico è lì per trattare casi d'angolo (come controllare che il file non sia mancante, catturare un'eccezione, controllare che non divida per 0 , controlla che l'età di una persona sia un numero positivo ecc.).

Non credo che questo (il 70% di affermazione) sia molto accurato, ma ancora una volta, molto del codice che scrivo contiene un sacco di if s che controlla i parametri validi e cose del genere . Dubito di essere l'unico a farlo. Quindi quella statistica ha un po 'di verità.

Se una grande parte del codice di un programma è rappresentata da questi controlli, allora questi casi non dovrebbero essere rappresentati nei diagrammi UML? (come diagrammi di sequenza, ecc.). Non ricordo se ho mai visto cose del genere.

Devo includerli nei miei diagrammi? Questo illuminerà o disturberà / confonderà un altro programmatore che guarda quei diagrammi? I diagrammi sarebbero diventati troppo grandi per questo?

    
posta Radu Murzea 10.08.2012 - 21:09
fonte

2 risposte

2

INMO, dovresti definire perché stai usando UML nella tua situazione. Se stai fornendo le specifiche per qualcuno da cui scrivere il codice, potresti doverlo fare. Se si desidera specificare il flusso passo-passo, utilizzare lo pseudo codice non il diagramma UML.

Se stai mostrando parte di un flusso come un esempio, sì, puoi mostrare tutti i dettagli (all'interno di una pagina o giù di lì). Inoltre, se hai uno strumento che genera codice dalla tua definizione, devi farlo.

Se stai descrivendo un flusso di processo, potresti voler essere generico su tali dettagli e rappresentare tutti gli errori di convalida in 1 punto, usando un commento che si applicherebbe a diverse operazioni come tutte le letture di file. Il punto qui è concentrarsi sugli scenari principali e non sulle eccezioni.

In generale, quando aggiungi i dettagli di basso livello ai diagrammi, diventano difficili da leggere e tolgono il vantaggio visivo che un'immagine ha sul testo. Inoltre, con l'eccezione dei diagrammi delle classi, i diagrammi UML sono quasi sempre presentati in alto livello.

Qualunque sia la tua scelta, seguila su tutti i tuoi diagrammi. La coerenza è importante.

    
risposta data 11.08.2012 - 03:57
fonte
2

Io non la penso così I diagrammi UML generalmente non mostrano i dettagli fino in fondo. Si potrebbe delineare il piano per la gestione delle eccezioni in pseusocode da qualche parte, ma non si vuole ingombrare i diagrammi di livello superiore con dettagli di programmazione difensivi. Penso che sarebbe rumoroso.

    
risposta data 10.08.2012 - 21:32
fonte

Leggi altre domande sui tag