Sie sind auf Seite 1von 15

CAPITULO I TECNOLOGA ORIENTADA A OBJETOS ZUHAY MILAGROS BUSTAMANTE BUSTAMANTE GRACE DEL CARMEN DIBURCIO MEDINA Hoy en da la tecnologa

orientada a objetos ya no se aplica solamente a los lenguaj es 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 orientad a 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 lo s ltimos aos. Esta acogida se debe a sus grandes capacidades y ventajas frente a l as 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 adminis trativos, 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 descu brieron 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 Lengu ajes Orientados A Objetos. SIMULA 67 es una extensin del lenguaje ALGOL 60 y disea do en 1967 por Ole - Johan Dahl y Krystin Nygaard, de la Universidad de Oslo y d el Centro de Computacin Noruego (Norsk Regasentral). Sin embargo Simula, as como s e 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 orient ado 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 p or 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. Smal ltalk fue importante no slo por su lenguaje, sino por las herramientas de desarro llo disponibles en su ambiente, stas incluyen visualizadores de clases (class bro wsers) e inspeccionadores de objetos (object inspectors) . Un visualizador de clases es una poderosa herramienta, que permite editar el cdig o del programa, en una manera mucho ms conveniente y estructurada que utilizando editores convencionales. Por la estructura, inherente, bien definida por los pro gramas orientados a objetos, el visualizador de clases es capaz de mostrar, en f orma 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 d e 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. Herramientas como stas, son una parte integral de la "promesa" de la Tecnologa Ori entada a Objetos, ya que puede simplificar la vida del programador, reduciendo e l 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 proble mas del mundo real se representan mediante objetos a los cuales se le agrega ope raciones cuando es necesario La TOO se fundamenta en el proceso de construccin y utilizacin de conocimientos, p or lo tanto, objetos y clases son los pasos ms importantes en la bsqueda de una nu eva revolucin que reemplace, esta vez, parte del esfuerzo que implica la organiza cin y utilizacin del conocimiento, del mismo modo que en la primera, las mquinas re emplazaron el esfuerzo fsico del hombre y de los animales, permitiendo el vertigi noso 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 compe titividad en el futuro y solo nos exige todo el esfuerzo de nuestra capacidad cr eativa, 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 uti lizados con herramientas CASE Orientadas a Objetos, basados en repositorios que generan cdigos. Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms complejos. 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 fielment e como sea posible. Reutilizacin.- Las clases son diseadas de tal manera que ellas puedan ser reutiliz adas en muchos sistemas. Para maximizar la reutilizacin las clases deben ser cons truidas de manera que puedan ser personalizadas. Un repositorio debera ser cargad o con una coleccin de clases reutilizables. Un objetivo permanente de las tcnicas Orientadas a Objetos, es conseguir la reutilizacin masiva en la construccin de sof tware. Estabilidad.- Las clases diseadas para la reutilizacin repetida, llegan a ser esta bles de la misma manera que los microprocesadores y otros chips que son bastante estables. Las aplicaciones sern construidas utilizando chips de software. El Dis eador piensa de Comportamiento de Objeto, no en Niveles de Detalle. El encapsulam iento 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 component es de software complejos y los mismos se utilizarn para construir otros bloques d e software ms complejos. Confiabilidad.- EL software construido a partir de una librera de clases estables , es probable que se encuentre libre de errores, respecto a construir software d esde el inicio. Cada mtodo en una clase es en s mismo simple y diseado para ser con fiable. Verificacin de Correcciones.- El Diseo Orientado a Objetos con tcnica formal para l a creacin de mtodos, puede generar potencialmente software de alta confiabilidad. Tcnicas para verificar y garantizar la operacin correcta de una clase, probablemen te estn disponibles en nuevas generaciones de herramientas CASE Orientadas a Obje tos. Diseo Rpido.- Las aplicaciones son creadas tomando componentes preexistentes. Much os componentes son construidos de tal forma que, puedan ser observados, personal izados, 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 organ izacin. 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 c onstruyen a partir de componentes que han sido aprobados y refinados repetidamen te. Integridad.- Las estructuras de Datos pueden ser utilizadas solamente con mtodos especficos. Esto es particularmente importante en sistemas distribuidos y sistema s CLIENTE/SERVIDOR, donde usuarios desconocidos pueden tratar de accesar al sist ema. Facilidad de Programacin.- Los programas son construidos utilizando pequeas plazas de software las cuales son generalmente fciles de crear. Fcil Mantenimiento.- Los programas de mantenimiento generalmente cambiarn los mtodo s correspondientes a una clase. Cada clase realiza sus operaciones independiente mente de otras clases. Creatividad.- Implementadores hbiles en poderosas herramientas CASE Orientadas a Objetos laborando sobre estaciones de trabajo, encuentran que puede generar rpida mente muchas ideas. Las herramientas estimulan la creacin e implementan las inven ciones. La genialidad individual puede ser ms creativa. Ciclo de Vida Dinmico.- Los objetivos de desarrollo de un sistema, a menudo cambi an durante la implementacin. Las herramientas CASE Orientadas a Objetos, hacen lo s cambios durante el ciclo de vida rpidamente. Esto permite a los diseadores de si stemas 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 constantemen te el diseo de su trabajo mientras se est implementando. Esto conduce a ms y mejore s resultados. Los trabajos creativos objetivos, son una y otra vez refinados. La s herramientas CASE Orientadas a Objetos proporcionan a los constructores de sof

