OOP wird oft als eine effektive Strategie zur Verwaltung der Komplexität von Software angesehen, im Gegensatz zur prozeduralen Programmierung ohne OOP.
Gab es Studien, die diese Vorstellung testeten? Ist es bewiesen, dass OOP bei großen Projekten oft hilft, die Komplexität zu managen?
object-oriented
case-studies
Aviv Cohn
quelle
quelle
Antworten:
Mir ist keine Studie mit quantifizierbaren Messwerten bekannt. Wie andere in den Kommentaren zu Ihrer Frage erwähnt haben, ist es praktisch unmöglich, dies zu erreichen. Es gibt jedoch etwas philosophische Papiere, die versuchen, das zu beantworten.
Mein Lieblingsartikel zu diesem Thema ist Out of the Tar Pit von Ben Moseley & Peter Marks . Dies begründet sich mit verschiedenen Aussagen aus seriösen Quellen zum komplexen Systemdesign zu durchaus interessanten Ergebnissen.
Out of the Tar Pit kommt zu dem Schluss, dass die Funktionsprogrammierung tatsächlich das beste Paradigma ist, um die von ihnen vorgeschlagenen Lösungen zu unterstützen. Dies ist sinnvoll, da komplexe OOP-Systeme nach meiner Erfahrung im Laufe der Zeit sehr nahe an der Prozedur liegen und die Prozedur wie OOP aussieht (sie haben keine Syntax und keine anderen Attribute, aber ein Ausführungsablauf kann sich durchaus ähneln). Der wahre Unterschied liegt in einem anderen Paradigma oder in der Kombination mit OOP. Im Moment ist ein solches Paradigma die funktionale Programmierung, die von den üblichen Programmierern (die immer noch da sind) endlich in den üblichen Geschäftsanwendungen verwendet werden kann.
quelle
Ja, es gab einige Studien. Hier ist eine: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf
Grundsätzlich wird der Schluss gezogen, dass es keinen messbaren Unterschied zwischen der Produktivität des prozeduralen Codes und der Produktivität der OO-Sprache gibt. Die Wahrheit ist jedoch, dass diese Art von Fragen so kontextsensitiv sind, dass keine Studie Ihnen sagen wird, was Sie in einer bestimmten Situation tun sollten .
quelle