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

5

CAPITULO I TECNOLOGA ORIENTADA A OBJETOS


Hoy en da la tecnologa orientada a objetos ya no se aplica solamente a los lenguajes de programacin, adems se viene aplicando en el anlisis y diseo con mucho xito, al igual que en las bases de datos. Es que para hacer una buena programacin orientada a objetos hay que desarrollar todo el sistema aplicando esta tecnologa, de ah la importancia del anlisis y el diseo orientado a objetos. La programacin orientada a objetos es una de las formas ms populares de programar y viene teniendo gran acogida en el desarrollo de proyectos de software desde los ltimos aos. Esta acogida se debe a sus grandes capacidades y ventajas frente a las antiguas formas de programar.

1. Una Perspectiva Histrica La tecnologa de Objetos data de los aos 60, cuando surge la necesidad de describir y simular fenmenos como sistemas de comunicacin, redes neurales, sistemas administrativos, etc. En 1961 Krystin Nygaard con la idea de desarrollar un lenguaje de doble propsito (descripcin de sistema y simulacin programable), crea SIMULA I. Los usuarios descubrieron que tambin provea de nuevas y poderosas facilidades cuando era usado para otros propsitos, aparte de la simulacin, tales como el prototipeo y aplicaciones. En 1967 se cre SIMULA 67, y en l se implementaron por primera vez los conceptos de clase, objeto y herencia, que en adelante seran elementos centrales en los Lenguajes Orientados A Objetos. SIMULA 67 es una extensin del lenguaje ALGOL 60 y diseado en 1967 por Ole - Johan Dahl y Krystin Nygaard, de la Universidad de Oslo y del Centro de Computacin Noruego (Norsk

6 Regasentral). Sin embargo Simula, as como se le conoce actualmente, es un lenguaje de programacin de propsito general, que no es ampliamente utilizado. En 1970 se crea el SMALLTALK, ste fue el mayor desarrollo de los lenguajes orientado a objetos. El proyecto de investigacin se realiz en la Corporacin Xerox, Centro de Investigacin de Palo Alto (PARC - Palo Alto Research Center) y fue dirigido por Allan Kay. Empez en los 70s y tuvo como meta, ms que el lenguaje de programacin, una completa interfacez grfica y herramienta de desarrollo integradas. Xerox PARC fue la pionera en el desarrollo y utilizacin de los componentes estndar de las modernas interfaces grficas, como ventanas, iconos, mouse, etc. Smalltalk fue el primer lenguaje orientado a objetos, ya que trat exclusivamente con ellos; los subsecuentes, se ha basado en los conceptos utilizados por l. Smalltalk fue importante no slo por su lenguaje, sino por las herramientas de desarrollo disponibles en su ambiente, stas incluyen visualizadores de clases (class browsers) e inspeccionadores de objetos (object inspectors) . Un visualizador de clases es una poderosa herramienta, que permite editar el cdigo del programa, en una manera mucho ms conveniente y estructurada que utilizando editores convencionales. Por la estructura, inherente, bien definida por los programas orientados a objetos, el visualizador de clases es capaz de mostrar, en forma grfica, el rbol de una clase dada, permitiendo al usuario "apuntar y disparar" mtodo en particular (proceso) a ser editado. Otras ventajas del visualizador es que muchas tareas de programacin se realizan slo por mens, por ejemplo la creacin de una nueva clase modificacin de la estructura del rbol de herencia, modificacin de una estructura de una clase etc. Estas operaciones son mucho ms complejas cuando se realizan en un ambiente de edicin tradicional.

7 Herramientas como stas, son una parte integral de la "promesa" de la Tecnologa Orientada a Objetos, ya que puede simplificar la vida del programador, reduciendo el costo y el tiempo de desarrollo. En los aos 80 evoluciona el SMALLTALK y se crea ADA, lo que hizo crecer el inters en el Diseo Orientado a Objetos. En estos lenguajes la abstraccin de los datos tienen gran importancia. Los problemas del mundo real se representan mediante objetos a los cuales se le agrega operaciones cuando es necesario La TOO se fundamenta en el proceso de construccin y utilizacin de conocimientos, por lo tanto, objetos y clases son los pasos ms importantes en la bsqueda de una nueva revolucin que reemplace, esta vez, parte del esfuerzo que implica la organizacin y utilizacin del conocimiento, del mismo modo que en la primera, las mquinas reemplazaron el esfuerzo fsico del hombre y de los animales, permitiendo el vertiginoso avance del mundo. Los "Chips de Software" (Objetos y clases altamente reutilizables) sern el motor de la revolucin que ya se ha iniciado. Participar en ella garantizar nuestra competitividad en el futuro y solo nos exige todo el esfuerzo de nuestra capacidad creativa, y de la perseverancia de construir productos de alta calidad. La materia ms importante del software es la inteligencia. 2. Cules son las ventajas de un lenguaje orientado a objetos? Muchos de los beneficios son alcanzados nicamente cuando el Anlisis y Diseo son utilizados con herramientas CASE Orientadas a Objetos, basados en repositorios que generan cdigos. Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms complejos.