tware la capacidad para refinar el diseo durante la implementacin. Modelamiento ms realstico.- El Anlisis Orientado a Objetos modela la empresa o rea d e negocio de una manera ms coherente y minuciosa que los mtodos tradicionales de a nlisis. El anlisis se traslada directamente al diseo e implementacin. En tcnicas conv encionales, 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 Ob jetos utiliza el mismo paradigma y lo refinan sucesivamente. 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 soft ware de diferentes vendedores es uno de los objetivos ms importantes de los estnda res de la Orientacin a Objetos. Software desarrollados independientemente en luga res separados, deberan ser capaces de trabajar juntos y presentarse como una unid ad simple al usuario. Computacin Cliente / Servidor.- En el sistema Cliente / Servidor, las clases en e l software cliente deberan enviar sus requerimientos a las clases de software ser vidor y recibir respuestas. Una clase servidor puede ser utilizada por muchos cl ientes. 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 directorio s de software de objetos accesibles. El diseo orientado al objeto, es la clave pa ra la computacin masivamente distribuida. Las clases en una mquina interactuarn con cualquier otra, sin necesidad de saber dnde residen. Ellas envan y reciben mensaj es en formatos estndares. Computacin Paralela.- La velocidad de las maquinas., pueden ser ampliamente mejor adas mediante la instalacin de computadoras en paralelo. Se pueden tener procesam ientos 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. 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, tien e su inteligencia construida en la forma de mtodos, mientras que otras bases de d atos 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 e n 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 pr eservados convenientemente con una cobertura Orientada a Objetos, comunicndose en tre ellos mediante mensajes estndares Orientados a Objetos. Mejores herramientas CASE.- Las herramientas Case utilizarn tcnicas grficas para di sear las clases y sus interacciones, y para utilizar objetos existentes adaptados

en nuevas aplicaciones. Las herramientas deberan facilitar el modelamiento en trm inos de eventos, triggers (iniciadores), estado de los objetos, etc. Las herrami entas de los CASE Orientados a Objetos generan cdigos tan pronto como una clase s ea definida y permitir al diseador probar y utilizar el mtodo creado. Las herramien tas 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 apl icaciones, sern tambin importantes y stas sern proporcionadas como facilidades de he rramientas CASE (VIC). Libreras de Clases Corporativas.- Las corporaciones, crearn sus propias libreras de clases que reflejen sus estndares internos y requerimientos de aplicacin. La iden tificacin TOP-DOWN de los OBJETOS del negocio, es un aspecto importante de la ing eniera de la Informacin. Los diferentes beneficios afectan a diferentes desarrolladores de diversas maner as. Examinaremos los beneficios percibidos por: Un Inventor.- El inventor de software requiere el conjunto de herramientas del C ASE 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 tomand o partes reutilizables y utilizando un generador para todo cdigo nuevo. Un Equipo de Proyecto de Sistemas de Informacin.- Las herramientas CASE Orientada s a Objetos posibilitan al equipo ajustar continuamente o disear la aplicacin mien tras se est construyendo para satisfacer las necesidades del usuario, tan fielmen te 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 tra bajen juntos. Uno de los beneficios ms importantes de la Orientacin a Objetos es su nivel de reu tilizacin. Las tcnicas Orientadas a Objetos permiten alcanzar la reutilizacin de do s maneras: 1. Construir software tomando componentes (clases) que ya existen. 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 pblic os hacen lo siguiente: definen que puede ser el objeto, definen las interfaces pb licas del objeto, definen qu es el objeto (sus abstracciones). Los miembros priva dos hacen lo siguiente: describen la implementacin de los objetos, cmo un objeto h ace lo que hace, Una clase especfica los miembros de los objetos y define cules so

