Quali tecniche di diagrammi (non strumenti) usi durante la programmazione? [chiuso]

StackOverflow https://stackoverflow.com/questions/636175

  •  10-07-2019
  •  | 
  •  

Domanda

Quali tecniche di diagrammi usi durante la programmazione per aiutarti o altri comprendono il tuo programma o design. Non sto parlando di una persona strumento preferito , anche se probabilmente un buon strumento aiuta molto una persona diagrammi.

Il mio intento in questa domanda è di trovare le tecniche di diagrammi semplici e utili le persone usano effettivamente e ne trovano di nuove da imparare.

Usi diagrammi di flusso, diagrammi di flusso di dati, diagrammi ER, ecc?

Il web è pieno di consigli! Ma cosa fanno veri programmatori, designer, e i manutentori del codice usano effettivamente nel loro lavoro quotidiano .

Grazie per il tuo feedback

È stato utile?

Soluzione

  • Discussione di altissimo livello: diagrammi di contesto in cui le caselle potrebbero rappresentare classi, pacchetti o sottosistemi.
  • Progettazione di alto livello - Diagrammi di sequenza che mostrano l'interfaccia tra i sottosistemi, ancora nessuna classe utilizzata direttamente ma può essere implicita da ciò.
  • Progettazione dettagliata: diagrammi di sequenza a livello di classe.

Se esiste un algoritmo complicato per qualcosa come la correlazione di più flussi di dati in un nuovo flusso, in genere userò un diagramma di flusso per elaborare l'algoritmo.

Se la soluzione richiede la conoscenza dello stato, viene utilizzato anche un diagramma di stato.

Quelli sono quelli che uso di più.

Quando eseguo la progettazione di Data Warehouse, disegno schemi a stella per capire come archiviare i dati. Quando eseguo la progettazione di DB transazionali, utilizzo i diagrammi di Entity Relationship per gestire la nostra memorizzazione dei dati.

Quando si progetta un'interfaccia utente, è sufficiente che la schizzi. Una volta che inizierò a elaborare alcune parti dell'interfaccia utente e voglio giocare con alcune aree, creerò un modello, stamperò una copia e quindi lo userò come guida per lavorare sulle sottosezioni. Per le combinazioni di colori, può essere utile creare un grafico usando il gimp e avere livelli per ogni pezzo del disegno e quindi giocare con i livelli che colorano ognuno per trovare il giusto equilibrio.

Altri suggerimenti

Cosa usiamo veramente? Forse altre persone in realtà creano diagrammi formali, ma per la maggior parte scrivo solo bolle, scatole e linee su un foglio di carta.

Uso una lavagna per la modellazione, quindi immagino "linguaggio di modellazione della lavagna" sarebbe la mia risposta.

Farò un diagramma di classe UML per tutto ciò che sto progettando che è più grande di un paio di classi. Tracciare un diagramma di classe mi fa prendere del tempo per pensare al design invece di arare direttamente nel codice e produce sempre un risultato migliore.

Per architetture più grandi e complicate trovo che i diagrammi di sequenza siano un buon modo per comunicare il comportamento, specialmente per i sistemi multi-thread.

Uso i diagrammi come un modo per comprendere rapidamente il codice legacy. Ci vuole del lavoro per creare il diagramma, ma alla fine paga sempre.

Normalmente uso i diagrammi di classe per avere una visione d'insieme. A volte diagrammi di sequenza e persino diagramma del flusso di dati se un codice pezzo è estremamente difficile da capire.

In fase di progettazione utilizzo diagrammi di classe e spesso diagrammi di stato. I diagrammi di stato sono perfetti se un comportamento di classe differisce dal suo stato.

Uso Diagrammi di sequenza (disegnato su carta). Trovo che mi diano una bella rappresentazione visiva del flusso logico di chiamate di metodo e informazioni tra vari sistemi e componenti nelle nostre applicazioni.

Ho un Diagramma di flusso del prodotto principale con cui lavoro e sviluppo.

Il mio team usa spesso anche diagramma UML per disegnare schizzi su lavagne bianche durante la progettazione di nuove parti per noi per attuare. Sono molto utili per creare modelli di progettazione e modellare la struttura di alto livello delle classi che saranno necessarie. Questi sono mai in piena regola UML però ...

Lavagna per discussioni.

Penna e carta per meno documenti temporanei.

Stub di codice per "Cose da migliorare".

Codice testato e funzionante (con ampi commenti) per i posteri.

Uso ER e diagrammi di classe su carta e lavagna per qualsiasi progetto più grande di uno script di shell.

Diagrammi di flusso, solo quando devo spiegare un processo a un non programmatore (o se è un processo davvero complicato e devo prima capirlo).

Il mio vecchio capo era solito dire " il ragazzo adora disegnare cose. "

Lavoro in un ambiente di sviluppo AJAX e la maggior parte del codice di backend che scrivo funziona come una pipe tra un database relazionale e il javascript frontend (interfaccia utente). Quindi, il 'diagramma' più usato per dire che io uso sono oggetti JSON per descrivere come i dati dovrebbero essere passati avanti e indietro tra il database e l'interfaccia. Sono strutture di dati semplici, universali e di facile comprensione.

Esempio:

  

{       " id " ;: row ['id'],               " name " ;: row ['name'],               " obbligatorio " ;: riga ["obbligatorio"],               " rangeDescription " ;: " Questa è la gamma " ;,               " globalRate " ;: row ['global']           }

Traccio versioni bastardate di diagrammi di classi, oggetti e sequenze UML. Mentre cerco di essere fedele alla sintassi, sono molto più preoccupato di esprimere l'idea principale dietro una particolare caratteristica. Quindi, elaborerò qualcosa, chiederò a un collega di dare un'occhiata e, se sembra abbastanza chiaro, potremmo anche scansionarlo e pubblicarlo nel nostro Wiki.

Quindi, quando succederà davvero che avremo del tempo per lavorare sulla documentazione (e questo è quasi mai ), userò BOUML e ridisegna gli scarabocchi in un diagramma appropriato.

Ora, per mettere tutto nel contesto, sto lavorando in un team relativamente piccolo (5 sviluppatori), realizzando piattaforme di trading e configurazione del prodotto in Java. Abbiamo i nostri due prodotti che poi personalizziamo ulteriormente in base alle richieste del cliente. Essendo una comunità affiatata, con pochi (zero) inversioni per alcuni anni, usiamo la documentazione principalmente come resto per noi stessi. E in questa configurazione, l'approccio sopra funziona abbastanza bene.

Mi piacciono i diagrammi di flusso dei dati. Molto.

Uso tutto ciò che è necessario per la comunicazione. Di solito non è niente. A volte è una lavagna.

Di tanto in tanto, utilizzo Sparx Enterprise Architect , che è un UML modellazione , anche se produce diagami decenti mentre è lì. L'ho usato per requisiti, casi d'uso, attività, sequenza, dominio e persino modelli di classe, e talvolta alcuni diagrammi ER con reverse engineering. Qualunque cosa sia necessaria per ottenere il risultato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top