8 Relacionar el sistema al mundo real. Facilita la creacin de programas visuales. Construccin de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del software Lo interesante de la Programacin Orientada a Objetos es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible. Reutilizacin.- Las clases son diseadas de tal manera que ellas puedan ser reutilizadas en muchos sistemas. Para maximizar la reutilizacin las clases deben ser construidas de manera que puedan ser personalizadas. Un repositorio debera ser cargado con una coleccin de clases reutilizables. Un objetivo permanente de las tcnicas Orientadas a Objetos, es conseguir la reutilizacin masiva en la construccin de software. Estabilidad.- Las clases diseadas para la reutilizacin repetida, llegan a ser estables de la misma manera que los microprocesadores y otros chips que son bastante estables. Las aplicaciones sern construidas utilizando chips de software. El Diseador piensa de Comportamiento de Objeto, no en Niveles de Detalle. El encapsulamiento oculta los detalles y hace fcil el uso de clases complejas. Las clases son semejantes a las cajas negras. El desarrollador utiliza la caja negra sin mirar su interior. El tiene un entendimiento del comportamiento de la caja negra y cmo comunicarse con ella. Construccin de Objetos de complejidad Creciente.- Los objetos se construyen fuera de los objetos. Una buena manera de fabricar es construir tomando una lista de materiales de partes y subpartes existentes. Esto posibilita construir componentes de software complejos y los mismos se utilizarn para construir otros bloques de software ms complejos.

9 Confiabilidad.- EL software construido a partir de una librera de clases estables, es probable que se encuentre libre de errores, respecto a construir software desde el inicio. Cada mtodo en una clase es en s mismo simple y diseado para ser confiable. Verificacin de Correcciones.- El Diseo Orientado a Objetos con tcnica formal para la creacin de mtodos, puede generar potencialmente software de alta confiabilidad. Tcnicas para verificar y garantizar la operacin correcta de una clase, probablemente estn disponibles en nuevas generaciones de herramientas CASE Orientadas a Objetos. Diseo Rpido.- Las aplicaciones son creadas tomando componentes preexistentes. Muchos componentes son construidos de tal forma que, puedan ser observados, personalizados, para un diseo particular. Los componentes pueden ser vistos, customizados y enlazados en la pantalla de la herramienta CASE. Nuevos Mercados de Software.- Las compaas de software, deberan proporcionar libreras de clases para reas especficas, fcilmente adaptables a las necesidades de la organizacin. La era de los paquetes monolticos esta siendo reemplazada por software que incorpora clases y encapsula paquetes de diferentes vendedores. Diseo de Alta Calidad.- Los diseos son a menudo de alta calidad, ya que ellos se construyen a partir de componentes que han sido aprobados y refinados repetidamente. Integridad.- Las estructuras de Datos pueden ser utilizadas solamente con mtodos especficos. Esto es particularmente importante en sistemas distribuidos y sistemas CLIENTE/SERVIDOR, donde usuarios desconocidos pueden tratar de accesar al sistema. Facilidad de Programacin.- Los programas son construidos utilizando pequeas plazas de software las cuales son generalmente fciles de crear.

10

Fcil Mantenimiento.- Los programas de mantenimiento generalmente cambiarn los mtodos correspondientes a una clase. Cada clase realiza sus operaciones independientemente de otras clases. Creatividad.- Implementadores hbiles en poderosas herramientas CASE Orientadas a Objetos laborando sobre estaciones de trabajo, encuentran que puede generar rpidamente muchas ideas. Las herramientas estimulan la creacin e implementan las invenciones. La genialidad individual puede ser ms creativa. Ciclo de Vida Dinmico.- Los objetivos de desarrollo de un sistema, a menudo cambian durante la implementacin. Las herramientas CASE Orientadas a Objetos, hacen los cambios durante el ciclo de vida rpidamente. Esto permite a los diseadores de sistemas satisfacer mejor a los usuarios finales, adaptarse a los cambios, refinar los objetivos y mejorar constantemente el diseo durante la implementacin. Refinamiento durante la Construccin.- Las personas creativas cambian constantemente el diseo de su trabajo mientras se est implementando. Esto conduce a ms y mejores resultados. Los trabajos creativos objetivos, son una y otra vez refinados. Las herramientas CASE Orientadas a Objetos proporcionan a los constructores de software la capacidad para refinar el diseo durante la implementacin. Modelamiento ms realstico.- El Anlisis Orientado a Objetos modela la empresa o rea de negocio de una manera ms coherente y minuciosa que los mtodos tradicionales de anlisis. El anlisis se traslada directamente al diseo e implementacin. En tcnicas convencionales, el entorno del problema cambia cuando vamos del anlisis al diseo y del diseo a la programacin. Con tcnicas de Anlisis, Diseo e Implementacin Orientados a Objetos utiliza el mismo paradigma y lo refinan sucesivamente.

