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

Captulo 6

Herramientas del Anlisis y


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.

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