Duplicar:. Design & Coding - top to bottom or bottom to top?Top Down v enfoque de abajo hacia arriba diseño
creo que he encontrado en mi experiencia reciente que diseño de software diferente que la mayoría de mis compañeros. Tiendo a tomar el enfoque ascendente ascendente después de reunir suficientes requisitos para obtener una idea de alto nivel de los componentes en el software.
Entonces, en el caso de diseñar una interfaz que admitiría múltiples clases concretas ... Echaré un vistazo a lo que es común a cada candidato concreto específico, preguntando cómo haría el trabajo para cada concreto (mientras pensando en ser robusto para el futuro concreto). Luego tomo ese conjunto de elementos comunes y hago una interfaz, que creo que es un enfoque de "abajo hacia arriba".
En el caso de un enfoque de arriba hacia abajo, creo que el diseñador miraría el lado del cliente de la interfaz y cómo un cliente interactuaría con la interfaz y luego trataría de implementar las clases concretas.
Así que puedo ver las ventajas y desventajas de arriba hacia abajo/abajo hacia arriba. Solo me gustaría saber cuál es más eficiente y proporciona un mejor resultado basado en tus experiencias previas.
Nota: No estoy hablando de metodología de desarrollo (ágil, cascada, etc.), estoy hablando de enfoques de diseño.
+1 De acuerdo - no hay "una solución" sino una mezcla de ambos –