ソフトウェア開発における「下流/上流設計」とはどういう意味ですか?
ソフトウェア開発における「下流/上流設計」とはどういう意味ですか?
回答:
アップストリームコンポーネントは、コンポーネントがジョブを実行するために依存するシステムの他の部分です。アップストリームコンポーネントの設計が変更されると、コンポーネントの機能が影響を受ける可能性があります。上流のコンポーネントにバグがある場合、このバグはコンポーネントに現れる可能性があります。
下流コンポーネントは、コンポーネントが影響を与える可能性のあるシステムの一部です。コンポーネントの変更は、コンポーネントの下流にあるコンポーネントに波及する可能性があります。
データベース層とアプリケーション層で構成されるアプリケーションを検討してください。データベース層は、アプリケーション層の上流にあると見なされます。
上流=井戸の上流(ソフトウェアの起源)下流=海洋(下流のユースケース)
「下流」にいるオープンソース開発者は、完成した製品でアプリケーションとツールを構築します。アップストリームにいる人は、実際にリリースされる製品に取り組んでいます。
ソフトウェアを開発する場合:アップストリーム開発の安定性に依存します。そして、あなたのソフトウェアに携わるのは下流の開発者です。
これは英語よりもソフトウェア工学の専門用語だと思いますが、「下流設計」と理解する方法は、アプリケーション開発者がすでに開発されたツールを使用してアプリケーションを完成させることです。ライブラリの機能が何をするかについての決定が既に下されている場合は、既に作成されたソフトウェアライブラリを使用します。
「上流設計」では、アプリケーションの開発が実際に開始される前に、アプリケーション開発者に相談してライブラリの開発に関与します。たとえば、オーディオソフトウェアに焦点を当てたソフトウェア会社になる場合、開発を計画しているソフトウェアの範囲をカバーするライブラリを開発する必要があるかもしれません。ライブラリ開発者がアプリケーション開発者と一緒に座って、アプリ開発者が必要なものへの入力を提供できるようにすることは素晴らしいことです。
アップストリームはよりカスタマイズされているため、はるかに高価になりますが、より良い最終製品を生産できる可能性があります。