Вы находитесь на странице: 1из 13

UNIDAD I Introduccin al paradigma de la programacin orientado a objetos. 1.

1 Elementos del modelo de objetos: clases, objetos, abstraccin, modularidad, encapsulamiento, herencia y polimorfismo. 1.2 Lenguaje de modelado unificado: diagrama de clases.

INTRODUCCION En sus inicios, la programacin de computadoras se bas exclusivamente en el modelo imperativo (tambin denominado procedimental), que semeja ms la forma en que la mquina maneja las instrucciones u rdenes. Conforme la programacin de computadoras fue utilizndose para resolver nuevos tipos de problemas, se requiri la creacin de nuevos modelos o paradigmas para el desarrollo de las aplicaciones. La programacin orientada a objetos es una forma de concebir un programa de computadora. Se puede pensar en un programa como una lista de instrucciones que le indican a la computadora qu hacer, o un paquete de pequeos programas que responden a eventos especficos iniciados por la entrada del usuario. La programacin orientada a objetos ve a un programa como un conjunto de objetos que cooperan entre s para resolver un problema. El modelo orientado a objetos sirve para desarrollar sistemas de software con un alto grado de complejidad. Este modelo es tan importante que se cre el OMG (Object Management Group, Grupo de Administracin de Objetos, una agrupacin no lucrativa) para establecer las normas que rigen el desarrollo de software orientado a objetos. En el resto de esta unidad se estudiarn los conceptos en que se basa el modelo orientado a objetos, as como las principales razones para utilizarlo en el desarrollo de software.

1.1 Elementos del modelo de objetos: clases, objetos, abstraccin, modularidad, encapsulamiento, herencia y polimorfismo.

Objetos. Los objetos, concretos y abstractos, estn a nuestro alrededor, forman nuestro entorno. Podemos distinguir cada objeto en base a sus caractersticas y comportamientos. Por ejemplo, en el aula observamos los objetos:
y y y y y y

alumno profesor mesa silla mesabanco pizarrn

Interaccin entre objetos. Los objetos no slo tienen atributos relacionados con su forma fsica sino que, adems, exhiben comportamientos especficos de su clase. Por ejemplo:
y y y y y y

alumno: estudia, aprende. profesor: ensea, evala. mesa: ordenada, desordenada. silla: ocupada, desocupada. mesabanco: ocupado, desocupado. pizarrn: pintado, borrado.

Observamos que en el aula hay varios objetos alumno, por lo que pensamos en el grupo de alumnos, al que denominaremos como la clase Alumno. De igual manera, cada materia es impartida por un profesor; el conjunto de profesores forman la clase Profesor. Pudiramos extender nuestro anlisis al pizarrn, la mesa, la silla, al conjunto de mesabancos, etc. Los objetos externos al aula tambin pueden considerarse como elementos de diversos conjuntos, de acuerdo a sus caractersticas esenciales. As, detectamos las clases: Aula rbol

Piedra Laboratorio Auto Camin Montaa Libro

Abstraccin. Una abstraccin es una descripcin simplificada o especificacin que enfatiza algunos de los detalles o propiedades de algo. En el modelo de objetos, las caractersticas esenciales de los objetos estarn determinadas por el tipo de problema que se vaya a resolver con ellos. As, las caractersticas de un objeto que debern tomarse en cuenta para la solucin de un problema no necesariamente sern las mismas a considerar para la solucin de otro problema con el mismo objeto. Es decir, se crean modelos diferentes del objeto para resolver cada problema.

Ejemplo 1 La Direccin de Trnsito necesita un sistema para cobro de placas y tenencia, y control vehicular. En este caso, el objeto a modelar es el vehculo. Hablaremos de la clase Vehculo para considerar todos los vehculos posibles y no uno de ellos en particular. Las caractersticas esenciales a considerar de la clase Vehculo son: Origen (nacional, extranjero) Marca Modelo Color Tipo de vehculo ( automvil, camin de carga, camin de pasajeros, camioneta, etc.) Tipo de Combustible (gasolina, diesel, etc.) Uso (particular, pblico) Nmero de pasajeros Nombre del propietario Direccin del propietario

Ejemplo 2 La gerencia del taller mecnico "Servicio de Excelencia" necesita un sistema para controlar los vehculos que ingresan a sus instalaciones. El taller se especializa en automviles que utilizan gasolina como combustible. En este caso, las caractersticas esenciales de la clase Vehculo son : Marca Modelo Color Falla detectada Nombre del propietario Direccin del propietario Telfono del propietario

