มีการศึกษาเกี่ยวกับประสิทธิผลของ OOP ในการจัดการความซับซ้อนของซอฟต์แวร์หรือไม่? [ปิด]


14

บ่อยครั้งที่ OOP ถูกมองว่าเป็นกลยุทธ์ที่มีประสิทธิภาพในการจัดการความซับซ้อนในซอฟต์แวร์

มีการศึกษาใดที่ทดสอบความคิดนี้หรือไม่? มันพิสูจน์แล้วว่า OOP มักจะช่วยจัดการความซับซ้อนในโครงการขนาดใหญ่?


4
แม้จะมีความน่าสนใจมาก IMHO การวัด "ความซับซ้อน" และ "effectiviness" ของกระบวนทัศน์เป็นความพยายามที่ยากและมีอคติ ทุกโปรแกรมไม่เหมือนใครนักพัฒนาทุกคนมีเอกลักษณ์และยากที่จะเปรียบเทียบ ยิ่งกว่านั้นประสิทธิภาพการผลิตขึ้นอยู่กับมากกว่ากระบวนทัศน์ แต่ขึ้นอยู่กับเครื่องมือระบบนิเวศวัสดุการเรียนรู้ การศึกษาที่ไม่เอนเอียงควรให้นักเรียนทั้งกลุ่มเขียนโปรแกรมข้อกำหนดเดียวกันด้วยภาษาใดภาษาหนึ่งและดูผลลัพธ์ อย่างไรก็ตามแม้พวกเขามีแนวโน้มที่จะมีความรู้ก่อนทำให้มันลำเอียง ฉันไม่รู้การศึกษาใด ๆ
dagnelies

ไม่ใช่การศึกษา แต่มีคำพูดเชิงวิชาการบางอย่าง: en.wikipedia.org/wiki/Object-oriented_programming#Criticism
Den

1
นี่เป็นคำถามที่ค่อนข้างหลอกลวงเพราะ OOP ที่ได้รับการฝึกฝนในอุตสาหกรรมมีความจำเป็นอย่างยิ่ง ดังนั้นเราจึงย้ายจากขั้นตอนที่สัมผัสกลมไปยังวิธีที่ปรับเปลี่ยนวัตถุที่ดัดแปลงวัตถุอื่นที่ปรับเปลี่ยนวัตถุอื่น ผลข้างเคียงค่อนข้างชัดเจนมากขึ้น แต่ก็ยังมีการดำเนินการหลายอย่างในระยะทางไกล ๆ ในทางตรงกันข้ามเมื่อคุณลดผลข้างเคียงและทำให้สิ่งต่าง ๆ ไม่เปลี่ยนรูปบางคนอาจโต้แย้งว่าคุณกำลังเขียนโปรแกรมที่ใช้งานได้
Doval

2
ไม่มีวิธีการวัดอย่างแท้จริง - มันเป็นผลกระทบเชิงควอนตัมที่การวัดมันมีผลต่อผลลัพธ์
DeadMG

1
เพื่อทำการเปรียบเทียบเราจะต้องมีกระบวนทัศน์ทางเลือกที่ใช้กับระบบการเขียนโปรแกรมขนาดใหญ่มากซึ่งสร้างโดยโปรแกรมเมอร์ของทักษะทั่วไป (เช่นไม่ใช่โดยทีมผู้เชี่ยวชาญหรือนักวิชาการที่ทันสมัย) ระบบขนาดใหญ่มักเกี่ยวข้องกับระบบเครือข่ายฐานข้อมูลการโหลดบาลานซ์และความซ้ำซ้อน (เช่นเครื่องที่ไม่น่าเชื่อถือ) และอื่น ๆ รายการหลังของปัญหามีอิทธิพลต่อการอภิปรายใด ๆ ที่อาจมีกระบวนทัศน์ภาษาการเขียนโปรแกรม

คำตอบ:


10

