A menudo, la OOP se considera una estrategia eficaz para gestionar la complejidad del software, en oposición a la programación de procedimientos que no son de la OOP.
¿Ha habido algún estudio que pruebe esta noción? ¿Está comprobado que OOP a menudo ayuda a gestionar la complejidad en grandes proyectos?
object-oriented
case-studies
Aviv Cohn
fuente
fuente
Respuestas:
No conozco ningún estudio con mediciones cuantificables. Como otros han mencionado en los comentarios a su pregunta, es prácticamente imposible lograrlo. Sin embargo, hay documentos algo filosóficos que intentan responder a eso.
Mi artículo favorito sobre ese tema es Out of the Tar Pit por Ben Moseley y Peter Marks . Razona con varias declaraciones de fuentes respetables sobre el diseño de sistemas complejos con resultados bastante interesantes.
Out of the Tar Pit concluye que la programación de funciones es en realidad el mejor paradigma para soportar las soluciones que proponen. Lo que tiene sentido, porque en mi experiencia, los sistemas OOP complejos se vuelven muy cercanos a los procedimientos con el tiempo y los procedimientos comienzan a parecerse a OOP (no tienen una sintaxis y otros atributos, pero un flujo de ejecución puede ser bastante similar). La verdadera diferencia viene con un paradigma diferente o al combinarlo con OOP. Por el momento, dicho paradigma es la programación funcional que finalmente se está volviendo utilizable en aplicaciones comerciales comunes por programadores comunes (aún llegando).
fuente
Sí, ha habido algunos estudios. Aquí hay uno: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf
Básicamente, concluye que no hay una diferencia medible entre la productividad del código de procedimiento y la productividad del lenguaje OO ... pero la verdad es que este tipo de preguntas son tan sensibles al contexto que ningún estudio le dirá qué debe hacer en una situación dada .
fuente