Apa artinya "desain hilir / hulu"?

20

Apa arti "desain hilir / hulu" dalam pengembangan perangkat lunak?

RegDwight
sumber
1
Saya tidak tahu bahwa penggunaan yang Anda tanyakan sudah mapan. Apa konteks pertanyaan Anda? Masalah apa yang sedang ingin kamu selesaikan?
Jeremy
Apakah Anda yakin kata "desain" terpasang? Saya pernah mendengar tentang hulu dan hilir, biasanya ditambah dengan "kegiatan", bukan desain. Dalam hal itu, persyaratan dan desain adalah kegiatan hulu, sedangkan implementasi, pengujian, dan pemeliharaan adalah kegiatan hilir.
Thomas Owens
Terkait: Apa arti 'hulu'? di OS
kenorb

Jawaban:

30

Komponen hulu adalah bagian lain dari sistem yang bergantung pada komponen Anda untuk melakukan tugasnya. Jika desain komponen hulu berubah, kemampuan komponen Anda berfungsi dapat terpengaruh. Jika komponen hulu memiliki bug, bug ini dapat dimanifestasikan dalam komponen Anda.

Komponen hilir adalah bagian dari sistem yang dapat dipengaruhi oleh komponen Anda. Perubahan pada komponen Anda dapat beriak ke komponen yang hilir dari komponen Anda.

Pertimbangkan aplikasi yang terdiri dari tingkat basis data dan tingkat aplikasi. Tingkatan basis data akan dianggap sebagai hulu dari tier aplikasi.

Jay Elston
sumber
1
Mudah diingat jawab di sini stackoverflow.com/a/38917565/579689
Talespin_Kit
10

Hulu = ke atas sumur (asal perangkat lunak) Hilir = ke bawah ke lautan (kasus penggunaan)

Pengembang Open Source yang "hilir" membangun aplikasi dan alat pada produk jadi. Mereka yang hulu sebenarnya mengerjakan produk yang akan dirilis.

Jika Anda mengembangkan perangkat lunak: Anda bergantung pada stabilitas pengembangan hulu. Dan mereka yang bekerja pada perangkat lunak Anda adalah pengembang hilir.

Axel
sumber
2
Jawaban ini adalah clerest dari semuanya!
Alexander Leon VI
Kecuali tampaknya sebaliknya ketika berbicara tentang CMDB dalam bahasa ITIL. : /
Dwev
2

Saya pikir ini adalah jargon rekayasa perangkat lunak lebih dari bahasa Inggris, tetapi cara saya memahaminya "desain hilir" adalah di mana pengembang aplikasi mengambil alat yang telah dikembangkan dan menggunakannya untuk menyelesaikan aplikasi mereka. Menggunakan pustaka perangkat lunak yang sudah diproduksi di mana keputusan tentang apa kemampuan perpustakaan akan dilakukan sudah hilir.

Dengan "desain hulu" pengembang aplikasi dikonsultasikan dan dilibatkan dalam pengembangan perpustakaan sebelum pekerjaan aplikasi bahkan benar-benar dimulai. Jika Anda akan menjadi perusahaan perangkat lunak yang berfokus pada perangkat lunak audio, misalnya, Anda mungkin perlu mengembangkan perpustakaan untuk mencakup berbagai perangkat lunak yang Anda rencanakan untuk dikembangkan. Akan menyenangkan jika pengembang perpustakaan dapat duduk bersama pengembang aplikasi sehingga pengembang aplikasi dapat memberikan masukan ke dalam apa yang mereka inginkan.

Hulu lebih disesuaikan, yang membuatnya jauh lebih mahal tetapi berpotensi menghasilkan produk akhir yang lebih baik.

Bit Bacon
sumber