"다운 스트림 / 업스트림 디자인"이란 무엇입니까?


20

소프트웨어 개발에서 "다운 스트림 / 업스트림 디자인"이란 무엇입니까?


1
나는 당신이 요구하는 사용법이 잘 확립되어 있다는 것을 모른다. 질문의 맥락은 무엇입니까? 어떤 문제를 해결하려고합니까?
제레미

"디자인"이라는 단어가 첨부되어 있습니까? 나는 일반적으로 디자인이 아니라 "활동"과 결합 된 업스트림 및 다운 스트림에 대해 들었습니다. 그런 의미에서 요구 사항과 디자인은 업스트림 활동이며 구현, 테스트 및 유지 관리는 다운 스트림 활동입니다.
Thomas Owens

답변:


30

업스트림 구성 요소는 구성 요소가 작업을 수행하기 위해 사용하는 시스템의 다른 부분입니다. 업스트림 구성 요소의 디자인이 변경되면 구성 요소의 기능에 영향을 줄 수 있습니다. 업스트림 구성 요소에 버그가 있으면이 버그가 구성 요소에 나타날 수 있습니다.

다운 스트림 구성 요소는 구성 요소가 영향을 줄 수있는 시스템의 일부입니다. 구성 요소의 변경 사항은 구성 요소의 다운 스트림 구성 요소로 파급 될 수 있습니다.

데이터베이스 계층과 응용 프로그램 계층으로 구성된 응용 프로그램을 고려하십시오. 데이터베이스 계층은 응용 프로그램 계층의 업스트림으로 간주됩니다.


1
기억하기 쉬운 여기 stackoverflow.com/a/38917565/579689
Talespin_Kit

10

상류 = 우물 위로 (소프트웨어의 기원) 하류 = 바다로 내려감

"다운 스트림"인 오픈 소스 개발자는 완제품에 대한 응용 프로그램 및 도구를 구축합니다. 상류에있는 사람들은 실제로 출시 될 제품을 연구합니다.

소프트웨어를 개발하는 경우 : 업스트림 개발의 안정성에 의존합니다. 그리고 소프트웨어 작업을하는 사람들은 다운 스트림 개발자입니다.


2
이 답변은 모두의 클레 스트입니다!
Alexander Leon VI

ITIL 언어로 CMDB에 대해 이야기 할 때는 그 반대 인 것 같습니다. : /
Dwev

2

나는 이것이 영어보다 소프트웨어 공학 전문 용어라고 생각하지만, "다운 스트림 디자인"을 이해하는 방법은 응용 프로그램 개발자가 이미 개발 한 도구를 사용하여 응용 프로그램을 완성하는 것입니다. 라이브러리 기능에 대한 의사 결정이 이미 내려진 상태에서 이미 제작 된 소프트웨어 라이브러리 사용

"업스트림 디자인"을 사용하면 응용 프로그램 작업이 실제로 시작되기 전에 응용 프로그램 개발자에게 문의하여 라이브러리 개발에 참여합니다. 예를 들어 오디오 소프트웨어에 중점을 둔 소프트웨어 회사가 되려는 경우 개발하려는 소프트웨어 범위를 포괄하는 라이브러리를 개발해야 할 수 있습니다. 앱 개발자가 원하는 것에 입력을 제공 할 수 있도록 라이브러리 개발자가 애플리케이션 개발자와 함께 앉게하는 것이 좋을 것입니다.

업스트림은보다 맞춤화되어 훨씬 비싸지 만 잠재적으로 더 나은 최종 제품을 생산할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.