ฉันไม่ได้ตระหนักถึงการศึกษาใด ๆ ที่มีการวัดเชิงปริมาณ ตามที่คนอื่น ๆ พูดถึงในความคิดเห็นต่อคำถามของคุณมันเป็นไปไม่ได้ที่จะบรรลุเป้าหมายนั้น อย่างไรก็ตามมีบทความปรัชญาที่พยายามตอบคำถามนั้น

กระดาษโปรดของฉันในหัวข้อที่เป็นออกจาก Tar หลุมโดยเบนมอสลีย์และปีเตอร์มาร์ค มันเป็นเหตุผลที่มีข้อความต่าง ๆ จากแหล่งที่น่านับถือเกี่ยวกับการออกแบบระบบที่ซับซ้อนไปจนถึงผลลัพธ์ที่น่าสนใจ

Out of the Pit Pit สรุปว่าการเขียนโปรแกรมฟังก์ชั่นเป็นกระบวนทัศน์ที่ดีที่สุดในการสนับสนุนโซลูชั่นที่เสนอ ซึ่งทำให้รู้สึกเพราะในประสบการณ์ของฉันระบบ OOP ที่ซับซ้อนมากใกล้เคียงกับขั้นตอนและเริ่มต้นกระบวนการดูเหมือน OOP (พวกเขาไม่มีไวยากรณ์และคุณลักษณะอื่น ๆ แต่การไหลของการดำเนินการอาจจะค่อนข้างคล้ายกัน) ความแตกต่างที่แท้จริงนั้นมาพร้อมกับกระบวนทัศน์ที่แตกต่างกันหรือโดยการรวมเข้ากับ OOP ในขณะนี้กระบวนทัศน์ดังกล่าวเป็นฟังก์ชั่นการเขียนโปรแกรมซึ่งในที่สุดก็สามารถใช้งานได้ในแอปพลิเคชันทางธุรกิจทั่วไปโดยโปรแกรมเมอร์ทั่วไป (ยังคงอยู่ที่นั่น)


5

ใช่มีการศึกษาบางอย่าง นี่คือ: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf

โดยทั่วไปแล้วสรุปว่าไม่มีความแตกต่างที่วัดได้ระหว่างการผลิตรหัสขั้นตอนและการผลิตภาษา OO .... แต่ความจริงก็คือคำถามประเภทนี้มีบริบทที่ละเอียดอ่อนไม่มีการศึกษาจะบอกคุณว่าสิ่งที่คุณควรทำในสถานการณ์ที่กำหนด .


เป็นเวลานานมีการศึกษาที่แสดงให้เห็นว่าการแนะนำคอมพิวเตอร์เดสก์ท็อปกับสภาพแวดล้อมในสำนักงานไม่ได้นำไปสู่ผลผลิตที่เพิ่มขึ้น

@nocomprende คุณมีเหตุผลที่จะเชื่อว่าการศึกษาเหล่านั้นทำข้อสรุปผิดหรือเปล่า? พีซีจากปี 1989 ที่ใช้โดยพนักงานออฟฟิศทั่วไปในปี 1989 นั้นแตกต่างจากเครื่องคอมพิวเตอร์ที่ทันสมัยซึ่งใช้โดยพนักงานสมัยใหม่ ในทำนองเดียวกันการประยุกต์ใช้เทคโนโลยีวัตถุอาจหรือไม่อาจปรับปรุงตลอดเวลา
Jørgen Fogh

1
@ JørgenFoghฉันเดาว่าฉันเห็นด้วยกับข้อความที่ว่าการศึกษาไม่ได้แสดงให้เห็นถึงสิ่งที่ดูเหมือนสามัญสำนึกเสมอไป ธุรกิจจะไม่เริ่มใช้คอมพิวเตอร์ในสำนักงานหากพวกเขาทำสิ่งต่าง ๆ แย่ลง ผู้คนจะไม่ได้ใช้เวลาหลายทศวรรษในการพัฒนาวิธีการ OO ถ้ามันไม่ได้ช่วย พวกเขาจะ? ผู้คนอาจจะผิด แต่คุณจะพิสูจน์ได้อย่างไรในทางใดทางหนึ่ง สิ่งที่เกิดขึ้นคือ: "ใช้งานได้กับคุณหรือไม่"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.