programación orientada a objetos

6
 Programación Orientada a Objetos Licenciatura en Informática Administrativa 

Upload: dragon9779

Post on 14-Oct-2015

6 views

Category:

Documents


0 download

TRANSCRIPT

  • Programacin Orientada a Objetos

    Licenciatura en Informtica Administrativa

  • Programacin Orientada a Objetos (POO)

    La programacin es una tcnica desarrollada desde la segunda mitad del

    siglo XX, y a travs del paso del tiempo ha tenido diversos cambios, los

    primeros avances hablando metodolgicamente fueron impulsados por

    Wirth Dijstra, pero los cambios ms impactantes fuero los del cambio a la

    programacin estructurada por Kernighan y Ritchie.

    Con el tiempo fue evolucionando la manera en que las computadoras se

    volvan ms sofisticada se tuvo la necesidad de crear lenguajes ms

    completos que permitiera a los usuarios aprender de manera ms sencilla y

    que no dependiera directamente de la computadora; es as como surge la

    programacin orientada a objetos , es gracias a Smalltalk que es la primer

    cientfico que experimenta ideas diferentes a la programacin

    estructurada, comienza con la divisin de subclases que heredan

    propiedades de la clase de la que provienen, pero conteniendo variables

    y funciones nuevas. De la misma forma surge la idea del difcil manejo de

    la memoria dinmica: los constructores y destructores de objetos.

    A principios de los aos 90 se populariza un lenguaje orientado a objetos

    llamado C++, creado por Bjarne Stroustrup; La idea de Bjarne Stroustrup fue

    crear un lenguaje orientado a objetos que heredara prcticamente la

    sintaxis y posibilidades del lenguaje que eran ms popular entre los

    programadores de ese entonces en este caso , el lenguaje C. Este truco

    ayud a popularizar la programacin orientada a objetos y prepar el

    camino para la aparicin del Java.

    Java fue creado a base de lo que haba proporcionado Bjarne Stroustrup,

    pero este lenguaje ya era ms puro a la programacin orientada a objetos

    ; vindose desde otro punto se considera al lenguaje C como la transicin

    de la programacin estructurada a la programacin orientada a objetos.

    En los ltimos aos esta metodologa ha experimentado un gran proceso

    no solo para el desarrollo de programas si no tambin en la forma de

    pensar de las personas; la Programacin Orientada a Objetos (POO) no

    solo se aplica a los lenguajes de programacin, sino que tambin se ha

    utilizado en diversos mtodos como el de anlisis y diseo y otras reas,

    tales como las bases de datos o las comunicaciones. Por lo tanto, para

    hacer desarrollo de sistemas de software basados en la POO, hay que

    entender bien todos los conceptos del modelo de objetos que estn

    dentro de ella.

    En el ao de 1970, surge la problemtica de que las variables globales

    podan ser modificadas desde cualquier punto del programa, y es as

    como el cientfico David L. Parnas que surge la idea de encapsular cada una de las variables del programa con sus operaciones asociadas, y solo a

  • travs de estas se poda tener acceso a su uso, y el resto de los mdulos

    solo poda acceder a ellas de manera indirecta; en la actualidad

    llamamos objetos a estos tipos de mdulos.

    Durante los aos setentas fue desarrollado el lenguaje de programacin

    llamado SMALLTALK en los laboratorios Xerox en Estado Unidos, este

    lenguaje adopt los conceptos de la programacin orientada a objetos.

    El hecho de ser creado en Estados Unidos, contribuyo a que se introdujera

    a escala mundial el trmino de Orientacin a Objetos (Object Oriented

    [OO]) y que cobrara importancia entre los diseadores de lenguajes de

    programacin, lo que hizo sobresalir a este lenguaje fue que adopt como

    puntos principales los objetos y las clases.

    Ya en el aos de 1985 surge otro lenguaje orientado a objetos como lo es

    C++ (ya mencionado anteriormente), y en 1986 se crea otro lenguaje

    llamado EIFFEL por B. Meyer, estos lugares tuvieron una gran importancia y

    utilizacin en el aos de 1985 y hasta los primeros aos de los noventas.

    Pero en el aos de 1995 surge JAVA, desarrollado por la empresa SUN

    Microsystems, que se basa en conceptos de C++, pero simplificando la

    herencia y en su lugar introduce el termino interfaz.

    Es as como a travs de todos los cambios en las computadoras y en el

    cambio constante de las necesidades de los cientficos surgen los

    lenguajes de programacin orientada a objetos. Ahora ya explicados un

    poco los orgenes de la Programacin Orientada a Objetos (POO),

    podemos comenzar a explicar las ideas que tiene este tipo de

    programacin.

    La programacin orientada a objetos es la metodologa basada en el

    concepto de objeto para imponer la estructura de los programas, nos

    permite comprender el problema que se quiere resolver y a partir de ello

    construir un modelo de solucin en el mundo real que nos rodea (nuestro

    sistema); en palabras simples es la representacin del mundo mediante la

    identificacin de objetos que constituyen el dominio del problema, su

    organizacin (estructura) y sus responsabilidades (funciones).

    La POO se basa en tres mtodos de organizacin basados en nuestra vida

    cotidiana y en nuestra forma de pensar:

    La diferencia entre un objeto y sus atributos: por ejemplo una

    manzana que en este caso sera el objeto y sus atributos como su

    sabor o peso.

    La diferencia entre un objeto y sus componentes: el objeto seguira

    siendo la manzana y sus componentes seran sus semillas o su

    cascara.

  • La formacin y diferencia entre las diversas clases de objetos: por

    ejemplo, las manzanas verdes, rojas, y amarillas.

    Un gran punto a favor que tiene la programacin orientada a objetos es

    que es as fcil de comprender para el usuario, ya que no tiene que dar

    instrucciones directamente con la computadora, en este caso se hace uso

    de objetos reales, de sus estados, o comportamientos en el mundo real, y

    sin duda alguna esta metodologa de programacin eleva el nivel de

    abstraccin del usuario.

    Ya explicado en qu consiste la Programacin orientada a objetos

    podemos describir algunas ventajas y desventajas que tiene.

    Ventajas

    Favorece la comunicacin entre analistas, diseadores y programadores puesto que parten del mismo marco de referencia

    (el mundo real).

    Facilita la estructuracin de problemas complejos sin necesidad de adentrarnos a modelos o normas, ya que como se viene

    mencionando las estructuras provienen del mundo real, as de esta

    forma facilita la tarea del analista.

    La semntica de esta metodologa es ms sencilla (al provenir del mundo natural) y de la misma manera permite que el usuario final

    entienda los modelos del analista (ya que previenen del mundo

    habitual que lo rodea).

    Favorece el desarrollo y mantenimiento del software.

    Desventajas

    Se tiene que ser extremadamente cuidadoso a la hora de definir los objetos ya que de ello depender el funcionamiento del programa,

    precisamente el secreto de esta tcnica est en la definicin de

    nuestros objetos.

    Los analistas, diseadores y programadores deben conocer las normas de este lenguaje, para que se pueda desarrollar de manera

    adecuada, adems de tener experiencia en este tipo de

    programacin.

    Por otro lado podemos hablar de que la POO se basa en cuatro

    conceptos fundamentales:

    1. Objeto

    2. Clase

    3. Herencia

    4. Envo de mensajes

  • Primero que nada tenemos que identificar que los tres primeros conceptos

    se refieren a la parte estructural (esttica) del modelo, y el ltimo concepto

    ya es la parte dinmica (comportamiento). Y ahora definiremos cada uno

    de estos conceptos:

    Qu es un objeto?

    Ya hablando generalmente podemos definir a un objeto o tambin

    llamado instancia, como una abstraccin conceptual del mundo real que

    puede traducirse a un lenguaje de programacin orientado a objetos. Un

    objeto puede poseer algunas caractersticas como las que mencionare a

    continuacin:

    Tienen identidad (es lo que lo distingue de los dems objetos), para

    este caso est representado por la referencia.

    Posee un estado (permite representar lo que es y cmo se

    comporta), y el estado del objeto es la liste de variables con sus

    atributos. Y el comportamiento lo podemos definir como un mtodo,

    procedimiento o funcin que un objeto puede ejecutar a solicitud

    de otro objeto.

    Qu es una clase? (molde, esquema o patrn)

    Podemos definir a las clases como un conjunto de objetos que son

    similares o semejantes, los objetos pertenecientes a una clase deben tener

    los mismos atributos (aunque pueden cambiar sus valores), posteriormente

    poseen los mismos mtodos, que como ya se mencion son los que

    definen su comportamiento. Es interesante describir que es lo que define

    una clase, es decir cul es su funcin; esta debe definir el esquema de

    datos y el comportamiento que tendrn los mtodos. Finalmente para

    concluir esta parte podemos decir que a partir de la clase se llevara a

    cabo la ejecucin del programa y la creacin de objetos.

    Qu es una herencia?

    Podemos explicar la herencia de la siguiente manera: una clase puede

    heredar atributos y mtodos a varias subclases en este caso la clase heredada es llamada superclase-, esto significa que la subclase aparte de sus mtodos y atributos propios posee mtodos y atributos de la

    superclase que fueron lo que heredo.

    Qu es el envo de mensajes?

    Este concepto se refiere a cuando los objetos quieren comunicarse entre s,

    vemoslo de esta forma, un objeto recibe una llamada externa de solicitud

    de un servicio (en este caso un mtodo), y este proceso se puede hacer de

  • manera sucesiva, se pueden llamar una y otra vez a los mtodos de otros

    objetos.

    Por mi parte considero que la Programacin Orientada a Objetos (POO), es

    una de las metodologas de programacin ms sencillas, porque como lo

    mencion en esta breve descripcin se hace uso de todo lo que tenemos

    en nuestro mundo habitual y que nos permiten un abstraccin ms clara

    de un problema a resolver, a partir de elementos comprensibles para

    nosotros y los dems.

    Bibliografa

    Introduccin a la Programacin Orientada a Objetos http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r51770.P

    DF

    Luis R. Izquierdo

    Introduccin a la Programacin Orientada a Objetos http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf