OOP is often regarded as an effective strategy of managing complexity in software, as opposed to non-OOP procedural programming.
Have there been any studies testing this notion? Is it proven that OOP often helps manage complexity in large projects?
OOP is often regarded as an effective strategy of managing complexity in software, as opposed to non-OOP procedural programming.
Have there been any studies testing this notion? Is it proven that OOP often helps manage complexity in large projects?
I am not aware of any study with quantifiable measurements. As others have mentioned in comments to your question, it is practically impossible to achieve that. However there somewhat philosophical papers which try to answer that.
My favorite paper on that topic is Out of the Tar Pit by Ben Moseley & Peter Marks. It reasons with various statements from respectable sources about complex system design to quite interesting results.
Out of the Tar Pit concludes that function programming is actually the best paradigm to support solutions they are proposing. Which makes sense, because in my experience, complex OOP systems become very close to procedural over time and procedural start to look like OOP (they don’t have a syntax and other attributes, but an execution flow might become quite similar). The real difference comes with different paradigm or by combining it with OOP. At the moment, such paradigm is functional programming which is finally becoming usable in common business applications by common programmers (still getting there).
Yeah there have been some studies. Here's one: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf
Basically it concludes that there's not a measurable difference between procedural code productivity and OO language productivity.... but the truth is, these types of questions are so context sensitive, no study is going to tell you what you should do in a given situation.