Co oznacza „projektowanie downstream / upstream”?

20

Co oznacza „projektowanie / tworzenie oprogramowania” w rozwoju oprogramowania?

RegDwight
źródło
1
Nie wiem, czy użycie, o które pytasz, jest dobrze ustalone. Jaki jest kontekst twojego pytania? Jaki problem próbujesz rozwiązać?
Jeremy
Czy na pewno jest dołączone słowo „design”? Słyszałem o wyższym i niższym poziomie, zwykle w połączeniu z „działaniami”, a nie projektowaniem. W tym sensie wymagania i projekt są działaniami wyższego szczebla, podczas gdy wdrażanie, testowanie i utrzymanie są działaniami końcowymi.
Thomas Owens
Powiązane: Co oznacza „upstream”? w OS
kenorb

Odpowiedzi:

30

Komponenty poprzedzające to inne części systemu, od których dany komponent musi wykonać swoją pracę. Zmiana projektu komponentu początkowego może wpłynąć na jego zdolność do działania. Jeśli w komponencie poprzedzającym występuje błąd, ten błąd może się objawiać w komponencie.

Komponenty następujące są częściami systemu, na które może wpływać twój komponent. Zmiany w komponencie mogą falować do komponentów znajdujących się poniżej komponentu.

Rozważ aplikację składającą się z warstwy bazy danych i warstwy aplikacji. Warstwa bazy danych będzie uważana za wyższą niż warstwa aplikacji.

Jay Elston
źródło
1
Łatwa do zapamiętania odpowiedź tutaj stackoverflow.com/a/38917565/579689
Talespin_Kit
10

Upstream = w górę studni (pochodzenie oprogramowania) Downstream = w dół do oceanu (przypadków użycia)

Programiści Open Source, którzy są „downstream”, budują aplikacje i narzędzia na gotowych produktach. Ci, którzy są na wyższym szczeblu, faktycznie pracują nad produktami, które zostaną wydane.

Jeśli tworzysz oprogramowanie: zależysz od stabilności wcześniejszego rozwoju. A ci, którzy pracują nad twoim oprogramowaniem, są programistami.

AxelS
źródło
2
Ta odpowiedź jest najmądrzejsza ze wszystkich!
Alexander Leon VI
Tyle że wydaje się, że jest odwrotnie, gdy mówimy o CMDB w języku ITIL. : /
Dwev
2

Wydaje mi się, że jest to bardziej żargon inżynierii oprogramowania niż angielski, ale rozumiem, że „projektowanie niższego szczebla” polega na tym, że twórcy aplikacji biorą narzędzia, które już zostały opracowane, i używają ich do ukończenia aplikacji. Korzystanie z już utworzonych bibliotek oprogramowania, w przypadku których podjęto już decyzje o tym, jakie byłyby możliwości biblioteki, jest późniejsze.

W przypadku „wcześniejszego projektu” konsultowany jest programista aplikacji i zaangażowany w tworzenie bibliotek, zanim prace aplikacyjne jeszcze się naprawdę rozpoczną. Jeśli zamierzasz być firmą programistyczną zajmującą się na przykład oprogramowaniem audio, może być konieczne opracowanie bibliotek obejmujących zakres oprogramowania, które planujesz opracować. Byłoby miło, gdyby twórcy bibliotek mogli usiąść z twórcami aplikacji, aby twórcy aplikacji mogli dostarczyć dane do tego, czego chcą.

Upstream jest bardziej dostosowany, co czyni go znacznie droższym, ale potencjalnie daje lepszy produkt końcowy.

Kawałki bekonu
źródło