11 Interfase Grfica Seductiva al Usuario.- Se debera utilizar interfaces grficas para usuarios, tal que sta apunte al icono que relacione al objeto. Independencia de Diseo.- Las clases son diseadas independientemente de plataforma de operacin, hardware o software. Las clases emplean requerimientos y respuestas de forma. Esto permite que ellos sean utilizados con mltiples sistemas operativos, DBMS, manejadores de redes, interfaces grficas para usuarios, etc. Interoperatividad.- Software de diferentes vendedores pueden trabajar juntos. Un vendedor puede utilizar clase de otros vendedores. La interoperatividad de software de diferentes vendedores es uno de los objetivos ms importantes de los estndares de la Orientacin a Objetos. Software desarrollados independientemente en lugares separados, deberan ser capaces de trabajar juntos y presentarse como una unidad simple al usuario. Computacin Cliente / Servidor.- En el sistema Cliente / Servidor, las clases en el software cliente deberan enviar sus requerimientos a las clases de software servidor y recibir respuestas. Una clase servidor puede ser utilizada por muchos clientes. Esto puede accesar al software nicamente a travs de los mtodos (as los datos se protegen de corrupciones). Computacin masivamente Distribuida.- Redes alrededor del mundo emplearn directorios de software de objetos accesibles. El diseo orientado al objeto, es la clave para la computacin masivamente distribuida. Las clases en una mquina interactuarn con cualquier otra, sin necesidad de saber dnde residen. Ellas envan y reciben mensajes en formatos estndares. Computacin Paralela.- La velocidad de las maquinas., pueden ser ampliamente mejoradas mediante la instalacin de computadoras en paralelo. Se pueden tener procesamientos simultneos y concurrentes en mltiples chips de procesadores (eventualmente, un chip puede tener muchos procesadores). Objetos en diferentes procesadores se ejecutarn simultneamente, cada uno de ellos actuando independientemente.

12

Alto Nivel de Automatizacin de Bases de datos.- Las estructuras en Base de Datos OO, estn ligadas a mtodos que toman acciones automticas. Una Base de Datos OO, tiene su inteligencia construida en la forma de mtodos, mientras que otras bases de datos no. Performance de Mquinas.- La Bases de Datos Orientada a Objetos han demostrado una mayor performance que las bases de datos relacionales para ciertas aplicaciones con estructuras de datos ms complejas. Las bases de datos Orientados a Objetos, la computacin concurrente y el diseo Orientado a Objetos prometen mayores saltos en la performance de las mquinas LANS basadas en sistemas Cliente/Servidor. Emplearn servidores de Base de Datos concurrentes y orientadas al objeto. Migracin.- Existiendo o no aplicaciones orientadas a objetos, ellos pueden ser preservados convenientemente con una cobertura Orientada a Objetos, comunicndose entre ellos mediante mensajes estndares Orientados a Objetos. Mejores herramientas CASE.- Las herramientas Case utilizarn tcnicas grficas para disear las clases y sus interacciones, y para utilizar objetos existentes adaptados en nuevas aplicaciones. Las herramientas deberan facilitar el modelamiento en trminos de eventos, triggers (iniciadores), estado de los objetos, etc. Las herramientas de los CASE Orientados a Objetos generan cdigos tan pronto como una clase sea definida y permitir al diseador probar y utilizar el mtodo creado. Las herramientas debern ser diseadas para estimular la mxima creatividad y continuo refinamiento del diseo durante la construccin. Industriales de Libreras de Clases.- Las compaas de software comercializarn libreras para diferentes reas de aplicacin. Las libreras de clases independientes de las aplicaciones, sern tambin importantes y stas sern proporcionadas como facilidades de herramientas CASE (VIC). Libreras de Clases Corporativas.- Las corporaciones, crearn sus propias libreras de clases que reflejen sus estndares internos y requerimientos de

13 aplicacin. La identificacin TOP-DOWN de los OBJETOS del negocio, es un aspecto importante de la ingeniera de la Informacin. Los diferentes beneficios afectan a diferentes desarrolladores de diversas maneras. Examinaremos los beneficios percibidos por:

