Diseo Orientado a Objetos 6.1 Anlisis de la estructura de objetos (AEO) Denelascategorasdelosobjetos quepercibimos y las formas en quelas asociamos. En esta etapa identicamos: Queson los tipos deobjetos y como seasocian ? Se representan mediante esquemas de objetos. Sirve para guiar en la denicin de clasesy estructurasde datos. Como seorganizan lostiposdeobjetosen subtipos y supertipos ? Se organizan endiagrama e indican lasdirecciones deherencia. Cual es la composicin de losobjetos complejos ? Seelaborandiagramadejerarquay quienenladenicindemecanismosquecontrolen adecuadamentea los objetos dentro de otro objetos. 6.1.1 Asociaciones de Objetos Tambin es importante modelar la forma como los objetosseasocian entresi.- En el anlisis, estil nombrar alguna forma a lasasociacioneseindicar la cantidadde objetosde un tipo dado quesedebeasociar con los objetos deotro tipo, puesto que esto leda signicado y aumenta la comprensin dela asociacin. Aunqueenlagura6-01ilustralasasociacionesentredostiposdeobjetos, noseindica el signicado de la asociacin. Adems del signicado, tampoco se indica la cantidad de objetosconlos queun objeto dado puedey debeasociarse. En el anlisis, estil nombrar dealguna forma las asociacionese indicar la cantidad de objetos deun tipo dado que se deben asociar con losobjetos de otro tipo puesto que esto leda signicado y aumenta la comprensin dela asociacin, vase la gura 06-02. 176 CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS177 IBM OIT NEC omar aide julia Organizacion Personas Representa tipos de Objetos Represetna una asociacin Asociacin entre un objeto organizacin llamado OIT y un objeto persona llamado Aide Figura~6.1: Los objetosde un tipo seasocian con los objetos deotrostipos. PEDIDO ELEMENTOS DEL RENGLON PRODUCTO CLIENTE ORDENA ORDENADO POR CONTIENE UN PEDIDO ES ORDENADO POR UN SOLO CLIENTE Un cliente ordena desde cero hasta muchos pedidos Un pedido contiene desde uno hasta varios artculos de lnea Figura~6.2: Asocicin con objetosdeterminadosy restricciones 6.1.2 Estndares recomendados de diagramacin Los diagramas deben aparecer en las herramientas CASE OO, estas herramientas deben recoger la informacin sucientepara impulsar a un generador de cdigos a producir un cdigo libredeerrores de sintaxis. Por lo tanto, los diagramas deben tener una precisin del tipo dela ingeniera. LosdiagramasconvencionalesseutilizanampliamenteenasherramientasCASE. Enla medida delo posible, losdiagramas para lastcnicasOO deben incorporar losempleados en las tcnicasconvencionales. Losdiagramas queutilizamospara losprocesoscomplejos son una forma delenguaje. Con las computadoras, creamos procesos ms complejos que los que llevamos a cabo en forma manual. Losdiagramas adecuadosnosayudan a visualizar eidear esosprocesos. Si solouna persona desarrollael diseo deun sistema odeunprograma, losdiagramas CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS178 que utiliza le ayudan a aclarar su pensamiento. Una mala eleccin en las tcnicas de diagramacinllegaainhibir el pensamiento; encambio, una buena eleccinpuedeacelerar el trabajo y mejorar los resultados. Cuando varias personas trabajan en un sistema o en un programa, los diagramas son herramienta esencial para la comunicacin. Adems, al modicarse los sistemas, los diagramasclaros pueden facilitar el mantenimiento. Unretovital paralossistemasdeinformacindelaactualidadesmejorar lacomunica- cinentreprofesionalesdelossistemasy losempresarios. Losprofesionalesdelossistemas debencomprender laempresaeidear laformaenquedebecambiar. Losempresariosdeben pensar en forma msclara acerca delos sistemasy la automatizacin. Losdiagramasy su manejo mediantecomputadorasonuna forma deproceso del pen- samiento. El analista, el diseador, el programador, el usuario y el ejecutivo necesitan una familia detipos de diagramas que les ayuden a pensar con claridad, estos diagramas deben ser claros y sencillos, y deben ser lo bastante completos y rigurosos como para servir de base a la generacin de cdigo, as como para la conversin automtica de un tipo dediagrama enotro. Losdiagramasson ladocumentacindelos sistemas(junto con los depsitos, que almacenan el signicado de los diagramas y la informacin adicional recolectada cuando fueron trazados). Losdiagramapara el diseodesistemasson unlenguajedecomunicacin. Lasbuenas herramientas CASE obligan a la precisin de este lenguaje. Como en los otros lengua- jes, se deben aplicar estndares de modo que se puedan comunicar las diversas partes. Los diseadores deben evitar idear sus propias formas de diagramacin. Los investiga- dores deben utilizar las tcnicas de diagramacin existentes cuando sean aplicables. La diagramacin incompatiblees una barrera para la comunicacin. Se cuenta con una gran cantidad de smbolos de uso comn en los diagramas con herramientas CASE que utilizan tcnicas convencionales, como tambin smbolos que se utilizanparael anlisisy diseoorientadoaobjetosy queamplanel conjuntodesmbolos. Normalmentelosnodosquerepresentan datossedibujan como rectnguloscon esqui- nasrectangulares(c(campos, tipodeente, etc.) y loscuadrosquerepresentanactividades, sedibujan con cuadros con esquinas redondeadas (procedimientos, procesos, mdulos de programas, etc.). Del mismo modoserecomienda quelasclasesy lostiposdeobjetosserepresentencon cuadrosdeesquinas rectangulares y lasactividades concuadrosde esquinasredondeadas. FACTURA Lanzar Misil Figura~6.3: a) Clase, objeto o dato b) Proceso u operacin Para representar la realidad en si en los diagramas, por ejemplo para representar objetos fsicos que setrasladan deun proceso a otro seutilizan cuadros tridimensionales u otrasgurasquerepresenten el objeto. Losobjetosy lasoperacionesexternasal sistema, peroqueafectanal mismo, sedibujan como cuadrossombreados. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS179 PRODUCTO Figura~6.4: Representan la realidad (Objetosfsicos) CLIENTE El Cliente paga el pedido Figura~6.5: Operaciones externas Las lneas que unen los nodos representan conceptos como asociaciones, descomposi- cin, ujo, dependencia del tiempo y reglasde activacin. A vecesindicanladireccindel procesamiento. Por ejemploenuneventopuedeindicar queunaoperacin debeocurrir antesqueotra, o en un diagrama deactivacin indica que laocurrenciadeuneventoesanterior aunaoperacinycausael llamadodeunaoperacin. En un caso esprecedencia, en el otro indica causalidad. Cuando un nodo queda asociado con uno y solo un grupo de nodos se denomina exclusividad mutua y se representa mediante una lnea de ramicacin con un crculo relleno en esa ramicacin. La exclusividad mutua tambin puede ser representado como una caja con divisiones. Esta forma derepresentacin de la exclusividad mutua secapitaliza para la represen- tacin de la generalizacin, desdeel punto de vista OO. Por ejemplo, si colocamos bienes y servicios en una particin, indicamoscon ello que estostienen atributos y operaciones comunes. Por ejemplo, todoslosproductostienen un clavenica (identicacindel producto) y participan en lasoperacionesdeprocesamiento de pedidos. Si no identica un supertipo comn, el analista corre el riesgo de denir atributosy operaciones redundante.. El termino restricciones de cardinalidad se reere a la restriccin de la cantidad de elementos que se pueden asociar con otro. Uno a Muchos. La pata de gallo indica que una o mas instancias de B se pueden asociar conuna instancias deA. Uno a uno. Uno instancia de B se asocia con uno instancia de A. Figura~6.6: CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS180 Preparar material Proceso A Proceso B Proceso C El circulo, como una "o", indica que sigue una y solo una de las tres operaciones Figura~6.7: Exclusividad mutua Cardinalidad nula. Un cero como parte del smbolo de restriccin de cardinalidad indica que una instancia de un tipo de objeto no queda asociado con una instancia de otro tipo. En otras palabras, un objeto deuntipo puede tener asociacionesnulas con los objetosde otro tipo. Cardinalidadmxima y mnima. El mximo secoloca siemprejuntoa la caja (rectn- gulo) a la quese reere. Cuando el mximo y el mnimo son iguales a 1, se colocan dos barras! en la lnea, estasindican uno y solo uno. La gura siguientemuestra objetosy sus asociacionescon cardinalidad A A A A A A A A A A Minimo Maximo 0 1 1 1 0 Ms de 0 1 Ms de 1 Ms de 1 Ms de 1 Figura~6.8: Casos decardinalidad El etiquetado de lneas. En algunos diagramas las lneas tienen una etiqueta. Las lneasentrelostiposde eventosy las operaciones son unidireccionales. Por otro lado, las lneasentrelas cajas delostiposde objetos son por lo general bidireccionales. La lnea se puede leer en cualquier direccin. Solo se necesita etiquetar las lneas en CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS181 una direccin, aunque se recomienda etiquetar todas las asociaciones entre los tipos de objetos. Una etiqueta sobre una lnea horizontal es el nombre de la asociacin, cuando se lee de izquierda a derecha. Una etiqueta debajo de una lnea horizontal es el nombre de la asociacin, cuando seleedederecha a izquierda. Jaula Animal contiene vive en Una celda contiene cero o mas preso Un preso vive en una celda Figura~6.9: Forma delectura delasasociaciones Cuando los diagramas se tornas complejos se utiliza el anidamiento de los mismos. Variosbloques o lneas adyacentes pueden comprimirseen un bloque o lnea. Tambin se pueden utilizar ventanas para cuando se utilizan distintos tipos de ideas o representaciones. Es decir combinar diagramas de eventos con diagramas de objetos o viceversa. 6.1.3 J erarqua de generalizacin Unadelasvasdesentidocomnpor loqueel hombreorganizasuvolumendeconocimiento es el de lasjerarquas, delo masgeneral a lo mas especico. Un tipo deobjeto puedetener subtipos, sub-subtipos, etc. Normalmentecadatipono tienemasde un supertipo(ver gura06-11), sinembargotambinpodemosencontrar queuntipotenga variossupertipo, lo queimplica quelajerarquadegeneralizacinno necesariamentedebe ser una jerarqua de rbol. Las jerarquas de generalizacin son importantes para el desarrollador OO por dos razones. La primera es queel uso de supertipos y subtipos proporciona una herramienta til para describir el mundo del sistema de aplicacin. La segunda es que indica las direccionesdeherencia entrelas clasesen los lenguajesde programacin. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS182 Persona Empleado Estudiante Licenciatura Ingenieria Fig. 06-11: Jerarquia de generalizacin Figura~6.10: J erarquia deGeneralizacin 6.1.4 Subtipos y Supertipos Como ya seha dicho, los tipos deobjetos pueden tener tipos ms particulares, llamados subtipos y tiposmsgenerales, llamadossupertipos. Una particin desubtipos puede ser una particin completa si contienetodoslossub- tipos posibles; o bien, una particin incompleta si hay ms subtipos. Un rea vaca en la parte inferior de la caja departicin indica una particin incompleta. A B Esta caja representa subtipos mutuamente exclusivos La barra en la parte inferior indica que no esta completa Figura~6.11: Supertipo/ Subtipo Un tipo deobjeto puede tener muchos subtipos diferentes. 6.1.5 Diagramas de Ramicacin Lageneralizacinserepresenta, comoyahemosvisto, por locomn, medianteundiagrama de ramicacin, como en la gura 06-14. Este diagrama avanza de izquierda a derecha y, por lo general no tienen echas. Puesto que la herencia se basa en la generalizacin, los diagramas son tiles, ya que indican la direccin de la herencia. Sin embargo, no muestran lo que se hereda ni como funcionar el mecanismo de herencia dentro de un CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS183 lenguajedeprogramacinOOdado. Por lo tanto, losdiagramasquemuestranlajerarqua detipo/ subtipo sellaman jerarquas degeneralizacin en vez dejerarquasde herencia. Algunas veces un diagrama de ramicacin muestra instancias deobjetos. La instan- ciasseunen a su tipo deobjeto mediante lneaspunteadas. Persona Militar Civil SubOficial Oficial Figura~6.12: Diagramas deRamicacin 6.1.6 J erarqua Compuestas Algunos tipos deobjetosseconsideran complejos, por quequeremosindicar quedetermi- nados objetos estn formadospor otros. En el anlisisOO, la composicindeunobjeto nosayuda adescribir el echo dequelos dibujos estn formados por determinada conguracin de smbolos, los trabajos lo estn por tareas especicas, las organizaciones por otras organizaciones, y as sucesivamente. En los sistemas de tecnologa avanzada, el analista describe la forma en que un pedido no solo puede constar de elementos en cada rengln, sino contener tambin instrucciones verbalesdel clienteoundiagramahecho amano, lospedidosdeestetiposellamanobjetos complejos. Cada pedido se puede controlar como un objeto nico queconste deotros, los cuales, a su vez, se pueden controlar deforma independiente, en caso necesario. Lasestructurasderbol y deredpuedenmostrar msquegeneralizaciny laherencia. Tambinsellegan a utilizar para indicar queunobjeto est compuesto por otros. El dia- gramadecomposicindelosobjetossedebedibujar demodoquesedistingadeinmediato de un diagrama de generalizacin. Esto se logra al colocar echas huecas (perladas) en el diagrama decomposiciny echas slidas (llenas), en el diagrama degeneralizacin. La expresindelasrestriccionesdecardinalidadenlasasociacionespor composicines importante, puestoqueunobjeto compuesto puedeestar formadopor cero, unoo muchos objetosde distintostipos. Lossmbolos derestriccin decardinalidad no semuestran en losdiagramas de gene- ralizacin. Enciertoscasos, la generalizaciny lacomposicinsemuestranenel mismo diagrama. Esto puedellegar a confundir a principiantesen el anlisisOO. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS184 6.1.7 Tipos de objetos derivados Las instancias deun tipo de objeto suelen quedar determinadas si alguien haceuna ar- macin, sin embargo, el conjunto de instancias de muchos tipos de objetos pueden ser derivado. Por ejemplo el conjunto de todas laspersonas adultassederiva del conjunto de personasquehan llegado a la edad de18aos. Para simbolizar quesetrata deinstancias derivadasde otra sesimboliza con un barra en la caja. Persona Adulta Figura~6.13: Objeto derivado 6.1.8 Diagramas de relacin entre objetos Un diagrama de relacin entre objetos es esencialmente igual a un diagrama de relacin entre entidades. Cada cuadro puedeser un tipo deobjeto en el anlisisde la estructura de objetos. Normalmentesepresentael diagramadejerarquayel diagramacompuesto, todojunto en un mismo diagrama querecibe el nombrede esquema de objetos. 6.2 Anlisis de comportamiento de objetos (ACO) Aqu realizamos esquemas de eventosque muestran eventos, la secuencia en que ocurren y comoloseventoscambian el estadodelosobjetos. Por lo tanto, una herramientaCASE para el anlisis orientado a objetos debe permitir construir esquemas de objetos y de eventosy mantener la relacin entreellos. 6.2.1 Estado de un objeto Un objeto puedeexistir en varios estados. Ejemplo 6.1 Objeto: reservacin area puede ser una instancia de los siguientes tipos de objetos; Ejemplo 6.2 reservacin solicitada, reservacin conrmada, reservacin cancelada, re- servacin satisfecha, reservacin archivada, etc. En el anlisis del comportamiento de objetosidenticamos la siguienteinformacin: En queestado puedeestar un objeto ? Quetransicionesde estado sepuededar ? CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS185 Queeventosocurren ? Queoperaciones sellevan a cabo ? Queinteracciones ocurren entreobjetos? Cualesson las reglasde activacin queseutilizan para reaccionar anteel evento ? Como serepresentan lasoperacionesen los mtodos? Un objeto puedeser al mismo tiempo una instancia devarios tipos deobjetos. Ejemplo 6.3 Reservacintotalmentepagada, esteobjeto, al mismo tiempo podra ser una instancia : reservacin de cierta compaa. El estado deun objeto es la coleccin de los tipos deobjeto queseaplican a l. Al implementarlo en un lenguaje de programacin OO, el estado se registra en los datos almacenados con relacin al objeto. Se determina mediante las clases y valores de loscamposdelosestadosasociadoscon el objeto. As, en general, los programadoresOO utilizan otra denicindeestados. El estado deun objeto es la coleccin de asociaciones quetiene un objeto. 6.2.2 Eventos Nuestro mundo esta lleno de eventos (un elefante tiene elefantitos). Un evento es un cambio en el estado deun objeto. Es necesario saber de los cambios de estado, notar que ocurren, para ello los eventos sirven como indicadores de los instantes en que ocurren los cambios. En un mundo sin eventos, podramos construir basededatossinpreocuparnospor actualizarlas, sin embar- go, en lamayoradelasaplicaciones, si debecambiar el contenido delasbases, y nosotros deseamos saber de esos cambios y reaccionar en forma adecuada ante ellos, para lo cual debemosentender y modelar dichoseventos. El analista no necesitaconocer cada evento queocurra, tan solo lostiposdeeventosy delas instanciasde tipos deeventos. 6.2.3 Tipos de Eventos Los tiposde eventos indicanloscambiossencillos en el estado deun objeto.- Lostiposde eventosdescriben lassiguientesformas decambio deestado: Un objeto secrea Un objeto setermina Un objeto seclasica como instancia deun tipo de objeto Un objeto sedescalica como una instancia de un tipo deobjeto Un objeto cambia declasicacin El atributo deun objeto secambia CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS186 Dos conjuntos de objetos de distintos tipos Evento en el que el objeto 23Q324 cambia de ser una instancia de reservacin en lista de espera a una reservacin confirmada objeto 23Q324 Reservacin en lista de espera Reservacin confirmada Figura~6.14: Evento Losobjetos pueden asociar un objeto conotro. Ejemplo 6.4 En la mayora de las organizaciones, cuando un objeto se clasica como empleado, debe estar asociado con un departamento. Un evento clasicara al objeto co- mo empleado. Otro evento crear una asociacin entre el objeto empleado, y un objeto Departamento. Algunos eventos requieren que antes ocurran otros eventos. Otras veces un evento puede provocar la creacin en cadena de otroseventos. Una operacin hacequeloseventos ocurran. Dibujamos la operacincomo un cuadro conesquinasredondeadas, puestoqueloseventosindicanlospuestosenel tiempoenquese da el cambio deestadodeunobjeto. Lostiposdeeventosserepresentan como tringulos negrosllenos, generalmenteunidosa lascajasde operacin. Almacenar parte en anaquel Aumenta el contenido del anaquel Parte almacenada en anaquel Proceso de almacenamiento en inventario terminado Tres tipos de eventos Figura~6.15: Ms deun evento CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS187 Segnel reaquesemodele, puedeocurrir msdeuneventoal terminar unaoperacin, y cada uno destos puede activar operaciones independientes. 6.2.4 Ciclo vital de un obj eto La mayora de los objetos tienen un ciclo vital en el que una sucesin de eventospueden ocurrirley cada uno de estosmodica su estado. Al crear por primera vez el objeto reservacin area, puede pasar por los estados re- servacin solicitada, reservacin en lista de espera, reservacin conrmada, reservacin cumplida y reservacinarchivada. Otros eventospuedehacer queseconvierta en reserva- cindenegada o reservacin cancelada. En el anlisis orientado a objeto, dibujamos un diagrama que muestra el ciclo vital de un objeto. Adems de mostrar los estados posibles de los objetos, el diagrama tam- bin muestra los cambios de estado permisibles, a este tipo de diagramas denominamos diagramasde estados. Nula Solicitada En lista de espera Denegada Confirmada Modi fi cazda Cumplida Cancelada Archivada + Figura~6.16: Diagrama deEstados Lastransicionesserepresentanmediantelneasverticales, loscualesunenalosestados. Podemos colocar un signo + en algn estado que se quiera descomponer en su- bestados. Tambin podemos registrar en los cambios estados que ocurren bajo ciertas condiciones, esto lo simbolizamos con un circulo al vaco al inicio de cada cambio de estado. Tambin podemos reejar cardinalidad enloscambios deestados. Un objeto puedetener muchos estados permisibles. Si lossubestados deun estado en particular no se muestran en un diagrama, aparecen puntos suspensivos () o un smbolo + al lado del estado. Uneventoesuncambioenel estadodeunobjeto, detal formaquepodemosinteractuar con los diagramas de transicin de estados a partir de eventos, como tambin podemos hacerlo desde un cambio de estado de un diagrama de estado asociarlo con un esquema deeventos. Tambinpodramosreejar loscambiosdeestadosenlosesquemasdeeventosconuna lnea al costado de una regla deactivacin entreun evento y una operacin. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS188 6.2.5 Interacciones entre tipos de objetos Losdiagramasdetransicionesdeestadosontilesparaexpresar el ciclovital deunobjeto particular. Sin embargo, la mayora de los procesos requieren la interaccin de varios objetos. Empleado Pagar Salario ... Pagar salario de este empleado Impuesto Calcular Impuesto ... Cheque Generar cheque de nmina ... Tipos de objetos Operaciones Generar un cheque de nmina con la informacin de este empleado Calcular la deduccin de impuestos con este salario y sus exenciones Figura~6.17: Diagrama deRed El diagrama de red muestra como los distintos tipos de objetos cambian de estado y pueden solicitar a otros objetosquecambien su estado en el proceso. Lostiposde objetosse implantan como clasesy las operaciones seconvierten en ope- racionesdel programa OO. Si, duranteel anlisis, el usuario puedeexpresar losrequisitos deprocesamiento deesta forma, sefacilitael trabajo del diseador deLPOO(lenguajede programacin orientada a objetos). Sinembargo, muchosusuariosnopiensanenel procesamientodeaplicacinentrminos detiposde objetos, saturados deoperacionesque hacen distintostipos desolicitudes. Es preferible un formato guin cuando se dan eventos que activan operaciones, las cuales, a su vez, producen eventos que activan otras operaciones, etc. En otras palabras, este formato deguin(llamadoesquema deeventos) representa loscambiosenel ciclo vital de un objeto particular, el cal activa cambios en el ciclo vital deotro objeto. 6.2.6 Operaciones En el anlisis OO, el termino operacin se reere a una unidad de procesamiento que puede ser solicitada. El procedimiento seimplanta mediante un mtodo. El mtodo esla especicacin de como llevar a cabo la operacin. Es el guin de la operacin. A nivel programa, el mtodo es el cdigo que implanta la operacin. Lasoperacionesseinvocan. Unaoperacininvocadaesunainstanciadeunaoperacin. Una operacin puede o no cambiar el estado de un objeto. Si lo cambiara, ocurrir un evento. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS189 Operacin Tipo de evento Figura~6.18: Grca deOperacin Las operaciones se representa mediante cuadros con esquinas redondeadas. Los tipos deeventos se representan mediantetringulosslidosnegros conectadosen la caja. Fuentes externas de eventos: los eventos son cambios de estado a los que un sistema debe conocer, y reaccionar ante de ellos dealgn modo. Muchas de las operaciones que producen estos eventos suelen ser externas al sistema. En estos casos, el smbolo de operacin se dibuja como una caja sombreada con esquinas redondeadas. El cliente transmite el pedido Tipo de evento externo Operacin externa Pedido solicitado Tipo de evento del reloj externo Principio del trimestre Figura~6.19: Fuentes externasde eventos Un reloj externo es una forma particular de fuente externa. Indica que un proceso externoemitir sealesdreloj con ciertafrecuenciadeterminadaconanterioridad: al nal decada da, al principio de cada mes, etc. 6.2.7 Reglas de activacin Cuando ocurre un evento, lo usual es que el cambio de estado active el llamado a una o mas operaciones. Ejemplo 6.5 Si se retiran bienes deun almacn yla cantidadconservada en ste baja de cierto nivel, ello puede activar una operacin para volver a realizar un pedido. As, las reglas deactivacin denen la relacin entre la causa y el efecto. Siempre que ocurranunevento deciertotipo, laregla deactivacininvocaa unaoperacinya denida. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS190 Untipodeeventopuedetener variasreglasdeactivacin, cadaunadelascualesinvoca a su operacin en paralelo. Lasoperacionesparalelas pueden producir diferentescambios deestado en forma simultnea..- Adems, una operacin puedeser invocada por variasreglas deactivacin. Cheque solicitado Fin de mes solicitar cheque generar cheque Cheque generado Figura~6.20: Reglas deActivacin Unalneaconunaechadirigidahaciaunacajadeoperacinindicaquelaoperacines activada por la ocurrencia deun evento anterior. La lnea dela regla deactivacin indica la asociacin de un tipo de evento con la operacin llamada. Adems, puede indicar la ruta mediante la que se proporcionan los objetos necesarios para la operacin. De esta forma, la regla de activacin dene una relacin de causa entre el evento y la operacin, as como una forma deujo de datos As, laslneasdeactivacinindicandoscosas. Laprimeraesqueliganlacausa(evento) conel efecto (operacin). En otras palabras, al ocurrir un evento, una activacin llama a una operacin. La segunda es quedetermina los objetos necesarios como argumentos de la operacin quellama la forma de activacin. Por lo tanto, estas lneas denen las reglas para activar una operacin cuando se da un tipo particular de evento. Por eso, se les llama reglas deactivacin. 6.2.8 Condiciones de control Una operacin puede ser invocada por una o varias reglas de activacin, sin embargo, antesdeinvocar, severica sepuedevericar sucondicin decontrol. Si losresultadosde evaluacin de la condicin son verdaderos, se invoca a su operacin. Si son falsos, no se invoca a la operacin. Siemprequehayaquevericar unacondicin decontrol antesdeinvocar a una opera- cin, esta se representa medianteun smbolo deforma derombo antes dela operacin. Lascondiciones decontrol garantizan queunconjunto deeventosesta completo antes deproceder con una operacin. Lascondicionesdecontrol nonecesariamentesoncondicionesy. Puedenser condiciones elaboradascon y y o. Siempreseesperaquelasoperaciones, unavezactivadas, completenunevento. Cuando sedeterminanlascondicionesdecontrol, laoperacinpodra noser llamada hasta quesus CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS191 Operacin Tipo de evento Figura~6.21: CondicionesdeControl condiciones decontrol sean verdaderas. En ciertas ocasiones una lnea dirigida hacia una caja de operacin indica que la operacin no se puede llevar a cabo hasta que se presente determinado evento. En este caso sepuedecolocar el smbolointernacional NO HACERLO oPROHI BI DO enla lnea. Esto seconoce como guardia. Organizar pedido Aceptar pedido Figura~6.22: Guardias Las lneas conectadas con una caja de operacin pueden incluir formas de activacin y guardias. 6.2.9 Subtipos y supertipos de eventos Los tipos ajenos se expresan en este libro mediante particiones de tipo. Por ejemplo, en un ventana independiente, como lo muestra la gura 06-23, indica que estos dos tipos de eventos son mutuamente excluyente, puesto que tarea aceptada y tarea rechazada estn contenidosdentro dela misma caja departicin. La palabraparticinimplicaquealgosedivideensubconjuntosajenos. Enlastcnicas OO, esealgo se llama supertipo. As, tarea revisada es un supertipo de evento divido en dos tipos de eventos ajenos. Por lo tanto, el mtodo denido en revisar tarea tiene como objetivo que se revise una tarea. Adems, para lograr esteobjetivo, serequierealcanzar alguno de lossubobjetivos, aceptar o rechazar la tarea en revisin. En otras palabras, las particiones de eventos no son operaciones independientes que coordinan las condiciones de bifurcacin para las CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS192 Revisar tarea Tarea aceptada Tarea rechazada Figura~6.23: Subtipo/ Supertipo deeventos formasdeactivacin ajenas, sino queindican los objetivosy distintossub-objetivosdelas operaciones a las queestn asociadas. La operacinquehacequeocurra uneventopuedeser compleja. Laaccindeponer en marchaunautomotor, parecierasencillo, perodesdeel puntodevistainterno, el encendido deun automotor requiere detodo un conjunto deoperaciones y eventos. Con lo querepresentarlo podra ser complejo. Para ello podemosutilizar una descom- posicin jerrquica de los esquemas de eventos. Se pueden colocar fronteras en torno a un esquema complejo de eventos y considerarlo como una operacin de alto nivel. As, el esquema de eventos de bajo nivel se convierte en el mtodo para la operacin que se descompone. 6.2.10 Aislamiento de la causa y el efecto Cada operacin lleva a cabo su tarea sin importar lo que ocurre en otra parte. Una operacinesinvocada por variosmecanismosdeactivacin, ejecutasumtodo y seespera queestemodiqueel estadodeunobjeto. Laoperacinnosabequeeventoloactivoni por que. Adems, no sabeseactivaran otrasoperacionesaparir desuevento. Enresumen, no reconocesu causa o efecto, solo sabeque es invocada para producir un cambio deestado en un objeto dado. Esteaislamiento delas consideraciones decausa y efecto esnecesario para quela operacin pueda volver a utilizarseen muchasotras aplicaciones. Un esquema de objetos expresa el tipo de objetos y sus asociaciones en un sistema dado. Un esquema deeventosexpresa unguin deprocesamiento quecambia los estados delos objetos. Por lotanto, unaherramientasCASE parael anlisisorientadoaobjetosdebepermitir a sus usuariosconstruir esquemasdeobjetosy esquemas deeventos, ademsdemantener la estrecha relacin quehay entre estostiposderepresentacin. 6.2.11 Diagramas de ujo de obj etos Losesquemasdeeventosson adecuadospara descripcindeprocesosen trminosdeeven- tos, dereglas deactivacin, decondicionesy de operaciones. Sin embargo, podra no ser adecuado expresar as procesosgrandes y complejos. En situaciones como sta es cuando es til un diagrama deujo deobjetos. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS193 Losdiagramasdeujodeobjetos(DFO) sonparecidosalosdiagramasdedatos(DFD), puesto que muestran actividades que interactan con otras. En los DFD, una interface transere datos. En las tcnicas OO, no se limita a la transferencia de datos, sino que el diagrama debe representar cualquier tipo de cosa que se transera de una actividad a otra, ya seanpedidos, partes, artculos, diseos, servicios, hardware, software, odatos. En resumen, el DFO indica losobjetos queseproducen y las actividadesque los producen e intercambian. Lasactividadesserepresentancon cajasconesquinasredondeadas, lascajas sombrea- das son agentes externos. En lugar del smbolo de almacenamiento de datos (dos lneas paralelas), se utiliza una caja tridimensional, esto indica que dl DFO representa el hecho dequelosobjetos dela vida real uyen entrelas actividades. Adquirir materiales de produccin Producir tarjetas de circuitos impresos Producir diseos Materiales de produccin Tarjetas de circuitos impresos Diseos de hardware Ensamblar computadoras Computado r ensablado Clientes Figura~6.24: Diagrama de Flujo deObjetos Tpico LosDFO describen los objetosy como seproduceny seconsumen. El producto es el resultado nal que satisface el propsito de la actividad. Las activi- dadessepuedendescomponer enDFO. Sinembargo, enunnivel masdetalladodel anlisis del comportamiento, tambin escorrecto expresar los aspectosdinmicosdelosesquemas de eventos. Una actividad se puede expresar en trminos de un DFO, un esquema de eventos, o ambos. Para expresar un proceso de manera mas rigurosa y poder generar un cdigo, lo ade- cuadoesun esquema deeventos. Undiagrama deujo deobjetosestil para representar las estructuras bsicas de control y el ujo del procesamiento, cuando no se entienda totalmentela dinmica de los eventos y lasclaves deactivacin. Enresumen, el anlisisdel comportamientodeobjetospuedeutilizar unagranvariedad depuntos devista de diagramacin. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS194 Producir tarjetas de circuitos impresos Producir diseos Tarjetas de circuitos impresos Actividad Producto Actividad Produccin Consumo Figura~6.25: Componentesde un DFO 6.3 Diseo de la estructura y comportamiento de un obj eto Tambinenel diseorealizamosla misma divisinquedel anlisis: el diseo dela estruc- tura deobjetos (DEO) y el diseo del comportamiento deobjetos (DCO). Los lenguajes de programacin OO tienen estructuras de datos y mtodos, ambos sujetos a herencia y combinados en unidades llamadas clases. Por esto, el DEO y el DCO estn entrelazados, y sedescribirn en forma conjunta. En el diseo de la estructura y comportamiento de objetos se identican los compo- nentes siguientes: Que clasesseimplantaran ? Que estructuras dedatosutilizara cada clase? Que operaciones ofrecer cada clasey cualessern sus mtodos ? Comoseimplantara la herencia declases y como afectar sta lasespecicaciones de losdatosy las operaciones ? Cuales son las variantesde lasclases ? 6.3.1 Clase En el anlisisde estructura deobjetos, identicamoslostipos deobjetos; en el diseo de estructura deobjetosnoscentramos en la implantacin deesostiposde objetos. Clasees la implantacin de un tipo deobjeto. Especica la estructura de datos y los mtodos operativos permitidos queseaplican a cada uno desusobjetos. La claseespecica la estructura dedatosdecada uno desusobjetos y lasoperaciones queseutilizan para tener acceso a losobjetos. Laespecicacindecomo sellevana cabo lasfuncionesdeuna clasesellamamtodo. Los objetossepueden utilizar exclusivamente conmtodosespeccos. Los datos del objeto se almacenan dentro de l y se tiene acceso a ellos y se les modica solo mediante las operaciones permisibles. Esta restriccin al acceso se debeal encapsulado. El encapsulado protege los datos del uso arbitrario o no pretendido. El CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS195 a + b = z . 2,34 cfx 23@= "2.34" A. cos B x sen C Clase Especificacin de la estructura de datos para cada instancia de la clase Operaciones permisibles que dan acceso a la modificacin de la estructura de datos Figura~6.26: Implementacin deuna Clase acceso o la actualizacin directa de los datos de un objeto por parte del usuario violara el encapsulado. Los usuarios observan el comportamiento del objeto en trminos de las operaciones que se pueden aplicar a los objetos, as como los resultados de tales operaciones. Estas operaciones forman la interface del objeto con sususuarios. Cual esla diferencia enteoperacin y mtodo ? Lasoperacionesson procesosquesepuedensolicitar como unidades. Los mtodos son especicaciones del procedimiento de una operacin dentro de una clase. Es decir, operacin es el tipo de servicio solicitado, y el mtodo es su cdigo de programacin. Una operacin esun proceso que se puede solicitar como unidad. Un mtodo esla especicacin deuna operacin. Los mtodos de una clase controlan solamente a los objetos de esa clase. No pueden tener acceso directo a las estructuras de datos de un objeto en una clase distinta. Para utilizar las estructuras de datos en una clase diferente, deben enviar una solicitud a ese objeto. 6.3.2 Herencia de clase La herencia de clase(quesolo seconoce como herencia) es una implantacin de la gene- ralizacin. La generalizacin establece que las propiedades de un tipo se aplican a sus subtipos. La herencia declasehace que la estructura dedatos y operaciones sean dispo- nibles para su reutilizacin por parte desus subclases. La herencia de las operaciones de una superclasepermitequelasclasescompartan el cdigo (enlugar devolverlo a denir). La herencia de estructura dedatos permitela reutilizacin dela estructura. En la herencia mltiple, una clase puede heredar estructuras de datos y operaciones demasde una superclase. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS196 La herencia de clase implanta la jerarqua de generalizacin, y permite as que una clase comparta la estructura dedatosy operaciones deotra clase. La herencia simpleesaquella enla queunaclasepuedeheredar laestructura dedatos y operacionesde una superclase. La herencia mltiple se da cuando una clase puede heredar la estructura de datos y operaciones demasde una superclase. 6.3.3 Seleccin del mtodo Cuando seenva una solicituda un objeto, el softwareselecciona losmtodos por utilizar. Ya hemoscomentado queel mtodo nosealmacena en el objeto, puesto queesto causara replica mltiple. En vez de esto, el mtodo se asocia con la clase. El mtodo no puede estar en la clasedela queel objeto es una instancia, sino en una superclase. As, la herencia permite que una clasereutilice las caractersticas de sus superclases. Deesta forma, losusuariossolo deben especicar loquesedebehacer, dejando quesea el mecanismo de seleccin el que determine la forma de localizar la operacin y la ejecute. El mecanismo deseleccin deja en manosdela aplicacin OO el problema de localizar la operacin correcta a partir dela fuentedela solicitud. 6.3.4 Polimorsmo Uno de los objetivos principales de las tcnicas OO es utilizar otra vez el cdigo. Sin embargo, algunas de las operaciones requieren adaptacin para resolver necesidades par- ticulares. Denition 1 En una clase Empleado se dene una operacin deretiro. Enlasimplanta- ciones OO todas las subclases empleado heredan esta operacin en forma automtica. Sin embargo, lasorganizacionespuedentener distintos mtodospara retirar a un ejecutivo ya un empleado (subclases). Aunque los mtodos sean distintos, llevan a cabo el mismo pro- psito operativo. Este fenmeno se conoce como Polimorsmo. La palabra Polimorsmo se aplica a una operacin que adopta varias formas de implantacin, tanto si el objeto es un empleado o un ejecutivo. Una de las ventajas del Polimorsmo es que se puede hacer una solicitud de una operacin sin conocer el mtodo quedebe ser llamado. Estos detalles dela implantacin quedan ocultos para el usuario; la responsabilidad descansa en el mecanismo de seleccin dela implantacin OO. I gual que, excepto... Lareutilizacinpracticarequiereensumayoraqueel implantador modiqueel componentereutilizables. Lastcnicasorientadasaobjetosdebenpermitir la adaptacin delasclases. Ud. debe poder tomar una clasedeun deposito y adaptarla a sus necesidades. Lasclasessevuelvenmuy complejas. Por lo tanto, hay quedisear lasclases demodo que se pueda adaptar con facilidad en una pantalla de herramientas CASE. Las buenas herramientasCASE, quepermitenel usodel diseoOOa partir deundepsito, permiten tambin adaptar estos diseos. Losdiseadores deben prever losaspectosdeun diseo quelosusuarios desearnmo- dicar, as como los medios sencillospara la adaptacin. Esteesun aspecto fundamental CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS197 de las herramientas CASE OO. El hecho de lograr una mxima reutilizacin tambin es parte esencial de las metodologa para el desarrollo desistemas que se basan en tcnicas OO. El analista o el diseador quegenere una clase debepreguntarse: Como se utilizar esta claseen el futuro ?. Debecrear la clasede forma quesepueda adaptar con facilidad a las necesidades futuras. En un ambiente OO bien administrado, todo se construye a partir de clases ya existentes o secrean nuevasclases quesern utilizadasde nuevo en el futuro. Todo se relaciona con el rehus en el pasado o en el futuro. 6.4 Metodologa OMT 6.4.1 Modelo de Objetos El modelado deobjetos captura la estructura esttica del sistema, mostrando los objetos del sistema, las relaciones entre ellos, y los atributos que caracterizan a cada clase. El modelo de objetosesel mas importante en esta metodologa. Objetos y Clases Un objeto es, sencillamente, algo que tienesentido en el contexto dela aplicacin. Se denir un objeto como un concepto, abstraccin o cosa con limitesbien denidos y consignicado a efectosdel problema quesetenga entremanos. Losobjetostienen dos propsitos: promover la comprensin del mundo real y proporcionar una base prctica para la implementacin por computadora. La descomposicin de un problema en objetos depende del juicio y de la naturaleza del problema, esdecir no existeuna nica representacin correcta. Todos los objetos poseen su propia identidad y se pueden distinguir entre si. Dos manzanas del mismo color y la misma forma siguen siendo manzanas individuales. El termino identidad signica que los objetos sedistinguen por su existencia inherente y no por la propiedadesdescriptivasquepuedan tener. En algunas ocasiones, objeto signica una sola cosa, en otras sereerea un grupo de cosassimilares. Cuando se desea ser preciso y aludir a una cosa exactamenteseutiliza la frase instancia deobjeto y la expresin clasede objetos para aludir a un grupo de cosas similares. Clases Unaclasedeobjetosdescribea ungrupo deobjetosconpropiedades(atributos) similares, conrelaciones comunescon otros y con una semntica comn. Ejemplo 6.6 Organizacin, Proceso, Persona y Animal. Los objetos y sus clases suelen aparecer como sustantivos en la descripcin de los problemas. Losobjetosdeunaclasetienenlosmismosatributosy losmismospatronesdecompor- tamiento. Losobjetosdeunaclasecomparten unpropsito desemntica comn, msall deque los requisitos de comunidad deatributos y decomportamiento. La interpretacin dela semntica dependedel proceso decada aplicacin y de nuestro propio juicio. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS198 Ejemplo 6.7 Si consideramos un automvil y un departamento tan solo como propiedad de un individuo, podran pertenecer a una misma clase. Si consideramos que el automvil es un medio de transporte y el departamento un lugar para habitar entonces tendrn que ser modelados en clases diferentes. Es necesario preocuparnos por el concepto declases, mas all de que lo queestamos modelando son objetos, por la nocin de abstraccin. Al agrupar a los objetos en clases se abstrae el problema. La abstraccin da al modelado su potencia y capacidad para generalizar, partiendo de unos pocos casos especcos, hasta llegar a una multitud de casossimilares. Lasdeniciones denombres deatributos y nombres declases se almacn una sola vez conla clase. Lasoperacionessepueden escribir una sola vez para cadadetal maneraque, todos los objetos dela clasesebenecien de la reutilizacin del cdigo. Diagramas de objetos Como ya hemosvisto, los diagramasdeobjetosproporcionan una notacingrca formal para el modelado de objetos, clases y sus relaciones entre si, son tiles, tanto para el modeladoabstractocomo, paradisear programasreales. Sonconcisos, fcilesdeentender y funcionan bienen la prctica. La metodologa propone dos diagramas de objetos: diagramas de clases y diagramas deinstancias. Diagramas de clases Esunesquema, patrno plantillapara describir muchasinstanciasdedatosposibles. Los diagramas de clases describen clases de objetos. En la metodologa es un cuadro con el nombredela clase. Diagrama de I nstancias Undiagramadeinstanciasdescribela formaenquecierto conjunto deobjetosserelaciona entre si. Un diagrama deinstancias describeinstanciasde objetos. Son tilespara docu- mentar casosprcticosy paradescribir ejemplos. Undiagramadeclasesecorrespondecon un conjunto innito de diagramas de instancias. Son cuadros con esquinas redondeadas donde se escribeel nombrede la clase en la partesuperior y los nombres delosobjetos. Persona (Persona) Juan Gomez (Persona) Laura Romero (Persona) Objetos Clase Figura~6.27: Diagrama deClases Losdiagramasdeclasesseutilizanparamodelar el sistema, losdiagramasdeinstancias para casosde ejemplos. La diferencia entre ambos es articial. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS199 Atributos Un atributo es un valor deun dato que seesta almacenando en los objetos deuna clase. Cada atributo tieneun valor para cada instancia del objeto. Ejemplo 6.8 El atributo salario mensual tiene el valor de$ 1.200,00 en el objeto Liqui- dacin de Mauricio Vallejos. Las instancias distintas de un cierto objeto pueden tener el mismo valor o valores distintos para un atributo dado. El nombredel atributo esnico dentro dela clase. Ejemplo 6.9 Las clase Organizacin y I nstitucin Educativa puede tener ambas un atri- buto llamado e-mail. Losatributos debern ser valores puros dedatos y no objetos. Ejemplo 6.10 Todas las apariciones de la cadena de caracteres Argentina. El pas Ar- gentina es unobjeto cuyo atributo nombretieneel valor Argentina (cadena decaracteres). La capital de Argentina es un objeto del tipo ciudad y no debera modelarse como atribu- to, sino ms bien como una asociacin entre un objeto del tipo pas y un objeto del tipo ciudad. Losatributosseenumeranenlasegundapartedel cuadro declase. El nombrepuedeir seguido por detalles opcionales (tipo, valor, etc.). Tambinsepueden omitir losatributos en el diagrama declases, todo dependedel grado de detalle que se desee. Los cuadrosde clasestienen una lnea entreel nombredela clasey los atributos. Los cuadros deobjetos no tienen esta lnea. nombre: cadena edad: entero Persona Figura~6.28: Especicacin deatributos en una clase No es necesario y no se deberan enumerar explcitamente los identicadores, estos son un artefacto de la computadora y no tienen un signicado intrnseco ms all de la identicacin deun objeto. Los identicadores son una comodidad de implementacin y no tienen signicado en el dominio del problema. Operaciones y mtodos Una operacin es una funcin o transformacin que se puede aplicar o que puede ser aplicada por losobjetos deuna clase. Ejemplo 6.11 Ocultar, mostrar, Abrir, Calcular, etc. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS200 Todoslosobjetos deuna clasecomparten las mismas operaciones. Cada operacintieneunobjeto blanco comoargumentoimplcito. El comportamiento dela operacindependedelaclasedesublanco. Todoobjetoconoce suclasey, por tanto, la implementacin correcta de la operacin. Una misma operacin puede aplicarse a muchas clases distintas. Tal operacin ser polimrca; esto es, una misma operacin adopta distintas formas en distintas clases. Un mtodo es la implementacin deuna operacin para una clase. Una operacin puede poseer argumentos adems del objeto destino blanco. Tales argumentos parametrizan la operacin pero no afectan a la eleccin del mtodo. Los mtodos solamentedependen de la clase del objeto blanco. Cuando una operacin posee mtodos aplicables a distintas clases es importante que todos los mtodostengan la misma signatura: estenmero, lostiposdelosargumentosy el tipo del valor del resultado. Las operaciones se enumeran en el tercio inferior del cuadro de clase. El nombre de cadaoperacinpuedeir seguidopor detallesopcionales, talescomolalistadeargumentosy el tipo deresultado. Una lista deargumentosse escribir entre parntesis a continuacin del nombre; los argumentos irn separados por comas. El nombre y el tipo de cada argumento pueden indicarse tambin. El tipo y el resultado viene precedido por dos puntos y no debera omitirse porque es importante distinguir aquellas operaciones que proporcionanvaloresdelasqueno. Unalistadeargumentosvacaentreparntesismuestra explcitamentequenohay argumentos. Lasoperacionessepuedenomitir enlosdiagramas dealto nivel. nombre direccin telefono hacer un pedido confirmar un pedido Cliente Figura~6.29: Descripcin deOperaciones enuna Clase Durante el modelado resulta til distinguir aquellas operaciones que tengan efectos laterales de las que nicamente calculan un valor funcional sin modicar ningn objeto. Este ltimo tipo de operacin sedenomina consulta. La consultas sin argumentos, salvo el objeto destino, sepueden considerar atributosderivados. Unatributo derivado escomo un atributo en tanto en cuanto es una propiedad del objeto en si y calcularlo no va a cambiar el estado del objeto. El modelodeobjetosdebera distinguir, generalmente, losatributosbaseindependien- tesdelos atributosderivadosdependientes. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS201 Nombre Pas Nombre Ciudad tiene-como-capital Figura~6.30: Asociaciones Enlaces y asociaciones Losenlacesy asociacionesson losmediospara establecer relacionesentreobjetosy clases. Un enlace es una conexin fsica o conceptual entre instancias de objetos. Un enlace es una instancia deuna asociacin. Una asociacin describe un grupo de enlaces con estructura y semntica comunes. Todos los enlaces de cada asociacin conectan objetos procedentes de las mismas clases. Las asociacionesy los enlaces suelen aparecer como verbos en la denicin del problema. Las asociaciones describen un conjunto de enlaces potenciales del mismo modo que las clasesdescriben un conjunto deobjetospotenciales. Las asociaciones son inherentemente bidireccionales. El nombre de una asociacin binaria suele leerse en un cierto sentido, pero la asociacin binaria se puede recorrer en ambas direcciones. La direccin implicada por el nombre es la direccin hacia delante; la direccin opuesta es la direccin hacia atrs. Lasasociacionessuelenimplementarseenloslenguajesdeprogramacincomopunteros quevan desde un objeto hasta otro. La implementacin deasociaciones en forma depunteros esperfectamente admisible, pero lasasociaciones no deberan modelarse deesta manera. Auncuando lasasociacionessemodelancomosi fueranbidireccionales, noesnecesario implementarlasen ambos sentidos. Los nombres de las asociaciones se ponen en cursiva. El nombre de la asociacin se puede omitir si una pareja declase tienenica asociacin cuyo signicado sea obvio. Lasasociaciones pueden ser binarias, ternariaso deorden superior. En la practica, la inmensa mayora van a ser binarias o calicadas. La gura siguientemuestra una asociacin ternaria. Proyecto Lenguaje Programador Figura~6.31: Asociacin Ternaria CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS202 Usuario Servidor Figura~6.32: Multiplicidad Ejemplo 6.12 Los programadores utilizan lenguajes de computacin aplicados a proyec- tos. El smbolo de OMT para asociaciones generales ternarias y n-arias es un rombo con lneas que lo conectan con las clases relacionadas. El nombre de la asociacin es escribe al lado del rombo. Losnombresde la asociaciones son opcionales y esuna cuestin dejuicio personal en el momento del modelado. Las asociaciones suelen dejarse sin nombre cuando es posible identicarlas fcilmente por sus clases. Esta convencin no funciona si existen mltiples asociacionesentrelas mismas clases. Multiplicidad La multiplicidad especica el nmero deinstancias deuna clasequepueden estar relacio- nadas con una nica instancia de una clase asociada. La multiplicidad limita el nmero deobjetos relacionados. Existen terminadores delnea que indican ciertos valores frecuentes de multiplicidad. Un circulo negro es el smbolo OMT de denota muchos, lo cual quiere decir cero o ms. Un circulo blanco indica opcional, lo cual quieredecir cero o uno. Una lnea sin smbolos demultiplicidad denota una asociacin uno a uno. La multiplicidad depende de suposiciones y de la forma en que se denan los lmites del problema. No hay quepreocuparsepor lamultiplicidadenla faseinicial del desarrollo desistemas. Atributos de los enlaces Un atributo de enlace es una propiedad de los enlaces de una asociacin. En la gura siguiente, permiso de acceso es un atributo de Puede Acceder. Todo atributo de enlace tiene un valor para cada enlace segn se ilustra mediante los datos dados como ejemplo en la parteinferior dela gura. La notacin OMT para un atributo de enlace es un cuadro ligado a la asociacin mediante un lazo; puede aparecer uno o ms atributo de enlace en la segunda regin del cuadro. Modelado de una asociacin en forma de clase: Clase asociacin En algunosocasiones resulta til modelar lasasociaciones como clases. Cada enlacepasa a ser una instancia de la clase (similar al objeto asociativo en el AS/ DS). Resulta til modelar lasasociacionescomo clasescuando losenlacespuedenparticipar en asociaciones con otros objetoso cuando estn sometidos a operaciones. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS203 Archivo Usuario permiso de acceso /organizacin/temporario (lectura) Juan Gomez /organizacin/archivos (lectura-escritura) Carlos Peer Association Figura~6.33: Descripcin deatributosde Enlaces Nombre de rol Un rol es un extremo de una asociacin. Una asociacin binaria posee dos roles, cada uno de los cuales puede poseer un nombre de rol. Un nombre de rol es un nombre que identica deformanicaunextremo deuna asociacin. Losrolesproporcionanunaforma devisualizar lasasociacionesbinariascomounrecorridodesdeunobjetohastaunconjunto deobjetos asociados. El nombredel rol es un atributo derivado cuyo valor es un conjunto de objetos rela- cionados. Losroles suelen aparecer como sustantivo en las descripciones deproblemas. Losnombres derol son necesariosparalasasociacionesentredos objetosdela misma clase. Dado que los nombres de rol sirven para distinguir entre los objetos que estn direc- tamente conectados con un objeto dado, todos los nombres de rol extremo nal de las asociaciones asociadas a una clase deben ser nicos. Aun cuando el nombre del rol se escribe junto al objeto de destino de una asociacin, se trata en realidad deun atributo derivado de la clase fuente y debe ser nico dentro de ella. Por la misma razn ningn nombrederol debera ser igual a un nombredeatributo dela claseorigen. Clasicacin Normalmente, los objetos del lado muchos de una asociacin no tienen orden explcito y se pueden considerar como un conjunto. Sin embargo, en algunas ocasiones los objetos estn ordenados explcitamente. Un conjunto ordenado de objetos en el extremo muchos de la asociacin se indica escribiendo {ordenado} al lado del smbolo demultiplicidad correspondienteal rol. La clasicacin es una clase especial derestriccin. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS204 Usuario Estacin de trabajo est autorizado en prioridad privilegios comenzar sesin Autorizacin Directorio directorio origen Figura~6.34: Asociacin en forma deClase Persona Compaia trabaja para empleado empresario empleado Oscar Vallejos Luciano Vallejos Laura Vallejos empresario Simple Simple Simple Figura~6.35: Ejemplo denombredeRol Cualicacin Unaasociacincualicada ocalicadarelaciona dosclasesdeobjetosy uncualicador. El cualicador es unatributoespecial quereducela multiplicidad efectiva deunaasociacin. Las asociaciones uno a muchos y muchos a muchos pueden ser cualicadas. El cualica- dor distingue entre el conjunto de objetos que se encuentra en el extremo muchos de la asociacin. Una asociacin cualicada tambin se puede considerar como una forma de asociacin ternaria. Un cualicador sedibuja en la forma deun cuadro pequeo en el extremo de la lnea Ventana Pantalla visible en {ordenado} Figura~6.36: CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS205 Directorio Archivo nombre de archivo Figura~6.37: Uso deCualicadores deasociacin queseencuentra msprximo a la clasea la cual calica. Agregacin Una agregacin es la relacin parte-todo o una-parte-de en la cual los objetos que re- presentan los componentes de algo se asocian a un objeto que representa el ensamblaje completo. Ordenador Caja del Sistema Monitor Ratn Teclado 1+ UPC Chasis RAM Ventilador Figura~6.38: Grca deagregacin Laagregacinesunaformafuertementeacopladadeasociacin, conunaciertacantidad desemntica adicional. Laspropiedadesmssignicativa son: Transitividad, esto es, A es partedeB y B es partedeC, entoncesA espartedeC. Antisimtrica, esto es, si A espartede B, entonces B no es partedeA. Las agregaciones se dibujan igual que las asociaciones, salvo por un pequeo rombo queindica el extremo de ensamblajedela relacin. La agregacin puede poseer unnmero arbitrario de niveles. Generalizacin y Herencia Lageneralizaciny laherenciasonpotentesabstraccionesparacompartir similitudesentre clasesal mismo tiempo que se mantienen sus diferencias. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS206 La generalizacin es la relacin entreuna clasey una o msversiones renadasdeesa misma clase. La queseestarenado sedenomina la superclasey cada versin renada se denomina subclase. Los atributos y operaciones comunes a un grupo de subclase se asocian a la super- clase y son compartidos por todas las subclases. Se dice que cada subclase hereda las caractersticas desu superclase. La generalizacin y la herencia son transitivas a travs de un nmero arbitrario de niveles. Lostrminosascendentey descendentehacenalusin ala generalizacindeclases a travs de niveles mltiples. Una instancia de una subclase es simultneamente una instancia de todas susclases antecesoras. Toda operacin aplicable a una clase antecesora podr ser aplicada a una instancia suya. Todasubclasehereda, no solamentetodaslascaractersticasdesusantecesorassino queadems aade sus propios atributosy operaciones especcos. color posicion cnetro grosor pluma tipo pluma mover seleccionar rotar visualizar Figura Dimensin 0 escalado Dimensin 1 escalado llenado Dimensin 2 visualizar Punto visualizar Lnea visualizar Arco visualizar Espln visualizar Polgono visualizar rotar Crculo Dimensi n Figura~6.39: Uso deGeneralizacin y Herencia La notacin para la generalizacin es untringulo queconecta una superclasecon sus subclases. La superclase se conecta mediante una lnea a la parte superior del tringulo. Las subclases se conectan mediante lneas a una barra horizontal asociada a la base dl tringulo. Por comodidad, sepuedeinvertir el tringuloysepuedenconectar lassubclases tantoalapartesuperior delabarracomoalaparteinferior pero, si esposible, lasuperclase debera dibujarseen la partesuperior y lassubclases en la parte inferior. Lospuntossuspensivosdeclasedependientes(trespuntos) indica queexistensubclase adicionalesqueno semuestran en el diagrama, quiz porqueno haya sitio en el folio y se muestran en otro lugar o a lo mejor, porque la enumeracin desubclases todava no esta completa. Laspalabrasqueseescribenal lado delostringulosenundiagramasondiscriminado- res. Undiscriminador esunatributo deenumeracindetipo queindicaquepropiedaddel objeto esta siendo abstrada por una relacin de generalizacin en particular. Solamente sedebediscriminar una propiedaddecada vez. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS207 El discriminador es, simplemente, un nombre para la base de la generalizacin. Los valores del discriminador estn inherentemente en correspondencia uno a uno con la sub- clases de la generalizacin. El discriminador, es una parte opcional de la relacin de generalizacin; si seincluyeundiscriminador, deber ser dibujado al lado del tringulode generalizacin. No se deben anidar las subclases con demasiada profundidad. Las subclases muy anidadaspuedenser difcilesdeentender, al igual quelosbloquesdecdigoprofundamente anidadosdeun lenguaje basado en procedimientos. En la prctica, el queuna subclase esto no demasiado anidada dependedel juicio y delos detalles particulares del problema considerado. Lostrminosherencia, generalizacin yespecializacinsereerena aspectosdelamis- ma idea y sueleser posibleutilizarlos deforma intercambiable. Seutilizar generalizacin para hacer alusin a la relacin entre clases, mientrasque herencia aludir al mecanismo empleado para compartir atributos y operaciones empleando la relacin de herencia. La generalizacin y la especializacin son dos puntos devista distintos de la misma relacin vista desde la superclase o desde las subclases. La palabra generalizacin proviene del hecho consistenteen que la superclase generaliza a lassubclases. La especializacin hace alusin al hecho consistenteen que las subclasesrenan o especializan a la superclase. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS208 6.5 Preguntas y Ej ercicios de Revisin 1. Quedenimos en el AEO. 2. Describa el concepto deExclusividad Mutua. 3. Expliquecada caso decardinalidad. 4. Queentiende por J erarqua deGeneralizacin. 5. Queson los supertipo y subtipo. 6. Queson los diagramasde ramicacin. Cuando debemos usarlos. 7. Expliqueel concepto deJ erarqua Compuesta. 8. Queson los objetosderivados. 9. Quedenimos en el ACO. 10. Queson los estados. Ejemplos. 11. Queson los eventos. Ejemplos. 12. Como gracamosun ciclo vital deun objeto. Explique. 13. Con queherramienta gracamosla iteracin de losobjetos. 14. Queson las Operaciones y losMtodos.. 15. De ejemplos deReglas deactivacin.. 16. De ejemplos deCondicionesde Control. I nclusive con guardias. 17. Describa los DFO. Componentes.. 18. Quees una clase. Seleccin demtodo.. Polimorsmo. 19. Queentiende por diagrama declase. 20. Queentiende por diagrama deinstancias. 21. Dena. Deejemplos y graque: Atributos, Enlaces, Asociaciones.. 22. De un ejemplo de asociacin utilizando cualicadores. CAPTULO6. HERRAMI ENTASDEL ANLISI SY DISEOORIENTADOA OBJ ETOS209 ReferenciaBibliogrcas [3] Grady Booch. Analisis y Diseo Orientado a Objetos. PrenticeHall, 1998. [12] J ames Rumbaugh. Modelado y diseo orientado a Objetos. PrenticeHall, 1998. [14] J ames Martin y J ames Odell. Analisis y Diseo Orientado a Objetos. Prentice Hall, 1994.