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. s 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. !a programacin orientada a objetos es una de las "ormas ms populares de programar y viene teniendo gran acogida en el desarrollo de proyectos de so"t#are desde los $ltimos aos. sta acogida se debe a sus grandes capacidades y ventajas "rente a las antiguas "ormas de programar. Una Perspectiva Histrica !a tecnoo!"a #e O$%etos data de los aos %&, cuando surge la necesidad de describir y simular "enmenos como siste&as #e co&'nicacin, re#es ne'raes, siste&as a#&inistrativos, etc. n '(%' )rystin *ygaard con la idea de desarrollar un lenguaje de doble propsito +descripcin de sistema y simulacin programable,, crea SI(ULA I) !os usuarios descubrieron que tambin provea de nuevas y poderosas "acilidades cuando era usado para otros propsitos, aparte de la simulacin, tales como el prototipeo y aplicaciones. n '(%- se cre SI(ULA *+, y en l se implementaron por primera ve. los conceptos de clase, objeto y herencia, que en adelante seran elementos centrales en los Len!'a%es Orienta#os A O$%etos. /012!3 %- es una extensin del lenguaje ALGOL *, y diseado en '(%- por Oe 4 Jo-an Da- y .r/stin N/!aar#0 de la 2niversidad de 5slo y del 6entro de 6omputacin *oruego +*ors7 8egasentral,. /in embargo /imula, as como se le conoce actualmente, es un lenguaje de programacin de propsito general, que no es ampliamente utili.ado. n '(-& se crea el S(ALLTAL.0 ste "ue el mayor desarrollo de los lenguajes orientado a objetos. l proyecto de investigacin se reali. en la Corporacin 1ero2, 6entro de 0nvestigacin de 9alo 3lto +9386 4 9alo 3lto 8esearch 6enter, y "ue dirigido por Aan .a/. mpe. en los -&:s y tuvo como meta, ms que el lenguaje de programacin, una completa inter3a4 !r53ica y -erra&ienta #e #esarroo inte!ra#as. 1ero2 PARC "ue la pionera en el desarrollo y utili.acin de los componentes estndar de las modernas inter"aces gr"icas, como ventanas, iconos, mouse, etc. S&ata6 "ue el primer lenguaje orientado a objetos, ya que trat exclusivamente con ellos; los subsecuentes, se ha basado en los conceptos utili.ados por l. /malltal7 "ue importante no slo por su lenguaje, sino por las herramientas de desarrollo disponibles en su ambiente, stas incluyen visuali.adores de clases +class bro#sers, e inspeccionadores de objetos +object inspectors, . 2n visuali.ador de clases es una poderosa herramienta, que permite editar el cdigo del programa, en una manera mucho ms conveniente y estructurada que utili.ando editores convencionales. 9or la estructura, inherente, bien de"inida por los programas orientados a objetos, el visuali.ador de clases es capa. de mostrar, en "orma gr"ica, el rbol de una clase dada, permitiendo al usuario <apuntar y disparar< mtodo en particular +proceso, a ser editado. 5tras ventajas del visuali.ador es que muchas tareas de programacin se reali.an slo por men$s, por ejemplo la creacin de una nueva clase modi"icacin de la estructura del rbol de herencia, modi"icacin de una estructura de una clase etc. stas operaciones son mucho ms complejas cuando se reali.an en un ambiente de edicin tradicional. Herramientas como stas, son una parte integral de la <promesa< de la =ecnologa 5rientada a 5bjetos, ya que puede simpli"icar la vida del programador, reduciendo el costo y el tiempo de desarrollo. n los aos >& evoluciona el S(ALLTAL. y se crea ADA0 lo que hi.o crecer el inters en el ?iseo 5rientado a 5bjetos. n estos lenguajes la abstraccin de los datos tienen gran importancia. !os problemas del mundo real se representan mediante objetos a los cuales se le agrega operaciones cuando es necesario !a TOO se "undamenta en el proceso de construccin y utili.acin de conocimientos, por lo tanto, objetos y clases son los pasos ms importantes en la b$squeda de una nueva revolucin que reemplace, esta ve., parte del es"uer.o que implica la organi.acin y utili.acin del conocimiento, del mismo modo que en la primera, las mquinas reempla.aron el es"uer.o "sico del hombre y de los animales, permitiendo el vertiginoso avance del mundo. !os <C-ips #e So3t7are< +5bjetos y clases altamente reutili.ables, sern el motor de la revolucin que ya se ha iniciado. 9articipar en ella garanti.ar nuestra competitividad en el "uturo y solo nos exige todo el es"uer.o de nuestra capacidad creativa, y de la perseverancia de construir productos de alta calidad. !a materia ms importante del so"t#are es la inteligencia. ) 8C'5es son as venta%as #e 'n en!'a%e orienta#o a o$%etos9 1uchos de los bene"icios son alcan.ados $nicamente cuando el 3nlisis y ?iseo son utili.ados con -erra&ientas CASE Orienta#as a O$%etos0 basados en repositorios que generan cdigos. @omenta la reutili.acin y extensin del cdigo. 9ermite crear sistemas ms complejos. 8elacionar el sistema al mundo real. @acilita la creacin de programas visuales. 6onstruccin de prototipos 3gili.a el desarrollo de so"t#are @acilita el trabajo en equipo @acilita el mantenimiento del so"t#are !o interesante de la Pro!ra&acin Orienta#a a O$%etos es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan "ielmente como sea posibleA Re'tii4acin.4 !as clases son diseadas de tal manera que ellas puedan ser reutili.adas en muchos sistemas. 9ara maximi.ar la reutili.acin las clases deben ser construidas de manera que puedan ser personali.adas. 2n repositorio debera ser cargado con una coleccin de clases reutili.ables. 2n objetivo permanente de las tcnicas 5rientadas a 5bjetos, es conseguir la reutili.acin masiva en la construccin de so"t#are. Esta$ii#a#): !as clases diseadas para la reutili.acin repetida, llegan a ser estables de la misma manera que los microprocesadores y otros chips que son bastante estables. !as aplicaciones sern construidas utili.ando chips de so"t#are. l ?iseador piensa de 6omportamiento de 5bjeto, no en *iveles de ?etalle. l encapsulamiento oculta los detalles y hace "cil el uso de clases complejas. !as clases son semejantes a las cajas negras. l desarrollador utili.a la caja negra sin mirar su interior. l tiene un entendimiento del comportamiento de la caja negra y cmo comunicarse con ella. Constr'ccin #e O$%etos #e co&pe%i#a# Creciente): !os objetos se construyen "uera de los objetos. 2na buena manera de "abricar es construir tomando una lista de materiales de partes y subpartes existentes. sto posibilita construir componentes de so"t#are complejos y los mismos se utili.arn para construir otros bloques de so"t#are ms complejos. Con3ia$ii#a#): ! so"t#are construido a partir de una librera de clases estables, es probable que se encuentre libre de errores, respecto a construir so"t#are desde el inicio. 6ada mtodo en una clase es en s mismo simple y diseado para ser con"iable. ;eri3icacin #e Correcciones): l ?iseo 5rientado a 5bjetos con tcnica "ormal para la creacin de mtodos, puede generar potencialmente so"t#are de alta con"iabilidad. =cnicas para veri"icar y garanti.ar la operacin correcta de una clase, probablemente estn disponibles en nuevas generaciones de herramientas 63/ 5rientadas a 5bjetos. Dise<o R5pi#o.4 !as aplicaciones son creadas tomando componentes preexistentes. 1uchos componentes son construidos de tal "orma que, puedan ser observados, personali.ados, para un diseo particular. !os componentes pueden ser vistos, customi.ados y enla.ados en la pantalla de la herramienta 63/. N'evos (erca#os #e So3t7are): !as compaas de so"t#are, deberan proporcionar libreras de clases para reas espec"icas, "cilmente adaptables a las necesidades de la organi.acin. !a era de los paquetes monolticos esta siendo reempla.ada por so"t#are que incorpora clases y encapsula paquetes de di"erentes vendedores. Dise<o #e Ata Cai#a#): !os diseos son a menudo de alta calidad, ya que ellos se construyen a partir de componentes que han sido aprobados y re"inados repetidamente. Inte!ri#a#): !as estructuras de ?atos pueden ser utili.adas solamente con mtodos espec"icos. sto es particularmente importante en sistemas distribuidos y sistemas 6!0*=B/8C0?58, donde usuarios desconocidos pueden tratar de accesar al sistema. =acii#a# #e Pro!ra&acin): !os programas son construidos utili.ando pequeas pla.as de so"t#are las cuales son generalmente "ciles de crear. =5ci (anteni&iento): !os programas de mantenimiento generalmente cambiarn los mtodos correspondientes a una clase. 6ada clase reali.a sus operaciones independientemente de otras clases. Creativi#a#): 0mplementadores hbiles en poderosas herramientas 63/ 5rientadas a 5bjetos laborando sobre estaciones de trabajo, encuentran que puede generar rpidamente muchas ideas. !as herramientas estimulan la creacin e implementan las invenciones. !a genialidad individual puede ser ms creativa. Cico #e ;i#a Din5&ico.4 !os objetivos de desarrollo de un sistema, a menudo cambian durante la implementacin. !as herramientas 63/ 5rientadas a 5bjetos, hacen los cambios durante el ciclo de vida rpidamente. sto permite a los diseadores de sistemas satis"acer mejor a los usuarios "inales, adaptarse a los cambios, re"inar los objetivos y mejorar constantemente el diseo durante la implementacin. Re3ina&iento #'rante a Constr'ccin): !as personas creativas cambian constantemente el diseo de su trabajo mientras se est implementando. sto conduce a ms y mejores resultados. !os trabajos creativos objetivos, son una y otra ve. re"inados. !as herramientas 63/ 5rientadas a 5bjetos proporcionan a los constructores de so"t#are la capacidad para re"inar el diseo durante la implementacin. (o#ea&iento &5s rea"stico): l 3nlisis 5rientado a 5bjetos modela la empresa o rea de negocio de una manera ms coherente y minuciosa que los mtodos tradicionales de anlisis. l anlisis se traslada directamente al diseo e implementacin. n tcnicas convencionales, el entorno del problema cambia cuando vamos del anlisis al diseo y del diseo a la programacin. 6on tcnicas de 3nlisis, ?iseo e 0mplementacin 5rientados a 5bjetos utili.a el mismo paradigma y lo re"inan sucesivamente. Inter3ase Gr53ica Se#'ctiva a Us'ario.4 /e debera utili.ar inter"aces gr"icas para usuarios, tal que sta apunte al icono que relacione al objeto. In#epen#encia #e Dise<o): !as clases son diseadas independientemente de plata"orma de operacin, hard#are o so"t#are. !as clases emplean requerimientos y respuestas de "orma. sto permite que ellos sean utili.ados con m$ltiples sistemas operativos, ?D1/, manejadores de redes, inter"aces gr"icas para usuarios, etc. Interoperativi#a#)4 /o"t#are de di"erentes vendedores pueden trabajar juntos. 2n vendedor puede utili.ar clase de otros vendedores. !a interoperatividad de so"t#are de di"erentes vendedores es uno de los objetivos ms importantes de los estndares de la 5rientacin a 5bjetos. /o"t#are desarrollados independientemente en lugares separados, deberan ser capaces de trabajar juntos y presentarse como una unidad simple al usuario. Co&p'tacin Ciente > Servi#or.4 n el sistema 6liente B /ervidor, las clases en el so"t#are cliente deberan enviar sus requerimientos a las clases de so"t#are servidor y recibir respuestas. 2na clase servidor puede ser utili.ada por muchos clientes. sto puede accesar al so"t#are $nicamente a travs de los mtodos +as los datos se protegen de corrupciones,. Co&p'tacin &asiva&ente Distri$'i#a.4 8edes alrededor del mundo emplearn directorios de so"t#are de objetos accesibles. l diseo orientado al objeto, es la clave para la computacin masivamente distribuida. !as clases en una mquina interactuarn con cualquier otra, sin necesidad de saber dnde residen. llas envan y reciben mensajes en "ormatos estndares. Co&p'tacin Paraea): !a velocidad de las maquinas., pueden ser ampliamente mejoradas mediante la instalacin de computadoras en paralelo. /e pueden tener procesamientos simultneos y concurrentes en m$ltiples chips de procesadores +eventualmente, un chip puede tener muchos procesadores,. 5bjetos en di"erentes procesadores se ejecutarn simultneamente, cada uno de ellos actuando independientemente. Ato Nive #e A'to&ati4acin #e Bases #e #atos.4 !as estructuras en Dase de ?atos 55, estn ligadas a mtodos que toman acciones automticas. 2na Dase de ?atos 55, tiene su inteligencia construida en la "orma de mtodos, mientras que otras bases de datos no. Per3or&ance #e (5?'inas.4 !a Dases de ?atos 5rientada a 5bjetos han demostrado una mayor per"ormance que las bases de datos relacionales para ciertas aplicaciones con estructuras de datos ms complejas. !as bases de datos 5rientados a 5bjetos, la computacin concurrente y el diseo 5rientado a 5bjetos prometen mayores saltos en la per"ormance de las mquinas !3*:/ basadas en sistemas 6lienteB/ervidor. mplearn servidores de Dase de ?atos concurrentes y orientadas al objeto. (i!racin): xistiendo o no aplicaciones orientadas a objetos, ellos pueden ser preservados convenientemente con una cobertura 5rientada a 5bjetos, comunicndose entre ellos mediante mensajes estndares 5rientados a 5bjetos. (e%ores -erra&ientas CASE): !as herramientas 6ase utili.arn tcnicas gr"icas para disear las clases y sus interacciones, y para utili.ar objetos existentes adaptados en nuevas aplicaciones. !as herramientas deberan "acilitar el modelamiento en trminos de eventos, triggers +iniciadores,, estado de los objetos, etc. !as -erra&ientas #e os CASE Orienta#os a O$%etos generan cdigos tan pronto como una clase sea de"inida y permitir al diseador probar y utili.ar el mtodo creado. !as herramientas debern ser diseadas para estimular la mxima creatividad y continuo re"inamiento del diseo durante la construccin. In#'striaes #e Li$rer"as #e Cases.4 !as compaas de so"t#are comerciali.arn libreras para di"erentes reas de aplicacin. !as libreras de clases independientes de las aplicaciones, sern tambin importantes y stas sern proporcionadas como "acilidades de herramientas 63/ +C06,. Li$rer"as #e Cases Corporativas): !as corporaciones, crearn sus propias libreras de clases que re"lejen sus estndares internos y requerimientos de aplicacin. !a identi"icacin =594?5E* de los 5DF=5/ del negocio, es un aspecto importante de la ingeniera de la 0n"ormacin. !os di"erentes bene"icios a"ectan a di"erentes desarrolladores de diversas maneras. xaminaremos los bene"icios percibidos porA
Un Inventor): l inventor de so"t#are requiere el conjunto de herramientas del 63/ 5rientadas a 5bjetos, para generar cdigos tan rpidos como l sobre la pantalla. =5$rica #e So3t7are): 9ara crear productos ricos e interesantes, el "abricante de so"t#are requiere incorporar so"t#are de otros vendedores en sus propios diseos. Je3e #e In3or&5tica.4 l objetivo es ensamblar aplicaciones de alta calidad tomando partes reutili.ables y utili.ando un generador para todo cdigo nuevo. Un E?'ipo #e Pro/ecto #e Siste&as #e In3or&acin.4 !as herramientas 63/ 5rientadas a 5bjetos posibilitan al equipo ajustar continuamente o disear la aplicacin mientras se est construyendo para satis"acer las necesidades del usuario, tan "ielmente como sean posibles. Un Inte!ra#or #e Siste&as): 2n integrador de sistemas tiene que ver conA 6onstruccin del /istema de 8edes. 1aquinas y so"t#are de di"erentes vendedores. 2n problema may$sculo, es buscar que los so"t#are de los di"erentes vendedores trabajen juntos. 2no de los bene"icios ms importantes de la 5rientacin a 5bjetos es su nivel de reutili.acin. !as tcnicas 5rientadas a 5bjetos permiten alcan.ar la reutili.acin de dos manerasA '. 6onstruir so"t#are tomando co&ponentes +clases, que ya existen. G. 6rear cases &o#i3ica#as utili.ando herencia que les permite reutili.ar mtodos y estructuras de datos de clases de nivel superior.