n pblicos y cules son privados. Los objetos interactan con otros objetos para model ar el comportamiento de un sistema. Existen muchas definiciones que se le ha dado al Objeto. Primero empecemos enten diendo que es un objeto del mundo real. Un objeto del mundo real es cualquier co sa 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 telf ono celular, un rbol o un automvil. Analicemos un poco ms a un objeto del mundo real, como la computadora. No necesit amos ser expertos en hardware para saber que una computadora est compuesta intern amente por varios componentes: la tarjeta madre, el chip del procesador, un disc o 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 pue de ser fabricado por diversas compaas con diversos mtodos de diseo. Pero nosotros no necesitamos saber cmo trabajan cada uno de estos componentes, como saber que hac e cada uno de los chips de la tarjeta madre, o cmo funciona internamente el proce sador. 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 procesad or y las memorias son compatibles con la tarjeta madre, o conocer donde se coloc a 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 traba ja de esta manera. Todo el programa est construido en base a diferentes component es (Objetos), cada uno tiene un rol especfico en el programa y todos los componen tes 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 c aractersticas 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. Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cocher a un Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del m undo real al mundo del software, tendremos un objeto Automvil con sus caracterstic as predeterminadas: Marca = Ford Modelo = Focus Color = Azul Velocidad Mxima = 260 km/ Cuando a las caractersticas del objeto le ponemos valores decimos que el objeto t iene 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 r elacionados. 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 normalm ente estarn incorporados en forma de programas (cdigo) que el objeto es capaz de e jecutar 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 desen cadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamien to, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las pro piedades 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 program a 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. Son sinnimos de mtodo todos aquellos trminos que se han aplicado tradicionalmente a los programas, como procedimiento, funcin, rutina, etc. Sin embargo, es conven iente utilizar el trmino mtodo para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno OOP, que afectan fundamentalme nte 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. Pu esto que los mtodos pueden heredarse de unos objetos a otros, un objeto puede dis poner 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 o bjeto, 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 ti ene 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 corresponden a las clsic as "variables" de la programacin estructurada. Son, por lo tanto, datos encapsula dos dentro del objeto, junto con los mtodos (programas) y las relaciones (puntero s a otros objetos). Las propiedades de un objeto pueden tener un valor nico o pue den 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 pued

