Está en la página 1de 15

Ingeniería informática

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A

OBJETOS

Si nos fijamos en la vida real podremos apreciar que casi todo se

compone de objetos (coche, lapicero, casa y, por qué no, personas).

Todos entendemos que tanto un BMW verde como un SEAT rojo son

coches, pero son distintos en su aspecto físico. Pero a pesar de esa

diferencia de aspecto entendemos que ambos tienen unas

características comunes como son poseer ruedas, un volante,

asientos, Esas características comunes son las que hacen pensar en

el concepto coche en ambos casos. A partir de ahora podemos

interpretar que el BMW y el SEAT son objetos, y el tipo o clase, de

esos objetos es coche. Además podemos suponer que la clase de un

objeto describe como es dicho objetos.


Ingeniería informática

1. CONCEPTO DE OBEJTOS:

Un objeto en POO representa alguna entidad de la vida real, es decir,

alguno de los objetos que pertenecen al negocio con que estamos

trabajando o al problema con el que nos estamos enfrentando, y con

los que podemos interactuar. A través del estudio de ellos se

adquiere el conocimiento necesario para, mediante la abstracción y

la generalización, agruparlos según sus características en conjuntos.

Estos conjuntos determinan las clases de objetos con las que

estamos trabajando. Primero existen los objetos; luego aparecen las

clases en función de la solución que estemos buscando. Ésta es la

forma más común de adquirir conocimiento aunque no es la única.

En ocasiones, cuando el observador es un experto del negocio (o del

problema), el proceso puede ser a la inversa y comenzar el análisis

en una base teórica abstracta, sustentada por el conocimiento previo

que da lugar primeramente a clases de objetos que satisfagan las

necesidades de la solución.

Estos conceptos son parte de la base teórica de la idea de objeto

y clase utilizados en la POO. Los objetos tienen características

fundamentales que nos permiten conocerlos mediante la

observación, identificación y el estudio posterior de su

comportamiento; estas características son:


Ingeniería informática

 Identidad

 Comportamiento

 Estado

En las ramas de las ciencias de la computación más

estrictamente matemáticas, el término objeto es usado en sentido

puramente matemático para referirse a cualquier "cosa". Esta

interpretación resulta útil para discutir sobre teorías abstractas, pero

no es suficientemente concreta para servir como definición de

un tipo primitivo en discusiones de ramas más específicas, como en

la programación, que está más cerca de cálculos reales y

el procesamiento de información.

Ilustración 1 : libro programación orientada a objetos 2016


Ingeniería informática

2. PARTES DE UN OBJETO

2.1. Atributos:

Las características de los objetos, que se almacenan por medio

de los llamados atributos o propiedades, pueden ser de diversa

naturaleza. La clase hombre puede tener distintos tipos de

atributos, como la edad (numérico), el nombre propio (tipo

cadena de caracteres), color de piel (que puede ser un tipo

cadena de caracteres o tipo enumerado, que es una especie

de variable que sólo puede tomar unos pocos valores posibles).

También puede tener una estatura o un peso (que podrían ser

de tipo float o número en coma flotante).

En general, podemos utilizar cualquier tipo para los atributos de

los objetos, incluso podemos utilizar otros objetos. Por ejemplo,

podríamos definir como atributo de la clase hombre sus manos.

Dada la complejidad de las manos, estas podrían definirse

como otro objeto. Por ejemplo, las manos tendrían como

características la longitud de los dedos, un coeficiente de

elasticidad. Como funcionalidades o métodos, podríamos

definir agarrar algo, soltarlo, pegar una bofetada, o cortarse las

uñas. Así pues, uno de los atributos de la clase hombre podría

ser un nuevo objeto, con sus propias características y


Ingeniería informática

funcionalidades. La complejidad de las manos no le importa al

desarrollador de la clase hombre, por el principio de

encapsulación, dado que este conoce sus propiedades (o

aquellas declaradas como public) y los métodos (también los

que se hayan decidido declarar como públicos) y no necesita

preocuparse sobre cómo se han codificado.

2.2. Métodos:

conjunto de instrucciones a las que se les asocia un nombre de

modo que si se desea ejecutarlas, sólo basta o referenciarlas a

través de dicho nombre en vez de tener que escribirlas.

Dentro de estas instrucciones es posible acceder con total

libertad a la información almacenada en los campos,