Un Inventor.- El inventor de software requiere el conjunto de herramientas del CASE Orientadas a Objetos, para generar cdigos tan rpidos como l sobre la pantalla. Fbrica de Software.- Para crear productos ricos e interesantes, el fabricante de software requiere incorporar software de otros vendedores en sus propios diseos. Jefe de Informtica.- El objetivo es ensamblar aplicaciones de alta calidad tomando partes reutilizables y utilizando un generador para todo cdigo nuevo. Un Equipo de Proyecto de Sistemas de Informacin.- Las herramientas CASE Orientadas a Objetos posibilitan al equipo ajustar continuamente o disear la aplicacin mientras se est construyendo para satisfacer las necesidades del usuario, tan fielmente como sean posibles. Un Integrador de Sistemas.- Un integrador de sistemas tiene que ver con: Construccin del Sistema de Redes. Maquinas y software de diferentes vendedores.

Un problema maysculo, es buscar que los software de los diferentes vendedores trabajen juntos. Uno de los beneficios ms importantes de la Orientacin a Objetos es su nivel de reutilizacin. Las tcnicas Orientadas a Objetos permiten alcanzar la reutilizacin de dos maneras: 1. Construir software tomando componentes (clases) que ya existen.

14 2. Crear clases modificadas utilizando herencia que les permite reutilizar

mtodos y estructuras de datos de clases de nivel superior.

CAPITULO II EL MODELO ORIENTADO A OBJETOS


1. Objetos Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos. Los objetos tienen partes pblicas y privadas llamadas miembros. Los miembros pblicos hacen lo siguiente: definen que puede ser el objeto, definen las interfaces pblicas del objeto, definen qu es el objeto (sus abstracciones). Los miembros privados hacen lo siguiente: describen la implementacin de los objetos, cmo un objeto hace lo que hace, Una clase especfica los miembros de los objetos y define cules son pblicos y cules son privados. Los objetos interactan con otros objetos para modelar el comportamiento de un sistema. Existen muchas definiciones que se le ha dado al Objeto. Primero empecemos entendiendo que es un objeto del mundo real. Un objeto del mundo real es cualquier cosa que vemos a nuestro alrededor. Digamos que para leer este artculo lo hacemos a travs del monitor y una computadora, ambos son objetos, al igual que nuestro telfono celular, un rbol o un automvil. Analicemos un poco ms a un objeto del mundo real, como la computadora. No necesitamos ser expertos en hardware para saber que una computadora est compuesta internamente por varios componentes: la tarjeta madre, el chip del procesador, un disco duro, una tarjeta de video, y otras partes ms. El trabajo en conjunto de todos estos componentes hace operar a una computadora. Internamente, cada uno de estos componentes puede ser sumamente complicado y puede ser fabricado por diversas compaas con diversos mtodos

15 de diseo. Pero nosotros no necesitamos saber cmo trabajan cada uno de estos componentes, como saber que hace cada uno de los chips de la tarjeta madre, o cmo funciona internamente el procesador. Cada componente es una unidad autnoma, y todo lo que necesitamos saber de adentro es cmo interactan entre s los componentes, saber por ejemplo si el procesador y las memorias son compatibles con la tarjeta madre, o conocer donde se coloca la tarjeta de video. Cuando conocemos como interaccionan los componentes entre s, podremos armar fcilmente una computadora. Que tiene que ver esto con la programacin? La programacin orientada a objetos trabaja de esta manera. Todo el programa est construido en base a diferentes componentes (Objetos), cada uno tiene un rol especfico en el programa y todos los componentes pueden comunicarse entre ellos de formas predefinidas. Todo objeto del mundo real tiene 2 componentes: caractersticas y comportamiento. Por ejemplo, los automviles tienen caractersticas (marca, modelo, color, velocidad mxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar llantas, etc.). Los Objetos de Software, al igual que los objetos del mundo real, tambin tienen caractersticas y comportamientos. Un objeto de software mantiene sus caractersticas en una o ms "variables", e implementa su comportamiento con "mtodos". Un mtodo es una funcin o subrutina asociada a un objeto. AUTOMVIL marca: String modelo: String color: String + frenar():void + acelerar(): void + retroceder(): void Para redondear estas ideas,

imaginemos que tenemos estacionado en nuestra cochera un Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del mundo real al mundo del software, tendremos un objeto Automvil con sus caractersticas predeterminadas:

16

Marca = Ford Modelo = Focus

Color = Azul Velocidad Mxima = 260 km/

