Ci sono fondamentalmente questi due approcci alla progettazione di un sistema. quali sono i vantaggi e gli svantaggi? Quando dovrei usare quale? Dovrei combinare questi approcci? Come?Design discendente o dal basso verso l'alto?
risposta
In parole povere, dall'alto verso il basso viene da una decomposizione dello spazio problema in sotto-problemi, mentre il bottom-up viene da organizzare parti dello spazio soluzione in blocchi più grandi.
Per poter utilizzare in modo efficace top-down, è necessaria una comprensione molto solida del problema, ovvero requisiti solidi in mano. Perché il bottom-up sia efficace, devi risolvere un problema "standard" i cui pezzi sono ben noti, ma dove l'assemblaggio esatto potrebbe aver bisogno di qualche sperimentazione prima di farlo bene.
Si consiglia di leggere il brillante documento di Parnas A rational design process and how to fake it per ulteriori informazioni su questo problema. La risposta è: utilizzare entrambi, a seconda dei casi. Quando hai finito, rendi tutto simile (nelle tue specifiche, nella documentazione di progettazione e nella documentazione utente) come se avessi fatto tutto dall'alto al basso.
grazie mille per una buona risposta e link a quel documento –
+1: per «Quando hai finito, fai sembrare tutto come se avessi fatto tutto top-down » – ZJR
Si dovrebbe anche dare un'occhiata al principio "Affettare il dolce" dalla comunità agile. Questo principio ti obbliga a concentrarti sull'aggiungere valore di business per l'utente ad ogni iterazione della tua applicazione. Si tenta di progettare e realizzare una fetta verticale della domanda e consegnarla, per poi focalizzarsi sulla prossima fetta ecc
Ecco un link che spiega il principio più in dettaglio http://blog.energizedwork.com/2005/05/slicing-cake.html
Grazie, so delle iterazioni, immagino che il punto difficile sia come tagliare la torta in modo che aggiungere un'altra fetta non sia così difficile come aggiungerne alcune precedenti. –
Penso che la tua domanda merita lungo e risposte articolate. suggerisco di leggere un vecchio articolo di Martin Fowler (cfr. "È il design morto?"), Che parla delle relazioni in merito alla progettazione iniziale e le tecniche agili (http://martinfowler.com/articles/designDead.html)
La mia esperienza è quella di avere sempre un'architettura di stampa blu dei moduli , interazioni tra componenti del sistema. Avendo questo progetto (che in alcuni progetti può essere di alto livello), inizio a progettare/sviluppare moduli/componenti. Alcuni di questi possono essere sviluppati anche dal basso verso l'alto.
Un buon riferimento sempre apprezzato :) –
- 1. Due modi per progettare sistemi complessi: dall'alto verso il basso e dal basso verso l'alto
- 2. jQuery Animate superiore (dal basso verso l'alto)
- 3. Moving UIView dal basso verso l'alto
- 4. attuali ListBox Articoli dal basso verso l'alto
- 5. Lo stack cresce verso l'alto o verso il basso?
- 6. Animate div dal basso verso l'alto anziché verso il basso in jQuery
- 7. Scorri RecyclerVisualizza quando lo fai scorrere verso l'alto o fai scorrere verso il basso il recyclerview verso il basso
- 8. Accumulare immagini dal basso verso l'alto in div
- 9. Come mostrare o nascondere un menu quando si scorre verso il basso o verso l'alto?
- 10. Scivolamento Vista dal basso
- 11. Goniometro: scorrere verso il basso
- 12. Scala verso il basso o decrescente per loop?
- 13. Caricare UITableView dal basso
- 14. Come rilevare se un listview sta scorrendo verso l'alto o verso il basso in Android?
- 15. Rileva scrollare su e giù verso il basso o scorrere verso l'alto in jQuery
- 16. rotonda un rubino galleggiare verso l'alto o verso il basso con l'approssimazione di 0,05
- 17. Three.js fotocamera inclinare verso l'alto o verso il basso e mantenere il livello dell'orizzonte
- 18. Come configurare tmux per spostare gli elenchi di finestre dal valore predefinito dal basso verso l'alto?
- 19. ScrollView alawys scorrimento verso il basso
- 20. Android WebBrowser scorri verso il basso pagina
- 21. Scrollview non scorrere completamente verso il basso
- 22. Effetto scorrimento verso il basso su ExpandableListView
- 23. Conversione intero Dapper e verso il basso
- 24. Rendere automatico un JScrollPane verso il basso
- 25. RecyclerView che non scorre verso il basso
- 26. UITableView "Scorri verso il basso per aggiornare"
- 27. Colonna Flexbox allineare auto verso il basso
- 28. Textarea scorrere automaticamente verso il basso
- 29. Bootstrap Navigazione verso il basso in MVC
- 30. Transizione testo opacità dall'alto verso il basso
È una domanda breve, ma ho il sospetto che la risposta sarebbe piuttosto lunga! ... –
Preferisco il design da sinistra a destra. –
@Mitch Wheat potrebbe essere, anche rispondendo parzialmente o reindirizzando ad alcuni libri/documenti/articoli/blog sarà sufficiente :) –