en heredar de unos objetos a otros. En consecuencia, un objeto puede tener una p ropiedad de maneras diferentes: Propiedades propias. Estn formadas dentro de la cpsula del objeto. Propiedades heredadas. Estn definidas en un objeto diferente, antepasado de ste (p adre,"abuelo", etc.). A veces estas propiedades se llaman propiedades miembro po rque 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 nicame nte accedida y alterada por un mtodo del objeto, y que se utiliza para indicar di stintas 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 de la programacin orientada a objetos, podemos decir que nuestro objet o celular es una instancia de una clase conocida como "celular". Los celulares t ienen caractersticas (marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas, enviar mensajes multimedia, transmi sin 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 plantilla s comunes, para que a partir de esas se puedan crear muchos equipos celulares de l mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la llamamos OBJETOS. Esto mismo se aplica a los objetos de software, se puede tener muchos objetos de l mismo tipo y mismas caractersticas. Definicin terica: La clase es un modelo o prototipo que define las variables y mtod os comunes a todos los objetos de cierta clase. Tambin se puede decir que una cla se es una plantilla genrica para un conjunto de objetos de similares caracterstica s. Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. E n realidad no existe diferencia entre un objeto y una instancia. Slo que el objet o es un trmino ms general, pero los objetos y las instancias son ambas representac in 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 subclase s (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 at ributos y mtodos heredados de la superclase. De esta manera se crea una jerarqua d e herencia. Por ejemplo, imaginemos que estamos haciendo el anlisis de un Sistema para una ti enda que vende y repara equipos celulares.

En el grfico vemos 2 Clases ms que posiblemente necesitemos para crear nuestro Sis tema. 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 sigu iente grfico:

9. Envo de mensajes 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 mensa jes. Hablando en trminos un poco ms tcnicos, los mensajes son invocaciones a los mto dos de los objetos. 10. Polimorfismo Principio en el cual objetos de diferentes clases pueden entender el mismo mensa je pero responder de manera distinta. Una vez que se tienen bien claros estos conceptos se puede entender mejor la fil osofa de objetos. Ahora tratamos de encapsular los estados de los programas por m edio de objetos, que pueden ser accesados solamente por medio de operaciones def inidas 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 proced imiento. 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", objeto s 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 objetos expresa un programa como un conjun to de estos objetos, que colaboran entre ellos para realizar tareas. Esto permit e 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 o tras 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 interac cin (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 obj etos. 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 s erie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que ambos conceptos estn ntimamente entrelazados), el programador debe pe nsar indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor i mportancia a los atributos en favor de los mtodos, ni viceversa. Hacerlo puede ll evar al programador a seguir el hbito errneo de crear clases contenedoras de infor macin 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 programa cin estructurada anima al programador a pensar sobre todo en trminos de procedimie ntos o funciones, y en segundo lugar en las estructuras de datos que esos proced imientos manejan. Los programadores de lenguajes imperativos escriben funciones y despus les pasan datos. Los programadores que emplean lenguajes orientados a ob jetos definen objetos con datos y mtodos y despus envan mensajes a los objetos dici endo qu realicen esos mtodos en s mismos. 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, u n lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen N ygaard del Centro de Cmputo Noruego en Oslo. Segn se informa, la historia es que t rabajaban en simulaciones de naves, y fueron confundidos por la explosin combinat oria de cmo las diversas cualidades de diversas naves podan afectar unas a las otr as. 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 domi nante 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 a l auge de las Interfaces grficas de usuario, para los cuales la programacin orient ada 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 exi stentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, y otros. La adi cin de estas caractersticas a los lenguajes que no fueron diseados inicialmente par a ellas condujo a menudo a problemas de compatibilidad y a la capacidad de mante nimiento del cdigo. Los lenguajes orientados a objetos "puros", por otra parte, c arecan de las caractersticas de las cuales muchos programadores haban venido a depe nder. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a objetos, pero permitiendo algunas caract ersticas imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un tem prano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido es encialmente 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. Cons iste 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 operacio nes, los cuales se imitan o simulan mediante pequeos programas (procedimientos) a

los que en adelante denominaremos METODOS. Y as como en la vida real conceptuali zamos en una sola unidad (datos y comportamiento), en TO simulamos este hecho co locando en una especie de "cpsula" las estructuras de datos y los mtodos, a esta u nidad denominamos OBJETO. Tambin se simula la manera en que los entes del mundo real se comunican entre s, e nvindose seales o "mensajes" a los que responden con una conducta o comportamiento especfico, de la misma manera se simulan las clasificaciones, ordenamiento, orga nizacin, 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 e n informtica, en general, se nos denomina usuarios, "manejamos" y operamos el mun do real. La abstraccin consiste en captar las caractersticas esenciales de un objeto, as com o su comportamiento. Por ejemplo, volvamos al ejemplo de los automviles, Qu caracte rsticas podemos abstraer de los automviles? O lo que es lo mismo Qu caractersticas se mejantes tienen todos los automviles? Todos tendrn una marca, un modelo, nmero de c hasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento to dos los automviles podrn acelerar, frenar, retroceder, etc. En los lenguajes de programacin orientada a objetos, el concepto de Clase es la r epresentacin 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 da tos 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 pe rmite accesar a sus datos va sus propios mtodos mediante mensajes especficos, es de cir, 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 obje to de la corrupcin. Si todos los programas pudieran accesar a los datos (como act ualmente sucede con la tecnologa estructurada), fcilmente puede corromperse o perd erse. La encapsulacin protege los datos del objeto del uso arbitrario y no intenc ionado. As la creacin est protegida y la competencia garantizada. La encapsulacin tiene dos beneficios primordiales: a.- Modularidad. El cdigo de un objeto puede ser escrito y se puede mantener inde pendiente del cdigo de otros objetos. Un objeto se puede mover de sistema en sist ema, se puede quitar, modificar y volver a colocar sin alterar el sistema genera l. b.- Ocultamiento. Es la capacidad de ocultar los detalles internos del comportam iento de una Clase y exponer slo los detalles que sean necesarios para el resto d el sistema. Un objeto tiene una interfaz con la que otros objetos se pueden comu nicar, pero puede mantener informacin privada para s misma que puede cambiar en cu alquier momento, sin afectar a los objetos que dependen de sta. El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Rest ringir porque habr cierto comportamiento privado de la Clase que no podr ser acced ido por otras Clases. Y controlar porque daremos ciertos mecanismos para modific

ar el estado de nuestra Clase y es en estos mecanismos dnde se validarn que alguna s condiciones se cumplan. En Java el ocultamiento se logra usando las palabras r eservadas: public, private y protected delante de las variables y mtodos.

3.3.

Reutilizacin

Capacidad de reutilizar cdigo sin alterarlo, programando solo lo adicional o dife rente. Base de la Herencia Durante la vida de un sistema, las estructuras de datos se mantienen relativamen te estables, mientras que las operaciones sobre dichas estructuras cambian, depe ndiendo de situaciones. Por ello en el Anlisis y Diseo Orientado a Objetos, se da n fasis primordial a los DATOS y al COMPORTAMIENTO de los objetos y tipos de objet os (modelos).Los datos, como son relativamente estables, pueden ser utilizados m uchas veces, modificando nicamente aquello que sea necesario para tal o cual situ acin, en la misma forma se procede con los comportamientos. En cambio, en el Anlis is y Diseo Estructurado, se da nfasis a la descomposicin funcional orientada al pro ceso, en consecuencia, cualquier modificacin requiere de una reconstruccin, normal mente, 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 toda s 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 t otalmente 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 Smalltalk

No todos estos lenguajes de programacin son igualmente puros (avanzados) en orien tacin 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 progr amacin clsico. Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin Orien tada 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 ori entado 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 anli sis 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 su s enormes ventajas, pero las metodologas de anlisis y diseo tradicional no son apli cables. Con la publicacin de numerosos libros, los mtodos se han estabilizado y ah ora las organizaciones pueden moverse con tranquilidad a esta nueva tecnologa. Hay que tener en claro la idea de que un buen anlisis puede acortar considerablem ente 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 p ara el analista - programador, sino tambin para algunos jefes de proyecto o geren te de empresas de desarrollo que se ponen literalmente nerviosos cuando ven que sus programadores estn sentados mirando el techo, "sin hacer nada", y por consigu iente, 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 atracti va 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 objet os, respecto del tradicional. Primeramente, desglosemos las diferentes partes en que se divide cada uno de ellos:

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

Diseo de Aplicacin Esquema de Base de Datos

Estructura de Clases (DOO) Interfaces del Usuario 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, c ualquier 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 u n lenguaje sencillo de las posibilidades del sistema a implantar. Para el desarrollo de software orientado a objetos no basta usar un lenguaje ori entado a objetos. Tambin se necesitar realizar un anlisis y diseo orientado a objeto s. 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 est o 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 t ipo 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 es tndar para el modelamiento de sistemas OO. Fue la empresa Racional que cre estas d efiniciones y especificaciones del estndar UML, y lo abri al mercado. La misma emp resa cre uno de los programas ms conocidos hoy en da para este fin; el Racional Ros e, pero tambin existen otros programas como el Poseidon que trae licencias del ti po community edition que permiten su uso libremente. El UML consta de todos los elementos y diagramas que permiten modelar los sistem as en base al paradigma orientado a objetos. Los modelos orientados a objetos cu ando se construyen en forma correcta, son fciles de comunicar, cambiar, expandir, validar y verificar. Este modelamiento en UML es flexible al cambio y permite c rear componentes plenamente reutilizables.

CONCLUSIONES

Por qu seguimos buscando nuevas tcnicas de desarrollo? Por el aumento de la comple idad de los sistemas. En un programa orientado a objetos tendremos a un conjunto de objetos colaborand o entre ellos. La orientacin a objetos es paradigma de que est de moda para el desarrollo de soft ware. 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 ma nera, 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 u n 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 variab les. Los objetos se comunican entre ellos usando los mensajes. Un mensaje es la invoc acin de un mtodo del objeto. La orientacin a objetos requiere de una metodologa que integre el proceso de desar rollo y un lenguaje de modelamiento con herramientas y tcnicas adecuadas.

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

Das könnte Ihnen auch gefallen