Encapsulamiento. El encapsulamiento ( o encapsulacin ) consiste en considerar no slo las caractersticas o propiedades de un objeto sino tambin su comportamiento o funcionalidad. Los nombres de grupos de objetos del mundo real son una Los nombres de grupos de objetos del mundo real son una especie de cdigo inventado por los humanos para representar a grupos de objetos a travs de parejas nombre:definicin. Tomemos como ejemplo el objeto denominado mesa. En base a las caractersticas ms relevantes para el usuario, la definicin de mesa es: "Mueble construido con material slido, que consiste de cuatro patas y una placa horizontal, y que sirve para colocarle objetos encima" . Esta definicin sirve para cualquier objeto de la clase Mesa. Sin ella, tardaramos demasiado tiempo en comunicar nuestra idea acerca del objeto. As, sera mas complicado decir: "Pon esto sobre el mueble construido con material slido, que consiste de cuatro patas y una placa horizontal, y que sirve para colocarle objetos encima"

que: "Pon esto sobre la mesa" Esta ltima forma obliga a que los indivduos que se comunican conozcan el nombre y la definicin del objeto; en trminos de orientacin a objetos, que conozcan sus caractersticas y su funcionamiento. De esta manera, los humanos hemos acumulado y organizado nuestro conocimiento acerca de los objetos que nos rodean, impulsados por nuestra necesidad de interactuar con ellos.

Ejemplo 1 De un televisor, el usuario conoce su apariencia y parte de su funcionamiento. Slo le importa que funcionen el selector de canales, el vdeo y el audio; no le interesa saber cmo funcionan cada una de las partes internas del aparato, esos detalles slo le interesan al fabricante y al tcnico de servicio. Ejemplo 2 De un animal no slo es necesario conocer su apariencia; tambin se requiere conocer qu sabe hacer y cmo reacciona ante determinadas situaciones.

El modelo de objetos Un modelo o paradigma consiste en una representacin de un objeto en la que se toman en consideracin aspectos de inters respecto a la apariencia y al comportamiento del objeto. El resultado de modelar un objeto es un modelo del objeto, al cual se le denomina, en la jerga de los lenguajes de programacin orientados a objetos: objeto.

Esto puede crear confusiones si no se establece claramente cundo se habla de uno u otro objeto: el del mundo real o el que resulta de aplicar el modelo de objetos. Modelo de objetos es el nombre global que reciben los elementos con que la ingeniera apoya a la tecnologa orientada a objetos. Este modelo incluye los elementos de abstraccin, encapsulamiento, modularidad, jerarqua, tipos , concurrencia y persistencia. De estos, los cuatro siguientes son fundamentales (esto es, indispensables) para considerar a un modelo como orientado a objetos: Abstraccin Encapsulamiento Modularidad Jerarqua Se consideran como elementos secundarios o no esenciales : Tipos Concurrencia Persistencia

Abstraccin

La abstraccin es una de las principales herramientas con que combatimos la complejidad. Una abstraccin denota las caractersticas esenciales de un objeto y proporciona lmites conceptuales definidos respecto a la perspectiva del observador.

En el modelo de objetos se persigue construir abstracciones que imiten directamente el vocabulario de un determinado dominio de problema, por lo que el problema central del diseo orientado a objetos es tomar la decisin acerca del conjunto adecuado de abstracciones para ese dominio. Ejemplo: Para el Taller de Mantenimiento, el objeto mesabanco consiste en un mueble compuesto por un armazn, un asiento, un respaldo y una paleta. De estos elementos es importante conocer sus dimensiones, el material de que estn hechos y su color.

As, los atributos de la clase MesaBanco seran: MaterialArmazn materialAsiento materialRespaldo longitudArmazn largoAsiento anchoAsiento largoRespaldo anchoRespaldo

