Pernahkah ada studi tentang efektivitas OOP dalam mengelola kompleksitas perangkat lunak? [Tutup]

14

OOP sering dianggap sebagai strategi yang efektif untuk mengelola kompleksitas dalam perangkat lunak, yang bertentangan dengan pemrograman prosedural non-OOP.

Pernahkah ada penelitian yang menguji gagasan ini? Apakah terbukti bahwa OOP sering membantu mengelola kompleksitas dalam proyek-proyek besar?

Aviv Cohn
sumber
4
Meskipun sangat menarik, IMHO, mengukur "kompleksitas" dan "keefektifan" paradigma adalah upaya yang sulit dan cenderung bias. Setiap program unik, setiap pengembang unik, dan sulit untuk dibandingkan. Selain itu, produktivitas tergantung pada lebih dari paradigma tetapi pada alat, ekosistem, materi pembelajaran. Sebuah studi yang tidak memihak harus membiarkan seluruh kelompok siswa memprogram persyaratan yang sama dengan bahasa apa pun dan melihat hasilnya. Namun, bahkan mereka cenderung memiliki pengetahuan sebelumnya yang membuatnya bias. Saya tidak tahu studi semacam itu.
dagnelies
Bukan studi, tetapi beberapa kata-kata akademis: en.wikipedia.org/wiki/Object-oriented_programming#Criticism
Den
1
Ini sedikit pertanyaan jebakan karena OOP seperti yang dipraktikkan dalam industri cenderung sangat penting. Jadi kami telah beralih dari prosedur yang menyentuh global ke metode yang memodifikasi objek yang memodifikasi objek lain yang memodifikasi objek lain; efek sampingnya agak lebih eksplisit tetapi masih ada banyak aksi di kejauhan yang terjadi. Di sisi lain ketika Anda meminimalkan efek samping dan membuat hal-hal yang tidak dapat diubah beberapa akan berpendapat Anda melakukan pemrograman fungsional.
Doval
2
Tidak ada cara untuk benar-benar mengukurnya - ini adalah efek kuantum di mana mengukurnya mempengaruhi hasilnya.
DeadMG
1
Untuk membuat perbandingan, seseorang harus memiliki paradigma alternatif yang dapat diterapkan pada sistem pemrograman yang sangat besar, yang dibangun oleh pemrogram keterampilan biasa (yaitu bukan oleh tim pakar atau akademisi canggih). Sistem besar cenderung melibatkan jaringan, database, load-balancing dan redundansi (yaitu mesin yang tidak dapat diandalkan), antara lain. Daftar isu terakhir mendominasi setiap debat yang mungkin ada untuk paradigma bahasa pemrograman.
rwong

Jawaban:

10

Saya tidak mengetahui adanya penelitian dengan pengukuran kuantitatif. Seperti yang disebutkan orang lain dalam komentar atas pertanyaan Anda, praktis tidak mungkin untuk mencapainya. Namun ada beberapa makalah filosofis yang mencoba menjawabnya.

Makalah favorit saya tentang topik itu adalah Out of the Tar Pit oleh Ben Moseley & Peter Marks . Itu beralasan dengan berbagai pernyataan dari sumber terhormat tentang desain sistem yang kompleks untuk hasil yang cukup menarik.

Out of the Tar Pit menyimpulkan bahwa pemrograman fungsi sebenarnya adalah paradigma terbaik untuk mendukung solusi yang mereka usulkan. Yang masuk akal, karena dalam pengalaman saya, sistem OOP yang kompleks menjadi sangat dekat dengan prosedural dari waktu ke waktu dan prosedural mulai terlihat seperti OOP (mereka tidak memiliki sintaks dan atribut lainnya, tetapi aliran eksekusi mungkin menjadi sangat mirip). Perbedaan nyata datang dengan paradigma yang berbeda atau dengan menggabungkannya dengan OOP. Saat ini, paradigma tersebut adalah pemrograman fungsional yang akhirnya menjadi dapat digunakan dalam aplikasi bisnis umum oleh programmer umum (masih sampai di sana).

frzng
sumber
5

Ya ada beberapa penelitian. Inilah satu: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf

Pada dasarnya disimpulkan bahwa tidak ada perbedaan yang terukur antara produktivitas kode prosedural dan produktivitas bahasa OO .... tetapi kenyataannya adalah, jenis pertanyaan ini sangat peka konteks, tidak ada penelitian yang akan memberi tahu Anda apa yang harus Anda lakukan dalam situasi tertentu .

Calphool
sumber
Untuk waktu yang lama ada penelitian yang menunjukkan bahwa memperkenalkan komputer desktop ke lingkungan kantor tidak mengarah pada peningkatan produktivitas.
@nocomprende, apakah Anda punya alasan untuk percaya bahwa studi tersebut membuat kesimpulan yang salah? PC dari 1989 yang digunakan oleh pekerja kantor rata-rata pada tahun 1989 benar-benar berbeda dari mesin modern yang digunakan oleh pekerja modern. Demikian pula, penerapan teknologi objek mungkin meningkat atau tidak seiring waktu.
Jørgen Fogh
1
@ JørgenFogh Saya kira saya setuju dengan pernyataan bahwa studi tidak selalu menunjukkan apa yang tampaknya masuk akal. Bisnis tidak akan mulai menggunakan komputer di kantor jika mereka memperburuk keadaan. Orang tidak akan menghabiskan waktu puluhan tahun untuk mengembangkan pendekatan OO jika itu tidak membantu. Akankah mereka Ya, orang bisa saja salah, tetapi bagaimana Anda membuktikannya secara meyakinkan? Apa yang terjadi adalah: "Apakah ini cocok untuk Anda ?"