Quali diagrammi, oltre al diagramma di classe e al diagramma del flusso di lavoro, sono utili per spiegare come funziona un'applicazione?

7

Sto lavorando a un piccolo progetto Delphi, composto da due unità. Una unità è per la GUI e l'altra per la gestione dei dati, l'analisi dei file, l'elenco delle iterazioni e così via. Ho già creato un diagramma delle classi e il mio il flusso di lavoro sembra un inferno - è troppo complesso, anche per chiunque voglia leggerlo. Ho pensato di creare un diagramma di flusso di dati, ma sarebbe ancora più complesso. Neanche uno schema del caso d'uso sarebbe utile. Mi manca qualche tipo di diagramma che potrebbe in qualche modo rappresentare la relazione tra le mie due unità?

    
posta programstinator 09.11.2012 - 12:34
fonte

3 risposte

3

Se vuoi mostrare relazioni statiche tra i tuoi componenti, allora il Diagramma componenti UML dovrebbe aiutarti. Se si desidera mostrare le interazioni tra questi componenti, quindi provare a utilizzare UML Sequence Diagram. Dovresti anche ricordare di rimanere allo stesso livello di astrazione, ad es. non entrare nei dettagli (come premere la casella di controllo), quando si sta tentando di descrivere il sistema a livello di componente (unità "gui" vs "altro"). Al momento il tuo diagramma del flusso di lavoro non ha molto senso, poiché dovrebbe concentrarsi su uno scenario specifico (ad esempio, caricare un rapporto) anziché cercare di mostrare tutti gli scenari possibili su un singolo diagramma.

Inoltre, penso che tu abbia un problema più serio, poiché "l'altra unità" sta facendo troppo lavoro e sta chiaramente infrangendo il Principio di Responsabilità Unica. Potresti pensare di suddividere l'"altra unità" in più componenti, ognuno dei quali assume solo una specifica responsabilità (ad esempio, analizzare i file, generare report, classificare i report).

    
risposta data 09.11.2012 - 13:08
fonte
5

Riferimenti del diagramma UML classico

Due ottimi riferimenti per UML e i suoi numerosi tipi di diagrammi includono UML Distilled di Martin Fowler in cui è descritto ogni diagramma nello stesso modo in cui potreste aspettarvi che uno schema sia descritto (viene nominato, descritto, le forze su di esso sono enumerate e l'applicabilità è identificata). Un riferimento più completo è Grady Booch (e tutti) in Analisi orientata agli oggetti e progettazione con applicazioni .

Diagrammi di stato nidificati

Hai detto che il tuo flusso di lavoro sembra un inferno e spesso l'arte di fare un buon diagramma è il suo livello di dettaglio. Il riferimento a Booch ha un grande materiale sulle macchine a stati nidificati che mi hanno tolto i calzini quando l'ho letto. Un diagramma di stato può avere un carico di barca di stati e transizioni, ma utilizzando la loro rappresentazione annidata un sacco di transizioni che può accadere da qualsiasi stato può essere rappresentato in un diagramma esterno e le transizioni che sono più specifiche di una località di pochi stati possono essere rappresentate da un diagramma interno.

Diagrammi delle attività

Il flusso di lavoro potrebbe prestarsi ad essere mostrato in un diagramma di attività . I diagrammi delle attività sono superiori al diagramma di flusso in diversi modi, ma possono rappresentare alcune cose simili come le decisioni e l'iterazione. Una cosa che mi piace di loro è che mostrano attività parallele e talvolta rappresentano la divisione del lavoro nel sistema usando partizioni o come vengono più comunemente chiamate, corsie di nuoto. Possono anche rappresentare la sincronizzazione con una barra di sincronizzazione che ha un arco in entrata e più archi in uscita (forchetta) e più archi in arrivo e un singolo arco in uscita (join). Come le macchine di stato, UML consente anche di annidare i diagrammi delle attività per strutturare meglio e limitare il livello di dettaglio.

Diagrammi del flusso di dati

Se non ti dispiace un'esplosione del passato, un diagramma dal diagramma strutturato rifiutato da UML, ma per il quale credo che UML non abbia dato una sostituzione completamente soddisfacente è il diagramma del flusso di dati (DFD). Questo tipo di diagramma è meravigliosamente semplice nell'uso di quattro simboli per mostrare un processo, un archivio dati, un flusso di dati ed entità esterne. Le entità esterne sono mostrate ai lati destro e sinistro del diagramma per mostrare chi o cosa fornisce input e output al sistema, i dati sono etichettati quando passano da un processo di trasformazione dei dati a un altro. Se i dati provengono da o prodotti per la memorizzazione, viene mostrato anche questo, in genere con gli archivi dati situati al di sotto dei processi che li consumano / li producono.

Utilizzo dei diagrammi per progettare meglio

Sono disponibili molti altri diagrammi. Il tuo editor di diagrammi preferito potrebbe espandere o limitare le tue scelte. Idealmente, i diagrammi dovrebbero aiutarti a migliorare la coerenza e la completezza dei tuoi progetti. Un diagramma complesso difficile da disegnare potrebbe dirti che il tuo progetto è troppo complesso e potrebbe persino mostrarti alcune relazioni che puoi rendere più semplici.

    
risposta data 09.11.2012 - 13:50
fonte
0

Il mio suggerimento sarebbe di creare un diagramma di architettura per illustrare l'idea di alto livello dell'intero progetto.

anche se il diagramma di classe è troppo complesso, spezza le unità e mostra l'interazione delle unità piuttosto che tutte le classi.

    
risposta data 09.11.2012 - 12:36
fonte

Leggi altre domande sui tag