it-swarm-eu.dev

Was bedeutet "Downstream / Upstream Design"?

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

21
iSeiryu

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

Nachgeschaltete 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 vorgeschaltet betrachtet.

31
Jay Elston

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

Open Source-Entwickler, die "Downstream" sind, erstellen Anwendungen und Tools auf den fertigen Produkten. Diejenigen, die vorgelagert sind, arbeiten tatsächlich an den Produkten, die veröffentlicht werden sollen.

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

11
AxelS

Ich denke, dies ist mehr Fachsprache für Softwareentwicklung als Englisch, aber so wie ich es als "Downstream-Design" verstehe, nehmen die Anwendungsentwickler die bereits entwickelten Tools und verwenden sie, um ihre Anwendung zu vervollständigen. Die Verwendung bereits erstellter Softwarebibliotheken, bei denen bereits Entscheidungen darüber getroffen wurden, was die Bibliotheksfunktionen bewirken würden, ist nachgelagert.

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

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

2
Bacon Bits