pertenecientes a la clase dentro de la que el método se ha

definido. Por lo que los métodos permiten manipular los datos

almacenados en los objetos.


Ingeniería informática

3. REPRESENTACION DE UN OBJETO

 Objeto = unidad atómica que encapsula estado y

comportamiento

 La encapsulación en un objeto permite una alta cohesión y

un bajo acoplamiento

 Un objeto puede caracterizar una entidad física (coche) o

abstracta (ecuación matemática)

El Modelado de Objetos permite representar el ciclo de vida de

los objetos a través de sus interacciones

Ilustración 2: fuente página web


Ingeniería informática

4. CARACTERISTICAS DE UN OBJETO

Los objetos tienen características fundamentales que nos

permiten conocerlos mediante la observación, identificación y

el estudio posterior de su comportamiento; estas

características son:

a) Identidad :

La identidad es la propiedad que permite a un objeto

diferenciarse de otros. Generalmente esta propiedad es tal, que

da nombre al objeto. Tomemos por ejemplo el "verde" como un

objeto concreto de una clase color; la propiedad que da

identidad única a este objeto es precisamente su "color" verde.

Tanto es así que para nosotros no tiene sentido usar otro

nombre para el objeto que no sea el valor de la propiedad que

lo identifica. En programación la identidad de los objetos sirve

para comparar si dos objetos son iguales o no.

b) Comportamiento :

El comportamiento de un objeto está directamente relacionado

con su funcionalidad y determina las operaciones que este

puede realizar o a las que puede responder ante mensajes

enviados por otros objetos. La funcionalidad de un objeto está


Ingeniería informática

determinada, primariamente, por su responsabilidad. Una de

las ventajas fundamentales de la POO es la reusabilidad del

código; un objeto es más fácil de reutilizarse en tanto su

responsabilidad sea mejor definida y más concreta.

c) Estado :

El estado de un objeto se refiere al conjunto de los valores de

sus atributos en un instante de tiempo dado. El comportamiento

de un objeto puede modificar el estado de este. Cuando una

operación de un objeto modifica su estado se dice que esta

tiene "efecto colateral".

5. IMPLEMENTACION DE UN OBJETO

5.1. Persistencia:

La persistencia de objetos consiste en la inicialización de

objetos con sus atributos predeterminados o atributos por

defecto. Esto es posible con dos maneras de proceder.

Sobre un medio (de almacenamiento) fijo se guarda (cuando el

objeto fue definido) un conjunto de datos que son recuperados

cuando el tipo de objeto en cuestión es creado; dichos datos

son transferidos a las propiedades del objeto.


Ingeniería informática

Otro objeto mantiene los datos que serán transferidos a las

propiedades del nuevo objeto creado. En este caso los datos

están en memoria.

Hay muchos ejemplos para este tipo de persistencia. Un caso

típico son los controles ActiveX. Cuando el control es compilado

junto al código se guarda una copia de los datos que el

programador definió de forma predeterminada. Cuando se

instancia una referencia al control, este lee del disco (donde

está almacenada la librería asociada al control) los datos que

definen y configuran sus propiedades.

Para guardar los datos de objetos en disco se recurre a un

mecanismo conocido como serialización (serializar), que

dispone en una secuencia de bytes todos los datos (o sólo

aquellos que se desee) que definen el objeto.

5.2. Difusión

5.3. Misión

5.4. Intercomunicación

6. CONCEPTO DE MENSAJES

Un objeto por si solo no tiene mucho significado. Ejemplo: el

objeto "bicicleta" no tiene mucho sentido si no interactúa con un

objeto "persona" que pedalee.


Ingeniería informática

La interacción entre objetos se produce mediante mensajes.

Los mensajes son llamados a métodos de un objeto en

particular.

Podemos decir que el objeto persona envía el mensaje "girar a

la izquierda" al objeto bicicleta.

Los mensajes pueden contener parámetros. Por ejemplo

teniendo un método en la clase bicicleta llamado "Girar" que

recibe como parámetro la dirección (derecha o izquierda).

Un mensaje está compuesto por los siguientes tres elementos:

 El objeto destino, hacia el cual el mensaje es enviado

 El nombre del método a llamar

 Los parámetros solicitados por el método.

7. TIPOS DE MENSAJES

7.1. Paso de mensajes síncrono

En el paso de mensajes síncrono, el proceso emisor en primer

