Что означает «дизайн вниз по течению»?

20

Что означает «нижестоящий / восходящий дизайн» в разработке программного обеспечения?

RegDwight
источник
1
Я не знаю, что использование, о котором вы спрашиваете, хорошо установлено. Каков контекст вашего вопроса? Какую проблему ты пытаешься решить?
Джереми
Вы уверены, что слово «дизайн» прилагается? Я слышал о верхнем и нижнем течении, обычно в сочетании с «деятельностью», а не дизайном. В этом смысле требования и проектирование являются первичными операциями, а внедрение, тестирование и обслуживание являются последующими операциями.
Томас Оуэнс

Ответы:

30

Вышестоящие компоненты - это другие части системы, от которых зависит выполнение вашего компонента. Если дизайн вышестоящего компонента изменится, это может повлиять на его работоспособность. Если вышестоящий компонент содержит ошибку, эта ошибка может проявиться в вашем компоненте.

Нижестоящие компоненты являются частями системы, на которые может воздействовать ваш компонент. Изменения в вашем компоненте могут распространяться на компоненты, которые находятся ниже по потоку от вашего компонента.

Рассмотрим приложение, которое состоит из уровня базы данных и уровня приложения. Уровень базы данных считается восходящим по отношению к уровню приложения.

Джей Элстон
источник
1
Легко запомнить ответ здесь stackoverflow.com/a/38917565/579689
Talespin_Kit
10

Вверх по течению = вверх по скважине (происхождение программного обеспечения) Вниз по течению = вниз к океану (вариантов использования)

Разработчики с открытым исходным кодом, которые являются «нижестоящими», создают приложения и инструменты для готовых продуктов. Те, кто работает вверх по течению, на самом деле работают над выпуском продуктов.

Если вы разрабатываете программное обеспечение: вы зависите от стабильности разработки. А те, кто работает над вашим программным обеспечением, являются разработчиками.

Полуоси
источник
2
Этот ответ самый умный из всех!
Александр Леон VI
За исключением случаев, когда речь идет о CMDB на языке ITIL. : /
Двев
2

Я думаю, что это скорее жаргона разработки программного обеспечения, чем английский, но, как я понимаю, «нижестоящий дизайн» - это когда разработчики приложений берут уже разработанные инструменты и используют их для завершения своего приложения. Использование уже созданных программных библиотек, в которых уже приняты решения о том, какие функции библиотеки будут сделаны, является последующим.

При разработке «upstream design» разработчик приложения консультируется и участвует в разработке библиотек еще до того, как работа приложения действительно началась. Например, если вы собираетесь стать компанией, занимающейся разработкой программного обеспечения, которая специализируется на аудио-программном обеспечении, вам может потребоваться разработка библиотек, охватывающих весь спектр программного обеспечения, которое вы планируете разрабатывать. Было бы неплохо иметь возможность, чтобы разработчики библиотек сидели с разработчиками приложений, чтобы разработчики приложений могли внести вклад в то, что они хотят.

Upstream более адаптирован, что делает его намного более дорогим, но потенциально дает лучший конечный продукт.

Кусочки бекона
источник