El paradigma del software orientado a objetos


El software orientado a objetos presenta un paradigma de diseño e implementación de software basado en el uso de componentes (objetos). Hoy les hablaré un poco sobre ello.

consultoria informatica software orientado a objetos

El paradigma del software orientado a objetos

El software orientado a objetos se compone, como su nombre indica, de objetos. Los objetos son entidades que tienen un determinado estado, comportamiento (métodos) e identidad:

  • El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
  • El comportamiento está definido por los métodos a los que responde dicho objeto, es decir, qué operaciones puede realizar.
  • La identidad es una propiedad de un objeto que lo diferencia del resto; incluso de los de su misma clase.

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.

Por qué es novedosa la programación orientada a objetos (POO)

El software orientado a objetos difiere profundamente de del software estructurado tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada animaba a los ingenieros a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Los ingenieros que emplean Programación Orientada a Objetos, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos o en coordinación con otros objetos.

Qué caracteriza al software orientado a objetos

Las características más importantes del software orientado a objetos son las siguientes:

Abstracción

Cada objeto en el sistema sirve como modelo de un “agente” abstracto que puede realizar trabajo, informar y cambiar su estado, y “comunicarse” con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Encapsulamiento

Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión los componentes del sistema. Las características encapsuladas pueden ser públicas o bien privadas e internas al propio objeto.

Modularidad

Se denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden implementar por separado, pero tienen conexiones con otros módulos. De hecho los objetos pueden estar compuestos, a su vez, por otros objetos.

Principio de ocultación

Cada objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. La aplicación entera se reduce a un agregado de objetos.

Polimorfismo

Los objetos pueden realizar tareas distintas en función de su entorno, mostrando una misma interfaz pública pero actuando de distintas maneras.

Herencia

Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Las clases pueden heredar características de otras clases, lo que permite reutilizar y sobreescribir funcionalidad proveniente de otras clases de la jerarquía.

Qué impacto tiene la programación orientada a objetos en los proyectos de tecnologías de la información

El impacto es muy positivo, si bien todavía quedan muchas más opciones por explorar. A continuación listaré algunos de los efectos positivos desencadenados:

Mayor sencillez

Los lenguajes de programación orientados a objetos ofrecen una metodología más cercana a la forma en la que funcionamos los seres humanos, con un manejo más natural y una mayor estandarización. Ya no resulta imprescindible conocer a fondo el manejo de cada lenguaje de programación.

Mayor productividad

En los proyectos pueden usarse clases y componentes de otros proyectos, pudiendo utilizarlas tal cual o, mediante herencia, crear nuevas clases basadas en las anteriores, lo que supone un gran ahorro en tiempo de diseño y desarrollo.

Mantenimiento de sistemas más sencillo

Los procesos de mantenimiento y mejora de los sistemas son más eficientes, gracias a la encapsulación y a la modularidad. Ello se debe a que sólo habrá que rediseñar y reimplementar un conjunto de clases específicas, no el total de la aplicación.

Posibilita el desarrollo en cadena

Gracias a lo anterior, los sistemas informáticos pueden “fabricarse” igual que un coche en una cadena de montaje, dado que se producen por componentes. Así, se puede subcontratar el desarrollo de determinadas clases de componentes, pudiendo la empresa matriz dedicarse a diseñar el conjunto del sistema e integrar los componentes prefabricados.

Interconexión de sistemas más sencilla

Por definición, un sistema informático puede representarse a sí mismo como un objeto, con todas sus diversas características. Por ello, es relativamente sencillo interconectar sistemas orientados a objetos entre sí.

En conclusión

El software orientado a objetos tiene muchas más ventajas que podrá consultar en la extensísima bibliografía existente en internet. ¿Todavía desarrolla con lenguajes procedimentales? ¿Ha comprado e implantado un sistema procedimental en lugar de uno orientado a objetos? Deje de seguir sufriendo.

¿Qué te ha parecido la información?
Comparte esto:

mm

Acerca de Pedro De La Torre

Soy perito informático judicial colegiado, legalmente habilitado para actuar ante los tribunales de Justicia, conferenciante y ponente habitual en jornadas sobre peritaje informático, ciberseguridad y tecnologías de la información. Consultor especializado en estrategia digital y seguridad de la información.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

cinco + ocho =