¿Qué significa "diseño descendente / ascendente" en el desarrollo de software?
terminology
RegDwight
fuente
fuente
Respuestas:
Los componentes ascendentes son otras partes del sistema de las que depende su componente para hacer su trabajo. Si el diseño de un componente ascendente cambia, la capacidad de su componente para funcionar puede verse afectada. Si un componente ascendente tiene un error, este error puede manifestarse en su componente.
Los componentes descendentes son partes del sistema que su componente puede afectar. Los cambios en su componente pueden convertirse en componentes que están aguas abajo de su componente.
Considere una aplicación que consta de un nivel de base de datos y un nivel de aplicación. El nivel de la base de datos se consideraría aguas arriba del nivel de la aplicación.
fuente
Aguas arriba = aguas arriba del pozo (el origen del software) Aguas abajo = aguas abajo del océano (de casos de uso)
Los desarrolladores de código abierto que están "aguas abajo" crean aplicaciones y herramientas en los productos terminados. Aquellos que están corriente arriba realmente trabajan en los productos que se lanzarán.
Si desarrolla software: depende de la estabilidad del desarrollo ascendente. Y aquellos que trabajan en su software son desarrolladores posteriores.
fuente
Creo que esto es más jerga de ingeniería de software que el inglés, pero la forma en que lo entiendo "diseño posterior" es donde los desarrolladores de aplicaciones toman las herramientas que ya se han desarrollado y las usan para completar su aplicación. El uso de bibliotecas de software ya producidas en las que las decisiones sobre lo que las capacidades de la biblioteca ya habrían sido tomadas son posteriores.
Con el "diseño ascendente" el desarrollador de la aplicación es consultado e involucrado en el desarrollo de las bibliotecas antes de que el trabajo de la aplicación haya comenzado realmente. Si va a ser una compañía de software centrada en software de audio, por ejemplo, es posible que necesite desarrollar bibliotecas para cubrir la gama de software que planea desarrollar. Sería bueno poder hacer que los desarrolladores de la biblioteca se sientan con los desarrolladores de la aplicación para que los desarrolladores de la aplicación puedan proporcionar información sobre lo que quieren.
Upstream está más personalizado, lo que lo hace mucho más costoso pero potencialmente produce un mejor producto final.
fuente