Was bedeutet „Downstream- / Upstream-Design“?


20

Was bedeutet "Downstream / Upstream-Design" in der Softwareentwicklung?


1
Ich weiß nicht, ob die Verwendung, nach der Sie fragen, bekannt ist. Was ist der Kontext Ihrer Frage? Welches Problem versuchen Sie zu lösen?
Jeremy

Sind Sie sicher, dass das Wort "Design" angehängt ist? Ich habe von Upstream und Downstream gehört, normalerweise in Verbindung mit "Aktivitäten", nicht mit Design. In diesem Sinne sind Anforderungen und Design vorgelagerte Aktivitäten, während Implementierung, Test und Wartung nachgelagerte Aktivitäten sind.
Thomas Owens

Antworten:


30

Vorgelagerte Komponenten sind andere Teile des Systems, von denen Ihre Komponente abhängig ist, um ihre Arbeit zu erledigen. Wenn sich das Design einer vorgeschalteten Komponente ändert, kann dies die Funktionsfähigkeit Ihrer Komponente beeinträchtigen. Wenn eine Upstream-Komponente einen Fehler aufweist, kann dieser Fehler in Ihrer Komponente auftreten.

Nachgelagerte Komponenten sind Teile des Systems, auf die sich Ihre Komponente auswirken kann. Änderungen an Ihrer Komponente können sich auf Komponenten auswirken, die Ihrer Komponente nachgeschaltet sind.

Stellen Sie sich eine Anwendung vor, die aus einer Datenbankebene und einer Anwendungsebene besteht. Die Datenbankebene wird als der Anwendungsebene vorgelagert betrachtet.


1
Einfach zu merkende Antwort hier stackoverflow.com/a/38917565/579689
Talespin_Kit

10

Upstream = den Brunnen hinauf (der Ursprung der Software) Downstream = hinunter zum Ozean (von Anwendungsfällen)

Open Source-Entwickler, die "Downstream" sind, bauen Anwendungen und Tools auf den fertigen Produkten. Diejenigen, die vorgelagert sind, arbeiten tatsächlich an den freizugebenden Produkten.

Wenn Sie Software entwickeln: Sie sind auf die Stabilität der vorgelagerten Entwicklung angewiesen. Und diejenigen, die an Ihrer Software arbeiten, sind nachgeschaltete Entwickler.


2
Diese Antwort ist die reinste von allen!
Alexander Leon VI

Nur scheint es umgekehrt zu sein, wenn es sich um eine CMDB in ITIL-Sprache handelt. : /
Dwev

2

Ich denke, dies ist mehr Software-Engineering-Jargon als Englisch, aber so wie ich es verstehe, verwenden die Anwendungsentwickler die bereits entwickelten Tools, um ihre Anwendung fertigzustellen. Die Verwendung bereits erstellter Softwarebibliotheken, in denen bereits Entscheidungen darüber getroffen wurden, welche Bibliotheksfunktionen verfügbar sind, erfolgt nachgelagert.

Beim "Upstream Design" wird der Anwendungsentwickler konsultiert und in die Entwicklung der Bibliotheken einbezogen, bevor die Anwendungsarbeit überhaupt begonnen hat. Wenn Sie beispielsweise ein Softwareunternehmen mit Schwerpunkt auf Audiosoftware werden, müssen Sie möglicherweise Bibliotheken entwickeln, um die Bandbreite der Software abzudecken, die Sie entwickeln möchten. Es wäre schön, wenn Bibliotheksentwickler sich mit den Anwendungsentwicklern zusammensetzen könnten, damit die App-Entwickler Eingaben zu dem liefern können, was sie wollen.

Upstream ist maßgeschneiderter, was es viel teurer macht, aber möglicherweise ein besseres Endprodukt hervorbringt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.