「下流/上流設計」とはどういう意味ですか?


20

ソフトウェア開発における「下流/上流設計」とはどういう意味ですか?


1
あなたが尋ねている使用法が十分に確立されていることはわかりません。あなたの質問の背景は何ですか?どのような問題を解決しようとしていますか?
ジェレミー

「デザイン」という言葉が付いていますか?設計ではなく、通常は「アクティビティ」と相まって、アップストリームとダウンストリームについて聞いたことがあります。その意味で、要件と設計はアップストリームのアクティビティであり、実装、テスト、およびメンテナンスはダウンストリームのアクティビティです。
トーマスオーエンズ

回答:


30

アップストリームコンポーネントは、コンポーネントがジョブを実行するために依存するシステムの他の部分です。アップストリームコンポーネントの設計が変更されると、コンポーネントの機能が影響を受ける可能性があります。上流のコンポーネントにバグがある場合、このバグはコンポーネントに現れる可能性があります。

下流コンポーネントは、コンポーネントが影響を与える可能性のあるシステムの一部です。コンポーネントの変更は、コンポーネントの下流にあるコンポーネントに波及する可能性があります。

データベース層とアプリケーション層で構成されるアプリケーションを検討してください。データベース層は、アプリケーション層の上流にあると見なされます。


1
覚えやすい答えはこちらstackoverflow.com/a/38917565/579689
Talespin_Kit

10

上流=井戸の上流(ソフトウェアの起源)下流=海洋(下流のユースケース)

「下流」にいるオープンソース開発者は、完成した製品でアプリケーションとツールを構築します。アップストリームにいる人は、実際にリリースされる製品に取り組んでいます。

ソフトウェアを開発する場合:アップストリーム開発の安定性に依存します。そして、あなたのソフトウェアに携わるのは下流の開発者です。


2
この答えはすべての宝庫です!
アレクサンダーレオンVI

ITIL言語でCMDBについて話すときは逆のように見えますが。:/
Dwev 16

2

これは英語よりもソフトウェア工学の専門用語だと思いますが、「下流設計」と理解する方法は、アプリケーション開発者がすでに開発されたツールを使用してアプリケーションを完成させることです。ライブラリの機能が何をするかについての決定が既に下されている場合は、既に作成されたソフトウェアライブラリを使用します。

「上流設計」では、アプリケーションの開発が実際に開始される前に、アプリケーション開発者に相談してライブラリの開発に関与します。たとえば、オーディオソフトウェアに焦点を当てたソフトウェア会社になる場合、開発を計画しているソフトウェアの範囲をカバーするライブラリを開発する必要があるかもしれません。ライブラリ開発者がアプリケーション開発者と一緒に座って、アプリ開発者が必要なものへの入力を提供できるようにすることは素晴らしいことです。

アップストリームはよりカスタマイズされているため、はるかに高価になりますが、より良い最終製品を生産できる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.