Cosa significa "progettazione a valle / a monte"?


20

Cosa significa "progettazione a valle / a monte" nello sviluppo del software?


1
Non so che l'uso di cui stai chiedendo sia ben consolidato. Qual è il contesto della tua domanda? Che problema stai cercando di risolvere?
Jeremy,

Sei sicuro che la parola "design" sia allegata? Ho sentito parlare di upstream e downstream, di solito accoppiato con "attività", non design. In tal senso, i requisiti e la progettazione sono attività a monte, mentre l'implementazione, i test e la manutenzione sono attività a valle.
Thomas Owens

Correlati: cosa significa "upstream"? presso OS
Kenorb,

Risposte:


30

I componenti a monte sono altre parti del sistema da cui il componente dipende per fare il suo lavoro. Se la progettazione di un componente a monte cambia, la capacità del componente di funzionare potrebbe essere compromessa. Se un componente a monte presenta un bug, questo errore può manifestarsi nel componente.

I componenti a valle sono parti del sistema che possono influire sul componente. Le modifiche al componente possono essere convertite in componenti a valle del componente.

Si consideri un'applicazione che consiste in un livello di database e un livello di applicazione. Il livello del database verrebbe considerato a monte del livello dell'applicazione.


1
Facile da ricordare risposta qui stackoverflow.com/a/38917565/579689
Talespin_Kit

10

A monte = sopra il pozzo (l'origine del software) A valle = verso il basso verso l'oceano (dei casi d'uso)

Gli sviluppatori Open Source "downstream" sviluppano applicazioni e strumenti sui prodotti finiti. Coloro che sono a monte lavorano effettivamente sui prodotti da rilasciare.

Se sviluppi software: dipendi dalla stabilità dello sviluppo a monte. E quelli che lavorano sul tuo software sono sviluppatori a valle.


2
Questa risposta è la più complicata di tutte!
Alexander Leon VI,

Tranne che sembra essere il contrario quando si parla di un CMDB in linguaggio ITIL. : /
Dwev il

2

Penso che questo sia un gergo di ingegneria del software più dell'inglese, ma il modo in cui lo capisco "progettazione a valle" è dove gli sviluppatori di applicazioni prendono gli strumenti che sono già stati sviluppati e li usano per completare la loro applicazione. L'utilizzo di librerie software già prodotte in cui sono già state prese le decisioni su ciò che le funzionalità della libreria sarebbero state prese è a valle.

Con la "progettazione a monte" lo sviluppatore dell'applicazione viene consultato e coinvolto nello sviluppo delle librerie prima ancora che il lavoro dell'applicazione sia realmente iniziato. Se stai per essere una società di software focalizzata sul software audio, ad esempio, potresti dover sviluppare librerie per coprire la gamma di software che intendi sviluppare. Sarebbe bello poter far sedere gli sviluppatori di librerie con gli sviluppatori di applicazioni in modo che gli sviluppatori di app possano fornire input in ciò che vogliono.

L'upstream è più personalizzato, il che lo rende molto più costoso ma potenzialmente produce un prodotto finale migliore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.