Está en la página 1de 10

Paradigma Orientado a Objetos

MODELOS ORIENTADOS A OBJETOS

Las actividades que se deben seguir para llevar un MOO son:


Identificar clases, objetos y atributos Asociar estticamente los objetos Describir el comportamiento de los objetos Definir la colaboracin del comportamiento de los objetos Organizar las clases en jerarquas de herencia y/o particionar las clases por niveles de

Agregar abstraccin

ANLISIS ORIENTADO A OBJETOS

El AOO ofrece un enfoque nuevo para el anlisis de requisitos de sistemas software .


AOO consigue una abstraccin mayor que el Anlisis estructurado.

Antes de empezar a disear un sistema es necesario realizar un estudio previo de este.

La ventaja del AOO es que se basa en la utilizacin de objetos como abstracciones del mundo real.

Qu es la Programacin Orientada a Objetos?


La P.O.O. (tambin conocida como O.O.P., por sus siglas en ingls) es lo que se conoce como un paradigma o modelo de programacin. Esto significa que no es un lenguaje especfico, o una tecnologa, sino una forma de programar, una manera de plantearse la programacin. No es la nica (o necesariamente mejor o peor que otras), pero se ha constituido en una de las formas de programar ms populares e incluso muchos de los lenguajes que usamos hoy da lo soportan o estn diseados bajo ese modelo (PHP, AS2, AS3,).
Lo que caracteriza a la POO es que intenta llevar al mundo del cdigo lo mismo que encontramos en El Mundo Real. Cuando miramos a nuestro alrededor qu vemos? pues, cosas, objetos, pero podemos reconocer estos objetos porque cada objeto pertenece a una clase, eso nos permite distinguir, por ejemplo, un perro de un auto (porque son de clases diferentes) y tambin un TV de otro (porque, aunque sean iguales, cada uno es un objeto distinto). ste es el modelo que la POO intenta seguir para estructurar un sistema. Es importante recalcar nuevamente que la POO no es un lenguaje de programacin, es una forma de enfrentarse a ella. Esto significa que la POO le servir para desarrollar en muchos de los lenguajes comunes de hoy en da (incluso en ASPuaj!) manteniendo un mismo esquema mental. Incluso le permitir enfrentar otros proyectos que no necesariamente estn relacionados con escribir cdigo (Advertencia: La P.O.O. no cura el cncer ;) )

Caractersticas de la P.O.O.:
No hay un acuerdo aceptado por todo el mundo respecto a cules son las caractersticas que definen la POO, pero al menos todos concuerdan en estas tres: Abstraccin. Encapsulacin. Herencia. Polimorfismo.

Abstraccin:
Cada vez que pronunciamos una palabra, realmente lo que hacemos es asociar ese sonido (o ese conjunto de garabatos al escribir) con una serie de cosas. Decimos que una ave es tal cosa, que una silla es tal otra, etc. Cuando vamos a aplicar la POO, lo primero que debemos hacer es cumplir con una vieja mxima de guerra: Divide y Vencers. Es decir, lo que hacemos es seccionar nuestro cdigo en grupos de cdigo ms pequeo que, al unirlos, hacen el trabajo. Un buen ejemplo de abstraccin es el cuerpo humano, aunque el cuerpo es una unidad, est dividido en lo que conocemos por sistemas (el sistema respiratorio, el sistema linftico, cardiovascular, etc., etc.). Estos sistemas, a su vez estn compuestos por otros ms pequeos: los rganos, y as sucesivamente. La abstraccin nos permite dividir nuestro programa en distintos objetos que se agrupan para formar cosas ms complejas.

Pero qu demonios es realmente la abstraccin? Bsicamente es la capacidad de separar los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.

Encapsulacin:
Tambin conocida como ocultamiento. Cuando me acuesto a ver televisin no me preocupo del modo como ste funciona, o lo que hace para cambiar de canal o aumentar el volumen. A menos que seas experto en electrnica o tcnico en televisores, te pasar lo mismo: no lo sabes y no te importa; slo sabes que al presionar un botn ocurre la magia. La encapsulacin se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dndole al programador acceso slo a lo que necesita. Esto da dos ventajas iniciales: Lo que hace el usuario puede ser controlado internamente (incluso sus errores), evitando que todo colapse por una intervencin indeseada (t no quieres que tu mam, que no tiene ni idea de electrnica, abra tu televisor y empiece a jugar con los circuitos para cambiar los canales manualmente verdad?). La segunda ventaja es que, al hacer que la mayor parte del cdigo est oculto, puedes hacer cambios y/o mejoras sin que eso afecte el modo como los usuarios van a utilizar tu cdigo. Slo tienes que mantener igual la forma de acceder a l (en el caso del control de la tele, que los botones sigan siendo los mismos y que el botn de apagado no cambie el volumen). Por cierto, estas puertas de acceso que das a los usuarios son lo que se conoce como interfaz.

