Información obtenida de la página Desarrollo de Proyectos de Software. Publicada el 09 de septiembre de 2012.
Concepto
La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del Software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de Software:
• La falta de portabilidad del código y su escasa reusabilidad.
• Código que es difícil de modificar.
• Ciclos de desarrollo largos.
• Técnicas de codificación no intuitivas.
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera más difícil de sortear es usualmente la herencia. El concepto de programación orientada a objetos (POO) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella.
Dado que la POO se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo. No debemos confundir que esté basado en objetos con que sea orientado a objetos: para que sea orientado a objetos al margen que esté basado en objetos, necesita tener clases y relaciones de herencia entre ellas.
Se entiende paradigma como un conjunto de teorías, estándares y métodos que juntos representan una forma de organizar el conocimiento, esto es, una forma de ver el mundo. La visión OO nos obliga a reconsiderar nuestras ideas acerca de la computación, de lo que significa ponerla en práctica y de cómo debería estructurarse la información en los sistemas de información.
Los objetos
El elemento fundamental de la POO es, como su nombre indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. En este caso las estructuras de datos y los algoritmos usados para manipularlas están encapsulados en una idea común llamada objeto. Esta definición especifica dos propiedades características de los objetos:
• En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bien estructurados.
• En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.
También se puede decir que un objeto es una abstracción encapsulada genérica de datos y los procedimientos para manipularlos, también se puede decir que es una cosa o entidad, que tiene atributos (propiedades) y de formas de operar sobre ellos que se conocen como métodos.
En forma más simple se puede decir que un objeto es un ente que tiene características y comportamiento.
Los objetos pueden modelar diferentes cosas como: dispositivos, roles, organizaciones, sucesos, entre otras cosas.
Organización de los objetos
Los objetos forman siempre una organización jerárquica, existiendo varios tipos de jerarquía como los que a continuación se mencionan:
• Simples: cuando su estructura es representada por medio de un árbol (estructura de datos).
• Compleja: cualquier otra diferente a la de árbol.
Sea cual fuere la estructura se tienen en ella los siguientes tres niveles de objetos:
• La raíz de la jerarquía: Es un objeto único, está en el nivel más alto de la estructura y se le conoce como objeto Padre, Raíz o Entidad.
• Los objetos intermedios: Son los que descienden directamente de la raíz y que a su vez tienen descendientes (tienen ascendencia y descendencia) y representan conjuntos de objetos, que pueden llegar a ser muy generales o muy especializados, de acuerdo a los requerimientos de la aplicación.
• Los objetos terminales: Son todos aquellos que tienen ascendencia, pero que no tienen descendencia.