lugar ejecutará la función de envío síncrono (Por ejemplo, en

MPI: s_send()). Tras ese momento dicho proceso detendrá su

ejecución en ese punto y se quedará bloqueado a la espera de

que el proceso receptor reciba el mensaje. Cuando el proceso

receptor llega a la instrucción en la cual se le ordena que reciba

el mensaje (receive()), entonces comienza la transmisión del


Ingeniería informática

mensaje por parte de ambos. Ambos procesos permanecerán

bloqueados hasta que la transmisión del mensaje haya

finalizado correctamente. Cuando suceda, ambos serán

desbloqueados y podrán continuar cada uno ejecutando su

código. En el caso de que el programa receptor llegue a la

instrucción de recibir antes de que el emisor haya llegado a su

instrucción de enviar el mensaje, el receptor se quedará

bloqueado a la espera del emisor.

El paso de mensajes síncrono siempre es seguro, ya que el

bloquearse ambos procesos hasta que la recepción finaliza,

podemos garantizar que no hay posibilidad de que el mensaje

haya podido ser alterado. Sin embargo, el sistema, a pesar de

ser sencillo de programar tiene el inconveniente de ser poco

flexible: Ambos procesos deben "citarse", es decir, deben

esperar hasta que ambos estén en el mismo punto de su código

para poder realizar el mensaje. Como no podemos garantizar

que el tiempo que transcurrirá entre que el emisor llegue a su

instrucción s_send() y el receptor llegue a su instrucción

receive() sea razonable, este método en algunos casos podría

ver mermado el rendimiento del conjunto de ambos.


Ingeniería informática

Por otro lado, una mala programación podría llevar a que un

proceso ejecutara una función de envío que no tiene su

correspondiente función de recibir o viceversa, con lo cual los

procesos podrían llegar a quedar bloqueados indefinidamente

esperando el uno al otro (interbloqueo).

7.2. Paso de mensajes asíncrono

El envío asíncrono es aquel en que los procesos no necesitan

ser "citados" para que se produzca el envío del mensaje. Es

decir, cuando el emisor llega a la instrucción en la que se

produce el envío, no se bloquea a la espera de que el programa

destinatario llegue a la instrucción en que lo recibe, sino que

sigue ejecutando su código con normalidad. Por su parte, el

programa receptor podrá recibir el mensaje en cualquier

momento posterior al envío sin frenar por ello al emisor hasta

que esto se produzca. Una vez más, si el receptor ha llegado a

una orden de recepción de mensaje pero el emisor aún no ha

enviado nada, el receptor sí se bloqueará a la espera de que el

emisor lleve a cabo el envío.

El que el emisor no quede bloqueado tras enviar el mensaje es

una ventaja con respecto a la eficiencia general del sistema,

pero puede conllevar un riesgo de seguridad en el paso del


Ingeniería informática

mensaje. Por ejemplo, pongamos el caso de que el proceso

emisor tiene una variable local n = 2 y desea enviar el contenido

de esta variable a un proceso receptor. El proceso ejecutará su

instrucción de envío de la variable y continuará su código con

normalidad. Al no poder conocer cuanto tiempo transcurrirá

hasta que el receptor reciba la variable, podría suceder que

desde que el emisor ejecutó la orden de envío y hasta que se

produjo la recepción, el código del emisor ha alterado el

contenido de la variable (incluso podría suceder que ya la

hubiese eliminado) n, por lo que no podemos garantizar la

seguridad del envío al no poder afirmar que el emisor recibirá

el valor que realmente se quería enviar, el 2.

8. PROCESO DE ABSTRACCIÓN

Denota las características esenciales de un objeto, donde se

capturan sus comportamientos. 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


Ingeniería informática

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.
Ingeniería informática

9. CONCLUSIONES

10. LIBROS

11. RECOMENDACIONES

12. REFERENCIAS BILIBOGRAFICAS

 http://www.mundojava.net/introduccion-a-la-programacion-

orientada-a-objetos.html?Pg=java_inicial_4_2.html

 https://es.wikipedia.org/wiki/Objeto_(programaci%C3%B3n)

 http://fpsalmon.usc.es/genp/doc/cursos/poo/clases.html

 https://www.fdi.ucm.es/profesor/jpavon/poo/1.1.Objetos%20y

%20Clases.pdf

 https://desarrolloweb.com/articulos/2051.php