Existen básicamente esos dos enfoques para diseñar un sistema. ¿Cuáles son las ventajas y desventajas? ¿Cuándo debería usar cuál? ¿Debería combinar esos enfoques? ¿Cómo?¿Diseño de arriba hacia abajo o de abajo hacia arriba?
Respuesta
En términos generales, de arriba hacia abajo viene de una descomposición del espacio problema en sub-problemas, mientras que de abajo hacia arriba proviene de la organización de las partes del espacio de la solución en trozos más grandes.
Para poder utilizar de forma efectiva de arriba hacia abajo, necesita una comprensión muy sólida del problema, es decir, tener requisitos sólidos en la mano. Para que la aplicación de abajo hacia arriba sea efectiva, debe resolver un problema "estándar" cuyas piezas son bien conocidas, pero donde el ensamblaje exacto podría necesitar experimentación antes de hacerlo bien.
Debe leer el brillante artículo de Parnas A rational design process and how to fake it para obtener más información sobre este tema. La respuesta es: use ambos, según corresponda. Cuando hayas terminado, haz que todo se vea como (en tus especificaciones, documentación de diseño y documentación del usuario) como si hubieras hecho todo de arriba hacia abajo.
muchas gracias por una buena respuesta y enlace a ese documento –
+1: Para «Cuando hayas terminado, haz que todo parezca como si hubieras hecho todo de arriba hacia abajo » – ZJR
También debe echarle un vistazo al principio 'Slicing the cake' de la comunidad ágil. Este principio lo obliga a concentrarse en agregar valor comercial para el usuario con cada iteración de su aplicación. Intenta diseñar e implementar un corte vertical de su solicitud y entregarla, a continuación, centrándose en la siguiente rebanada etc.
Aquí hay un enlace que explica el principio con más detalle http://blog.energizedwork.com/2005/05/slicing-cake.html
Gracias, sé de iteraciones, creo que el punto más difícil es cómo cortar el pastel para que addind otro corte no sea tan difícil como agregar varios anteriores. –
Creo que su pregunta merece larga y respuestas articuladas. sugiero leer un viejo artículo de Martin Fowler (cfr. "Es el diseño muerta?") Que habla de las relaciones sobre el diseño inicial y técnicas ágiles (http://martinfowler.com/articles/designDead.html)
Mi experiencia es siempre tener una arquitectura de impresión azul de los módulos , interacciones entre componentes del sistema. Al tener este modelo (que en algunos proyectos puede ser de alto nivel), comienzo a diseñar/desarrollar módulos/componentes. Algunos de estos pueden desarrollarse también de abajo hacia arriba.
Buena referencia siempre apreciada :) –
- 1. Usando TDD: "arriba hacia abajo" vs. "abajo hacia arriba"
- 2. Gramática: ¿diferencia entre arriba hacia abajo y hacia abajo? (Ejemplo)
- 3. Diseño y codificación: de arriba a abajo o de abajo hacia arriba?
- 4. Redondeo de valores hacia arriba o hacia abajo en C#
- 5. Mover un elemento hacia arriba o hacia abajo a seleccionar
- 6. Redondeo hacia arriba o hacia abajo en la velocidad
- 7. Mover nodo en árbol hacia arriba o hacia abajo
- 8. ¿La pila crece hacia arriba o hacia abajo?
- 9. usuario desplazarse hacia abajo o hacia arriba en jQuery
- 10. jQuery Masonry de abajo hacia arriba
- 11. Top Down v enfoque de abajo hacia arriba diseño
- 12. selección jQuery: atravesar hacia arriba, luego hacia abajo
- 13. grep de abajo hacia arriba de un archivo
- 14. ¿Cómo leer un archivo de abajo hacia arriba en Ruby?
- 15. cómo animar ventana emergente de abajo hacia arriba en Android
- 16. Apilando imágenes de abajo hacia arriba en div
- 17. cómo mover un elemento de vista de lista hacia arriba o hacia abajo con un clic
- 18. ¿Cómo se mueve el puntero hacia arriba o hacia abajo de varias líneas con Emacs?
- 19. Cómo muevo los elementos hacia arriba o hacia abajo en el archivo de texto
- 20. ¿Cómo detectar si una vista de lista se desplaza hacia arriba o hacia abajo en Android?
- 21. vim ¿puedo desplazarme hacia arriba/abajo en la ventana inactiva?
- 22. ¿Puedo usar jQuery para desplazar fácilmente los elementos li hacia arriba o hacia abajo?
- 23. Ronda un rubí flotador hacia arriba o hacia abajo a las 0.05
- 24. detectando dedo arriba/abajo UITapGestureRecognizer
- 25. moverse hacia arriba UIToolbar
- 26. Uso de javascript para desplazar iframe hacia arriba y hacia abajo
- 27. moviendo las opciones de selección hacia arriba y hacia abajo a través de jquery
- 28. Android BroadCastReceiver para tecla de volumen hacia arriba y hacia abajo
- 29. Escala div en dirección hacia arriba, en lugar de hacia abajo?
- 30. WPF TabControl ¿Cómo cambiar la pestaña con el mouse hacia arriba en lugar de hacia abajo?
¡Es una pregunta corta, pero sospecho que la respuesta sería bastante larga! ... –
Prefiero el diseño de izquierda a derecha. –
@Mitch Wheat podría ser, también responder parcialmente o redirigir a algunos libros/artículos/artículos/blogs será suficiente :) –