→Conceptos

PROGRAMACIÓN ORIENTADA A OBJETOS (P.O.O)

--------------------------------------------------------------------------------





(1) Es un importante conjunto de técnicas que pueden utilizarse para hacer el desarrollo de programas mas eficiente, a la par que mejora la facilidad de los programas de computadora en la Programación Orientada a Objetos (P.O.O), los objetos son elementos principales de construcción.

(2) Grady Booch, autor del método de diseño orientado a objetos, define la Programación Orientada a Objetos como:

Ø Un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son todas miembro de una jerarquía de clases unidas mediante relaciones de herencia.

Existen tres partes en la definición, la P.O.O:

1. Utiliza objetos, no algorítmicos, como bloques de construcción lógicos (jerarquía de objetos).2. Cada objeto es una instancia de una clase.3. Las clases se relacionan unas con otras por medio de relaciones de herencia.
OBJETO


(3) Es sencillamente un tipo abstracto de dato al que se añaden importantes innovaciones en compartición de código y reutilización. El concepto de Objeto, al igual que los tipos abstractos de datos o tipos definidos por el usuario, (4) es una colección de elementos de datos, junto con las funciones asociadas utilizadas para operar sobre esos datos.


Dentro de los objetos residen los datos de los lenguajes de programación tradicional, tales como números, arrays, cadenas, y registros, así como funciones o subrutinas que operan sobre ellos.

CLASE

(5) Es la descripción de un conjunto de objetos, consta de métodos y datos que resumen características comunes de un conjunto de objetos.

Una clase es la declaración de un tipo de objeto. Las clases son similares a los tipos de datos y equivalen a modelos o plantillas que describen como se construyen ciertos tipos de objetos.

Una clase es una colección de objetos similares.

HERENCIA(6) la orientación a objetos se caracteriza, por incorporar la característica de herencia, propiedad que permite a los objetos ser construidos a partir de otros objetos, el objetivo final es la reutilizibilidad o reutilización, es decir reutilizar código anteriormente ya desarrollado.

La herencia supone una clase base y una jerarquía de clases que contienen las clases derivadas de la clase base. Las clases derivadas pueden heredar el código y los datos de su clase base, añadiendo su propio código especial y datos a ellas, incluso cambiar aquellos elementos de la clase base que necesita sean diferentes.

PASO DE MENSAJES


(7) los objetos se comunican entre si a través del uso de mensajes. El interfaz del mensaje define un interfaz claro entre el objeto y el resto de su entorno, esencialmente, el protocolo de un mensaje implica dos partes: el emisor y el receptor.

Cuando un objeto emisor envía un mensaje a un objeto receptor tiene que especificar lo siguiente:

1. Un receptor.2. Un nombre de mensaje.3. Argumentos o parámetros (si se necesitan).

En primer lugar, un objeto receptor que ha de recibir el mensaje que se ha especificado. Los objetos no especificados por el emisor no responden. El receptor trata de concordar el nombre del mensaje con los mensajes que él entiende. Si el mensaje no se entiende, el objeto receptor no se activara y responderá el mensaje invocando el método asociado.
Los parámetros o argumentos pueden ser:

1) Datos utilizados por el método invocado.2) Un mensaje, propiamente dicho.


ATRIBUTOS




(8) Los atributos describen el estado del objeto. Un atributo consta de dos partes: un nombre de atributo y un valor de atributo. Los objetos simples pueden constar de tipos primitivos, tales como enteros, caracteres, boolean, reales, o tipos simples definidos por el usuario. Los objetos complejos pueden constar de pilas, conjuntos, listas, array, etc. o incluso estructuras recursivas de alguno o todos los elementos.

Los constructores se utilizan para construir estos objetos complejos a partir de otros objetos complejos.

METODOS

(9) Los métodos (operación o servicios) describen el comportamiento asociado a un objeto. Representan las acciones que pueden realizarse por un objeto o sobre un objeto. La ejecución de un método puede conducir a cambiar el estado del objeto a dato local del objeto.

Cada método tiene un nombre y un cuerpo que realiza la acción o comportamiento asociado con el nombre del método. Todos los métodos que alteran o acceden a los datos de un objeto se definen dentro del objeto. Un objeto puede modificar directamente o acceder a los datos de otros objetos.

POLIMORFISMO

(10) Esta propiedad, en su concepción básica, se encuentra en casi todos los lenguajes de programación. El polimorfismo, en su expresión más simple, es el uso de un nombre o un símbolo-por ejemplo- un operador, para representar o significar más de una acción.

La utilización de operadores o funciones de formas diversas dependiendo de cómo se estén operando, se denomina polimorfismo (múltiples formas).

UML

(11) El Unfied Modeling Languaje (UML) es el sucesor nato de los métodos de análisis y diseño orientados a objetos que aparecieron a finales de los años ochenta y primeros años de los noventa. UML unifica los métodos de Booch, Rumbaugh (OMT) y Jacobson (OOSE), pero se espera que sea algo más que eso. UML esta sufriendo un proceso de estandarización por el grupo OMG además del comité ISO/ANSI.

En su estado actual, define una notación y un metamodelo. La notación es la parte fundamental que se ve en los modelos, es l sintaxis del lenguaje de modelado. Por ejemplo, la notación del diagrama de clases define como se representan los elementos y conceptos tales como clases, asociaciones, multiplicidad. Un metamodelo es un modelo que representa al método orientado a objetos y lo define con rigor, en esencia, es un diagrama, normalmente un diagrama de clase, que define la notación.

NOTACION DE CLASE
(12) Las clases se representan por rectángulos que muestran el nombre de la clase y opcionalmente el nombre de las operaciones y atributos. Los compartimientos se usan para dividir el nombre de la clase, atributos y operaciones. Adicionalmente las restricciones, valores iniciales y parámetros se pueden asignar a clases.

BIBLIOGRAFIA


1. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 702. BOOCH, Grady: Análisis y diseño orientado a Objetos con aplicaciones. 2ª edición, Addison Wesley/Diaz de Santos, 1995.3. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 134. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 71 y 72
5. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 76
6. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 97


7. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 868. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 88
9. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 8810. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 107
11. JOYANES, Luis: Programación Orientada a Objetos. 2ª Edición, McGRAW-HILL/INTERAMERICANA DE ESPAÑA, 1998. Pág. 154

LINKGRAFIA


12. http://www.sparxsystems.com.ar/resources/tutorial/uml2_classdiagram.html