Cuando a las caractersticas del objeto le ponemos valores decimos que el objeto tiene estados. Las variables almacenan los estados de un objeto en un determinado momento. Definicin terica: Un objeto es una unidad de cdigo compuesto de variables y mtodos relacionados. 2. Relacin Las relaciones permiten que el objeto se inserte en la organizacin y estn formadas esencialmente por punteros a otros objetos. 3. Mtodo Los mtodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarn incorporados en forma de programas (cdigo) que el objeto es capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de la herencia. Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema. Una operacin que realiza acceso a los datos. Podemos definir mtodo como un programa procedimental o procedural escrito en cualquier lenguaje, que est asociado a un objeto determinado y cuya ejecucin slo puede desencadenarse a travs de un mensaje recibido por ste o por sus descendientes.

17 Son sinnimos de 'mtodo' todos aquellos trminos que se han aplicado tradicionalmente a los programas, como procedimiento, funcin, rutina, etc. Sin embargo, es conveniente utilizar el trmino 'mtodo' para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno OOP, que afectan fundamentalmente a la forma de invocarlo (nicamente a travs de un mensaje) y a su campo de accin, limitado a un objeto y a sus descendientes, aunque posiblemente no a todos. Si los mtodos son programas, se deduce que podran tener argumentos, o parmetros. Puesto que los mtodos pueden heredarse de unos objetos a otros, un objeto puede disponer de un mtodo de dos maneras diferentes: Mtodos propios. Estn incluidos dentro de la cpsula del objeto. Mtodos heredados. Estn definidos en un objeto diferente, antepasado de ste (padre,"abuelo", etc.). A veces estos mtodos se llaman mtodos miembro porque el objeto los posee por el mero hecho de ser miembro de una clase. 4. Evento Un evento es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. 5. Propiedad o atributo Una propiedad o un atributo es un contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecucin de algn mtodo. Distingue un objeto determinado de los restantes que forman parte de la misma organizacin y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organizacin. Todo objeto puede tener cierto nmero de propiedades, cada una de las cuales tendr, a su vez, uno o varios valores. En OOP, las propiedades

18 corresponden a las clsicas "variables" de la programacin estructurada. Son, por lo tanto, datos encapsulados dentro del objeto, junto con los mtodos (programas) y las relaciones (punteros a otros objetos). Las propiedades de un objeto pueden tener un valor nico o pueden contener un conjunto de valores ms o menos estructurados (matrices, vectores, listas, etc.). Adems, los valores pueden ser de cualquier tipo (numrico, alfabtico, etc.) si el sistema de programacin lo permite. Pero existe una diferencia con las "variables", y es que las propiedades se pueden heredar de unos objetos a otros. En consecuencia, un objeto puede tener una propiedad de maneras diferentes: Propiedades propias. Estn formadas dentro de la cpsula del objeto. Propiedades heredadas. Estn definidas en un objeto diferente, antepasado de ste (padre,"abuelo", etc.). A veces estas propiedades se llaman propiedades miembro porque el objeto las posee por el mero hecho de ser miembro de una clase. 6. Estado Interno Un estado interno es una propiedad invisible de los objetos, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). 7. Clases En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo, nuestro telfono celular es slo uno de los miles que hay en el mundo. Si hablamos en trminos + llamar():void + colgar(): void de la programacin orientada a objetos, podemos decir que nuestro objeto celular es una instancia de una clase conocida como "celular". Los celulares tienen caractersticas (marca, modelo,

CELULAR marca: String modelo: String

19 sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas, enviar mensajes multimedia, transmisin de datos, etc.). Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares comparten esas caractersticas comunes y construyen modelos o plantillas comunes, para que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la llamamos OBJETOS.

CELULAR marca: String modelo: String + llamar(): void + colgar(): void Creando un objeto de la Clase Un_Objeto marca: Sagem modelo: XS + llamar(): void + colgar(): void

Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo tipo y mismas caractersticas. Definicin terica: La clase es un modelo o prototipo que define las variables y mtodos comunes a todos los objetos de cierta clase. Tambin se puede decir

20 que una clase es una plantilla genrica para un conjunto de objetos de similares caractersticas. Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad no existe diferencia entre un objeto y una instancia. Slo que el objeto es un trmino ms general, pero los objetos y las instancias son ambas representacin de una clase. Definicin Terica: Una instancia es un objeto de una clase en particular.

8. Herencia La herencia es uno de los conceptos ms cruciales en la POO. La herencia bsicamente consiste en que una clase puede heredar sus variables y mtodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y mtodos propios, tiene incorporados los atributos y mtodos heredados de la superclase. De esta manera se crea una jerarqua de herencia. Por ejemplo, imaginemos que estamos haciendo el anlisis de un Sistema para una tienda que vende y repara equipos celulares.

21

CELULAR marca: String modelo: String + llamar(): void + colgar(): void

CELULAR marca: String modelo: String + llamar(): void + colgar(): void

CELULAR marca: String modelo: String + llamar(): void + colgar(): void