colorArmazn colorAsiento colorRespaldo Para la Oficina de Control de Inventario, el mismo objeto mesabanco se modela tomando en consideracin: clave del mueble, descripcin del mueble, departamento al que est asignado, nombre de la persona que lo tiene a su resguardo, y costo del mueble. En este caso, la clase MesaBanco tendra los siguientes atributos : clave descripcin costo departamento nombreResguardo Comportamientos Los objetos no solamente poseen atributos, sino que tambin exhiben comportamientos que manifiestan al interactuar con otros objetos en un esquema cliente/servidor, donde un cliente es cualquier objeto que utiliza los recursos de otro objeto denominado servidor. Modelo contractual de programacin La vista exterior de cada objeto define un contrato del que pueden depender otros objetos. Tal contrato establece todas las suposiciones que puede hacer un objeto cliente acerca del comportamiento que debe ser llevado a cabo por la vista interior de un objeto servidor. Cada operacin que contribuye al contrato tiene una sola firma compuesta por todos sus argumentos formales y tipo de retorno. Al conjunto completo de operaciones que puede realizar un cliente sobre un objeto se le denomina su protocolo. El protocolo denota las formas en las que un objeto puede actuar y reaccionar, constituyendo la visin externa completa, esttica y dinmica de la abstraccin. Siguiendo con el ejemplo del objeto servidor mesabanco podemos tomar la decisin de diseo de asignarle las responsabilidades de saber cundo est ocupado y responder al cliente si lo est o no.

Las operaciones del cliente sobre el mesabanco son: ocuparlo o desocuparlo y preguntar si est ocupado o no. Encapsulamiento

El modelo de objetos maneja en un slo paquete los atributos y comportamientos de los objetos, por medio de un principio denominado encapsulamiento. La abstraccin y el encapsulamiento son conceptos complementarios: la abstraccin se centra en el comportamiento observable de un objeto, mientras que el encapsulamiento se centra en la implementacin que da lugar a ese comportamiento. El encapsulamiento es el proceso de almacenar en un mismo compartimento los elementos de una abstraccin que constituyen su estructura y su comportamiento; sirve para separar la interfaz contractual de una abstraccin y su implementacin.

El encapsulamiento se consigue, a menudo, mediante la ocultacin de informacin. Generalmente, la estructura de un objeto est oculta, as como la implementacin de sus mtodos.

Modularidad

La modularidad es la descomposicin de un sistema en un conjunto de mdulos cohesivos y dbilmente acoplados.

La descomposicin de un sistema en componentes individuales ayuda a manejar la complejidad. Sin embargo, una descomposicin desordenada puede producir un efecto contrario que se puede contrarrestar reagrupando los componentes en mdulos o paquetes. Cada mdulo debe contener componentes con caractersticas afines, de tal manera que faciliten la produccin de la arquitectura fsica de un sistema. En el diseo orientado a objetos, la modularizacin consiste en decidir dnde colocar fsicamente las clases y objetos a partir de la estructura lgica del diseo. Debe propiciarse que los mdulos se diseen y revisen independientemente. La estructura de cada mdulo debe ser lo bastante simple como para ser comprendida en su totalidad, haciendo posible cambiar su implementacin sin saber nada de la implementacin de los dems mdulos y sin afectar el comportamiento de stos.

Jerarqua La jerarqua es una clasificacin u ordenacin de abstracciones. La estructura de clases se representa por medio de una jerarqua que muestra la relacin de herencia es un. Clase En las etapas de anlisis y diseo, una clase es un conjunto de objetos que comparten caractersticas y comportamientos comunes entre s.

Herencia La herencia define la relacin entre clases es un, donde una subclase hereda de una o ms superclases.

La herencia implica una jerarqua de generalizacin/especializacin, en la que una subclase especializa el comportamiento y/o la estructura, mas general, de sus superclases. Herencia simple La herencia simple se da cuando, en una jerarqua de clases, las subclases solamente pueden heredar de una superclase. Herencia mltiple A diferencia de la herencia simple, en la herencia mltiple las subclases pueden heredar de ms de una superclase.

Polimorfismo

La palabra polimorfismo tiene como origen las palabras griegas poli (muchos) y morfos (formas) y se utiliza para indicar que un nombre puede denotar instancias (objetos) de clases diferentes que estn relacionadas por alguna superclase comn. El polimorfismo puede considerarse como la caracterstica ms potente de los lenguajes orientados a objetos, despus de su capacidad para soportar la abstraccin. Existe polimorfismo cuando interactan las caractersticas de herencia y enlace dinmico. Enlace esttico y enlace dinmico El enlace esttico ( denominado tambin enlace temprano) consiste en la asignacin esttica de tipos a todas las variables y expresiones, en tiempo de compilacin. El enlace dinmico ( denominado tambin enlace tardo) consiste en asignar, en tiempo de ejecucin , los tipos a las variables y expresiones.

Вам также может понравиться