Herencia:
Uno de los elementos (a mi modo de ver) ms interesantes de la P.O.O. La herencia es la capacidad que tiene una clase de derivar las propiedades y mtodos de otra (suena a chino no? Calma, lo veremos luego con paciencia ;) ). Tratemos de explicarlo con un ejemplo: Decimos que una gallina es un ave; esto quiere decir que las gallinas tienen caractersticas comunes con otras aves (pico, plumas, etc.), es decir que la gallina hereda las caractersticas comunes de todas las aves. Pero adems, resulta que un ave es un animal, lo que significa que tambin comparte caractersticas comunes al caballo, el perro, el hombre (seeee, somos animales) y cualquier otra cosa que pueda ser clasificada como animal. La herencia nos permite, entre otras cosas, evitar tener que escribir el mismo cdigo una y otra vez, puesto que al definir que una categora (que en programacin llamaremos clase) pertenece a otra, automticamente estamos atribuyndoles las caractersticas generales de la primera, sin tener que definirlas de nuevo.

Qu es una Clase?
Cuando decimos ave, sabemos que nos referimos a algo con plumas, pico, dos patas, etc. No importa realmente si hemos visto un ave o no, o si tenemos un ave frente a nosotros; entendemos claramente que la palabra ave se refiere a alguna cosa que cumple con unas caractersticas especficas, se comporta de una forma concreta, etc, etc. No es ms que una palabra, pero nos permite clasificar las cosas. Por ejemplo, sabemos que una gallina es un ave y que un perro no es un ave. La clasificacin es algo que hacemos todos los das, a cada momento (entre otras cosas, nos libra de utilizar medias como guantes o baarnos en el comedor en vez de en la ducha). Cada vez que decimos que algo es alguna cosa, estamos clasificndolo, asocindolo a una clase. Sin embargo, sabemos que la palabra ave no se refiere a un animal concreto, sino a una serie de animales. Ave es la palabra que usamos para identificarlos en un grupo, pero no podemos decir hoy har volar la palabra ave (bueno, puedes decirlo, pero estars cada vez ms cerca del manicomio), en tal caso siempre nos referiremos a esta o aquella ave, siempre hablaremos de un animal concreto. La palabra es lo que conocemos como un concepto, una abstraccin. En la POO ocurre igual, una clase no es ms que una serie de cdigo que define a todos los elementos relacionados con ella. As, podramos escribir la clase ave colocando en ella todas las caractersticas que tienen las aves (pico, color, alto, ancho, patas,) esas caractersticas las llamaremos en lenguaje de programadores, propiedades. Pero la cosa no termina all, resulta que las aves tienen tambin ciertos mecanismos especficos, como comer, dormir, reproducirse (aljate Pertvertvaz! :P ), etc. Estos mecanismos los llamamos mtodos. Por ltimo, tambin sabemos que las aves reaccionan ante ciertos sucesos, como peligro, atraccin, defensa A esto lo llamaremos eventos.

Entonces, vemos que una clase es algo as como el concepto de lo que queremos hacer, es como la idea (concebida al detalle) de la cosa, del objeto; pero igual que con las ideas, no puedo hacer nada directamente con una clase (puedes sentarte en una silla, pero no en tu idea de una silla). Sin embargo, esta idea ser la que d forma al objeto que crearemos (que tendr las caractersticas, mecanismos y comportamientos que habamos pensado en nuestra idea).

Qu es una Instancia?
Bien, decamos que una clase es como la definicin de un objeto, pero no es el objeto en s, del modo como una idea no es una cosa fsica (el ejemplo de la silla). As que para sentarnos necesitaremos convertir esa idea en algo, en un objeto real; a ese objeto lo llamamos instancia. En un mismo proyecto puedo tener una o ms instancias de una misma clase sin problemas. Cada vez que creamos una nueva instancia, sta adquiere las propiedades, mtodos y eventos de la clase a la que pertenece (es lo que permite la relacin es un), sin embargo, cada instancia es independiente de las otras; esto nos da dos ventajas: Si hago algn cambio en la clase, todas las instancias de esta clase se actualizarn automticamente; esto nos permite hacer cambios sin tener que ir a cada una de las instancias (se aplica el mismo principio de herencia, aunque a un nivel diferente). Al ser independientes de las otras instancias, puedo darles valores diferentes sin que afecten a las dems (como tener una silla negra, una roja, una ms alta, etc.). Aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al cdigo.

También podría gustarte