En el grfico vemos 2 Clases ms que posiblemente necesitemos para crear nuestro Sistema. Esas 2 Clases nuevas se construirn a partir de la Clase Celular existente. De esa forma utilizamos el comportamiento de la Superclase. En general, podemos tener una gran jerarqua de Clases tal y como vemos en el siguiente grfico:

9. Envo de mensajes

22 Los objetos se comunican unos con otros mediante mensajes. Un objeto es intil si est aislado. El medio empleado para que un objeto interacte con otro son los mensajes. Hablando en trminos un poco ms tcnicos, los mensajes son invocaciones a los mtodos de los objetos. 10. Polimorfismo Principio en el cual objetos de diferentes clases pueden entender el mismo mensaje pero responder de manera distinta. Una vez que se tienen bien claros estos conceptos se puede entender mejor la filosofa de objetos. Ahora tratamos de encapsular los estados de los programas por medio de objetos, que pueden ser accesados solamente por medio de operaciones definidas dentro de ellos mismos. Los programas estn compuestos por varios objetos. Cada objeto tiene sus variables internas as como sus mtodos bien definidos. Un mtodo es el equivalente a un procedimiento.

CAPITULO III PROGRAMACIN ORIENTADA A OBJETOS


1. Definicin La Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) es un paradigma de programacin que define los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos), comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada a

23 objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar. De esta forma, un objeto contiene toda la informacin, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos) que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) informacin (datos) y procesamiento (mtodos). Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que ambos conceptos estn ntimamente entrelazados), el programador debe pensar indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor importancia a los atributos en favor de los mtodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen esa informacin por otro (llegando a una programacin estructurada camuflada en un lenguaje de programacin orientado a objetos). Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y despus les pasan datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo qu realicen esos mtodos en s mismos.

24

