ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION I Ciclo II-2012 UNIDAD VI: INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBETOS O!"#$i%o &# l' U(i&'&: Conocer los conceptos bsicos de la Programacin Orientada a Objetos, estudiar sus tcnicas y aplicarlas en la solucin de problemas. Co($#(i&o &# l' U(i&'&: 6.1 Programacin Orientada a Objetos 6.2 PE rente a POO 6.! "erminolog#a $sica 6.% "cnicas de la POO 6.& 'enguaje de (odelado )(' I($)o&*cci+( 'os conceptos de la Programacin Orientada a Objetos *POO+ tienen origen en ,imula 6-, un lenguaje dise.ado para /acer simulaciones con na0es areas. 'a idea surgi al agrupar los di0ersos tipos de na0es en di0ersas clases de objetos, siendo responsable cada clase de objetos de deinir sus propios datos y comportamientos. 1ueron reinados ms tarde en ,malltal2, desarrollado en ,imula en 3ero4 P56C *cuya primera 0ersin ue escrita sobre $5,7C+ pero dise.ado para ser un sistema completamente dinmico en el cual los objetos se podr#an crear y modiicar en tiempo de ejecucin en lugar de tener un sistema basado en programas estticos. 'a Programacin Orientada a Objetos se ue con0irtiendo en el estilo de programacin dominante a mediados de los a.os oc/enta, en gran parte debido a la inluencia de C88, una e4tensin del lenguaje de programacin C. ,u dominacin ue consolidada gracias al auge de las 7nteraces 9ricas de )suario (GUI), para las cuales la programacin orientada a objetos est particularmente bien adaptada. ,-1 P)o.)'/'ci+( O)i#($'&' ' O!"#$o0 'a Programacin Orientada a Objetos es un eno:ue conceptual espec#ico para dise.ar programas. Es una orma de programar dierente concentrndose sobre todo en lo :ue se re:uiere obtener y no en cmo obtenerlo. Esta tcnica, se basa en la representacin del problema en modelos de objetos #sicos o simulados; aun:ue la idea es abstracta y parece muy complicada, cuando se aplica a objetos #sicos en trminos de sus clases, componentes, propiedades y comportamiento se 0uel0e ms clara. 'a idea undamental de la orientacin a objetos y de los lenguajes :ue implementan este paradigma de programacin es combinar *encapsular+ en una sola unidad tanto los datos como las unciones :ue operan *manipulan+ sobre los datos. Esta caracter#stica permite representar los objetos del mundo real, muc/o ms eicientemente :ue con unciones y datos de orma separada o independiente *como lo /ace la Programacin Estructurada, PE+. 'a POO *Programacin Orientada a Objetos+, es un paradigma :ue utili<a objetos como elementos undamentales en la construccin de una solucin. )n objeto es una abstraccin de alg=n /ec/o ente del mundo real :ue tiene atributos :ue representan sus caracter#sticas y propiedades; y mtodos :ue representan su comportamiento. "odas las propiedades y mtodos comunes entre objetos se encapsulan o se agrupan en clases. 'as propiedades ms importantes *tcnicas+ de la POO son> 5bstraccin Encapsulamiento y Ocultacin de datos Polimorismo ?erencia 6eusabilidad o 6eutili<acin de Cdigo ,-2 P)o.)'/'ci+( E0$)*c$*)'&' F)#($# ' P)o.)'/'ci+( O)i#($'&' ' O!"#$o0 'a POO diiere de la Programacin Estructurada "radicional, en la orma en son manejados los datos y los procedimientos, en PE *datos y procedimientos+ estn separados y sin ninguna relacin entre ellos; ya :ue lo =nico :ue se busca es el procesamiento de unos datos de entrada para obtener otros de salida. 'a Programacin Estructurada anima al programador a pensar sobre todo en trminos de procedimientos o unciones, y en segundo lugar en las estructuras de datos :ue esos procedimientos manejan. Con esta tcnica de programacin, se dise.an mdulos *o unciones+, :ue procesan datos. 'os programadores :ue emplean POO, en cambio, primero deinen objetos para luego en0iarles mensajes solicitndoles :ue realicen sus mtodos por s# mismos. Para reali<ar una comparacin, se listarn las 0entajas y des0entajas de estas dos ormas de programacin> T1c(ic' &# 2)o.)'/'ci+( V#($'"'0 D#0%#($'"'0 O)i#($'&' ' O!"#$o0 3POO4 1omenta la reutili<acin del cdigo (ayor complejidad para adaptarse 1acilita la creacin de programas 0isuales @epuracin de cdigo ms compleja 5gili<a el desarrollo de sotAare Permite crear sistemas ms complejos E0$)*c$*)'&' 3PE4 ,on ms ciles de entender Cuando crece el cdigo se diiculta el manejo del cdigo uente 'a estructura de los programas es clara 'a reutili<acin de cdigo no se e4plota tanto como en la POO El mantenimiento es cil 'os blo:ues de cdigo son casi auto e4plicati0os Programas ms sencillos y rpidos de coneccionar Es ms cil reali<ar pruebas y depuracin de los blo:ues 'a Programacin Estructurada es la primera tcnica ormal de programacin *naci a inicios de los a.os 6BCs+, sigue estando en 0igencia y es muy utili<ada para iniciar el aprendi<aje de la programacin. 'a Programacin Orientada a Objetos es una mejora de la Programacin Estructurada; sin embargo, la mayor dierencia :ue e4iste entre ambas es la orma en :ue se organi<an los programas. En la actualidad se /a notado :ue muc/as personas desean aprender POO dejando de lado la PE, esto es un error, ya :ue PE es la base de POO ya :ue esta =ltima utili<a tcnicas como> modularidad, estructura de datos entre otras. Por lo tanto si se desea aprender POO primero /ay :ue dominar la PE. 'a Programacin Estructurada es ideal para reali<ar programas sencillos y para iniciar la programacin. 'a Programacin Orientada a Objetos es recomendada para resol0er problemas ms complejos y re:uiere un mayor ni0el de abstraccin del problema. ,-5 T#)/i(olo.6' B70ic' 5 continuacin se deinen algunos elementos bsicos de la Programacin Orientada a Objetos con el objeti0o de amiliari<arse con esta orma de programacin> '4 O!"#$o: es el centro de la Programacin Orientada a Objetos. )n objeto es algo :ue se 0isuali<a, se utili<a y :ue juega un papel o un rol. En POO el objeto representa alguna entidad de la 0ida real. 5 tra0s del estudio de ellos se ad:uiere el conocimiento necesario para *mediante la abstraccin y la generali<acin+ agruparlos seg=n sus caracter#sticas en conjuntos. )n objeto es cual:uier elemento del medio ambiente real del problema :ue se 0a a resol0er; posee caracter#sticas undamentales> I&#($i&'&: En programacin la identidad de los objetos sir0e para 0eriicar mediante sus caracter#sticas si dos objetos son iguales o no. Co/2o)$'/i#($o: El comportamiento de un objeto est directamente relacionado con su uncionalidad y determina las operaciones :ue este puede reali<ar o a las :ue puede responder ante mensajes en0iados por otros objetos. E0$'&o: El estado de un objeto se reiere al conjunto de los 0alores de sus atributos en un instante de tiempo dado. El comportamiento de un objeto puede modiicar el estado de ste. Cuando una operacin de un objeto modiica su estado se dice :ue esta tiene Deecto colateralD. !4 A$)i!*$o0: son las caracter#sticas indi0iduales :ue dierencian un objeto de otro y determinan su apariencia, estado u otras cualidades; son propiedades del objeto. Por ejemplo, para el objeto autom0il, algunos de sus atributos son> propietario, marca, a.o de matr#cula, potencia etc. 5tributos son los datos o 0ariables :ue caracteri<an el objeto y cuyos 0alores indican en un momento dado su estado. Para el objeto estudiante algunos de sus atributos podr#an ser> carnet, nombre, carrera, asignaturas aprobadas, etc. 'a identidad y estado de los objetos, tienen :ue 0er con los atributos, y estos pueden ser modiicados por el comportamiento de los objetos. c4 Cl'0#: es la representacin de un conjunto de objetos del mismo tipo, es decir :ue los distinguen los mismos atributos y las mismas unciones *o comportamiento+. Es la deinicin *o implantacin+ de un tipo abstracto de datos; es decir :ue una clase describe no slo los atributos de los objetos :ue la orman, sino :ue tambin incluye sus procesos *unciones o comportamiento+. ,eg=n 'uis Eoyanes 5guilar, Funa clase es una caracteri<acin abstracta de un conjunto de objetosG. &4 M1$o&o0: son las operaciones *acciones o unciones+ deinidas para los objetos, y permiten crearlos, cambiar su estado o consultar el 0alor de los atributos. Cuando se llama a una operacin de un objeto se interpreta como el en0#o de mensaje a dic/o objeto. En otras palabras, un mtodo es una subrutina asociada a una clase. 5lgunos de los dierentes tipos de mtodo :ue e4isten son los siguientes> (todo 9et *para 0er o consultar 0alores de atributos+ (todo ,et *para asignar 0alores de atributos+ (todos de actuali<acin *para cambiar 0alores por medio de clculos+ #4 R#l'cio(#0 #($)# Cl'0#0: los objetos del medio ambiente no permanecen aislados y separados unos de los otros, todo lo contrario se comunican entre s# para poder apoyarse y ayudarse entre s#. @e la misma orma las clases :ue orman parte del ambiente de un problema se relacionan entre s# y con ello se permite :ue los objetos colaboren entre s# e intercambien inormacin. 'as relaciones entre clases pueden ser las siguientes> A0oci'ci+(: Es la relacin ms importante y com=n entre clases. 6eleja una relacin entre dos cl'0#0 i(#(&i#($#0 :ue se mantiene durante la 0ida de los objetos de dic/as clases o al menos durante un tiempo prolongado. A.)#.'ci+(: Es un tipo especial de asociacin en el :ue la clase de donde parte la relacin representa el FtodoG y las clases relacionadas a sta Flas partesG. Es decir :ue las partes pueden seguir uncionando a=n sin el todo. Co/2o0ici+(: Este tipo de relacin entre clases indica dependencia entre ellas, indica :ue una clase es parte esencial de otra; es una relacin muc/o ms uerte :ue la agregacin ya :ue de eliminarse una clase, deja de e4istir la otra. @ic/o de otra orma, si la clase origen Fel todoG se elimina o destruye, las otras clases *o Flas partesG+ tambin se destruyen. D#2#(&#(ci': Esta relacin indica la necesidad de una clase /acia otra, es decir :ue la implantacin de una clase depende de otra; los mtodos u operaciones de una clase re:uiere de los atributos de los objetos de la otra clase. 8#)#(ci': 7ndica :ue una ,ubclase /ereda los mtodos y atributos especiicados por una ,uperclase, por ende la ,ubclase adems de poseer sus propios mtodos y atributos, poseer las caracter#sticas y atributos 0isibles de la ,uperclase. ,-9T1c(ic'0 &# l' POO ,-9-1 A!0$)'cci+( )na orma de reducir la complejidad de un problema o situacin es la abstraccin. 'as caracter#sticas y procesos de cual:uier sistema se resumen en los aspectos ms esenciales y rele0antes. En computacin, la abstraccin es el proceso crucial de representar la inormacin en trminos de su intera< con el usuario. )n ejemplo de abstraccin e4presada de dierentes ormas seg=n la aplicacin a desarrollar, puede ser un auto. )n auto es la composicin de dierentes partes *motor, ruedas, puertas, asientos etc.+ )n auto es un trmino com=n :ue deine a tipos dierentes de autom0iles, es decir es una categor#a :ue puede ser0ir para agrupar, por ejemplo las dierentes marcas *$(H, ,eat, "oyota entre otras+ o por su categor#a *deporti0os, clsicos, pic2Iup, etc+. ,i los miembros de autos o las dierencias entre autos indi0iduales no son rele0antes, entonces se utili<an e4presiones y operaciones tales como> se abrican autos, se usan autos para trasladarse de un lado a otro, se descompone el auto en sus partes, etc. ,-9-2 E(c'20*l'/i#($o : Oc*l$'ci+( &# D'$o0 'a encapsulacin es la reunin en una cierta estructura, de todos los elementos :ue a un cierto ni0el de abstraccin se pueden considerar pertenecientes a una misma entidad y tambin es el proceso de agrupamiento de datos y operaciones relacionadas bajo una misma unidad de programacin, lo :ue permite aumentar la co/esin de los componentes del sistema. "odos estos objetos :ue presentan caracter#sticas y comportamientos similares, se agrupan en clases las cuales son utili<adas para encapsular los datos ,-9-5 Poli/o);i0/o Es la capacidad del cdigo de un programa para ser utili<ado con dierentes tipos de datos u objetos. "ambin se puede aplicar a la propiedad :ue poseen algunas operaciones de tener un comportamiento dierente, dependiendo del objeto *o tipo de dato+ sobre el :ue se aplican. 5s#, en un lenguaje de programacin el operador F8G representa la suma de dos n=meros * 4 8 y + de dierentes tipos> enteros, lotantes. Pero tambin, el mismo operador puede deinir la operacin de sumar dos cadenas> concatenacin. @e modo similar, suponiendo un n=mero de iguras geomtricas :ue responden todas al mensaje Calcular5rea; cada objeto reacciona a este mensaje /aciendo el clculo correspondiente de la supericie, el cual diiere de una igura a otra> ,-9-9 8#)#(ci' Proporciona la acilidad de /eredarle caracter#sticas de una ,uperclase a una ,ubclase y es com=nmente utili<ada en la POO. 'a idea principal es crear una clase :ue encapsule todos los elementos o caracter#sticas generales :ue pueda y a partir de sta, /eredarle parcial o totalmente las caracter#sticas a objetos de una subclase. ,-9-< R#*0'!ili&'& o R#*$ili='ci+( &# C+&i.o ,e reiere al comportamiento y a las tcnicas :ue garanti<an :ue una parte o la totalidad de un programa inormtico e4istente se pueda emplear en la construccin de otro programa. @e esta orma se apro0ec/a el trabajo anterior, se economi<a tiempo, y se reduce la redundancia. 'a manera ms cil de reutili<ar cdigo es copiarlo total o parcialmente desde el programa antiguo al programa en desarrollo. Pero es trabajoso mantener m=ltiples copias del mismo cdigo, por lo :ue en general se elimina la redundancia dejando el cdigo reusable en un =nico lugar, y llamndolo desde los dierentes programas. Este proceso se conoce como abstraccin. 'a abstraccin puede 0erse claramente en las bibliotecas de sotAare, en las :ue se agrupan 0arias operaciones comunes a cierto dominio para acilitar el desarrollo de programas nue0os. ?ay bibliotecas para con0ertir inormacin entre dierentes ormatos conocidos, acceder a dispositi0os de almacenamiento e4ternos, proporcionar una intera< con otros programas, manipular inormacin de manera conocida *como n=meros, ec/as, o cadenas de te4to+. Para :ue el cdigo e4istente se pueda reutili<ar, debe deinir alguna orma de comunicacin o intera<. Esto se puede dar por llamadas a una subrutina, a un objeto, o a una clase. ,-<L#(.*'"# &# Mo&#l'&o UML El lenguaje utili<ado para el modelado de los sistemas utili<ando la Programacin Orientada a Objetos es el )('. 5 continuacin se encuentran los conceptos bsicos del 'enguaje )('. En la primera mitad de la dcada de los JBCs, los lenguajes de modelado :ue imperaban eran O("I2 *Object (odeling "ec/ni:ue+, creado por Eames 6umbaug/, OO,E *Object Oriented ,otAare Engineering+, creado por 70an Eacobson y $ooc/J!, creado por 9rady $ooc/. 9rady $ooc/ llam a Eames 6umbaug/ y ormaron e:uipo en una nue0a 6ational Corporation *cuyo propietario era 9rady+ con el objeti0o de usionar sus dos mtodos. En octubre de 1JJ%, 9rady y Eames comen<aron a trabajar en la uniicacin de ambos mtodos produciendo una 0ersin en borrador llamada B.K y nombre F)niied (et/odG. 5 partir de 1JJ& Eacobson se une. El primer ruto de su trabajo colecti0o se lan< en enero de 1JJ- y ue presentado como 0ersin 1.B de )('. 'a gran 0entaja de )(' es :ue ue recogiendo aportaciones de los grandes gur=s de objetos> @a0id ?asel con sus diagramas de estado; partes de la notacin de 1usion, el criterio de responsabilidadI colaboracin y los diagramas de 6ebeca HirsI$roc2, y el trabajo de patrones y documentacin de 9ammaI?elmIEo/nsonI)lissides. En 1JJ- O(9 acept )(' como estndar *0ersin 1.1+ y naci el primer lenguaje de modelado 0isual orientado a objetos como estndar abierto de la industria. En 1JJK, O(9 lan< dos re0isiones ms, 1.2 y 1.!. En el a.o 2BBB se present )(' 1.% con la importante aportacin de la semntica de accin, :ue describe el comportamiento de un conjunto de acciones permitidas :ue se pueden implementar mediante lenguajes de accin. 'a 0ersin 1.& sigui a las ya citadas. En 2BB% inali< la 0ersin 2.B con su especiicacin completa. )(' 2 es ya un lenguaje de modelado muy maduro. )(' 2 /a incorporado numerosas mejoras a )(' 1.4. 'os cambios ms importantes se /an reali<ado en el metamodelo *generador de modelos+, conser0ando los principios undamentales y e0oluti0os de las =ltimas 0ersiones. 'os dise.adores de )(' 2.B /an tenido muc/o cuidado en asegurar :ue uera totalmente compatible con las 0ersiones anteriores para :ue los usuarios de stas no tu0ieran problemas de adaptacin. 'a 0ersin )(' 2.B /a e0olucionado para superar los nue0os retos a los cuales se enrentan el sotAare y los nue0os desarrolladores de modelos. )(' signiica 'enguaje )niicado de (odelado *)niied (odel 'anguage+ y es el lenguaje estndar para el desarrollo de sistemas y de sotAare utili<ando POO. El lenguaje )(' tiene una gran aplicacin en la representacin y modelado de la inormacin :ue se utili<a en las ases de anlisis y dise.o del ciclo de 0ida de los sistemas. )n modelo es una abstraccin de cosas reales, es decir es una simpliicacin del sistema real; en pocas palabras es la representacin grica de una situacin real, mediante una simbolog#a :ue es:uemati<a clases, objetos, relaciones, etc. Entonces, si un modelo es la representacin grica de una situacin real; por lo tanto, modelado implica reali<ar un es:uema *grico o dibujo+. Con un lenguaje ormal de modelado, el lenguaje es abstracto aun:ue tan preciso como un lenguaje de programacin. Esta precisin permite :ue un lenguaje sea legible y :ue pueda ser interpretado, ejecutado y transormado entre sistemas. 'a siguiente igura presenta una orma de clasiicacin de los dierentes diagramas )('> 'os diagramas estructurados se utili<an para capturar la organi<acin #sica de las cosas del sistema. Por ejemplo, cmo se relacionan unos objetos con otros. (ientras :ue, los diagramas de comportamiento se centran en el comportamiento de los elementos de un sistema. El Mo&#lo Co(c#2$*'l se /a dise.ado para proporcionar un marco de reerencia, estructurado y claramente deinido para relacionar los datos con las necesidades de los usuarios. 'a metodolog#a utili<ada en la construccin de este (odelo tiene como primer paso, la identiicacin de los principales objetos :ue son de inters para los usuarios de la inormacin en un dominio particular. Cada uno de estos objetos cla0e, o entidades, sir0e, por tanto, como oco de un grupo de datos. )n modelo desarrollado usando estas tcnicas tambin representa la relacin entre dierentes tipos de entidad. )na 0e< :ue se /a establecido la estructura de alto ni0el para el modelo mediante la identiicacin de las entidades y las relaciones entre , el siguiente paso es identiicar las principales caracter#sticas o atributos de cada entidad. 5 un ni0el ms concreto, el modelo tambin puede describir la relacin :ue pueda e4istir entre instancias. En el dise.o de cual:uier modelo conceptual, dilucidar si algo es un atributo o una entidad independiente es una decisin cla0e. El resultado de esta decisin depende del uturo uso del atributo o entidad. 9eneralmente, las personas y los entes corporati0os son entidades independientes :ue podr#an relacionarse con las otras entidades establecidas en el citado modelo. Co(%#(cio(#0 U$ili='&'0 #( lo0 Di'.)'/'0 a+ )n rectngulo de l#nea cont#nua representa una entidad *es decir, un objeto de inters para los usuarios+. b+ )n rectngulo de l#nea punteada alrededor de un grupo de dos o ms entidades indica :ue una relacin representada por una lec/a contigua a la l#nea de puntos puede aplicarse a todas y cada una de las entidades representadas en el rectngulo. c+ )na lec/a de una punta sobre una l#nea representa una relacin en la :ue cada instancia de la entidad del otro e4tremo de la l#nea puede estar asociada con una sola instancia de la entidad a la :ue apunta la lec/a. El objeti0o de la Primera Etapa del 5nlisis de ,istemas Orientado a Objetos es desarrollar un (odelo Conceptual o Cualitati0o, del sistema de inters. )na 0e< :ue se /ayan deinido claramente los objeti0os del proyecto, se usan como base para abstraer del sistema real a:uellos componentes :ue son rele0antes para abordar las preguntas generadas. 5 medida :ue se 0an seleccionando ciertos componentes y e4cluyendo otros, se 0an deiniendo los l#mites del sistema de inters. 'uego, se clasiican los componentes del modelo de acuerdo con el rol espec#ico :ue tienen en la descripcin de la estructura del sistema y se identiican las relaciones entre los componentes :ue generan la dinmica del sistema. Posteriormente, se representa ormalmente el modelo conceptual resultante usando un diagrama de cajas y lec/as. 'as cajas representan los puntos de acumulacin de material y las lec/as representan las rutas a tra0s de las cuales el material luye en el sistema. 1inalmente, se describen los patrones esperados del comportamiento del modelo por medio de gricos :ue representan los cambios a lo largo del tiempo en los 0alores de las 0ariables del sistema :ue se consideran ms importantes. En muc/os aspectos el desarrollo del modelo conceptual es la etapa del anlisis de sistemas :ue presenta el mayor desa#o intelectual. 'a mejor base para tomar decisiones *las :ue a menudo son subjeti0as+ acerca de cules componentes se deben incluir en el modelo est dada por el conocimiento acerca del sistema real. E4isten dos estrategias generales para identiicar los componentes del modelo> una de ellas consiste en incluir pocos componentes y posteriormente a.adir a:uellos componentes cr#ticos :ue inicialmente ueron omitidos; la otra consiste en incluir todos los componentes :ue podr#an ser de importancia en la etapa inicial, para luego descartar a:uellos :ue parecen superluos. "ericamente el resultado inal de las dos estrategias deber#a ser un modelo conceptual con el grado m#nimo de complejidad :ue permita abordar el problema. En la prctica es mejor comen<ar con un modelo :ue sea lo ms simple posible. E$'2'0 &#l D#0'))ollo &#l Mo&#lo Co(c#2$*'l 1. @einir los Objeti0os del (odelo 2. @einir los '#mites del ,istema de 7nters !. Clasiicar los Componentes del ,istema de 7nters %. 7dentiicar las 6elaciones entre los Componentes del ,istema &. 6epresentacin 1ormal del (odelo Conceptual 6. @escribir los Patrones Esperados del Comportamiento del (odelo )n Di'.)'/' &# Cl'0#0 es una representacin grica de las clases de un sistema. ,ir0e para modelar el sistema en trminos de sus clases, atributos y las relaciones entre estos elementos. En el diagrama se representan los re:uerimientos y la ar:uitectura general del sistema en estudio. ,e utili<a para capturar las relaciones estticas del sotAare. Este tipo de diagramas proporcionan un medio de capturar la estructura #sica de un sistema.
Este diagrama se utili<a en la etapa de anlisis del problema y dise.o de la solucin. 'os s#mbolos ms utili<ados en este diagrama son> RECTANGULO: representa una clase, di0idido en tres partes, una para el nombre de la clase, otra para los atributos y la =ltima para los mtodos o unciones. FLEC8AS: indican la relacin :ue e4iste entre dos clases. 'as lec/as pueden ser continuas o punteadas, pueden tener punta o no y puede ser sustitu#da por rombos, seg=n sea la relacin :ue indi:ue, como se 0er ms adelante>
M*l$i2lici&'& o C')&i('li&'& #( l'0 R#l'cio(#0 &# Cl'0#0: indica el grado y ni0el de dependencia, se anotan en cada e4tremo de la relacin y stas pueden ser> *(o ' /*c>o0> 1..L *1..n+ 0 ' /*c>o0> B..L *B..n+ (?/#)o ;i"o> m *m denota el n=mero+. R#.l'0 2')' No/!)') Cl'0#0@ A$)i!*$o0 : M1$o&o0- Para poder distinguir una clase de otra, siempre es importante y necesario identiicarlos con un nombre :ue las dierencie entre s#, para los atributos y mtodos debe /acerse tambin esta distincin. E4isten las siguientes reglas bsicas o con0enciones :ue guardar para nombrarlos> 1. ,e usan letras preeriblemente, no se deben utili<ar s#mbolos. 2. 'a primera siempre 0a en may=sculas, las dems en min=sculas. !. ,i se utili<an dos o ms palabras, se escriben unidas, sin espacio y las iniciales con may=sculas *EstiloCamel+. %. 'os nombres siempre 0an en singular. &. 'os nombres de atributos y mtodos, se escriben con letras min=sculas. Para poder ejempliicar un diagrama de clases, :ue incluye las clases y sus relaciones, se 0a a ampliar un poco ms sobre las relaciones de asociacin y agregacin, :ue son las :ue se utili<an con recuencia> NombreClase Atrib utos Mto dos
A0oci'ci+( Esta relacin se establece cuando dos clases tienen una dependencia de utili<acin, es decir :ue una clase utili<a atributos yMo mtodos de otra clase para uncionar, ambas clases tienen la misma jerar:u#a, es decir :ue ninguna es parte de la otra. 'a relacin entre clases conocida como 5sociacin, permite asociar objetos :ue colaboran entre s#. Ejemplo> )n cliente puede tener asociadas muc/as Ordenes de Compra, en cambio una Orden de Compra slo puede tener asociado a un cliente. A.)#.'ci+( Con este tipo de relacin se indica :ue un objeto orma parte de otro objeto; por ejemplo si se tiene el objeto> computadora, esta tiene un monitor, :ue es otro objeto; el monitor orma parte de la computadora; por lo tanto tienen una relacin de agregacin. Esta relacin tambin es conocida como forma parte de Ejemplo> )n 5lmacn posee Clientes y Cuentas *los rombos 0an en el objeto :ue posee las reerencias, es decir el objeto :ue est ormado por los otros> el todo y las partes+. Cuando se destruye el Objeto 5lmacn tambin son destruidos los objetos Cuenta asociados, en cambio no son aectados los objetos Cliente asociados. P'0o0 2')' C)#') #l Di'.)'/' &# Cl'0#0 3Si( M1$o&o04 1. 'istar clases candidatas 2. 6epresentar las clases en un diagrama de clases !. 5gregar asociaciones %. 5gregar atributos necesarios E"#/2lo &# C)#'ci+( &# *( Di'.)'/' &# Cl'0#0: E(*(ci'&o: En un juego de dados, un jugador toma dos dados y los lan<a. 'uego, se suman los 0alores de las caras superiores de los dados. ,i el 0alor es - gana el juego, de lo contrario pierde. Notar :ue las dos clases estn unidas por una l#nea y no por una lec/a, por:ue> C*'(&o l'0 ;l#c>'0 %'( &# i=A*i#)&' ' &#)#c>' : &# '))i!' >'ci' '!'"o@ 0# 2*#&# o/i$i) l' 2*($' &# l' ;l#c>'- 5:u# las lec/as tienen punta ya :ue estn inclinadas. El )o/!o %'cio i(&ic' *(' )#l'ci+( &# '.)#.'ci+( 30i#(&o l' cl'0# Al/'c#( B#l $o&oC : l' cl'0# cli#($# )#2)#0#($' Bl' 2')$#C4- El rombo relleno indica una relacin de composicin, otro tipo de relacin. 1. 'istar clases> Euego de @ados, Eugador, @ado 5tributo de cada @ado> Oalor de la cara 6esultado es la suma de las caras 2. 6epresentar Clases en un @iagrama de Clases !. 5gregar asociaciones> Eugador lan<a @ados Eugador juega Euego de @ados @ados son parte del Euego de @ados Eugador utili<a @ado
%. 5gregar atributos> P Eugador> nombre del jugador P @ado> 0alor de la cara @e esta manera el @iagrama de clases, =nicamente con atributos y relaciones, :ueda as#> )n C'0o &# U0o es una descripcin de los pasos o las acti0idades :ue debern reali<arse para lle0ar a cabo alg=n proceso. 'os personajes o entidades :ue participarn en un caso de uso se denominan 'c$o)#0. )n Caso de )so es una secuencia de interacciones :ue se desarrollarn entre un sistema y sus actores en respuesta a un e0ento :ue inicia un actor principal sobre el propio sistema. 'os @iagramas de Casos de )so *@C)+ sir0en para especiicar la comunicacin y el comportamiento de un sistema mediante su interaccin con los usuarios yMu otros sistemas. O lo :ue es igual, un diagrama :ue muestra la relacin entre los actores y los casos de uso en un sistema. )na relacin es una cone4in entre los elementos del modelo, por ejemplo la especiali<acin y la generali<acin son relaciones. 'os @C) se utili<an para ilustrar los re:uerimientos del sistema al mostrar cmo reacciona a e0entos :ue se producen en su mbito o en l mismo. 5 continuacin se presenta la Notacin de los @C)>
En el siguiente cuadro se encuentra la Si/!olo.6' de los elementos bsicos para el dise.o )('.