Vous êtes sur la page 1sur 38

Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch

Anlisis y Diseo Orientado a Objetos


Anlisis y Diseo Orientado a Objetos
Grady Booch Grady Booch

Pg. 1/38
CAPITULO 1 COPL!"IDAD
CAPITULO # !L OD!LO D! OB"!TO$
CAPITULO % CLA$!$ & OB"!TO$
CAPITULO ' ( CLA$I)ICACI*+
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
I+DIC!
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, 1
CAPITULO 1 COPL!"IDAD ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,, 1
CAPITULO # !L OD!LO D! OB"!TO$ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,, 1
CAPITULO % CLA$!$ & OB"!TO$ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,, 1
CAPITULO ' ( CLA$I)ICACI*+ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 1
I+DIC! ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, #
1.1 La complejidad inherente al software ..................................................................................................... ..................... 5
Software de dimensin industrial. .................................................................................................................................... 5
El software es complejo de forma innata. Es una caracterstica esencial de l. ............................................................... 5
La complejidad del dominio del problema...................................................................................................................5
La dificultad de gestionar el proceso de desarrollo......................................................................................................5
La flexibilidad que se puede alcanzar a tras del software........................................................................................!
Los problemas que plantea la caracterizacin del comportamiento de sistemas discretos..........................................!
Las consecuencias de la complejidad ilimitada. ............................................................................................................... !
1.2 La estructura de los sistemas complejos. ......................................................................................................................... 6
Ejemplos de sistemas complejos. ..................................................................................................................................... !
Los cinco atributos de un sistema complejo. .................................................................................................................... !
"omplejidad organizada # desorganizada. ....................................................................................................................... $
La forma cannica de un sistema complejo.................................................................................................................$
1.3 - Imponiendo orden al caos. ......................................................................................................................... ..................... 7
El rol de la descomposicin. ............................................................................................................................................. $
"ategoras de mtodos de dise%o. .................................................................................................................................... &
El rol de la abstraccin. .................................................................................................................................................... &
El rol de la jerarqua. ........................................................................................................................................................ &
1.4 - el dise!o de sistemas complejos. ...................................................................................................................... ............ "
El significado del dise%o. ................................................................................................................................................. '
La importancia de construir un modelo. ........................................................................................................................... '
#$%&'$( )*+I,&L- 1 .......................................................................................................................................... ........ 1.
CAP-TULO # !L OD!LO D! OB"!TO$ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,, 11
2.1 - La e/oluci0n del modelo de o1jetos. ........................................................................................................ .................... 11
(endencias en ingeniera de software. ............................................................................................................................ ))
Las generaciones de lenguajes de programacin........................................................................................................))
(opologa de los lenguajes de primera # principios de la segunda generacin. ............................................................. ))
(opologa de los lenguajes de fines de la segunda # principios de la tercera generacin. ............................................. ))
(opologa de los lenguajes de finales de la tercera generacin. ..................................................................................... )*
(opologa de los lenguajes basados en objetos # orientados a objetos. ......................................................................... )*
+undamentos del modelo de objetos. ............................................................................................................................. )*
,rogramacin orientada a objetos. ................................................................................................................................. )*
Pg. 2/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
-ise%o orientado a objetos. ............................................................................................................................................ ).
/n0lisis orientado a objetos. ........................................................................................................................................... ).
2.2 - $lementos del modelo de o1jetos. ........................................................................................................... ..................... 13
(ipos de paradigmas de programacin. .......................................................................................................................... ).
/bstraccin. .................................................................................................................................................................... )1
Encapsulamiento. ............................................................................................................................................................ )5
El significado del encapsulamiento............................................................................................................................)5
2odularidad. .................................................................................................................................................................. )5
El significado de la modularidad................................................................................................................................)5
3erarqua. ........................................................................................................................................................................ )!
El significado de la jerarqua......................................................................................................................................)!
(ipos. (ipificacin. ......................................................................................................................................................... )$
El significado de los tipos...........................................................................................................................................)$
4eneficios del uso de tipos estrictos5..........................................................................................................................)$
Ligadura est0tica # din0mica......................................................................................................................................)&
El significado de la concurrencia...............................................................................................................................)&
El significado de la persistencia.................................................................................................................................)&
2.3 - *plicaci0n del modelo de o1jetos. ................................................................................................................ ................ 1"
4eneficios del modelo de objetos. .................................................................................................................................. )'
#$%&'$( )*+I,&L- 2 .......................................................................................................................................... ........ 2.
CAP-TULO % CLA$!$ & OB"!TO$ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, #1
3.1 - La naturale2a de los o1jetos. ................................................................................................................ ........................ 21
6u es # qu no es un objeto. ......................................................................................................................................... *)
Sem0ntica. .................................................................................................................................................................. *)
El significado del comportamiento.............................................................................................................................**
7oles # responsabilidades. .............................................................................................................................................. **
Los objetos como m0quinas. .......................................................................................................................................... **
8dentidad. ........................................................................................................................................................................ *.
"opia9 asignacin e igualdad. ......................................................................................................................................... *.
Espacio de ida de un objeto. ......................................................................................................................................... *.
3.2 - #elaciones entre o1jetos. ............................................................................................................................ ................... 23
(ipos de relaciones. ........................................................................................................................................................ *.
3.3 - La naturale2a de una clase. .................................................................................................................................... ....... 25
6u es # qu no es una clase. ......................................................................................................................................... *5
8nterfaz e implementacin. ............................................................................................................................................. *5
"iclo de ida de las clases. ............................................................................................................................................. *5
3.4 - #elaciones entre clases. .......................................................................................................................................... ........ 25
(ipos de relaciones. ........................................................................................................................................................ *5
,olimorfismo simple. ..................................................................................................................................................... *$
:erencia m;ltiple. .......................................................................................................................................................... *$
/gregacin. .................................................................................................................................................................... *$
"ontencin fsica. ........................................................................................................................................................... *$
8nstanciacin. .................................................................................................................................................................. *&
2etaclases. ..................................................................................................................................................................... *&
3.5 - La interacci0n entre clases 3 o1jetos. ............................................................................................................ .............. 24
7elaciones entre clases # objetos. .................................................................................................................................. *&
El papel de clases # objetos en an0lisis # dise%o. ........................................................................................................... *&
3.6 - e la construcci0n de clases 3 o1jetos de calidad. ............................................................................................. ........ 2"
Pg. 3/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
2edida de la calidad de una abstraccin. ....................................................................................................................... *'
Seleccin de operaciones. ............................................................................................................................................... .<
Sem0ntica funcional....................................................................................................................................................<
Sem0ntica espacial # temporal....................................................................................................................................<
Eleccin de relaciones. ................................................................................................................................................... .)
"olaboraciones............................................................................................................................................................)
2ecanismos # isibilidad............................................................................................................................................)
Eleccin de implementaciones. ...................................................................................................................................... .)
7epresentacin............................................................................................................................................................)
#$%&'$( )*+I,&L- 3 .......................................................................................................................................... ........ 32
CAP-TULO ' CLA$I)ICACI*+ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,, %%
4.1 La importancia de una clasificaci0n correcta. ...................................................................................... ....................... 33
"lasificacin # dise%o orientado a objetos. .................................................................................................................... ..
La dificultad de la clasificacin ...................................................................................................................................... ..
Ejemplos de clasificacin.............................................................................................................................................
La naturaleza incremental e iteratia de la clasificacin..............................................................................................
4.2 Identificando clases 3 o1jetos. .................................................................................................................................... ..... 34
Enfoques cl0sicos # modernos. ....................................................................................................................................... .1
"ategorizacin cl0sica.................................................................................................................................................1
/grupamiento conceptual............................................................................................................................................1
(eora de los prototipos...............................................................................................................................................1
/plicacin de las teoras cl0sicas # modernas.............................................................................................................1
/n0lisis =rientado a =bjetos .......................................................................................................................................... .1
Enfoques cl0sicos........................................................................................................................................................5
/n0lisis del comportamiento.......................................................................................................................................5
/n0lisis de dominios...................................................................................................................................................5
/n0lisis de "asos de >so............................................................................................................................................!
+ic?as "7"..................................................................................................................................................................!
-escripcin informal en espa%ol.................................................................................................................................!
/n0lisis Estructurado...................................................................................................................................................!
4.3 *1stracciones 3 mecanismos cla/e. ................................................................................................................. ............... 36
8dentificacin de las abstracciones clae. ....................................................................................................................... .!
4;squeda de las abstracciones clae...........................................................................................................................!
7efinamiento de abstracciones clae...........................................................................................................................$
8dentificacin de mecanismos ........................................................................................................................................ .$
4;squeda de mecanismos............................................................................................................................................$
Ejemplos de mecanismos............................................................................................................................................$
Pg. 4/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Ca./t0lo 1 ( Co1.lejidad
1.1 La complejidad inherente al software
$o2t3are de di1ensi4n ind0strial,
Aplicaciones con un ciclo de vida muy largo y de los cuales muchos usuarios a lo largo del tiempo llegan a
depender de su funcionamiento correcto.
Su compleidad e!cede la capacidad intelectual del ser humano" por lo #ue resulta imposi$le ser
comprendido en su totalidad por un %nico desarrollador. & esto es caracter'stica esencial de casi todos los
sistemas de soft(are de gran tama)o.
!l so2t3are es co1.lejo de 2or1a innata, !s 0na caracter/stica esencial de 5l,
*s compleo por#ue hereda la compleidad del dominio del pro$lema" la dificultad de gestionar el proceso de
desarrollo" la fle!i$ilidad #ue se puede alcan+ar a trav,s del soft(are y los pro$lemas #ue plantea la
caracteri+aci-n del comportamiento de sistemas discretos.
La co1.lejidad del do1inio del .roble1a
). *l pro$lema a resolver presenta muchos re#uisitos #ue compiten entre s' o se contradicen
.cuando se compite entre 2acilidad de 0so o costo con la 2acilidad de desarrollo o s0
20ncionalidad/
2. *sas contradicciones o desacoplamientos e!isten de$ido a #ue los usuarios suelen
encontrar grandes dificultades para e!presar sus necesidades en una forma en #ue los
desarrolladores puedan entender. 0os usuarios tal ve+ solo tiene vagas ideas de lo #ue
#uieren del sistema.
3. 0os re#uisitos adems cam$ian con frecuencia durante el desarrollo incluso por#ue la mera
e!istencia de un proyecto de soluci-n lo altera al sistema real.
4. 1n sistema grande" de$ido a la inversi-n financiera #ue implica" no puede desecharse y
reempla+arse por uno nuevo cada ve+ #ue los re#uisitos cam$ian. 2e$e evolucionar.
!6ol0cionar del soft(are3 responder al cam$io de re#uerimientos
anteni1iento del soft(are3 corregir errores
Conser6aci4n del soft(are3 emplear recursos para mantener en operaci-n un
elemento de soft(are anticuado y decadente.
La di2ic0ltad de 7estionar el .roceso de desarrollo
4. 0a principal tarea del grupo de desarrollo es dar una ilusi-n de simplicidad para defender a
los usuarios de esta compleidad ar$itraria del pro$lema.
5. Se hace lo posi$le por escri$ir menos c-digo pero a veces es imposi$le eludir el tama)o de
un sistema grande. 2e$e recurrirse a la aplicaci-n de varias t,cnicas de re6utili+aci-n de
c-digo e!istente o de la escritura de nuevo soft(are.
7. 2e$e tam$i,n enfrentarse la e!istencia de miles de m-dulos separados y esto implica un
grupo de desarrolladores" nunca una %nica persona. *sto implica ms personas y por
consiguiente una comunicaci-n ms rigurosa y coordinaci-n ms dif'cil" ms a%n si el grupo
y el proyecto se e!tienden geogrficamente.
Pg. 4/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
La 2le8ibilidad 90e se .0ede alcan:ar a tra65s del so2t3are
8. 1n proyecto de soft(are es muy frecuentemente apoyado en pilares construidos por los
mismos desarrolladores .a diferencia de una o$ra edilicia" por eemplo" #ue no contiene un
acer'a para fa$ricar sus propias vigas metlicas/. *sto significa #ue el desarrollo del
proyecto de soft(are sigue siendo una tarea muy la$oriosa. 8o hay estndares para el
desarrollo de soft(are.
Los .roble1as 90e .lantea la caracteri:aci4n del co1.orta1iento de siste1as discretos,
'. *l estado act0al de 0na a.licaci4n est dado por el conunto de varia$les .#ue pueden
ser miles/" de sus valores actuales y de la direcci-n de eecuci-n y de la pila de cada
proceso del sistema.
)<. *n siste1as contin0os una pe#ue)a modificaci-n en la entrada provoca una pe#ue)a
modificaci-n en la salida. Pero en siste1as discretos y de 7ran ta1ao se perci$e una
e!plosi-n com$inatoria #ue hace #ue la salida se modifi#ue enormemente.
)). Se intenta dise)ar los sistemas con una se.araci4n de intereses3 de forma #ue el
comportamiento de una parte del sistema tenga el m'nimo impacto en el comportamiento de
otra parte del sistema.
)*. *n un sistema de gran volumen de$e uno contentarse con un 7rado de con2ian:a
deter1inado a lo 90e re2iere s0 correcci4n ya #ue no puede llevarse a ca$o una prue$a
a fondo e!haustiva por no tener las herramientas matemticas ni intelectuales para un
sistema no continuo.
Las consec0encias de la co1.lejidad ili1itada,
9s compleo es el sistema" ms a$ierto est al derrum$amiento total.
Crisis del so2t3are3 ha e!istido tanto tiempo #ue de$e considerarse normal. *s cuando se pretende
dominar la compleidad del sistema a un e!tremo #ue lleva al presupuesto a niveles e!cedentes y #ue
transforman en deficiente al sistema respecto a los re#uerimientos fiados.
1.2 La estructura de los sistemas complejos.
!je1.los de siste1as co1.lejos,
Co1.0tador .ersonal3 compleidad moderada. :asi todos los computadores estn formados por los
mismos elementos $sicos.
0os sistemas compleos no s-lo son err#uicos" sino #ue los ni6eles de esta jerar90/a representan
diferentes niveles de a$stracci-n. A cada ni6el de abstracci4n se encuentra una serie de dispositivos #ue
cola$oran para proporcionar servicios a capas ms altas. Se elige determinado nivel de a$stracci-n para
satisfacer necesidades .artic0lares.
S-lo a trav,s de la coo.eraci4n 10t0a de colecciones si7ni2icati6as de estos agentes se ve la
funcionalidad de nivel superior de una planta. la ciencia de la compleidad llama a esto co1.orta1iento
e1er7ente. *l comportamiento del todo es mayor #ue la suma de sus partes.
Los cinco atrib0tos de 0n siste1a co1.lejo,
). 0a compleidad toma la forma de una jerar90/a" por lo cual un sistema compleo est compuesto de
su$sistemas relacionados #ue tiene a su ve+ sus propios su$sistemas" y as' sucesivamente" hasta
#ue se alcan+a alg%n 'nfimo nivel de componentes elementales.
Pg. 5/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
*l hecho de tener una estr0ct0ra jerr90ica y casi descomponi$le es lo #ue 2acilita la
co1.rensi4n del sistema compleo. *n realidad s-lo se puede comprender a los sistemas #ue
tiene una estructura de erar#u'a.
2. 0a elecci-n de #u, componentes de un sistema son primitivos es relativamente ar$itraria y #ueda
en gran medida a decisi-n del o$servador.
.. 0os enlaces internos de los componentes suelen ser ms fuertes #ue los enlaces entre los
co1.onentes. *ste hecho tiene el efecto de separar la din1ica de alta 2rec0encia de los
componentes ; #ue involucra a la estructura interna de los mismos ; de la din1ica de baja
2rec0encia ; #ue involucra la interacci-n entre los componentes.
*sto posi$ilita un estudio de cada parte de forma relativamente aislada.
1. 0os sistemas err#uicos estn compuestos usualmente de s-lo unas pocas clases diferentes de
su$sistemas dispuestos en varias com$inaciones y disposiciones. *sto lleva a la reutili+aci-n de
componentes pe#ue)os.
5. Se encontrar siempre #ue un sistema compleo #ue funciona ha evolucionado de un sistema
simple #ue funciona$a... 1n sistema compleo dise)ado desde cero nunca funciona y no puede
parchearse para conseguir #ue lo haga. <ay #ue volver a empe+ar" partiendo de un sistema simple
#ue funcione.
Co1.lejidad or7ani:ada y desor7ani:ada,
La 2or1a can4nica de 0n siste1a co1.lejo,
*l descu$rimiento de a$stracciones y mecanismos comunes facilita la comprensi-n del sistema compleo.
A un sistema se lo puede descomponer en una jerar90/a estr0ct0ral o ;.arte(de< o en una jerar90/a de
ti.os o ;es(0n<. *s esencial ver a un sistema desde am$as perspectivas. A estas erar#u'as se las llaman
respectivamente estr0ct0ra de clases y estr0ct0ra de objetos.
Por lo general" e!isten muchos ms o$etos #ue clases en un sistema.
Al tener en cuenta la estructura de clases" se capturan las propiedades de determinados o$etos en un s-lo
lugar" posi$ilitando as' una meor comprensi-n.
1na nueva mirada a cada nivel de estructura de o$etos e!pone un nuevo nivel de compleidad.
Am$as estructuras no son del todo independientes y untas conforman la ar90itect0ra del siste1a.
1.3 - Imponiendo orden al caos.
!l rol de la desco1.osici4n,
Para estudiar y tra$aar con sistemas compleos es muy %til e imperioso dividirlo en partes ms y ms
pe#ue)as para as' poder refinarlas en forma independiente. 2ivide y vencers.
As' se satisface la restricci-n fundamental de la capacidad humana3 .ara entender 0n ni6el dado basta
con co1.render 0nas .ocas .artes =no necesaria1ente todas> a la 6e:.
Desco1.osici4n al7or/t1ica3 cada m-dulo del sistema representa un paso importante de un
proceso glo$al. Se siguen las reglas del dise)o estructurado y descendente.
!sta 6isi4n en2ati:a el orden de los e6entos,
Desco1.osici4n orientada a objetos? se identifican los o$etos #ue se derivan
directamente del voca$ulario del dominio del pro$lema. Son agentes aut-nomos #ue cola$oran para llevar
aca$o alg%n comportamiento de nivel superior. 1n o$eto a#u' es una entidad tangi$le #ue muestra un
comportamiento $ien definido.
!sta 6isi4n resalta a los objetos 90e .ro6ocan acciones o son s0jetos de estas acciones,
Pg. 7/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
A1bas 6isiones son i1.ortantes@ .ero no se .0ede disear 0n siste1a co1.lejo con las dos
6isiones al 1is1o tie1.o@ ya 90e son 6istas .er.endic0lares,
<ay #ue comen+ar a descomponer un sistema por algoritmos o por o$etos y luego utili+ar la estructura
resultante como marco de referencia para e!presar la otra perspectiva.
Cate7or/as de 15todos de diseo,
5todo es un proceso disciplinado para generar un conunto de modelos #ue descri$en varios aspectos de
un sistema de soft(are en desarrollo" utili+ando alguna notaci-n $ien definida.
etodolo7/a es una colecci-n de m,todos aplicados a lo largo del ciclo de vida del desarrollo del soft(are y
unificados por alguna apro!imaci-n general o filos-fica.
0os m,todos son importantes por#ue introducen una disciplina en el desarrollo de sistemas de soft(are
compleos. De2inen los .rod0ctos 90e sir6en co1o 6eh/c0lo co1An .ara la co10nicaci4n entre
1ie1bros de 0n e90i.o de desarrollo.
Diseo estr0ct0rado descendente o diseo co1.0esto3 .representado en
lenguaes como =>?@?A8 y :>A>0/ se aplica descomposici-n algor'tmica para fragmentar un pro$lema
grande en pasos pe#ue)os. 0a unidad fundamental es el su$programa.
Diseo diri7ido .or los datos3 con este dise)o" la estructura de un sistema de soft(are se
deduce de la correspondencia entre las entradas y las salidas del sistema.
Diseo orientado a objetos? se modelo los sistemas de soft(are como colecciones de o$etos
#ue cooperan" tratando los o$etos individuales como instancias de una clase #ue est adentro de una
erar#u'a de clases. 0enguaes #ue reflean esta topolog'a son SmalltalB" >$ect Pascal" :CC" :ommon 0isp
>$ect System .:0>S/ y Ada.
0a desco1.osici4n orientada a objetos produce sistemas ms pe#ue)os a trav,s de la re0tili:aci4n de
1ecanis1os co10nes" proporcionando una %til econo1/a de e8.resi4n. 0os sistemas orientados a
o$etos son ms resistentes al ca1bio por lo #ue estn 1ejor .re.arados .ara e6ol0cionar a trav,s del
tiempo" por#ue est $asado en formas intermedias esta$les .a$stracciones y mecanismos ya pro$ados/.
*st dise)ado para evolucionar de forma incremental" partiendo de sistemas ms pe#ue)os en los #ue ya
se tiene confian+a.
!l rol de la abstracci4n,
*s una t,cnica muy potente para enfrentarse a la compleidad. Al ser incapaces de dominar en su totalidad
a un o$eto compleo" i7nora1os entonces s0s detalles no esenciales@ tratando en s0 l07ar con el
1odelo 7enerali:ado e ideali:ado del objeto.
!l rol de la jerar90/a,
?econocer erar#u'as de clases y o$etos es otra forma de incrementar el contenido semntico de $lo#ues
de informaci-n. la estr0ct0ra de objetos es importante por#ue nos muestra como los o$etos colaboran
entre s/ a trav,s de diferentes mecanismos" mientras #ue la estr0ct0ra de clases resalta la estr0ct0ra y
co1.orta1iento co10nes en el interior del sistema.
0a identi2icaci4n de jerar90/as en un sistema compleo no es fcil ya #ue re#uiere #ue se descu$ran
patrones entre muchos o$etos" cada uno de los cuales puede incluir comportamientos muy complicados.
Pg. 8/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Puede hacerse frente a las restricciones de la cognici-n humana mediante el uso de la desco1.osici4n" la
abstracci4n y la jerar90/a.
1.4 - Del diseo de sistemas complejos.
!l si7ni2icado del diseo,
*s la a.ro8i1aci4n disci.linada 90e se 0tili:a .ara in6entar 0na sol0ci4n para alg%n pro$lema"
suministrando as' un camino desde los re#uerimientos hasta la implantaci-n.
:onstruir un sistema #ue3
satisfaga determinada condici-n funcional
se auste a las limitaciones impuestas por el medio de destino
respete re#uisitos impl'citos o e!pl'citos so$re el rendimiento y reutili+aci-n de recursos
satisfaga criterios de dise)o impl'citos o e!pl'citos so$re la forma del artefacto
satisfaga restricciones so$re el propio proceso de dise)o" tales como su longitud o coste" o las
herramientas disponi$les para reali+ar el dise)o
D:rear una estructura interna .o ar#uitectura/ clara y relativamente simpleD
D*s un $alance entre un conunto de re#uisitos #ue compitenD
D0os productos del dise)o son modelos #ue permiten ra+onar so$re las estructuras" hacer
concesiones cuando los re#uisitos entran en conflicto y" en general" proporcionar un anteproyecto
para la implementaci-n.
La i1.ortancia de constr0ir 0n 1odelo,
:ada modelo dentro de un dise)o descri$e un aspecto espec'fico del sistema #ue se est considerando.
Eeneralmente" se $usca construir nuevos modelos $asados en modelos vieos en los #ue ya se conf'a. 0os
1odelos dan la o.ort0nidad de 2allar en condiciones controladas" $ao situaciones tanto previstas
como impro$a$les para modificarlo para #ue se comporte del modo esperado o deseado.
Los ele1entos de los 15todos de diseo del so2t3are,
). +otaci4n *l lenguae para e!presar cada modelo
*. Proceso 0as actividades #ue encaminan a la construcci-n ordenada de los modelos del
sistema.
.. Berra1ientas 0os artefactos #ue eliminan el tedio de construir el modelo y reafirman las reglas
so$re los propios modelos" de forma #ue sea posi$le revelar errores e inconsistencias.
Los 1odelos del desarrollo orientado a objetos,
*l diseo orientado a objetos es el m,todo #ue lleva a una descomposici-n orientada a o$etos. Aplicando
dise)o orientado a o$etos se crea so2t3are resistente al ca1bio .meor evoluci-n/ y escrito con
econo1/a de e8.resi4n.
9odelo l-gico
9odelo f'sico
9odelo esttico
9odelo dinmico
Pg. F/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
R!"#$ %&'I("L) 1
*l soft(are es compleo de forma innataG la compleidad de los sistemas de soft(are e!cede
frecuentemente la capacidad intelectual humana.
0a tarea del e#uipo de desarrollo de soft(are es la de crear una ilusi-n de sencille+.
0a compleidad toma a menudo la forma de una erar#u'aG esto es %til para modelar tanto las
erar#u'as Hes6unI como Hparte deI de un sistema compleo.
0os sistemas compleos evolucionan generalmente de formas intermedias esta$les.
*!isten factores de limitaci-n fundamentales en la cognici-n humanaG puede hacerse frente a estas
restricciones mediante el uso de la descomposici-n" a$stracci-n y erar#u'a.
0os sistemas compleos pueden verse centrando la atenci-n $ien en las cosas o $ien en los
procesosG hay ra+ones de peso para aplicar la descomposici-n orientada a o$etos" en la cual se ve
el mundo como una colecci-n significativa de o$etos #ue cola$oran para conseguir alg%n
comportamiento de nivel superior.
*l dise)o orientado a o$etos es el m,todo #ue conduce a una descomposici-n orientada a o$etosG
el dise)o orientado a o$etos define una notaci-n y un proceso para construir sistemas de soft(are
compleos" y ofrece un rico conunto de modelos l-gicos y f'sicos con los cuales se puede ra+onar
so$re diferentes aspectos del sistema #ue se esta considerando.
Pg. 1J/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Ca./t0lo # !l 1odelo de objetos
*l modelo de o$etos es el conunto de s-lidos fundamentos de ingenier'a para la tecnolog'a orientada a
o$etos. *ste modelo a$arca los principios de abstracci4n@ enca.s0laci4n@ 1od0laridad@ jerar90/a@ ti.os@
conc0rrencia y .ersistencia. 0os conceptos no son nuevos pero el modelo los integra de forma sin,rgica.
Por desgracia la programaci-n orientada a o$etos significa cosas distintas para personas distintas.
2.1 - La e*oluci+n del modelo de o,jetos.
Tendencias en in7enier/a de so2t3are,
Las 7eneraciones de len70ajes de .ro7ra1aci4n,
2espla+amiento de programaci-n al por menor a la programaci-n al por mayor.
0a evoluci-n de los lenguaes de alto nivel.
0a tendencia ha demostrado un despla+amiento de los lenguaes imperativos hacia los lenguaes
declarativos.
Len70ajes i1.erati6os3 le dicen a la computadora #u, hacer.
Len70ajes declarati6os3 descri$en las a$stracciones claves del dominio del pro$lema.
Pri1era 7eneraci4n? represent- un paso de acercamiento al pro$lema y un paso de aleamiento
de la m#uina #ue ha$'a de$ao al poder escri$ir el voca$ulario casi totalmente matemtico y cient'fico
directamente con f-rmulas .sin complicaciones de lenguae de m#uina/.
$e70nda 7eneraci4n? se enfati+- las a$stracciones algor'tmicas. 0o principal ahora era decirle a
la m#uina lo #ue de$'a hacer.
Tercera 7eneraci4n3 se re#uirieron ms tipos de datos. Se empe+- a soportar la a$stracci-n de
datos.
A partir de los a)os setenta se crearon ms de dos millares de lenguaes de programaci-n de los cuales
pocos so$revivieron.
To.olo7/a de los len70ajes de .ri1era y .rinci.ios de la se70nda 7eneraci4n,
). *l $lo#ue principal de construcci-n de programas de esta ,poca era el s0b.ro7ra1a o .rra2o.
*structura f'sica relativamente plana" consistente solo en datos glo$ales y su$programas.
*. De.endencia de cada 0no de los s0b.ro7ra1as a los datos 7lobales. 1n error en una parte de
estos programas puede tener un devastador efecto de propagaci-n .de$ido a #ue las estructuras de
datos glo$ales estn e!puestas a todos los su$programas/.
.. Di2/cil 1antener la inte7ridad del dise)o original en un sistema grande.
1. 0a entro./a es fcil de encontrar. *norme cantidad de acoplamientos entre su$programas y fluo de
control retorcidos" amena+ando la fia$ilidad y claridad de la soluci-n del sistema.
To.olo7/a de los len70ajes de 2ines de la se70nda y .rinci.ios de la tercera
7eneraci4n,
Kncorporaci-n del concepto de abstracci4n L.rocedi1entalM con tres consecuencias3
Pg. 11/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
). mecanismos de .asaje de .ar1etros"
*. se asentaron los 20nda1entos de la .ro7ra1aci4n estr0ct0rada y
.. surgieron los 15todos de diseo estr0ct0rado .con su$programas como $lo#ues f'sicos $sicos
para la construcci-n/.
To.olo7/a de los len70ajes de 2inales de la tercera 7eneraci4n,
Se incorpor- la idea del m-dulo compilado separadamente para tra$aar en e#uipos de desarrollo grande y
dividir las tareas" pero #ue carec'an de reglas #ue e!igiesen una consistencia semntica entre los diferentes
m-dulos escritos.
To.olo7/a de los len70ajes basados en objetos y orientados a objetos,
). Surgieron primero los 15todos de diseo diri7ido .or los datos" #ue proporcionaron una
apro!imaci-n disciplinada al hecho de reali+ar a$stracciones de datos en lenguaes orientados
algor'tmicamente.
*. Aparecieron teor/as acerca del conce.to de ti.o.
*stos dos conceptos fueron meorando poco a poco a trav,s de los millares de lenguaes #ue perecieron y
culminaron representndose en lenguaes como SmalltalB" >$ect Pascal" :CC" :0>S" Ada y *iffel.
*stos lenguaes son basados en objetos y orientados a objetos. *l $lo#ue $sico de construcci-n de
este tipo de lenguaes es el 14d0lo .#ue representa una colecci-n l-gica de clases y o$etos en lugar de
su$programas/.
)0nda1entos del 1odelo de objetos,
0as clases y objetos son los $lo#ues $sicos de construcci-n en este modelo.
*l modelo de o$etos result- ser un concepto unificador de la informtica" al aplicrsele a las interfaces de
usuario" $ases de datos y ar#uitecturas de computadores. @odo esto de$ido a los primeros puntos citados
del primer cap'tulo3 la orientaci4n a objetos ay0da a co1batir la co1.lejidad inherente a 10chos ti.os
de siste1as
1n objeto s4lo .0ede ca1biar de estado" actuar" ser manipulado o permanecer en relaci-n con otros
o$etos de maneras apropiadas. *!isten .ro.iedades in6ariantes 90e caracteri:an a 0n objeto y s0
co1.orta1iento.
Pro7ra1aci4n orientada a objetos,
Es un mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de
objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son, todas ellas
miembros de una jerarqua de clases unidas mediante relaciones de herencia.
Si falta cual#uiera de estos elementos" el programa no es orientado a o$etos.
0a programaci-n sin herencia es e!pl'citamente no orientada a o$etos" se denomina .ro7ra1aci4n con
ti.os abstractos de datos.
Un len70aje es orientado a objetos si y s4lo si3
Pg. 12/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
1. soporta o$etos #ue son a$stracciones de datos con un interfa+ de operaciones con nom$re y un
estado local oculto
2. los o$etos tiene un tipo asociado .clase/
3. los tipos .clase/ pueden heredar atri$utos de los supertipos .superclases/.
Para un lenguae soportar la herencia significa #ue es posi$le e!presar relaciones Les unM entre tipos.
Basado en objeto es un lenguae #ue no ofrece soporte directo para la herencia.
Diseo orientado a objetos,
Es un mtodo de diseo que abarca el proceso de descomposicin orientada a objetos y una notacin para
describir los modelos lgico y fsico, as como los modelos esttico y dinmico del sistema que se disea.
*l soporte para la descomposici-n orientada a o$etos diferencia a este tipo de dise)o del estructurado ya
#ue permite diagramar l-gicamente el sistema haciendo uso de a$stracciones de clases y o$etos.
Anlisis orientado a objetos,
Enfatiza la construccin de modelos del mundo real, utilizando una visin orientada a objetos.
Es un mtodo de anlisis que e!amina los requisitos desde la perspectiva de las clases y objetos que se
encuentran en el vocabulario del dominio del problema.
0os productos del AOO sirven como modelos de los #ue se puede partir para un 2>>.
0os productos del DOO puede utili+arse como anteproyectos para la implementaci-n completa de un
sistema utili+ando m,todos de POO.
2.2 - lementos del modelo de o,jetos.
Ti.os de .aradi71as de .ro7ra1aci4n,
!stilo de .ro7ra1aci4n3 una forma de organi+ar programas so$re las $ases de alg%n modelo conceptual
de programaci-n y un lenguae apropiado para #ue resulten claros los programas escritos en ese estilo.
!stilo de .ro7ra1aci4n Abstracci4n 90e se 0sa
>rientado a procedimientos Algoritmos
>rientado a o$etos :lases y o$etos
>rientado a l-gica >$etivos" e!presados como clculo de predicados
>rientado a reglas ?eglas si6entonces
>rientados a restricciones ?elaciones invariantes
<ay cuatro elementos fundamentales del modelo de o$etos .si alguno de ellos falta el modelo no es
orientado a o$etos/3
Abstracci4n
!nca.s0la1iento
od0laridad
"erar90/a
Pg. 13/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
<ay tres elementos secundarios3
Ti.os =ti.i2icaci4n>
Conc0rrencia
Persistencia
Abstracci4n,
"urge del reconocimiento de las similitudes entre ciertos objetos, situaciones o procesos del mundo real, y
la decisin de concentrarse en esas similitudes e ignorar por el momento las diferencias.
#na abstraccin denota las caractersticas esenciales de un objeto que lo distinguen de todos los dems
tipos de objeto y proporciona as fronteras conceptuales ntidamente definidas respecto a la perspectiva del
observador.
1na a$stracci-n se centra en la visi-n e!terna del o$eto y por tanto sirve para separar el comportamiento
esencial de un o$eto de su implantaci-n .N barrera de abstracci4n/.
Abstracci4n de entidades 1n o$eto representa un modelo %til de una entidad del
dominio del pro$lema o del dominio de la soluci-n.
Abstracci4n de acciones 1n o$eto #ue proporciona un conunto generali+ado de
operaciones y todas ellas desempe)an funciones del
mismo tipo.
Abstracci4n de 190inas 6irt0ales 1n o$eto #ue agrupa operaciones" todas ellas virtuales
utili+adas por alg%n nivel superior o control" u operaciones
#ue utili+an todas alg%n conunto de operaciones de nivel
inferior.
Abstracci4n de coincidencia 1n o$eto #ue almacena un conunto de operaciones #ue
no tiene relaci-n entre s'.
1n cliente es cual#uier o$eto #ue utili+a los recursos de otro o$eto .denominado ser6idor/.
Se puede caracteri+ar el comportamiento de un o$eto considerando los servicios #ue presta a otros
o$etos.
Al conunto completo de operaciones #ue puede reali+ar un cliente so$re un o$eto" unto con las formas de
invocaci-n u -rdenes #ue admite" se le denomina .rotocolo.
1n in6ariante es una condici-n $ooleana cuyo valor de verdad de$e mantenerse.
Precondiciones3 invariantes asumidos por la operaci-n
Postcondiciones3 invariantes satisfechos por la operaci-n.
Si se viola una precondici-n significa #ue un cliente no ha satisfecho su parte del convenio" y por tanto el
servidor no puede proceder con fia$ilidad.
Si se viola una postcondici-n significa #ue un servidor no ha llevado a ca$o su parte del contrato" y por tanto
sus clientes ya no pueden seguir confiando en el comportamiento del servidor.
Pg. 14/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
1na Le8ce.ci4nM es una indicaci-n de #ue no se ha satisfecho alg%n invariante.
@odas las a$stracciones tiene propiedades tanto estticas como din1icas.
Objeto3 archivo en un disco.
Pro.iedades3 !$TCTICA$ nom$re" tama)o" contenido.
Dalores de las .ro.iedades3 DI+CICO$ su nom$re" su tama)o y su contenido pueden cam$iar.
!nca.s0la1iento,
!l si7ni2icado del enca.s0la1iento,
8inguna parte de un sistema compleo de$e depender de los detalles internos de otras partes.
9ientras la a$stracci-n ayuda a las personas a pensar so$re lo #ue estn haciendo" el encapsulamiento
permite #ue los cam$ios hechos en los programas sean fia$les con el menor esfuer+o.
*l encapsulamiento se consigue a menudo mediante la oc0ltaci4n de in2or1aci4n" la estructura de un
o$eto est oculta as' como la implantaci-n de sus m,todos.
LPara #ue la a$stracci-n funcione" la implementaci-n de$e estar encapsuladaM
*n la prctica cada clase de$e tener dos partes3 un interfa+ y una implementaci-n.
Inter2a:3 captura s-lo su 6ista e8terna" a$arcando la a$stracci-n #ue se ha hecho del comportamiento
com%n de todas las instancias de esa clase.
I1.le1entaci4n3 .o implantaci-n/ comprende la re.resentaci4n de la abstracci4n as/ co1o los
1ecanis1os #ue consiguen el comportamiento deseado.
El encapsulamiento es el proceso de almacenar en un mismo compartimento los elementos de una
abstraccin que constituyen su estructura y su comportamiento$ sirve para separar el interfaz contractual de
una abstraccin y su implementacin.
*sos elementos encapsulados se llaman Lsecretos de 0na abstracci4nM.
0a ocultaci-n es un concepto relati6o3 lo #ue est oculto a un nivel de a$stracci-n puede representar la
visi-n e!terna a otro nivel de a$stracci-n.
od0laridad,
!l si7ni2icado de la 1od0laridad,
L*l acto de fragmentar un programa en componentes individuales puede reducir su compleidad en alg%n
gradoM. *sto es una ra+-n %til" pero ms poderosa es la ustificaci-n de #ue la fragmentaci-n crea 0na
serie de 2ronteras bien de2inidas y doc01entadas dentro del .ro7ra1a. *l uso de m-dulos es esencial
para ayudar a manear la compleidad.
0a modulari+aci-n consiste en dividir un programa en m-dulos #ue pueden compilarse separadamente"
pero #ue tienen cone!iones con otros m-dulos. 0as cone!iones entre m-dulos son las suposiciones #ue
cada m-dulo hace acerca de todos los dems.
0a decisi-n so$re el conunto adecuado de m-dulos para determinado pro$lema es casi tan dif'cil como
decidir so$re el conunto adecuado de a$stracciones.
*n el dise)o estructurado tradicional" la modulari+aci-n persigue ante todo el agrupamiento significativo de
su$programas" utili+ando los criterios de acoplamiento y cohesi-n. *n el dise)o orientado a o$etos" el
Pg. 14/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
pro$lema presenta diferencias sutiles" la tarea es decidir d4nde e1.a90etar 2/sica1ente las clases y
objetos a partir de la estructura l-gica del dise)o" y ,stos son claramente diferentes de los su$programas.
*l o$etivo de fondo de la descomposici-n en m-dulos es la reducci-n del coste del soft(are al permitir #ue
los m-dulos se dise)en y revisen independientemente. 0a estructura de cada m-dulo de$er'a ser lo
$astante simple como para ser comprendida en su totalidad.
0os detalles de un sistema" #ue pro$a$lemente cam$ien de forma independiente" de$er'an ser secretos en
m-dulos separadosG las %nicas suposiciones #ue de$er'an darse entre m-dulos son a#uellas cuyo cam$io
se considera impro$a$le.
<ay #ue hacer lo posi$le por construir 14d0los cohesi6os .agrupando a$stracciones #ue guarden cierta
relaci-n l-gica/ y d5bil1ente aco.lados .minimi+ando las dependencias entre m-dulos/.
%a modularidad es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de mdulos
cohesivos y dbilmente acoplados.
"erar90/a,
!l si7ni2icado de la jerar90/a,
0a abstracci4n es algo $ueno" pero e!cepto en las aplicaciones ms triviales" puede ha$er muchas ms
a$stracciones diferentes de las #ue se pueden comprender simultneamente.
*l enca.s0la1iento ayuda a manear esta compleidad ocultando la visi-n interna de las a$stracciones.
0a 1od0laridad tam$i,n ayuda" ofreciendo una v'a para agrupar a$stracciones relacionadas l-gicamente.
%a jerarqua es una ordenacin o clasificacin de abstracciones.
0as dos erar#u'as ms importantes en un sistema compleo son su estructura de clases .la erar#u'a Lde
clasesM/ y su estructura de o$etos .la erar#u'a Lde .artesM/.
0a herencia es la erar#u'a de clases ms importante .elemento esencial en los sistemas orientados a
o$etos/. Asicamente la herencia define una relaci-n entre clases" en la #ue una clase comparte la
estructura de comportamiento definida en una o ms clases .lo denominado herencia si1.le o 1Alti.le/.
1na su$clase hereda de una o ms superclases. @'picamente una su$clase aumenta o redefine la
estructura y el comportamiento de sus superclases. Semnticamente la herencia denota una relaci-n de tipo
Les 0nM.
A medida #ue se desarrolla una erar#u'a de herencias" la estructura y comportamiento comunes a
diferentes clases tender a migrar hacia superclases comunes.
Berencia E jerar90/a de 7enerali:aci4n F es.eciali:aci4n,
0as s0.erclases representan a$stracciones generali+adas
0as s0bclases representan especiali+aciones en la #ue los campos y m,todos de las superclases
sufren adiciones" modificaciones o incluso ocultaciones.
De este modo la herencia permite declarar las a,stracciones con econom-a de e.presi+n.
Sin herencia cada clase ser'a una unidad independiente" desarrollada partiendo de cero.
Pg. 15/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
0a herencia posi$ilita la de2inici4n de n0e6o so2t3are de la misma forma #ue se presenta un nuevo
concepto a un reci,n llegado" comparndolo con lago #ue ya le resulte familiar.
L0a a$stracci-n de datos intenta proporcionar una $arrera opaca tras de la cual se ocultan los m,todos y el
estadoG la herencia re#uiere a$rir ese interfa+ en cierto grado y puede permitir el acceso a m,todos y al
estado sin a$stracci-nM
Para la herencia 1Alti.le primero se idean clases #ue capturen independientemente las propiedades
$uscadas .se las llama clases aditivas/ y luego se las une en una su$clase. <ay pro$lemas de colisi-n de
nom$res y herencia repetida.
"erar90/a de a7re7aci4n3 son relaciones L.arte deM. *sto permite ha$lar de ni6eles de abstracci4n.
8iveles ms altos o ms $aos para indicar la dependencia de una clase a otra.
1na clase est a nivel ms alto de a$stracci-n #ue cual#uiera de las clases #ue constituyen su
implantaci-n.
La co1binaci4n de herencia con a7re7aci4n es 10y .otente, 0a agregaci-n permite el agrupamiento
f'sico de estructuras relacionadas l-gicamente" y la herencia permite #ue estos grupos de aparici-n
frecuente se reutilicen con facilidad en diferentes a$stracciones.
Ti.os, Ti.i2icaci4n,
!l si7ni2icado de los ti.os,
1n tipo es una caracteri+aci-n precisa de las propiedades estructurales o de comportamiento #ue
comparten una serie de entidades.
/Las clases implementan a los tipos0 $o son e.actamente lo mismo.
%os tipos son la puesta en vigor de la clase de los objetos, de modo que los objetos de tipos distintos no
pueden intercambiarse o, como mucho, pueden intercambiarse slo de formas muy restringidas.
1n lenguae de programaci-n determinado puede tener compro$aci-n estricta de tipos" compro$aci-n d,$il
de tipos" o incluso no tener tipos" y a%n as' ser considerado como orientado a o$etos.
Co1.robaci4n estricta de ti.os3 no puede llamarse a una operaci-n so$re un o$eto a menos #ue en la
clase o superclases del o$eto est, definido el prototipo de esa operaci-n. @odas las e!presiones son
consistentes respecto al tipo.
*n lenguaes con compro$aci-n estricta de tipos puede detectarse en tiempo de compilaci-n cual#uier
violaci-n a la concordancia de tipos.
Co1.robaci4n d5bil de ti.os3 hacer cumplir la clase de un o$eto" lo #ue previene el intercam$io de
o$etos de diferentes tipos o" como mucho" permite este intercam$io de maneras muy limitadas.
Bene2icios del 0so de ti.os estrictos?
sin la compro$aci-n de tipos un programa puede estallar de forma misteriosa en eecuci-n en la
mayor'a de los lenguaes.
en la mayor'a de los sistemas" el ciclo editar6compilar6depurar es tan tedioso #ue la compro$aci-n
temprana de errores es indispensa$le.
la declaraci-n de tipos ayuda a documentar los programas.
la mayor'a de los compiladores pueden generar un c-digo ms eficiente si se han declarado tipos.
Pg. 17/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Li7ad0ra esttica y din1ica,
a. Li7ad0ra esttica o te1.rana3 significa #ue se fian los tipos de todas las varia$les y e!presiones
en tiempo de compilaci-nG
b. Li7ad0ra din1ica o tard/a3 los tipos de las varia$les y e!presiones no se conocen hasta el tiempo
de eecuci-n.
Poli1or2is1o3 representa un concepto de teor'a de tipos" en el #ue un solo nom$re .tal como una
declaraci-n de varia$le/ puede denotar o$etos de muchas clases diferentes #ue se relacionan por alguna
superclase com%n de operaciones. *l opuesto del polimorfismo es el 1ono1or2is1o.
Conc0rrencia,
!l si7ni2icado de la conc0rrencia,
Bilo de control3 un solo proceso.
*s com%n tener #ue manear muchos eventos diferentes simultneamente. 1n solo proceso es la ra'+ a
partir de la cual se producen acciones dinmicas independientes dentro del sistema.
0os sistemas #ue se eecutan en m%ltiples :P1s permiten hilos de control verdaderamente concurrentes"
mientras #ue los sistemas #ue se eecutan en una sola :P1 s-lo pueden conseguir la ilusi-n de hilos
concurrentes de control" normalmente mediante alg%n algoritmo de tiempo compartido.
Proceso .esado3 a#uel t'picamente maneado de forma independiente por el sistema operativo de destino"
y a$arca su propio espacio de direcciones.
Proceso li7ero3 suele e!istir dentro de un solo proceso del sistema operativo en compa)'a de otros
procesos ligeros" #ue comparten el mismo espacio de direcciones.
2ise)ar un sistema #ue a$ar#ue m%ltiples hilos de control es muy dif'cil ya #ue hay #ue preocuparse de
pro$lemas tales como inter$lo#ueo" $lo#ueo activo" inanici-n" e!clusi-n mutua y condiciones de
competencia.
9ientras #ue la P>> se centra en la a$stracci-n de datos" encapsulamiento y herencia" la concurrencia se
centra en la a$stracci-n de procesos y la sincroni+aci-n. *l o$eto es un concepto #ue unifica estos dos
puntos de vista distintos3 cada o$eto .e!tra'do de una a$stracci-n del mundo real/ puede representar un
hilo separado de control .una a$stracci-n de un proceso/. @ales o$etos se llaman acti6os.
*n un sistema >> se puede conceptuali+ar el mundo como un conunto de o$etos cooperativos" algunos de
los cuales son activos y sirven as' como centros de la actividad independiente.
%a concurrencia es la propiedad que distingue un objeto activo de uno que no est activo.
1na ve+ #ue se introduce la concurrencia a un sistema" hay #ue tener en cuenta como los o$etos activos
sincroni+an sus actividades con otros" as' como con o$etos puramente secuenciales.
Persistencia,
!l si7ni2icado de la .ersistencia,
1n o$eto de soft(are ocupa una cierta cantidad de espacio" y e!iste durante una cierta cantidad de tiempo.
<ay un espacio de e!istencia #ue va desde los o$etos transitorios #ue surgen en la evaluaci-n de una
e!presi-n hasta los o$etos de una $ase de datos. *ste espectro de persistencia a$arca lo siguiente3
Pg. 18/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
). ?esultados transitorios en la e6al0aci4n de e8.resiones.
*. Dariables locales en la activaci-n de procedimientos.
.. Dariables .ro.ias" 7lobales y ele1entos del 1ont/c0lo cuya duraci-n difiere de su m$ito.
1. 2atos #ue e!isten entre ejec0ciones de 0n .ro7ra1a.
5. 2atos #ue e!isten entre 6arias 6ersiones de 0n .ro7ra1a.
!. 2atos #ue sobre6i6en al .ro7ra1a.
0a persistencia a$arca algo ms #ue la mera duraci-n de los datos. *n las $ases de datos orientadas a
o$etos" no s-lo persiste el estado del o$eto" sino #ue su clase de$e trascender tam$i,n a cual#uier
programa individual" de forma #ue todos los programas interpreten de la misma manera el estado
almacenado. *sto hace #ue sea un reto evidente el mantener la integridad de una $ase de datos a medida
#ue crece" particularmente si hay #ue cam$iar la clase de un o$eto.
%a persistencia es la propiedad de un objeto por la que su e!istencia trasciende el tiempo &es decir, el
objeto contin'a e!istiendo despus de que su creador deja de e!istir( y ) o el espacio *es decir, la posicin
del objeto vara con respecto al espacio de direcciones en el que fue creado(.
2.3 - &plicaci+n del modelo de o,jetos.
Bene2icios del 1odelo de objetos,
*l uso del modelo de o$etos conduce a la construcci-n de sistemas #ue incluyen los cinco atri$utos de los
sistemas compleos $ien estructurados.
1/ Ayuda adems a e!plotar la potencia e!presiva de los lenguaes de programaci-n $asados en
o$etos y orientados a o$etos. Se han logrado meoras significativas con por eemplo" una pi+ca de
a$stracci-n de datos a)adida donde era claramente %til" o apreciando las erar#u'as de clases en el
proceso de dise)o.
2/ Promueve la reutili+aci-n no s-lo de soft(are" sino de dise)os enteros" conduciendo a la creaci-n
de marcos de desarrollo de aplicaciones reutili+a$les. 0os sistemas orientados a o$etos son
frecuentemente ms pe#ue)os #ue sus implantaciones e#uivalente no orientadas a o$etos.
Significa escri$ir y mantener menos c-digo aparte de una reutili+aci-n de soft(are #ue reflea
$eneficios de coste y planificaci-n.
3/ Produce sistemas #ue se construyen so$re formas intermedias esta$les" son ms fle!i$les al
cam$io. @ienen una meor evoluci-n en el tiempo y mayor ciclo de vida.
4/ ?educe los riesgos inherentes al desarrollo de sistemas compleos. 0a integraci-n se distri$uye a lo
largo del ciclo vital en ve+ de suceder como un evento principal.
4/ ?esulta atractivo para el funcionamiento de la cognici-n humana" por#ue muchas personas #ue no
tiene ni idea de c-mo funciona un computador encuentran $astante natural la idea de los sistemas
orientados a o$etos.
*l modelo de o$etos ha demostrado ser aplica$le a una amplia variedad de dominios de pro$lema. <oy en
d'a" el 2>> puede #ue sea el %nico m,todo #ue puede emplearse para atacar la compleidad innata a
muchos sistemas grandes. Sin em$argo" puede no ser aconsea$le en dominios" no por ra+ones t,cnicas
sino por cuestiones como falta de personal con entrenamiento adecuado o $uenos entornos de desarrollo.
Pg. 1F/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
R!"#$ %&'I("L) 2
0a madure+ de la ingenier'a del soft(are ha conducido al desarrollo de m,todos de anlisis" dise)o
y programaci-n orientados a o$etos" todos los cuales tienen la misi-n de resolver los pro$lemas de
la programaci-n a gran escala.
*!isten varios paradigmas de programaci-n distintos3 orientados a procedimientos" orientados a
o$etos" orientados a l-gica" orientados a reglas y orientados a restricciones.
1na a$stracci-n denota las caracter'sticas esenciales de un o$eto #ue lo distinguen de todos los
dems tipos de o$eto" y proporciona as' fronteras conceptuales definidas con nitide+" desde la
perspectiva del o$servador.
*l encapsulamiento es el proceso de compartimentar los elementos de una a$stracci-n #ue
constituyen su estructura y comportamiento. Sirve para separa el interfa+ HcontractualI de una
a$stracci-n y su implantaci-n.
0a modularidad es la propiedad de un sistema #ue ha sido descompuesto en un conunto de
m-dulos cohesivos y d,$ilmente acoplados.
0a erar#u'a es una graduaci-n u ordenaci-n de a$stracciones.
0os tipos son el resultado de imponer la clase de los o$etos" de forma #ue los o$etos de tipos
diferentes no pueden intercam$iarse o" como mucho" pueden hacerlo de formas muy restrictivas.
0a concurrencia es la propiedad #ue distingue un o$eto activo de uno #ue no est activo.
0a persistencia es la propiedad de un o$eto mediante la cual su e!istencia perdura en el tiempo y/o
el espacio.
Pg. 2J/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Ca./t0lo % Clases y Objetos
0as clases y los o$etos son los $lo#ues $sicos de construcci-n de un sistema de soft(are compleo.
3.1 - La naturale1a de los o,jetos.
G05 es y 905 no es 0n objeto,
A trav,s del concepto de o$eto un ni)o llega a darse cuenta de #ue los o$etos tienen una permanencia e
identidad adems de cuales#uiera operaciones so$re ellos.
2esde la perspectiva de la cognici-n humana un o$eto es cuales#uiera de las siguientes cosas3
1na cosa tangi$le y / o visi$le.
Algo #ue puede comprenderse intelectualmente.
Algo hacia lo #ue se dirige un pensamiento o acci-n.
1n o$eto modelo alguna parte de la realidad" y es por tanto algo #ue e!iste en el tiempo y el espacio.
0os o$etos del mundo real no son el %nico tipo de o$eto de inter,s para el desarrollo del soft(are. >tros
tipos importantes de o$etos son invenciones del proceso de dise)o cuyas cola$oraciones con otros o$etos
semeantes sirven como mecanismos para desempe)ar alg%n comportamiento de nivel superior.
Un objeto re.resenta 0n ele1ento@ 0nidad o entidad indi6id0al e identi2icable@ ya sea real o
abstracta@ con 0n .a.el bien de2inido en el do1inio del .roble1a,
1n o$eto es cual#uier cosa #ue tenga una frontera definida con nitide+.
Algunos o$etos pueden tener l/1ites conce.t0ales .recisos" pero a%n as' pueden re.resentar e6entos
o .rocesos intan7ibles.
Algunos o$etos pueden ser tan7ibles y a%n as' tener 2ronteras 2/sicas di20sas .o$etos como los r'os" la
nie$la" etc./.
#n o,jeto tiene estado, comportamiento e identidad$ la estructura y comportamiento de objetos similares
estn definidos en su clase com'n$ los trminos instancia y o,jeto son intercam,ia,les.
!stado,
$e1ntica.
*l comportamiento de un o$eto est influenciado por su historia3 el orden en el #ue se opera so$re un
o$eto es importante. 0a ra:4n .ara este co1.orta1iento de.endiente del tie1.o y los e6entos es la
e8istencia de 0n estado interior del objeto. > sea #ue3
El estado de un objeto abarca todas las propiedades *normalmente estticas( del mismo ms los valores
actuales *normalmente dinmicos( de cada una de esas propiedades.
1na propiedad es una caracter'stica distintiva o inherente" un rasgo o cualidad #ue contri$uye a hacer #ue
un o$eto sea ese o$eto y no otro. @odas las propiedades tiene alg%n valor. *ste valor puede ser una mera
cantidad" o puede denotar a otro o$eto. *sas cantidades son intemporales" inmuta$les y no instanciadasG
mientras #ue los objetos e!isten en el tiempo" son modifica$les" tienen estado" son instanciados y pueden
crearse" destruirse y compartirse.
*l hecho de #ue todo o$eto tiene un estado implica #ue todo o$eto toma cierta cantidad de espacio" ya sea
en el mundo f'sico o en la memoria del computador.
Pg. 21/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Puede decirse #ue todos los objetos de 0n siste1a enca.s0lan al7An estado" y #ue todo el estado de
0n siste1a est enca.s0lado en objetos. Sin em$argo" encapsular el estado de un o$eto es un punto de
partido pero no es suficiente para permitir #ue se capturen todos los designios de las a$stracciones #ue se
descu$ren e inventan durante el desarrollo. Por esta ra+-n" hay 90e considerar ta1bi5n c41o se
co1.ortan los objetos.
Co1.orta1iento,
!l si7ni2icado del co1.orta1iento,
8ing%n o$eto e!iste de forma aislada. 0os o$etos reci$en acciones y act%an so$re otros o$etos.
El comportamiento es cmo act'a y reacciona un objeto, en trminos de sus cambios de estado y paso de
mensajes. +epresenta su actividad visible y comprobable e!teriormente.
1na operaci-n es una acci-n #ue un o$eto efect%a so$re otro con el fin de provocar una reacci-n. 0os
t,rminos o.eraci4n y 1ensaje son intercam$ia$les.
*n la mayor'a de los lenguaes de programaci-n orientados a o$etos" las operaciones #ue los clientes
pueden reali+ar so$re un o$eto suelen declararse como 15todos .o funci-n miem$ro en :CC por eemplo/.
0a definici-n de co1.orta1iento tam$i,n recoge #ue el estado de un o$eto afecta asimismo a su
comportamiento. *l comportamiento de un o$eto es funci-n de su estado as' como tam$i,n de la operaci-n
#ue se reali+a so$re ,l" teniendo algunas operaciones el efecto lateral de modificar el estado del o$eto.
El estado de un objeto representa los resultados acumulados de su comportamiento.
1na operaci-n denota un servicio #ue una clase ofrece a sus clientes. 0os tres tipos ms comunes de
operaciones so$re un o$eto son3
a. odi2icador 1na operaci-n #ue altera el estado de un o$eto.
b. $elector 1na operaci-n #ue accede al estado de un o$eto" pero no altera ese estado.
c. Iterador 1na operaci-n #ue permite acceder a todas las partes de un o$eto en alg%n orden
perfectamente esta$lecido.
d. Constr0ctor 1na operaci-n #ue crea un o$eto y / o iniciali+a su estado.
e. Destr0ctor 1na operaci-n #ue li$era el estado de un o$eto y / o destruye el propio o$eto.
Holes y res.onsabilidades,
@odos los m,todos y su$programas li$res asociados a un o$eto concreto forman su protocolo. *l protocolo
define as' la envoltura del comportamiento admisi$le en un o$eto" englo$ando la visi-n esttica y dinmica
completa del mismo.
Para la mayor'a de las a$stracciones es %til dividir este protocolo en grupos l-gicos de comportamiento.
*stas colecciones" #ue constituyen una partici-n del espacio de comportamiento de un o$eto" denotan
papeles #ue un o$eto puede desempe)ar. 1n papel es una mscara #ue se pone un o$eto y por tanto
define un contrato entre una a$stracci-n y sus clientes.
0as responsa$ilidades de un o$eto Lincluyen dos elementos claveM3 el conocimiento #ue un o$eto
mantiene y las acciones #ue puede llevar a ca$o. Las res.onsabilidades estn enca1inadas a
trans1itir 0n sentido del .ro.4sito de 0n objeto y de s0 l07ar en el siste1a. 0as responsa$ilidades de
un o$eto son todos los servicios #ue proporciona para todos los contratos #ue soporta.
Los objetos co1o 190inas,
0a e!istencia de un estado significa #ue el orden en el #ue se invocan las operaciones es importante. *sto
da lugar a la idea de #ue cada o$eto es como una pe#ue)a m#uina independiente. Se pueden entonces
Pg. 22/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
clasificar los o$etos como activos o pasivos. 1n objeto acti6o es a#uel #ue comprende su propio hilo de
control" mientras #ue un objeto .asi6o no.
0os o$etos activos suelen ser aut-nomos" pueden e!hi$ir alg%n comportamiento sin #ue ning%n otro o$eto
opere so$re ellos. 0os pasivos" s-lo pueden padecer un cam$io de estado cuando se act%a e!pl'citamente
so$re ellos.
Identidad,
$e1ntica,
%a identidad es aquella propiedad de un objeto que lo distingue de todos los dems objetos.
0a mayor'a de los lenguaes de programaci-n y $ases de datos utili+an nom$res de varia$le para distinguir
o$etos temporales" me+clando la posi$ilidad de acceder a ellos con su identidad. *l fracaso en reconocer la
diferencia entre el nom$re del o$eto y el o$eto en s' mismo es fuente de muchos errores en la
programaci-n orientada a o$etos.
Co.ia@ asi7naci4n e i70aldad,
0a compartici-n estructural se da cuando la identidad de un o$eto reci$e un alias a trav,s de un segundo
nom$re. *s una operaci-n de co.ia.
0a asi7naci4n es del mismo modo en general una operaci-n de copia.
*l pro$lema de la i70aldad est en relaci-n muy estrecha con el de la asignaci-n. Aun#ue se presenta
como un concepto simple la igualdad puede presentar una de dos cosas.
Primero" puede significar #ue dos nom$res designan el mismo o$eto y segundo" puede significar #ue dos
nom$res designan o$etos distintos cuyos estados son iguales.
!s.acio de 6ida de 0n objeto,
*l tiempo de vida de un o$eto se e!tiende desde el momento en #ue se crea por primera ve+ .y consume
as' espacio por primera ve+/ hasta #ue ese espacio se recupera. Para crear e!pl'citamente un o$eto hay
#ue declararlo o $ien asignarle memoria dinmicamente.
3.2 - Relaciones entre o,jetos.
Ti.os de relaciones,
0os o$etos contri$uyen al comportamiento de un sistema cola$orando con otros. *n lugar de un procesador
triturador de $its #ue golpea y sa#uea estructuras de datos" tenemos un universo de o$etos $ien educados
#ue cort,smente solicitan a los dems #ue lleven a ca$o sus diversos deseos. 0a relaci-n entre dos o$etos
cuales#uiera a$arca las suposiciones #ue cada uno reali+a acerca del otro" incluyendo #u, operaciones
pueden reali+arse y #u, comportamiento se o$tiene. <ay dos tipos de erar#u'as de o$etos3
*nlaces
Agregaci-n
!nlaces,
1na cone!i-n f'sica o conceptual entre o$etos. 1n o$eto cola$ora con otros o$etos a trav,s de sus
enlaces con ,stos. 1n enlace denota la asociaci-n espec'fica por la cual un o$eto .el cliente/ utili+a los
servicios de otro o$eto .el suministrador o servidor/" o a trav,s de la cual un o$eto puede comunicarse con
otro.
Pg. 23/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
*l paso de mensaes entre dos o$etos es unidireccional" aun#ue ocasionalmente puede ser $idireccional.
:omo participante de un enlace" un o$eto puede desempe)ar uno de tres papeles3
). Actor 1n o$eto #ue puede operar so$re otros o$etos pero nunca se opera so$re ,l por parte de
otros o$etosG en algunos conte!tos" los t,rminos o$eto activo y actor son e#uivalentes.
*. $er6idor 1n o$eto #ue nunca opera so$re otros o$etosG s-lo otros o$etos operan so$re ,l.
.. A7ente1n o$eto #ue puede operar so$re otros o$etos y adems otros o$etos pueden operar
so$re ,lG un agente se crea normalmente para reali+ar alg%n tra$ao en nom$re de un actor u otro
agente.
Disibilidad,
:onsid,rense dos o$etos A y A con un enlace entre am$os. Para #ue A pueda enviarle un mensae a A" A
de$e ser visi$le para A de alg%n modo. 2urante el anlisis del pro$lema se puede ignorar la visi$ilidad" pero
una ve+ #ue se comien+a a idear implantaciones concretas hay #ue considerarla a trav,s de los enlaces"
por#ue las decisiones en este punto dictan el m$ito y acceso de los o$etos a cada lado del enlace.
<ay cuatro formas en #ue un o$eto puede tener visi$ilidad para otro3
!l objeto ser6idor es 7lobal .ara el cliente,
!l objeto ser6idor es 0n .ar1etro de al70na o.eraci4n del cliente,
!l objeto ser6idor es .arte del objeto cliente,
!l objeto ser6idor es 0n objeto declarado local1ente en al70na o.eraci4n del cliente,
$incroni:aci4n,
Siempre #ue un o$eto pasa un mensae a otro a trav,s de un enlace se dice #ue los dos o$etos estn
sincroni:ados. Para o$etos de una aplicaci-n completamente secuencial" esta sincroni+aci-n suele
reali+arse mediante una simple invocaci-n de m,todos. Sin em$argo en presencia de m%ltiples hilos de
control" los o$etos re#uieren un paso de mensaes ms sofisticado. <ay #ue elegir uno de tres enfo#ues3
). $ec0encial 0a semntica del o$eto pasivo est garanti+ada s-lo en presencia de un %nico
o$eto activo simultneamente.
*. Di7ilado 0a semntica del o$eto pasivo est garanti+ada en presencia de m%ltiples hilos de
control" pero los clientes activos de$en cola$orar para lograr la e!clusi-n mutua.
.. $/ncrono 0a semntica del o$eto pasivo est garanti+ada en presencia de m%ltiples hilos de
control" y el servidor garanti+a la e!clusi-n mutua.
A7re7aci4n,
9ientras #ue los enlaces denotan relaciones de igual6a6igual o cliente / servidor" la agregaci-n denota una
erar#u'a todo / parte" con la capacidad de ir desde el todo .tam$i,n llamado el agregado/ hasta sus partes
.conocido tam$i,n como atri$utos/.
0a agregaci-n puede o no denotar contenci-n f'sica.
*!isten claros pros y contras entre los enlaces y la agregaci-n. 0a agregaci-n es a veces meor por#ue
encapsula partes y secretos del todo. A veces son meores los enlaces por#ue permiten acoplamientos ms
d,$iles entre los o$etos.
Por implicaci-n" un o$eto #ue es atri$uto de otro tiene un enlace a su agregado. A trav,s de este enlace" el
agregado puede enviar mensaes a sus partes.
Pg. 24/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
3.3 - La naturale1a de una clase.
G05 es y 905 no es 0na clase,
0os conceptos de clase y o$eto estn estrechamente ligados pero hay #ue sa$er #ue mientras un o$eto es
una entidad concreta #ue e!iste en el tiempo y el espacio" una clase representa s-lo una a$stracci-n" la
LesenciaM de un o$eto .lo #ue representa las caracter'sticas comunes de todos los o$etos #ue pertenecen
a una clase/.
#na clase es un conjunto de objetos que comparten una estructura com'n y un comportamiento com'n.
1n solo o$eto no es ms #ue una instancia de una clase. 1n o$eto no es una clase" aun#ue una clase s'
puede ser un o$eto. 0a clase es un veh'culo necesario" pero no suficiente" para la descomposici-n.
Inter2a: e i1.le1entaci4n,
1n o$eto es una entidad concreta #ue desempe)a alg%n papel en el sistema glo$al y una clase captura la
estructura y comportamiento comunes a todos los o$etos relacionados. As'" una clase sirve como una
especie de contrato #ue vincula a una a$stracci-n y todos sus clientes. *sta visi-n de la programaci-n
como un contrato lleva a distinguir entre la visi-n e!terna y la visi-n interna de una clase. *l inter2a: de una
clase proporciona su visi-n e!terna y por tanto enfati+a la a$stracci-n a la ve+ #ue oculta su estructura y los
secretos de comportamiento. Se compone principalmente de todas las operaciones aplica$les a instancias
de esta clase" pero tam$i,n puede incluir la declaraci-n de otras clases" constantes" varia$les" e!presiones"
seg%n se necesiten para completar la a$stracci-n.
Por contraste" la i1.le1entaci4n es su visi-n interna #ue englo$a los secretos de su comportamiento. 0a
implementaci-n de una clase se compone principalmente de la implementaci-n de todas las operaciones
definidas en el interfa+ de la misma. *l interfa+ puede dividirse en3
). PAblico .Pu$lic/ 1na declaraci-n accesi$le a todos los clientes.
*. Prote7ida .Protected/ 1na declaraci-n accesi$le s-lo a la propia clase" sus su$clases" y sus
clases amigas.
.. Pri6ada .Private/ 1na declaraci-n accesi$le s-lo a la propia clase y sus clases amigas.
Ciclo de 6ida de las clases,
Se puede llegar a la comprensi-n del comportamiento de una clase simple con s-lo comprender la
semntica de sus distintas operaciones p%$licas de forma aislada. Sin em$argo" el comportamiento de
clases ms interesantes implica la interacci-n de sus diversas operaciones a lo largo del tiempo de vida de
cada una de sus instancias.
3.4 - Relaciones entre clases.
Ti.os de relaciones,
0as clases" al igual #ue los o$etos no e!isten aisladamente. Para un domino de pro$lema espec'fico las
a$stracciones clave suelen estar relacionadas por v'as muy diversas e interesantes formando la estructura
de clases del dise)o.
Se esta$lecen relaciones entre clases por#ue
a. la relaci-n podr'a indicar alg%n tipo de compartici-n.
$. la relaci-n podr'a indicar alg%n tipo de cone!i-n semntica.
*!isten tres tipos $sicos de relaciones entre clases3
Pg. 24/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
). 7enerali:aci4n F es.eciali:aci4nG denota una relaci-n Les unM.
*. todo F .arteG denota una relaci-n Lparte deM.
.. asociaci4nG denota alguna dependencia semntica entre clases de otro modo independientes.
Helaciones3
1/ Asociaci-n
2/ <erencia
3/ Agregaci-n
4/ 1so
4/ Knstanciaci-n .creaci-n de instancias o eemplares/
5/ 9etaclase
Asociaci4n,
1na asociaci-n s-lo denota una dependencia semntica y no esta$lece la direcci-n de esta dependencia .a
menos #ue se diga lo contrario" una asociaci-n implica relaci-n $idireccional/ ni esta$lece la forma e!acta
en #ue una clase se relaciona con otra .s-lo puede denotarse esta semntica nom$rando el papel #ue
desempe)a cada clase en relaci-n con la otra/.
Cardinalidad,
*!isten tres tipos de :ardinalidad en una asociaci-n3
1. 1no a uno
2. 1no a muchos
3. 9uchos a muchos.
Berencia,
0a herencia es una relaci-n entre clases en la #ue una clase comparte la estructura y / o comportamiento
definidos en una .herencia si1.le/ o ms clases .herencia 1Alti.le/. 0a clase de las #ue otras heredan se
llama s0.erclase. 0a clase #ue hereda de otra o ms clases se denomina su$clase. 0a herencia define por
tanto una erar#u'a Lde tiposM entre clases" en las #ue una su$clase hereda de una o ms superclases.
2adas las clases A y A" si A no Les unM tipo de A" entonces A no de$er'a ser una su$clase de A.
0a capacidad de un lenguae para soportar o no este tipo de herencia distingue a los lenguaes de
programaci-n orientados a o$etos de los lenguaes $asados en o$etos.
1na su$clase generalmente aumenta o restringe la estructura y comportamiento e!istentes en sus
superclases. 1na su$clase #ue aumenta sus superclases se dice #ue utili+a herencia .or e8tensi4n"
mientras #ue la su$clase #ue restringe a sus superclases se dice #ue utili+a herencia .or restricci4n.
Se espera #ue algunas de las clases generadas tengan instancias y #ue otras no las tengan
.frecuentemente las intermedias/.
0as clases sin instancias se llaman clases abstractas.
0as clases ms especiali+adas se llaman clases hoja o clases concretas.
0a clase ms generali+ada en una estructura de clases se llama clase base.
1na clase cual#uiera tiene t'picamente dos tipos de clientes3
A, Instancias,
Pg. 25/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
B, $0bclases,
Para comprender el significado de una clase particular muchas veces hay #ue estudiar todas sus
superclases" a veces incluyendo sus vistas internas.
Poli1or2is1o si1.le,
*s un concepto de teor'a de tipos en el #ue un nom$re puede denotar instancias de muchas clases
diferentes en tanto y en cuanto est,n relacionadas por alguna superclase com%n. :ual#uier o$eto denotado
por este nom$re es" por tanto" capa+ de responder a alg%n conunto de operaciones de diversas formas.
$obrecar7a es una forma de llamar a un polimorfismo por el cual s'm$olos como el LCM podr'an definirse
para significar cosas distintas.
*l polimorfismo es ms %til cuando e!isten muchas clases con los mismos protocolos.
Berencia 1Alti.le,
:on herencia simple" cada su$clase tiene e!actamente una superclase. *sto limita la aplica$ilidad de las
clases predefinidas" haciendo muchas veces necesario duplicar c-digo.
0as colisiones de nom$res pueden aparecer cuando dos o ms superclases diferentes utili+an el mismo
nom$re para alg%n elemento de sus interfaces" como las varia$les de instancias o los m,todos.
>tro pro$lema es la herencia repetida" #ue es lo #ue sucede cuando una clase es un antecesor de otra por
ms de una v'a.
0a e!istencia de herencia m%ltiple plantea un estilo de clases" llamadas aditi6as por#ue se me+clan" se
com$inan pe#ue)as clases para construir clases con un comportamiento ms sofisticado. 1na clase aditiva
es sintcticamente id,ntica una normal" pero su intenci-n es distinta. *l prop-sito de tal clase es
%nicamente a)adir funciones a otras clases. 8o pueden e!istir por s' mismas" se usan para aumentar el
significado de otra clase. 1na clase #ue se construye principalmente heredando de clases aditivas y no
a)ade su propia estructura o comportamiento se llama clase a7re7ada.
A7re7aci4n,
0as relaciones de agregaci-n entre clases tienen un paralelismo directo con las relaciones de agregaci-n
entre los o$etos correspondientes a esas clases.
Contenci4n 2/sica,
Contenci4n .or 6alor3 un tipo de contenci-n f'sica #ue significa #ue el o$eto no e!iste
independientemente de la instancia #ue lo encierra. *l tiempo de vida de am$os o$etos est en 'ntima
cone!i-n.
Contenci4n .or re2erencia3 tipo de agregaci-n menos directo. *n este caso" la clase sigue denotando al
todo" y una de sus partes sigue siendo una instancia de la clase" aun#ue ahora hay #ue acceder a esa parte
indirectamente. Sus tiempos de vida no estn tan estrechamente empareados.
0a agregaci-n esta$lece una direcci-n en la relaci-n todo / parte. 0a contenci-n por valor no puede ser
c/clica .am$os o$etos no pueden ser f'sicamente partes del otro/" aun#ue la contenci-n por referencia s'
puede serlo.
0a herencia m%ltiple se confunde a menudo con la agregaci-n. :uando se considera la herencia versus
agregaci-n" recu,rdese aplicar la prue$a correspondiente para am$as. Si no se puede afirmar sinceramente
#ue e!iste una relaci-n Les unM entre dos clases" ha$r'a #ue utili+ar agregaci-n o alguna otra relaci-n en
ve+ de herencia.
Pg. 27/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Uso,
1na clase usa los servicios de otra.
9ientras #ue una asociaci-n denota una cone!i-n semntica $idireccional" una relaci-n Lde 0soM es un
posi$le re2ina1iento de 0na asociaci4n" por el #ue se esta$lece #u, a$stracci-n es el cliente y #u,
a$stracci-n es el servidor #ue proporciona ciertos servicios.
Instanciaci4n,
:reaci-n de instancias.
etaclases,
*s una clase cuyas instancias son" ellas mismas" clases. Se ustifica su necesidad al hacer notar #ue en un
sistema $ao desarrollo" una clase proporciona al programador un interfa+ para comunicarse con la
definici-n de o$etos. Para este uso de las clases" es e!tremadamente %til para ellas ser o$etos" de forma
#ue puedan ser manipulados de la misma forma #ue todas las dems descripciones.
3.2 - La interacci+n entre clases 3 o,jetos.
Helaciones entre clases y objetos,
0as clases y o$etos son conceptos diferentes pero en 'ntima relaci-n. :oncretamente todo o$eto es
instancia de alguna clase y toda clase tiene cero o ms instancias.
!l .a.el de clases y objetos en anlisis y diseo,
2urante el anlisis y las primeras etapas de dise)o" el desarrollador tiene dos tareas principales3
Kdentificar las clases y o$etos #ue forman el voca$ulario del dominio del pro$lema.
Kdear las estructuras por las #ue conuntos de o$etos tra$aan untos para lograr los
comportamientos #ue satisfacen los re#uerimientos del pro$lema.
*n conunto se llama a esas clases y o$etos las abstracciones cla6es del pro$lema.
Se denomina a esas estructuras cooperativas los 1ecanis1os de la implantaci-n.
2urante estas fases del desarrollo" el inter,s principal del desarrollo de estar en la vista e!terna de estas
a$stracciones clave y mecanismos. *sta vista representa el marco de referencia l-gico del sistema y" por
tanto" a$arca la estructura de clases y la estructura de o$etos del mismo. *n las etapas finales del dise)o y
entrando ya en la implantaci-n" la tarea del desarrollador cam$ia3 el centro de atenci-n est en la vista
interna de estas a$stracciones clave y mecanismos" involucrando a su representaci-n f'sica. Pueden
e!presarse estas decisiones de dise)o como parte de la ar#uitectura de m-dulos y la ar#uitectura de
procesos del sistema.
Pg. 28/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
3.4 - De la construcci+n de clases 3 o,jetos de calidad.
edida de la calidad de 0na abstracci4n,
O:-mo puede sa$erse si una clase u o$eto est $ien dise)adoP Se sugieren cinco m,tricas significativas3
Acoplamiento
:ohesi-n
Suficiencia
:ompleci-n .estado completo / plenitud/
Ser primitivo
Aco.la1iento3 es una noci-n copiada del dise)o estructurado" es la medida de la fuer+a de la
asociaci-n esta$lecida por una cone!i-n entre un m-dulo y otro. *l acoplamiento fuerte complica un sistema
por#ue los m-dulos son ms dif'ciles de comprender" cam$iar o corregir por s' mismos si estn muy
interrelacionados con otros m-dulos. 0a compleidad puede reducirse dise)ando sistemas con los
acoplamientos ms d,$iles posi$les entre los m-dulos. *s igualmente importante el acoplamiento entre
clases y o$etos.
*!iste tensi-n entre los conceptos de acoplamiento y herencia ya #ue la herencia implica un acoplamiento
considera$le. *s desea$le clases d,$ilmente acopladas pero es la herencia ayuda tam$i,n a e!plotar las
caracter'sticas comunes de las a$stracciones.
Cohesi4n3 tam$i,n proviene del dise)o estructurado. 9ide el grado de conectividad entre los elementos
de un solo m-dulo" clase u o$eto. 0a forma de cohesi-n menos desea$le es la cohesi-n por coincidencia"
en la #ue se incluyen en la misma clase o m-dulo a$stracciones sin ninguna relaci-n. 0a ms desea$le es
la cohesi-n funcional en la cual los elementos de una clase o m-dulo tra$aan todos untos para
proporcionar alg%n comportamiento $ien delimitado. <ay mayor cohesion cuando ay mas actividad entre
am$os.
$02iciente3 la clase o m-dulo captura suficientes caracter'sticas de la a$stracci-n como para permitir
una interacci-n significativa y eficiente.
$er .ri1iti6o? Son a#uellas # solo se pueden resolver cuando se tiene acceso a la implentacion
!stado co1.leto? el interfa+ de la clase o m-dulo captura todas las caracter'sticas significativas de
la a$stracci-n. 1na clase o m-dulo completo es a#uel cuyo interfa+ es suficientemente general para ser
utili+a$le de forma com%n por cual#uier cliente. 0a compleci-n puede e!agerarse. >frecer todas las
operaciones significativas para una a$stracci-n particular des$orda al usuario y suele ser innecesario" ya
#ue muchas operaciones de alto nivel pueden componerse partiendo de las de $ao nivel. Por ello se
sugiere #ue las clases y m-dulos sean primitivos.
O.eraciones .ri1iti6as? a#uellas #ue pueden implantarse eficientemente s-lo si tienen acceso a
la representaci-n su$yacente. 1na operaci-n es primitiva si se puede implantar s-lo accediendo a la
representaci-n interna. 1na operaci-n #ue podr'a implantarse so$re operaciones primitivas e!istentes pero
a un coste de recursos computacionales significativamente mayor" es tam$i,n candidata para su inclusi-n
como operaci-n primitiva.
Pg. 2F/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
$elecci4n de o.eraciones,
$e1ntica 20ncional,
*s ha$itual en el desarrollo orientado a o$etos dise)ar los m,todos de una clase como un todo" por#ue
todos esos m,todos cooperan para formar el protocolo completo de la a$stracci-n. As'" dado un
comportamiento #ue se desea hay #ue decidir en #u, clase se sit%a. Para tomar una decisi-n de ese tipo se
sugieren los siguientes criterios3
He0tili:aci4n OSer'a este el comportamiento ms %til en ms de un conte!toP
Co1.lejidad OQu, grado de dificultad plantea el implementar este comportamientoP
A.licabilidad OQu, relevancia tiene este comportamiento para el tipo en el #ue
podr'a u$icarseP
Conoci1iento de la
i1.le1entaci4n
O2epende la implementaci-n del comportamiento de los detalles
internos de un cierto tipoP
$e1ntica es.acial y te1.oral,
1na ve+ definida una operaci-n y su semntica funcional hay #ue especificar la cantidad de tiempo #ue
lleva completar la operaci-n .semntica temporal/ y la cantidad de espacio de almacenamiento #ue necesita
.semntica espacial/.
Siempre #ue un o$eto pasa un mensae a trav,s de un enlace" am$os o$etos de$en estar sincroni+ados
de alguna forma. *n presencia de m%ltiples hilos de control esto significa #ue el paso de mensaes es
mucho ms #ue una mera selecci-n de su$programas. *l paso de mensaes de$e as' adoptar una de las
formas siguientes3
$/ncrono
1na operaci-n comien+a s-lo cuando el emisor ha iniciado la acci-n y el
receptor est preparado para aceptar el mensaeG el emisor y el receptor
esperarn indefinidamente hasta #ue am$as partes est,n preparadas
para continuar.
Abandono in1ediato
Kgual #ue el s'ncrono" e!cepto en #ue el emisor a$andonar la operaci-n
si el receptor no est preparado inmediatamente.
De inter6alo
Kgual #ue el s'ncrono" e!cepto en #ue el emisor esperar a #ue el receptor
est, listo durante un intervalo de tiempo especificado.
As/ncrono
1n emisor puede hincar una acci-n independientemente de si el receptor
est esperando o no el mensae.
Pg. 3J/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
!lecci4n de relaciones,
Colaboraciones,
2efine la accesi$ilidad. Por accesi$le se entiende la capacidad de una a$stracci-n para ver a otra y hacer
referencia a recursos en su vista e!terna. 1na a$stracci-n es accesi$le a otra s-lo donde sus m$itos se
superpongan y s-lo donde est,n garanti+ados los derechos de acceso.
0os m,todos de una clase no de$er'an depender de ninguna manera de la estructura de ninguna clase"
salvo de la estructura inmediata .de nivel superior/ de su propia clase.
ecanis1os y 6isibilidad,
0a decisi-n so$re las relaciones entre o$etos es principalmente una cuesti-n de dise)ar los mecanismos
por los #ue esos o$etos interact%an. 2urante el proceso de dise)o es %til esta$lecer e!pl'citamente c-mo
un o$eto es visi$le para otro. *!isten cuatro formas fundamentales por las #ue un o$eto I se puede hacer
visi$le aun o$eto &3
*l o$eto proveedor es glo$al al cliente.
*l o$eto proveedor es parmetro de alguna operaci-n del cliente.
*l o$eto proveedor es parte del o$eto cliente.
*l o$eto proveedor es un o$eto declarado localmente en el m$ito del diagrama de o$etos.
<ay una variaci-n so$re cada una de estas ideas y es la idea de 6isibilidad co1.artida.
!lecci4n de i1.le1entaciones,
He.resentaci4n,
0a representaci-n de una clase u o$eto de$er'a casi siempre ser uno de los secretos encapsulados de la
a$stracci-n. *sto posi$ilita cam$iar la representaci-n sin violar ninguna de las suposiciones funcionales #ue
los clientes puedan ha$er hecho.
A veces no es fcil elegir con #ue representaci-n se #ueda el o$eto .cuando dos o ms se contradicen o
compiten/. 2e eso modo muchas veces se aca$a con familias de clases cuyas interfaces son prcticamente
id,nticos" pero cuyas implantaciones son radicalmente distintas" con el fin de proporcionar diferentes
comportamientos respecto al espacio y al tiempo.
1na de las compensaciones ms dif'ciles cuando se selecciona la implantaci-n de una clase se da entre el
clculo del valor del estado de 0n objeto y su al1acena1iento co1o 0n ca1.o.
!1.a90eta1iento,
Aparecen pro$lemas similares en la declaraci-n de clases y o$etos dentro de los m-dulos.
0os re#uerimientos competidores de visi$ilidad y ocultaci-n de informaci-n suelen guiar las decisiones de
dise)o so$re donde declarar clases y o$etos. Eeneralmente" se $usca construir m-dulos con cohesi-n
funcional y d,$ilmente acoplados. <ay muchos factores no t,cnicos #ue influyen estas decisiones como
cuestiones de reutili+aci-n" seguridad y documentaci-n. Al igual #ue el dise)o de clases y o$etos no hay
#ue tomar a la ligera el dise)o de m-dulos.
Pg. 31/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
R!"#$ %&'I("L) 3
1n o$eto tiene estado" comportamiento e identidad.
0a estructura y comportamiento de o$etos similares estn definidos en su clase com%n.
*l estado de un o$eto a$arca todas las propiedades .normalmente estticas/ del mismo ms los
valores actuales .normalmente dinmicos/ de cada una de esas propiedades.
*l comportamiento de la forma en #ue un o$eto act%a y reacciona en t,rminos de sus cam$ios de
estado y paso de mensaes.
0a identidad es la propiedad de un o$eto #ue lo distingue de todos los dems o$etos.
0os dos tipos de erar#u'as de o$etos son los la+os de incl0si4n y las relaciones de a7re7aci4n.
1na clase es un conunto de o$etos #ue comparten una estructura y comportamiento comunes.
0os seis tipos de erar#u'as de clase son las relaciones de asociaci-n" herencia" agregaci-n" H1soI"
instanciaci-n y relaciones de metaclase.
0as a$stracciones clave son las clases y o$etos #ue forman el voca$ulario del dominio del
pro$lema.
1n mecanismo es una estructura por la #ue un conunto de o$etos tra$aan untos para ofrecer un
comportamiento #ue satisfaga alg%n re#uerimiento del pro$lema.
0a calidad de una a$stracci-n puede medirse por su acoplamiento" cohesi-n" suficiencia" completad
.estado completo/" y por el grado hasta el cual es primitiva.
Pg. 32/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Ca./t0lo ' Clasi2icaci4n
0a clasificaci-n es el medio por el #ue ordenamos el conocimiento. *n el dise)o orientado a o$etos" el
renacimiento de la similitud entre las cosas nos permite e!poner lo #ue tienen en com%n en a$stracciones
clave y mecanismos. 8o hay recetas fciles para identificar clases y o$etos. *!isten t,cnicas de anlisis
orientado a o$etos #ue ofrecen varias recomendaciones prcticas y reglas %tiles para identificar las clases y
o$etos relevantes para un pro$lema concreto.
4.1 La importancia de una clasificaci+n correcta.
Clasi2icaci4n y diseo orientado a objetos,
0a identificaci-n de clases y o$etos es la parte ms dif'cil del dise)o >>. 0a e!periencia muestra #ue la
identificaci-n implica descu$rimiento e invenci-n. 9ediante el descu$rimiento" se llega a reconocer las
a$stracciones clave y los mecanismos #ue forman el voca$ulario del dominio del pro$lema. 9ediante la
invenci-n" se idean a$stracciones generali+adas as' como nuevos mecanismos #ue especifican como
cola$oran los o$etos.
0a clasificaci-n tam$i,n proporciona una gu'a para tomar decisiones so$re modulari+aci-n. Se puede
decidir u$icar ciertas clases y o$etos untos en el mismo m-dulo o en m-dulos diferentes" dependiendo de
la similitud #ue se encuentra entre esas declaraciones" el acoplamiento y la cohesi-n son simplemente
medidas de esta similitud.
La di2ic0ltad de la clasi2icaci4n
!je1.los de clasi2icaci4n,
*n el cap'tulo anterior se defini- un o$eto como algo #ue tiene una frontera definida con nitide+. Sin
em$argo" las fronteras #ue distinguen un o$eto de otro son a menudo $astante difusas. Por eemplo3
O2-nde comien+a la rodilla y donde terminaP
2ar(in propuso la teor'a de #ue la selecci-n natural fue el mecanismo de la evoluci-n" en virtud de la cual
las especies actuales evolucionaron de otras ms antiguas. 0a teor'a de 2ar(in depend'a de una
clasificaci-n inteligente de especies.
2escartes afirma$a #ue Hel descubrimiento de un orden no es tarea fcil,, sin embargo, una vez que se ha
descubierto el orden, no hay dificultad alguna en comprenderlo-.
La nat0rale:a incre1ental e iterati6a de la clasi2icaci4n,
0a clasificaci-n inteligente es un tra$ao intelectualmente dif'cil" y la meor forma de reali+arlo es a trav,s de
un proceso incremental e iterativo. 0a naturale+a incremental e iterativa de la clasificaci-n tiene un impacto
directo en la construcci-n de erar#u'as de clases y o$etos en el dise)o de un sistema de soft(are
compleo. Se puede dividir una clase grande en varias ms pe#ue)as .composici-n/. Se puede incluso
descu$rir aspectos comunes #ue ha$'an pasado desaperci$idos" e idear una nueva su$clase .a$stracci-n/.
0a dificultad radica en 2 ra+ones importantes3
1. 8o e!iste algo #ue pueda llamarse una clasificaci-n perfecta" algunas clasificaciones son meores
#ue otras. Potencialmente" hay al menos tantas formas de dividir el mundo en sistemas de o$etos
como cient'ficos para emprender la tarea.
2. 0a clasificaci-n inteligente re#uiere una gran perspicacia creativa3 a veces la respuesta es evidente"
a veces es una cuesti-n de gustos" y otras veces" la selecci-n de componentes adecuados es un
punto curial del anlisis.
Pg. 33/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
4.2 Identificando clases 3 o,jetos.
!n2o90es clsicos y 1odernos,
<ist-ricamente s-lo han e!istido tres apro!imaciones generales a la clasificaci-n3
:ategori+aci-n clsica.
Agrupamiento conceptual.
@eor'a de los prototipos.
Cate7ori:aci4n clsica,
*s la apro!imaci-n clsica a la categori+aci-n3 todas las entidades 5ue tienen una determinada
propiedad o colecci+n de propiedades en com6n forman una cate7or-a. (ales propiedades son
necesarias 3 suficientes para definir la cate7or-a.
1n mayor conocimiento significativo so$re un dominio facilita" hasta cierto punto" conseguir una clasificaci-n
inteligente.
*n sentido general" las propiedades pueden denotar algo ms #ue meras caracter'sticas medi$lesG pueden
tam$i,n a$arcar comportamientos o$serva$les. Por eemplo3 el hecho de #ue un paro pueda volar pero un
pe+ no pueda" es una propiedad #ue distingue un guila de un salm-n.
A7r0.a1iento conce.t0al
*s una variaci-n ms moderna del enfo#ue clsico. ?epresenta ms $ien un agrupamiento pro$a$il'stico de
los o$etos. *l agrupamiento conceptual est en estrecha relaci-n con la teor'a de conuntos difusos
.multivalor/" en la #ue los objetos .0eden .ertenecer a 0no o 1s 7r0.os" en diversos grados de
adecuaci-n. ?eali+a uicios a$solutos de la clasificaci-n centrndose en la mayor adecuacin.
Teor/a de los .rototi.os
*!isten a$stracciones #ue no tienen ni propiedades ni conceptos delimitados con claridad. Por eemplo" una
categor'a como uego no encaa en el molde clsico" por#ue no hay propiedades comunes compartidas por
todos los uegosR tampoco hay una frontera fia para la categor'a uego. Podr'a e!tenderse" se pueden
introducir nuevos tipos de uegos" siempre #ue se pare+can a uegos anteriores de forma apropiada.
*sta es la ra+-n por la #ue el enfo#ue se denomina teora de prototipos. una clase de o$etos se representa
por un o$eto protot'pico" y se considera un o$eto como un miem$ro de esta clase si y solo si se parece a
este prototipo de forma significativa.
A.licaci4n de las teor/as clsicas y 1odernas,
0as tres apro!imaciones a la clasificaci-n tienen aplicaci-n directa en el dise)o >>.
Se identifican las clases y o$etos 6en primer lugar6 de acuerdo con las propiedades relevantes para nuestro
dominio particular.
Anlisis Orientado a Objetos
0as fronteras entre anlisis y dise)o son difusas. *n el anlisis se persigue modelar el mundo descu$riendo
las clases y o$etos #ue forman el voca$ulario del dominio del pro$lema" y en el dise)o se inventan las
a$stracciones y mecanismos #ue proporcionan el comportamiento #ue este modelo re#uiere.
Pg. 34/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
!n2o90es clsicos
2erivan so$re todo de los principios de la categori+aci-n clsica.
*emplos3
Shlaer y 9ellor sugieren #ue las clases y o$etos candidatos provienen ha$itualmente de una de las fuentes
siguientes3
:>SAS @A8EKA0*S :oches" datos de telemetr'a" sensores de presi-n
PAP*0*S .?>0*S/ 9adre" profesor" pol'tico
*S*8@>S Aterri+ae" interrupci-n" petici-n
K8@*?A::K>8*S Pr,stamo" reuni-n" intersecci-n.
2esde la perspectiva del modelado de $ases de datos3
P*?S>8AS <umanos #ue llevan a ca$o alguna funci-n.
01EA?*S Areas reservadas para personas o cosas
:>SAS >$etos f'sicos" o grupos de o$etos" #ue son
tangi$les.
>?EA8KTA:K>8*S :olecciones formalmente organi+adas de personas"
recursos" instalaciones y posi$ilidades #ue tienen
una misi-n definida.
*S*8@>S :osas #ue suceden" ha$itualmente a alguna otra
cosa" en una fecha y hora concretas" o como pasos
dentro de una secuencia ordenada.
:oad y &ourdon sugieren otro conunto ms fuerte de o$etos potenciales3
*structuras ?elaciones Hde clasesI y Hde partesI
>tros sistemas Sistemas e!ternos con los #ue la aplicaci-n
interact%a.
2ispositivos 2ispositivos con los #ue la aplicaci-n interact%a.
*ventos recordados Sucesos <ist-ricos #ue hay #ue registrar.
Papeles desempe)ados 0os diferentes papeles #ue uegan los usuarios en
su interacci-n con la aplicaci-n.
Posiciones 1$icaciones f'sicas" oficinas y lugares importantes
para la aplicaci-n.
1nidades de organi+aci-n Erupos a los #ue pertenecen usuarios.
Anlisis del co1.orta1iento
Se centra en el comportamiento dinmico como fuente primaria de clases y o$etos. Se forman clases
$asadas en grupos de o$etos #ue e!hi$en comportamiento similar.
0as responsa$ilidades Hdenotan el conocimiento #ue un o$eto tiene y las acciones #ue un o$eto puede
reali+ar. 0as responsa$ilidades de un o$eto son todos los servicios #ue suministra para todos los contratos
#ue soporta. 2e esta forma se agrupan cosas #ue tienen responsa$ilidades comunes" y se forman
erar#u'as de clases #ue involucran a superclases #ue incorporan responsa$ilidades generales y su$clases
#ue especiali+an su comportamiento.
Al poner el ,nfasis en la comprensi-n de lo #ue sucede en el sistema" nos encontramos con los
comportamientos del sistema" asignndolos a partes del sistema" donde surge la necesidad de entender
#uien inicia esos comportamientos y #uien participa en ellos.
0os iniciadores y los participantes #ue desempe)an papeles significativos se reconocen como o$etos" y se
les asignan las responsa$ilidades de actuaci-n para esos papeles.
Anlisis de do1inios,
Ausca identificar las clases y o$etos comunes a todas las aplicaciones dentro de un dominio dado" tales
como mantenimiento de registros de pacientes" operaciones $urstiles" etc.
Se trata de un intento por identificar los o$etos" operaciones y relaciones con los e!pertos del dominio
consideran importantes acerca del mismo.
Pg. 34/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
Anlisis de Casos de Uso,
1na forma o patr-n o eemplo concreto de utili+aci-n" un escenario #ue comien+a con alg%n usuario del
sistema #ue inicia alguna transacci-n o secuencia de eventos interrelacionados.
0os usuarios finales" e!pertos del dominio y el e#uipo de desarrollo enumeran los escenarios fundamentales
para el funcionamiento del sistema. *stos escenarios en conunto descri$en las funcionales del sistema en
esa aplicaci-n. *l anlisis procede entonces como un estudio de cada escenario" utili+ando t,cnicas de
presentaci-n.
A medida #ue el e#uipo pasa por cada escenario" de$e identificar los o$etos #ue participan en el" las
responsa$ilidades de cada o$eto" y c-mo esos o$etos cola$oran con otros" en t,rminos de las operaciones
#ue invoca cada uno so$re el otro.
)ichas CHC
0as fichas :?: surgieron como una forma simple" pero maravillosamente efectivas de anali+ar escenarios.
*s una tareta con una ta$la de 3 U 4
4
" so$re la cual el analista escri$e el nom$re de una clase .en la parte
superior de la tareta/" sus responsa$ilidades .en la mitad de la tareta/ y sus cola$oradores .en la otra
mitad/. Se crea una ficha para cada clase #ue se identifi#ue como relevante para el escenario.
Pueden disponerse espacialmente para representar patrones de cola$oraci-n.
Descri.ci4n in2or1al en es.aol
1na alternativa al anlisis >> clsico fue la propuesta de A$$ott" #uien sugiri- redactar una descripci-n del
pro$lema .o parte del pro$lema/ en lenguae natural y su$rayar entonces los nom$res y los ver$os. 0os
nom$res representan o$etos candidatos" y los ver$os representan operaciones candidatas so$re ellos. *ste
enfo#ue es %til por#ue es simple y por#ue o$liga al desarrollador a tra$aar en el voca$ulario del espacio del
pro$lema.
Anlisis !str0ct0rado
1na segunda alternativa al Anlisis >> clsico utili+a los productos del anlisis estructurado como v'a de
entrada al dise)o orientado a o$etos. *sta t,cnica es atractiva s-lo por#ue hay gran n%mero de analistas
con e!periencia en anlisis estructurado" y e!isten muchas herramientas :AS* #ue soportan la
automati+aci-n de estos m,todos. *s desaconsea$le el uso del anlisis estructurado como punto de partida
para el dise)o >>.
4.3 &,stracciones 3 mecanismos cla*e.
Identi2icaci4n de las abstracciones cla6e,
BAs90eda de las abstracciones cla6e
1na a$stracci-n clave es una clase u o$eto #ue forma parte del voca$ulario del dominio del pro$lema. *l
valor principal #ue tiene la identificaci-n de tales a$stracciones es #ue dan unos l'mites al pro$lemaG
enfati+an las cosas #ue estn en el sistema y" por lo tanto" son relevantes para el dise)o y suprimen las
cosas #ue estn fura del sistema.
Por eemplo3 1n cliente #ue utili+a un caero automtico ha$la en t,rminos de cuentas" dep-sitos y
reintegrosG estas pala$ras son parte del voca$ulario del dominio del pro$lema. 1n desarrollador de un
sistema semeante utili+a estas mismas a$stracciones" pero introduce tam$i,n algunas nuevas" como $ases
de datos" maneadores de pantallas" listas" cosas" etc. *stas a$stracciones clave son artefactos del dise)o
particular" no del dominio del pro$lema.
.
Pg. 35/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
He2ina1iento de abstracciones cla6e,
1na ve+ #ue se identifica determinada clave como candidata" hay #ue evaluarla de acuerdo a las m,5tricas
descriptas en el cap'tulo anterior.
2ada una nueva a$stracci-n" hay #ue u$icarla en el conte!to de las erar#u'as de clases y o$etos #ue se
han dise)ado. *n la prctica3 8o siempre se dise)an tipos en una erar#u'a de tipos comen+ando por un
supertipo y creando a continuaci-n los su$tipos" sino #ue se crean varios tipos aparentemente dispares" se
da cuenta de #ue estn relacionados" y entonces factori+a sus caracter'sticas comunes en uno o ms
supertipos.
0a colocaci-n de clases y o$etos en los niveles correctos de a$stracci-n es dif'cil. A veces se puede
encontrar una su$clase general" y elegir moverla hacia arri$a en la estructura de clases" incrementando as'
el grado de compartici-n. *sto se llama promoci+n de clases,
Anal-gicamente se puede apreciar #ue una clase es demasiado general" dificultando as' la herencia por las
su$clases a causa de un vac'o semntico grande. *sto reci$e el nom$re de conflicto de 7ranularidad.
Sugerencias3
Los objetos de$er'an no1brarse empleando frases construidas con no1bres .ro.ios" como
elSensor o simplemente forma.
Las clases de$er'an no1brarse empleando frases construidas con no1bres co10nes" como
Sensores o =ormas.
Las o.eraciones de 1odi2icaci4n de$er'an nom$rarse empleando 2rases constr0idas con
6erbos acti6os@ como di$uar o moverK+#uierda.
Las o.eraciones de selecci4n de$er'an implicar una interrogaci-n" o $ien nom$rarse con 6erbos
del ti.o Jser(estarK@ como e!tension2e o *staA$ierto.
*l uso de caracteres de su$rayado y estilos de uso de may%sculas son en gran medida cuestiones
de gusto personal.
Identi2icaci4n de 1ecanis1os
BAs90eda de 1ecanis1os,
1tili+amos la pala$ra mecanismo para descri$ir cual#uier estructura mediante la cual los o$etos cola$oran
para proporcionar alg%n comportamiento #ue satisface un re#uerimiento del pro$lema. 0os mecanismos
representan patrones de comportamiento.
*l mecanismo #ue elige un desarrollador entre un conunto de alternativas es frecuentemente el resultado
de otros factores" como costo" fia$ilidad" facilidad de fa$ricaci-n y seguridad.
1na ve+ #ue el desarrollador decide so$re un patr-n concreto de cola$oraci-n" se distri$uye el tra$ao entre
muchos o$etos definiendo m,todos convenientes en las clases apropiadas.
0os mecanismos representan as' decisiones de dise)o estrat,gicas" como el dise)o de una estructura de
clases. 0a interfa+ de una clase individual es ms $ien una decisi-n de dise)o tctica.
!je1.los de 1ecanis1os
:onsideremos el mecanismo de di$uo utili+ado ha$itualmente en intercales grficas de usuario. Sarios
o$etos de$en cola$orar para presentar una imagen a un usuario3 una ventana" una vista" el modelo #ue se
va a visuali+ar" y alg%n cliente #ue sa$e cundo .pero no c-mo/ hay #ue visuali+ar ese modelo.
Pg. 37/38
Anlisis y Diseo Orientado a Objetos Grady Booch Anlisis y Diseo Orientado a Objetos Grady Booch
H!$U!+(CAPITULO '
0a identificaci-n de clases y o$etos es el pro$lema fundamental en el dise)o orientado a o$etos3 la
identificaci-n implica descu$rimiento e invenci-n.
0a clasificaci-n es fundamentalmente un pro$lema de agrupaci-n.
0a clasificaci-n es un proceso incremental o iterativo" #ue se complica por el hecho de #ue un
conunto dado de o$etos puede clasificarse de muchas formas igualmente correctas.
0os tres enfo#ues de la clasificaci-n son la cate7ori:aci4n clsica .clasificacin por propiedades/"
a7r0.a1iento conce.t0al .clasificacin por conceptos/ y teor/a de .rototi.os .clasificacin por
asociacin de un prototipo/
0os escenarios son una potente herramienta para el anlisis orientado a o$etos" y pueden utili+arse
para guiar los procesos de anlisis clsico" anlisis del comportamiento y anlisis de dominios.
0as a$stracciones clave reflean el voca$ulario del dominio del pro$lema y pueden ser descu$iertas
en el dominio del pro$lema" o $ien ser inventadas como parte del dise)o.
0os mecanismos denotan decisiones estrat,gicas de dise)o respecto a la actividad de cola$oraci-n
entre muchos tipos diferentes de o$etos.
Pg. 38/38

Vous aimerez peut-être aussi