Algunas personas tambin distinguen la POO sin clases, la cual es llamada a veces programacin basada en objetos. 2. Origen Los conceptos de la programacin orientada a objetos tienen origen en Simula 67, un lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cmputo Noruego en Oslo. Segn se informa, la historia es que trabajaban en simulaciones de naves, y fueron confundidos por la explosin combinatoria de cmo las diversas cualidades de diversas naves podan afectar unas a las otras. La idea ocurri para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamiento. Fueron refinados ms tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC (y cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema completamente dinmico en el cual los objetos se podran crear y modificar "en marcha" en lugar de tener un sistema basado en programas estticos. La programacin orientada a objetos tom posicin como la metodologa de programacin dominante a mediados de los aos ochenta, en gran parte debido a la influencia de C++, una extensin del lenguaje de programacin C. Su dominacin fue consolidada gracias al auge de las Interfaces grficas de usuario, para los cuales la programacin orientada a objetos est particularmente bien adaptada. En este caso, se habla tambin de programacin orientada a eventos. Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, y otros. La adicin de estas caractersticas a los lenguajes que no fueron diseados inicialmente para ellas condujo a menudo a problemas de compatibilidad y a la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos "puros", por otra parte, carecan de las caractersticas de las cuales muchos programadores haban venido a depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a

25 objetos, pero permitiendo algunas caractersticas imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparicin de Internet, y a la implementacin de la mquina virtual de Java en la mayora de navegadores. 3. Caractersticas asociadas a la POO 3.1. Abstraccin

Representacin directa de elementos que "maneja" el usuario en el mundo real. Consiste en recrear el mundo real. No se trata de construir "modelos ideales", sino de representarlo directamente. Por ello, en este enfoque, primero se identifican las caractersticas de los elementos del mundo real, los que se organizan en las denominadas ESTRUCTURAS DE DATOS. Luego se captan los comportamientos u operaciones, los cuales se imitan o simulan mediante pequeos programas (procedimientos) a los que en adelante denominaremos METODOS. Y as como en la vida real conceptualizamos en una sola unidad (datos y comportamiento), en TO simulamos este hecho colocando en una especie de "cpsula" las estructuras de datos y los mtodos, a esta unidad denominamos OBJETO. Tambin se simula la manera en que los entes del mundo real se comunican entre s, envindose seales o "mensajes" a los que responden con una conducta o comportamiento especfico, de la misma manera se simulan las clasificaciones, ordenamiento, organizacin, e incluso la herencia de los seres vivos. En sntesis, se trata de actuar de la misma manera en que los humanos, a los que en informtica, en general, se nos denomina usuarios, "manejamos" y operamos el mundo real. La abstraccin consiste en captar las caractersticas esenciales de un objeto, as como su comportamiento. Por ejemplo, volvamos al ejemplo de los

26 automviles, Qu caractersticas podemos abstraer de los automviles? O lo que es lo mismo Qu caractersticas semejantes tienen todos los automviles? Todos tendrn una marca, un modelo, nmero de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automviles podrn acelerar, frenar, retroceder, etc. En los lenguajes de programacin orientada a objetos, el concepto de Clase es la representacin y el mecanismo por el cual se gestionan las abstracciones. Por ejemplo, en Java tenemos: public class Automovil { // variables // mtodos } 3.2. Encapsulamiento

Utilizacin del concepto de "Caja Negra" a una potencia mucho mayor. Empaquetar datos y operaciones en forma conjunta se llama ENCAPSULACION. La encapsulacin es el resultado (o acto) de ocultar, al usuario, los detalles de la implementacin de un objeto. El objeto oculta sus datos a otros objetos y slo permite accesar a sus datos va sus propios mtodos mediante mensajes especficos, es decir, se crea una " Caja Negra" que solo el constructor del objeto conoce. A esto se llama ocultamiento de informacin. La encapsulacin protege los datos de un objeto de la corrupcin. Si todos los programas pudieran accesar a los datos (como actualmente sucede con la tecnologa estructurada), fcilmente puede corromperse o perderse. La encapsulacin protege los datos del objeto del uso arbitrario y no intencionado. As la creacin est protegida y la competencia garantizada. La encapsulacin tiene dos beneficios primordiales:

27 a.- Modularidad. El cdigo de un objeto puede ser escrito y se puede mantener independiente del cdigo de otros objetos. Un objeto se puede mover de sistema en sistema, se puede quitar, modificar y volver a colocar sin alterar el sistema general. b.- Ocultamiento. Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer slo los detalles que sean necesarios para el resto del sistema. Un objeto tiene una interfaz con la que otros objetos se pueden comunicar, pero puede mantener informacin privada para s misma que puede cambiar en cualquier momento, sin afectar a los objetos que dependen de sta. El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque habr cierto comportamiento privado de la Clase que no podr ser accedido por otras Clases. Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en estos mecanismos dnde se validarn que algunas condiciones se cumplan. En Java el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y mtodos.

3.3.

Reutilizacin

Capacidad de reutilizar cdigo sin alterarlo, programando solo lo adicional o diferente. Base de la Herencia Durante la vida de un sistema, las estructuras de datos se mantienen relativamente estables, mientras que las operaciones sobre dichas estructuras cambian, dependiendo de situaciones. Por ello en el Anlisis y Diseo Orientado a Objetos, se da nfasis primordial a los DATOS y al COMPORTAMIENTO de los objetos y tipos de objetos (modelos).Los datos, como son relativamente estables, pueden ser utilizados muchas veces, modificando nicamente aquello que sea necesario para tal o cual situacin, en la misma forma se procede con los comportamientos. En cambio, en el Anlisis y Diseo Estructurado, se da nfasis

28 a la descomposicin funcional orientada al proceso, en consecuencia, cualquier modificacin requiere de una reconstruccin, normalmente, a partir de cero. 4. Lenguajes de programacin Orientado a objetos En 1985, E. Stroustrup extendi el lenguaje de programacin C a C++, es decir C con conceptos de clases y objetos, tambin por esas fechas se creo desde sus bases el lenguaje EIFFEL. En 1995 apareci el ms reciente lenguaje OO, Java desarrollado por SUN, que hereda conceptos de C++. El lenguaje de desarrollo ms extendido para aplicaciones Web, el PHP 5, trae todas las caractersticas necesarias para desarrollar software orientado a objetos. Adems de otros lenguajes que fueron evolucionando, como el Pascal a Delphi. Finalmente tambin otros lenguajes script como el ActionScript que si bien no es totalmente orientado a objetos pero s posee las caractersticas. Entre los lenguajes orientados a objetos destacan los siguientes: Ada C++ C# VB.NET Clarion Delphi Eiffel Java Lexico (en castellano) Objective-C Ocaml Oz PHP PowerBuilder Python Ruby

29 Smalltalk

No todos estos lenguajes de programacin son igualmente puros (avanzados) en orientacin a objetos. Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de programacin clsico. Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de maduracin, cada vez atrae a ms investigadores e incluso proyectos comerciales en todo el mundo.

CAPITULO IV ANLISIS Y DISEO ORIENTADO A OBJETO


Durante los ltimos aos ha ido creciendo en forma considerable el anlisis y diseo orientado a objetos. Se han publicado numerosos libros y muchas organizaciones estn listas para implementar la prctica de esta nueva tecnologa. De un tiempo para ac ha venido presentndose un inters creciente en el campo del anlisis orientado a objetos (AOO) y el diseo orientado a objetos (DOO). Este inters es debido a que la programacin orientada a objetos (POO) se ha impuesto debido a sus enormes ventajas, pero las metodologas de anlisis y diseo tradicional no son aplicables. Con la publicacin de numerosos libros, los mtodos

30 se han estabilizado y ahora las organizaciones pueden moverse con tranquilidad a esta nueva tecnologa. Hay que tener en claro la idea de que un buen anlisis puede acortar considerablemente la fase de desarrollo de programas, por ello, no se debe escatimar horas en organizar y estructurar la aplicacin en cuestin. Este mensaje no slo va dirigido para el analista - programador, sino tambin para algunos jefes de proyecto o gerente de empresas de desarrollo que se ponen literalmente nerviosos cuando ven que sus programadores estn sentados mirando el techo, "sin hacer nada", y por consiguiente, no produciendo. Este es un gran error, sin duda. Que el programador tenga en claro que lo que va hacer es bsico para que la aplicacin sea realmente atractiva y competitiva, sobre todo para el usuario, que es el objetivo principal. Vamos a ver en los prrafos siguientes en qu medida cambia el anlisis y diseo a objetos, respecto del tradicional. Primeramente, desglosemos las diferentes partes en que se divide cada uno de ellos:

Anlisis de Aplicacin Anlisis Funcional Anlisis Orientado a Objetos (AOO) Anlisis de Datos Anlisis de las Reglas del Negocio

Diseo de Aplicacin Esquema de Base de Datos Estructura de Clases (DOO) Interfaces del Usuario

31

Cuando enfocamos cualquier Aplicacin hecha en un entorno grfico, como un lenguaje visual, debemos tener presente como punto de referencia la interfaz del usuario que manejar los datos. El punto de vista del usuario es fundamental. Por tanto, cualquier suposicin pasar siempre el tamiz de la opinin del mismo. Ahora, no debemos caer tampoco en una dependencia absoluta e intentemos reconducir al usuario por donde ms nos interese. Es tarea del analista educar al usuario e informarle en un lenguaje sencillo de las posibilidades del sistema a implantar. Para el desarrollo de software orientado a objetos no basta usar un lenguaje orientado a objetos. Tambin se necesitar realizar un anlisis y diseo orientado a objetos. El modelamiento visual es la clave para realizar el anlisis OO. Desde los inicios del desarrollo de software OO han existido diferentes metodologas para hacer esto del modelamiento, pero sin lugar a duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de metodologas. Segn los mismos diseadores del lenguaje UML, ste tiene como fin modelar cualquier tipo de sistemas (no solamente de software) usando los conceptos de la orientacin a objetos. Y adems, este lenguaje debe ser entendible para los humanos y mquinas. Actualmente en la industria del desarrollo de software tenemos al UML como un estndar para el modelamiento de sistemas OO. Fue la empresa Racional que cre estas definiciones y especificaciones del estndar UML, y lo abri al mercado. La misma empresa cre uno de los programas ms conocidos hoy en da para este fin; el Racional Rose, pero tambin existen otros programas como el Poseidon que trae licencias del tipo community edition que permiten su uso libremente. El UML consta de todos los elementos y diagramas que permiten modelar los sistemas en base al paradigma orientado a objetos. Los modelos orientados a objetos cuando se construyen en forma correcta, son fciles de comunicar, cambiar,

32 expandir, validar y verificar. Este modelamiento en UML es flexible al cambio y permite crear componentes plenamente reutilizables.

CONCLUSIONES
Por qu seguimos buscando nuevas tcnicas de desarrollo? Por el aumento de la complejidad de los sistemas.

33 En un programa orientado a objetos tendremos a un conjunto de objetos colaborando entre ellos. La orientacin a objetos es paradigma de que est de moda para el desarrollo de software. Un objeto es una abstraccin conceptual del mundo real que se puede traducir a un lenguaje de programacin orientado a objetos. Un objeto del mundo real tiene caractersticas y comportamientos, y de la misma manera, un objeto del mundo del software tiene variables y mtodos. Una Clase es una plantilla que define las variables y mtodos a ser incluidas en un tipo de objeto especfico. Los objetos tambin son llamados instancias de la clase. Los objetos slo almacenan su estado. De dice que un objeto tiene estado cuando tiene valores en sus variables. Los objetos se comunican entre ellos usando los mensajes. Un mensaje es la invocacin de un mtodo del objeto. La orientacin a objetos requiere de una metodologa que integre el proceso de desarrollo y un lenguaje de modelamiento con herramientas y tcnicas adecuadas.

34

REFERENCIA
http://www.desarrolloweb.com/articulos/499.php http://java.ciberaula.com/articulo/tecnologia_orientada_objetos/ http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5040/IND.htm http://www.javahispano.org/articles.article.action?id=38 http://www.monografias.com/trabajos/objetos/objetos.shtml

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