Orientado a Objetos

download Orientado a Objetos

of 167

Transcript of Orientado a Objetos

  • 7/31/2019 Orientado a Objetos

    1/167

  • 7/31/2019 Orientado a Objetos

    2/167

    http://www.mygnet.com

  • 7/31/2019 Orientado a Objetos

    3/167

  • 7/31/2019 Orientado a Objetos

    4/167

    Este libro esta dedicado a por haberme regalado una vida llena de satisfacciones y darme

    f para seguir adelante en todo momento, a mis queridos y por ser el impulso y

    fortaleza para lograr mis sueos a pesar de las desventuras, a mi amada por ser la

    inspiracin ms grande para nunca dejar de luchar y hacerme fuerte en mis debilidades, al

    por ensearme que el am or jams t endr barreras y a mis por ser un apoyo

    incondicional y ser mi conciencia en mis momentos de locura.

  • 7/31/2019 Orientado a Objetos

    5/167

    Agradezco a la por haberme aocogido y brindado

    una educacin de excelencia im pactando mi vida en el m bit o prof esional y personal. Tambinagradezco a la la oport unida de haber int egrado sus filas y

    ayudarme a consolidar como una mejor persona para la sociedad a travs de mi profesin.

    Al como el disparador para ayudarme a descubrir el liderazgo con el

    que contaba, e impulsarlo hacia la responsabilidad social que conlleva, as como a darme el

    ltimo jaln de orejas para no dejar mi titulacin pendiente.

    Al por fort al ecer m i carct er como una person a de bien, responsable

    con la sociedad y haberme incul cado en t odo m oment o el privilegio de ser universit ario.

    Al por ser el promotor de m espritu como un desarrollador con una

    perspect iva int egral de cada problem a.

  • 7/31/2019 Orientado a Objetos

    6/167

    Vstanme despacio, que voy de prisa.

    Napolen Bonaparte

  • 7/31/2019 Orientado a Objetos

    7/167

    ndice de contenido

    Complej idad .................................................................................................................................................................................14Nat ural eza ..............................................................................................................................................................................14At ribut os .................................................................................................................................................................................15Sol uci n a la Com pl ej idad .................................................................................................................................................15

    Reglas de Descomposicin ...........................................................................................................................................15Reg la de Ab st racci n .....................................................................................................................................................15Regla de Jerarqua ..........................................................................................................................................................17

    Im por t an ci a del Diseo .......................................................................................................................................................17

    M odelo de Objet os.....................................................................................................................................................................16Fun da men t os .........................................................................................................................................................................16An l isis Orien t ado a Obj et os.............................................................................................................................................16

    Diseo Orien t ad o a Objet os ...............................................................................................................................................16Pro gr am acin Ori en t ada a Obj et os .................................................................................................................................17Elem en t os ...............................................................................................................................................................................17

    Abst racci n .......................................................................................................................................................................17Encapsulacin ..................................................................................................................................................................18M odular idad .....................................................................................................................................................................18Jerarqua ............................................................................................................................................................................19Tipeam ien t o ......................................................................................................................................................................20Concurrencia ....................................................................................................................................................................20Persist en ci a .......................................................................................................................................................................20

    Objet os ..........................................................................................................................................................................................21

    Nat ural eza ..............................................................................................................................................................................21Estad o .................................................................................................................................................................................21Fun ci onam ien t o ...............................................................................................................................................................21Id en t idad ............................................................................................................................................................................22

    Relac ion es en t re Obj et os....................................................................................................................................................22Liga ......................................................................................................................................................................................22Agregacin ........................................................................................................................................................................23

    Clases.............................................................................................................................................................................................24Nat ural eza ..............................................................................................................................................................................24

    In t er f ace e Im pl em ent ac in .........................................................................................................................................24Rel ac iones en t re Clases ......................................................................................................................................................24

    Asociacin .........................................................................................................................................................................25Heren ci a .............................................................................................................................................................................25Agregac in ..................................................................................................................................................................... 26

  • 7/31/2019 Orientado a Objetos

    8/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    Clases y Objetos..........................................................................................................................................................................26In t eracci n ..............................................................................................................................................................................26

    Relacin .............................................................................................................................................................................26Reglas de An l isis y Di seo ..........................................................................................................................................26

    Con st rucc in de Cal idad.....................................................................................................................................................26Cal idad de Ab st racci n ..................................................................................................................................................27Selecci n de M t od os ....................................................................................................................................................27Seleccin de Relaciones................................................................................................................................................27Selec ci n de Im pl ement acion es .................................................................................................................................27

    Clasificacin ................................................................................................................................................................................28Im po rt an ci a ............................................................................................................................................................................28Ident i f icaci n de Clases y Obj et os ..................................................................................................................................28

    Enf oques M od erno s y Clsic os....................................................................................................................................28Cat ego ri zac in Clsica .............................................................................................................................................28Agru pam ient o Con cep t ua l ......................................................................................................................................28Teor a del Pro t ot ipo ...................................................................................................................................................29Aplicacin ....................................................................................................................................................................29

    An l isis Ori en t ado a Obj et os .............................................................................................................................................29Enfoque Clsico ...............................................................................................................................................................29Anlisis Funcional ...........................................................................................................................................................30An l isis de Dominio ........................................................................................................................................................30Anlisis de Casos.............................................................................................................................................................30An l isis Estruct urado .....................................................................................................................................................31

    Ab st racci n .............................................................................................................................................................................31M ecan ismos ...........................................................................................................................................................................32

    Introduccin ................................................................................................................................................................................33

    Ventajas y Desventajas.............................................................................................................................................................33

    M odel os de Dat os ......................................................................................................................................................................34Def inici n ................................................................................................................................................................................34Ar qu it ect ura ...........................................................................................................................................................................34Tipos de M odelos..................................................................................................................................................................34M odelos Lgicos Basad os en Regi st ros..........................................................................................................................35

    Con cep t os Bsi cos del M od elo Relac ion al .........................................................................................................................35Estruct ura Bsica ..................................................................................................................................................................36Terminologa ..........................................................................................................................................................................36

    Llaves........................................................................................................................................................................................37Llaves Primar ias y Secundarias ...................................................................................................................................38Llave Fornea....................................................................................................................................................................38

    Propi edades de las Relaci on es..........................................................................................................................................38

    lgebra Relacional.....................................................................................................................................................................39Seleccin .................................................................................................................................................................................40Proyeccin ..............................................................................................................................................................................40Un in ........................................................................................................................................................................................40Diferencia................................................................................................................................................................................41Produ ct o Car t esian o ............................................................................................................................................................41In t ersecci n ............................................................................................................................................................................41

    Divisin ....................................................................................................................................................................................41Join............................................................................................................................................................................................42

  • 7/31/2019 Orientado a Objetos

    9/167

    ndice de contenido

    Formas Normales .......................................................................................................................................................................43Ventajas...................................................................................................................................................................................43Dependencia Funcional.......................................................................................................................................................43

    Dependenc ia Funci on al Tot al ......................................................................................................................................44Dependen ci a Funci on al Transit iva .............................................................................................................................44Diagrama de Dependenc ia Funcion al ........................................................................................................................45Com prensi n de At ri bu t os............................................................................................................................................45

    Primera Forma Normal (1FN) ............................................................................................................................................46Segunda Forma Normal (2FN) ..........................................................................................................................................48Tercera Forma Nor mal (3FN) .............................................................................................................................................49Normalizando ........................................................................................................................................................................50

    Reglas de Codd ...........................................................................................................................................................................52

    Diagramas de Ent idad/ Relaci n (E/R) ..................................................................................................................................53

    Diseo de una Base de Dat os .................................................................................................................................................55

    Probl em a ent re RDBM S y Ori en t acin a Objet os .............................................................................................................56

    In t rod ucc in ................................................................................................................................................................................58

    M ecani smos de Ext ensib i l id ad ...............................................................................................................................................59Not as ........................................................................................................................................................................................60Estereotipos............................................................................................................................................................................60Et iqu et as .................................................................................................................................................................................60Rest ricc iones ..........................................................................................................................................................................61

    Paquet es .......................................................................................................................................................................................61

    Clases y Obj et os..........................................................................................................................................................................61Seccin General ....................................................................................................................................................................62Secc in de At ribu t os ...........................................................................................................................................................62Secc in de M t odos.............................................................................................................................................................63Clases de Int erface, Cont ro l y Ent idad ...........................................................................................................................63Obj et o.......................................................................................................................................................................................65

    Relaciones ....................................................................................................................................................................................65Asociacin...............................................................................................................................................................................65General izaci n .......................................................................................................................................................................66Agregacin..............................................................................................................................................................................67Dependencia...........................................................................................................................................................................67

    Realizacin .............................................................................................................................................................................67Clase de Asociacin .............................................................................................................................................................68

    Diag ram as de Casos de Uso ....................................................................................................................................................68

    Diagrama de Secuencia............................................................................................................................................................73

    Diagrama de Colaboracin ......................................................................................................................................................75

    Diagrama de Act ivi dades .........................................................................................................................................................76Ac t ivi dades .............................................................................................................................................................................76Transiciones............................................................................................................................................................................76Bi furcaci ones .........................................................................................................................................................................77Concurrencias........................................................................................................................................................................78

    Carriles.....................................................................................................................................................................................79

    Diag ram a de Estados ................................................................................................................................................................80

  • 7/31/2019 Orientado a Objetos

    10/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    Diagrama de Com ponent es.....................................................................................................................................................82

    Diagramas de Dist ri bu ci n ......................................................................................................................................................83

    M od elo del Negoc io ..................................................................................................................................................................85Casos de Uso del Negoci o ..................................................................................................................................................85

    Dicc ion ar io del Nego cio ................................................................................................................................................85Diagramacin de Casos de Uso ...................................................................................................................................85Especificacin de Casos de Uso ..................................................................................................................................86

    Diagramas de Roles..............................................................................................................................................................86Diag ram as de Procesos .......................................................................................................................................................86Diagrama de Escenarios......................................................................................................................................................86

    M od elo del Dominio ..................................................................................................................................................................87

    M odelo de Requ erim ient os .....................................................................................................................................................87

    Especi f ic aci n de Requeri m ient o Global y Det al lados ..............................................................................................88Diagramas de Casos de Uso...............................................................................................................................................89Casos de Uso Funcionales.............................................................................................................................................89

    Diagramacin de Casos de Uso .............................................................................................................................89Clasif icaci n de Casos de Uso ................................................................................................................................89Espec if icaci n de Relacin con Act ores..............................................................................................................89Clasif icaci n de Act ores po r Paquet e ..................................................................................................................89

    Casos de Uso No Funcionales......................................................................................................................................89

    Anlisis..........................................................................................................................................................................................90 Diagrama de Generalizacin de Casos de Uso.............................................................................................................90Diagrama de Ext ensi n de Casos de Uso.......................................................................................................................90

    Diagrama de In cl usi n de Casos de Uso ........................................................................................................................90Especificacin de Casos de Uso........................................................................................................................................91Ent radas y Sal idas...........................................................................................................................................................91Especi f icaci n de In t erfaces ........................................................................................................................................91Descripcin de Caso de Uso .........................................................................................................................................91

    Pro t ot ipo .................................................................................................................................................................................92

    Diseo ............................................................................................................................................................................................92Ident i f icaci n de Clases y Relaci on es ............................................................................................................................92

    Clases de Entidad ............................................................................................................................................................92Normal izac in de Base de Dat os ..........................................................................................................................92

    Clases de In t er face .........................................................................................................................................................92Clases de Control.............................................................................................................................................................92Diagr am a de Est ado , Secuenc ia , Colaboraci n y Act iv id ades ...........................................................................93

    Ident i f icaci n de M t odos y At ri bu t os ..........................................................................................................................93Diagrama de Com ponent es ...............................................................................................................................................93

    Organizacin del Proyecto (Plan de Trabajo).....................................................................................................................93

    M od elo del Negoc io ..................................................................................................................................................................97 Casos de Uso del Negoci o ..................................................................................................................................................97

    Dicc ion ar io del Nego cio ................................................................................................................................................97

    Diagramacin de Casos de Uso ...................................................................................................................................98Especificacin de Casos de Uso ..................................................................................................................................99

  • 7/31/2019 Orientado a Objetos

    11/167

    ndice de contenido

    Diagramas de Roles...........................................................................................................................................................103Diag ram as de Procesos .................................................................................................................................................... 105Diag rama de Escenar ios................................................................................................................................................... 106

    M od elo de l Do min io ...............................................................................................................................................................107

    M od elo de Requer im ien t os .................................................................................................................................................. 107Espec if ic aci n de Requ er im ient o Globa l y Det al lados ........................................................................................... 107Diag ramas de Casos de Uso............................................................................................................................................1 09

    Casos de Uso Funcional es..........................................................................................................................................109Diag ramacin de Casos de Uso .......................................................................................................................... 109Clasif icaci n de Casos de Uso .............................................................................................................................109Especif icaci n de Relac in con Act or es...........................................................................................................110Clasificacin de Actores por Paquete...............................................................................................................111

    Casos de Uso No Fun cion al es...................................................................................................................................111

    Anlisis.......................................................................................................................................................................................112 Diagrama de Generalizacin de Casos de Uso..........................................................................................................112Diag rama d e Ext ensi n de Casos de Uso....................................................................................................................113

    Diagrama de Inclusin de Casos de Uso.....................................................................................................................114Especif icaci n de Casos de Uso.....................................................................................................................................1 15Pro t ot ipo ..............................................................................................................................................................................1 29

    Di se o .........................................................................................................................................................................................129Identificacin de Clases y Relaciones .........................................................................................................................129

    Clases de Entidad .........................................................................................................................................................129Normalizacin de Base de Datos .......................................................................................................................130

    Identificacin de Sustantivos........................................................................................................................130Ident i f icaci n de Verbo s..................................................................................................................................130Identificacin de Atributos.............................................................................................................................130An l isis de At ri bu t os ........................................................................................................................................131

    Seleccin de Llaves Primarias Iniciales.......................................................................................................131Generar At ri but os Clave ..................................................................................................................................131Diag rama E/R In ici al .........................................................................................................................................132Dependencias Funcionales con Seleccin de Llaves Primarias............................................................132Graficar Dependencias Funcionales.............................................................................................................133Normalizacin ....................................................................................................................................................133Diagrama E/R......................................................................................................................................................135

    Diag ram a de Clases de Ent idad ..........................................................................................................................1 35Clases de In t er face ...................................................................................................................................................... 136Clases de Control..........................................................................................................................................................137Diag ram as de Estado s.................................................................................................................................................1 41

    Diag ramas de Secu enci as ..........................................................................................................................................142Diag ramas de Col abor ac in ......................................................................................................................................1 45Ident i f icaci n de M t od os y At ri bu t os .......................................................................................................................147Diag rama de Com po nent es ............................................................................................................................................148

    GrlProcesoDCOM .pas .............................................................................................................................................................149

    GrlCat al og oDCOM .pas........................................................................................................................................................... 154

    SegUsuario.pas.........................................................................................................................................................................157

    SQLM ngBD.pas.........................................................................................................................................................................160SQLEnt Seg.pas .........................................................................................................................................................................163

  • 7/31/2019 Orientado a Objetos

    12/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

  • 7/31/2019 Orientado a Objetos

    13/167

    13

    Desde el principio de la historia el ser humano ha basado su aprendizaje en mecanismos exitosos para repetirprocesos y posteriormente afinarlos hasta obtener mejoras al proceso. A este tipo de aprendizaje basado en aciertos yerrores lo denominamos experiencia, la cual puede ser adquirida en forma personal u obtenida con ayuda de laexperiencia de otros, y en la medida que la experiencia trasciende se convierte en conocimiento, a tal grado que estasea la forma principal de educacin en las escuelas, la cual toma conocimientos de la experiencia profesional deprofesores y escritos para transmitirla a los alumnos.

    La principal ventaja de transmitir el conocimiento de esta forma, es el evitar descubrir repetidamente las mismassoluciones, es decir, no descubrir el hilo negro, sobre todo en situaciones donde se esta enfocado a resultados encorto t iempo, adicionalmente se reduce en gran medida el riesgo de la dependencia respecto a la capacidad yhabilidad de los individuos para afrontar situaciones, especialmente si son desconocidas, lo que nos permite contarcon soluciones ya exploradas y experimentadas previamente.

    Dentro del rea de la computacin en el desarrollo de sistemas informticos a nivel nacional, se sigue trabajandoartesanalment e de forma general e inclu so habit ual, basado en una cult ura m ediocre de trabajar a m aquinazos, es

    decir, la creencia de la productividad enfocada al t iempo dedicado a escribir cdigo, y no perder el t iempo endocumentacin intil, l levando a lo grandes fracasos de problemas mundiales del desarrollo del software, por nohaber dedicado el suficiente t iempo a comprender la problemtica y violando conceptos del desarrollo de mejoresprcticas : dejar todo por escrito y en la medida de lo posible en form a grfica.

    Este escrito ofrece una metodologa de desarrollo de aplicaciones de software basado en la orientacin a objetos,para lograr ese resultado, es imprescindible mencionar la base terica del anlisis y diseo orientado a objetos, lateora de los manejadores de bases de datos relacionales, el diseo de base de datos relacionales, todo estoacompaado de un l enguaje de modelado.

    Aunque todo lo anterior nos da los elementos suficientes para realizar un sistema informtico, se demuestra elpotencial a t ravs de la implem entacin de un sistema de historia clnica de ptica. Dentro de la m ucha inf ormacin

    que se puede encontrar en internet referente al tema, en muy pocas ocasiones se muestra el desarrollo de unaaplicacin, y cuando se logra encontrar se ut i l iza en aplicaciones con caractersticas muy particul ares de problemaspoco f recuentes.

  • 7/31/2019 Orientado a Objetos

    14/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    14

    Orientacin a objetos

    Complejidad

    Naturaleza

    El software modela segmentos del mundo real para tratar de replicar su funcionamiento en sistemas discretos, porende cualquier modelo mantiene una complejidad al tratar de imitar la realidad con herramientas electrnicas. Lanaturaleza del software desprende su complejidad en cuatro elementos: complejidad del dominio del problema, ladificultad del manejo de procesos de desarrollo, la posible flexibilidad del software y los problemas de representacindel fu ncionam iento en sistemas discretos.

    Complejidad del dominio del problema: El requerimiento de software para satisfacer un problema particular requieredel conocimiento y experiencia del dominio del negocio, en donde an as las personas con estas caractersticas pocasveces dominan la totalidad del problema. Por eso el desarrollador debe de escuchar y cuestionar para lograr obtener laexperiencia del usuario referente al dominio del problema en unos cuantos meses, semanas o das. Se incrementa lacomplejidad si el problema a resolver mantiene muchas condicionantes para tomar decisiones. Adicionalmente esnecesario lu char cont ra elementos no fun cionales como reutil izacin de cdigo, esquemas de seguridad, perform ance,costo, int eracti vidad y l im it aciones fsicas de hardware y softw are.

    Dificultad del manejo de procesos de desarrollo: Es comn la evolucin del software, en donde muchas veces esnecesario reescribir cdigo, por eso es casi indispensable construir pequeos bloques de cdigo para su reutilizacin ylim itacin de responsabilidades, pero generalment e en un desarrollo part icipa un conjunt o de program adores los cualesdespus de escribir su cdigo deben hacerlo interactuar con otros cdigos, durante esta integracin es donde saltan lasdeficiencias de las etapas de anlisis, diseo y desarrollo, sin tomar en cuenta siquiera la complejidad de coordinar entiempos y objetivos los equipos de trabajo, los cuales generalmente t ienen poco trabajo conjunto y/o problemas

    derivados de la distancia causantes de poca int eraccin y comu nicacin.Posible f l exibil idad a t ravs del soft w are: Durant e la solucin a un problema part icular se debe de pensar en aspectoscapaces de ofrecer solucin a la evolucin de las necesidades sin requerir afectar cdigo o al menos tratar deimpactarlo en menor medida con unidades de funcionamiento especf ico. Todo esto obliga a conocer y apostar a laflexibil idad de un sistema para funcionar en un futuro, claro que a mayor f lexibil idad el nivel de complejidad seincrementa exponencialmente.

    Problemas de representacin del funcionamiento en sistemas discretos: Dentro de aplicaciones grandes existen milesde variables, as como tambin ms de un hilo de control. La coleccin de estas variables, sus valores actuales, sudireccin en memoria, constituyen el presente estado de una aplicacin. Al ejecutar nuestro software en sistemasdigitales nosotros tenemos estados discretos, as se conforman un nmero finito de estados. Si diseamos un sistema

    con separacin de tareas, el funcionamiento de una parte del sistema deber repercutir en menor grado para elfuncionamiento de otra, pero an as pueden existir errores de transicin entre estados, lo cual nunca ocurrira en

  • 7/31/2019 Orientado a Objetos

    15/167

    Captulo 1. Orientacin a objectos

    15

    sistemas continuos. Otro factor importante de complejidad es la descripcin de un funcionamiento a travs deinstrucciones lgicas y mat emticas trat ando de representar segmentos del mu ndo real.

    Atributos

    Existen al menos cinco atributos comunes a los sistemas discretos:1. La complejidad habitualmente se muestra de forma jerrquica, es decir, un sistema complejo se compone de

    subsistemas relacionados, existiendo dentro de un subsistema ms subsistemas y as sucesivamente, hasta llegar alnivel m s bajo de component es element ales menos complejos.

    2. La decisin de elementabilidad de un componente es arbitraria, por depender del observador del sistema.

    3. Las relaciones dentro de un componente son ms fuertes que las relaciones entre componentes.

    4. Los sist emas jerrquico s se comp onen n orm alm ent e de pocos t ipos de subsistemas sim ples debido a la semejan za depatrones entre los subsistemas compuestos.

    5. Un sistema complejo necesita envolver a sistemas simples.

    Solucin a la complejidad

    La solucin a la complejidad del software puede resolverse a travs de ciertas reglas previstas para abatir lacomplejidad a travs de diferentes ngulos. Dentro de las reglas para solucionar la complejidad de un problema conorientacin a objetos tenemos la regla de descomposicin, regla de abstraccin y regla de jerarqua (clasificacin).

    Reglas de descomposicin

    Un argumento muy fuerte para solucionar problemas es dividir para vencer. Segmentando un problema ensubproblemas ms simpl es cada subproblema puede ser at acado sin l idiar contra la t otalidad. Existen diferentes form asde descomponer un problema: descomposicin algortm ica (estru ctu rada) y descomposicin orient ada a objet os.

    La descomposicin algortmica se ocupa en el diseo estructurado conocida como Top-Down, en donde cada mduloen el sist ema es desglosado en u n conj unt o de m dulos ms pequeos en coordinacin para dar u na solucin conju nt a,y as sucesivamente se hace por cada mdulo de nivel inferior obtenido, as hasta llevar cada mdulo a un procesosimpl e de programacin.

    La descomposicin orientada a objetos divide el problema utilizando abstracciones con responsabilidades obtenidas deldomin io del problema. El resultado de la abstraccin son obj etos capaces de brindar coordin adamente u na solucin alproblema.

    Mientras la descomposicin algortmica identif ica secuencia de procesos, la descomposicin orientada a objetosidenti f ica objet os cooperantes.

    Regla de abstraccin

    La dif icultad de dominar un objeto en su totalidad nos gua a obtener una idea generalizada del objeto, evitandodistraer la atencin en detalles no esenciales (solucin a sus compromisos), para concentrarnos en los detalles msimport antes (sus relaciones). La incapacidad hum ana de domi nar la tot alidad de un objeto, escoge ignorar los detallesno esenciales del objeto, para crear una idea globalizada del objeto.

  • 7/31/2019 Orientado a Objetos

    16/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    16

    Regla de jerarqua

    Las jerarquas permiten entender en forma ms sencilla al mundo real, existiendo dos jerarquas bsicas: la estructurade objetos y la de clases. La estructura de objetos muestra la colaboracin de diversos objetos en un patrn deinteraccin con formato de una totalidad / parte, l lamado mecanismo. La estructura de clases muestra la estructura

    comn en base a alguna caractersti ca con un f uncion amient o sin un propsito causal en un sistema.

    Importancia del diseo

    El propsito de un diseo es ofrecer una solucin a la estru ctura del problema, conocida como arquit ectura. El di seoes la invencin a la solucin a un problema, satisfaciendo los requerimientos antes de su implementacin. Un buendiseo debe de cumpli r con:

    Satisfacer funcion alment e la especif icacin del problem a.

    Satisfacer las restricciones de diseo, tiempo, costo y herramientas disponibles para la construccin.

    En la ingeniera de software se cubren diferentes mtodos de diseo, identif icados por un lenguaje de comunicacin,denominado notacin, un proceso cientfico y herramientas para respetar la secuencia del proceso a travs de sunotacin, conocido como CASE.

    Modelo de objetos

    Fundamentos

    El t rmino de objetos surge en l a dcada de los setent as en la ciencia compu tacional, para referenciar not aciones a lasolucin de problemas aparent emente di ferentes, pero mu tu ament e ligados desde una perspectiva de anlisis diferent ea la estructurada. Estas notaciones definen objetos representando componentes de un sistema modular descompuestopara definir un conocimient o. Con este modelo se vea a la realidad como obj etos con responsabilidades interactuando,en donde cada objeto poda contener objetos ms int ernos para conform ar una fu ncionalidad m s compleja.

    Dentro de la orientacin a objetos durante muchos aos se plasmaron diferentes formas de realizar su anlisis, diseo yprogramacin, y an esa variedad sigue presente.

    Anlisis orientado a objetos

    El Anlisis Orientado a Objetos (AOO) es un mtodo de anlisis para examinar los requerimientos desde una perspectivade clases y objetos, buscados en el vocabulario del dominio del problema, para poder representar la experiencia delusuario en la esquemat izacin del requerimiento .

    Diseo orientado a objetos

    El Diseo Orientad o a Objetos (DOO) es un m todo de diseo para comp render el pro ceso de descomp osicin y no t acinorientada a objetos, obteniendo el m odelo lgico (estr uctu ras de clases y objetos) y fsico (arquit ectura de m dulos yprocesos), as com o lo s modelos est ti cos y dinm icos.

  • 7/31/2019 Orientado a Objetos

    17/167

    Captulo 1. Orientacin a objectos

    17

    Programacin orientada a objetos

    La Programacin Orientada a Objetos (POO) es la implementacin del diseo, en donde los programas son coleccionesde objetos cooperantes. Cada objeto representa una instancia de alguna clase y las clases pertenecen a una jerarquade clases relacionadas por la h erencia.

    Elementos

    La orient acin a objetos define conceptos para crear soluciones t i les en base a su t eora, defin iendo cuat ro elemento smayores:

    Abstraccin Encapsulacin Modularidad Jerarqua

    La carencia de alguno de los elementos mayores en la solucin de un problema deslinda totalmente de la f i losofaorientada a objet os porque justam ente estos elementos conforman la estru ctura pr imordi al de esta f i losofa.

    Adicionalment e se t i enen tres element os menores del modelo de objetos:

    Tipeamiento Concurrencia Persistencia

    Los elementos menores son muy tiles, pero no son imprescindibles para la solucin orientada a objetos.

    AbstraccinLa abstraccin es el reconocimiento de las similitudes existentes entre objetos, situaciones o procesos del mundo real.Al buscar abstracciones es necesario concentrarse en los detalles importantes o incluso en las similitudes ignorando lasdiferencias por el momento, para poder describir y especificar algunos detalles del sistema, y pasar por desapercibidoslos no relevantes. Un concepto puede ser una abstraccin slo si puede ser descrito, entendido y analizadoindependientemente de los mecanismos utilizados para cumplir sus propsitos. Las abstracciones siempre estarninf luenci adas por el observador, de acuerdo a su experienci a y necesidades.

    Una abstraccin denota caractersticas esenciales de un objeto, distinguibles de otros tipos de objetos y provee lmitesconceptuales a la perspectiva del observador1.

    La abstraccin f i ja su at encin en la vista exterior del objet o para separar el fun cionamient o esencial del objeto de suimpl ementacin, siendo est e el principi o de barrera de abstraccin.

    La obt encin de las abstracciones del dom inio de un p roblema es la parte medular del diseo ori entado a objetos, lascuales pueden agru parse en:

    Abstraccin de Entidad: Un objeto representa un modelo ti l del dominio de un problema o el dominio de unasolucin, el cual cu enta con una personalidad. Se asocian generalment e a los sustant ivos del dom inio del problema.

    Abstraccin de Accin: Un objeto provee un conjunto generalizado de operaciones, las cuales desempean unmismo t ipo de f uncin. Se asocian a verbos comunes o simi lares del domi nio del problema.

    1Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 41.

  • 7/31/2019 Orientado a Objetos

    18/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    18

    Mquina Virtual de Abstraccin: Un objeto agrupador de operaciones usadas en un nivel superior o inferior decontrol . Se asocian a u n conj unt o de verbos con propsitos comunes.

    Abstraccin Coincidental: Un objeto agrupa un conjunto de operaciones o modelos sin relacin entre s. Se asociana un conj unt o de verbos o sustant ivos sin relacin algun a.

    De los t ipos anteriores las abstracciones de entidad son directamente paralelas al vocabulario del dominio delproblema, por lo qu e es recomendable trat ar de obt enerlas.

    Como cliente ent endemos a un objet o ut i l izando los servicios de otro objeto, conocido como servidor. Para obtener laabstraccin de un objeto nos podemos basar en los servicios requeridos por sus clientes, representando estos serviciosla vista exterior para sus clientes.

    Una abstraccin debe abarcar el concepto de invariancia, as las operaciones de un objeto se conforman porprecondiciones (invariantes asumidas por la operacin) y postcondiciones (invariantes satisfechas por la operacin), esdecir, siempre debe de responder en la misma forma siempre al tener la misma entrada para el mismo estado delobjeto.

    Encapsulacin

    La abstraccin de un objeto precede a las decisiones de implementacin de sus servicios. La implementacin de unobjeto ser un secreto para la abstraccin y debe ser ocultada para sus clientes, quedando nicamente comocompromiso responder a su servicio sin importar como lo solucione, logrando que ninguna parte de un sistemacomplejo dependa de la implem entacin de algn objeto, oril lando a respetar el pr opsit o de la abstraccin.

    Mientras la abstraccin permite pensar el que hacer, la encapsulacin se dirige en como se va a realizar, permitiendocambiar program as en f orma confiable con un mnim o de esfuerzo por esta barrera. La abstraccin y encapsulacin sonconceptos complementarios: la abstraccin se enfoca en el funcionamiento observable de un objeto, mientras laencapsulacin se enfoca en la i mplem entacin que da origen a ese funcion amient o.

    La clase de la que nace un objeto debe tener dos partes, una interface (servicios para relacionarse con otros objetos,conocida como vista exterior) y una impl ementacin (solucin a los servicios, conocida como vista int erior).

    La encapsulacin es el proceso de comparticin de elementos de una abstraccin que constituyen su estructura yfun cionamient o. La encapsulacin sirve para separar la i nt erface de una abstraccin y su implement acin2.

    Modularidad

    El segmentar un programa en componentes individuales permite reducir su complejidad, adems de agrupar unconjunto de componentes con algn propsito o caracterstica comn, permitiendo localizar eficazmente sus

    componentes.

    La modularizacin se realiza para dividir un sistema en mdulos compilables separadamente, pero con ciertasconexiones mnimas de dependencias con otros mdulos. La modularidad se encarga de empaquetar abstracciones enunidades discretas, llamadas mdulos, es decir, la modularizacin empaqueta fsicamente las clases y objetos deldiseo de la estru ctura lgica.

    Al m odularizar se avent aja la reduccin del costo del softw are al permit ir disear y revisar mdu los independient es, eincluso reut il izar m dulos bsicos para cualquier sistem a.

    Para lograr un buena modularidad, los mdulos deben construirse con cohesin (abstracciones relacionadas por gruposlgicos) y acoplamiento dbil (para minizm izar la dependencia entre m dulos).

    2Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 51.

  • 7/31/2019 Orientado a Objetos

    19/167

    Captulo 1. Orientacin a objectos

    19

    La modularidad es la propiedad de un sistema de descomponerse en un conjunto de mdulos cohesivos conacoplamientos dbiles3.

    Existen tres factores capaces de afectar las decisiones de modularizacin. El primero, los mdulos sirven como unidadesindivisibles de software que pueden reutilizarse en otras aplicaciones. Segundo, muchos compiladores pueden generar

    cdigo de objetos en segmentos, uno para cada mdulo. Tercero, una buena modularizacin permite ubicar cdigorpidamente al f uncionar como un mapa.

    Jerarqua

    Un conjunto de abstracciones en varias ocasiones pueden formar una jerarqua. Al identificar jerarquas en el diseo, elentendim iento del problema se simpl if ica.

    Una jerarqua es un rango u orden de abstracciones4.

    Dentro de las jerarquas se desprenden dos muy importantes:

    Generali zacin/Especializacin (estr uct ura de cl ases)

    Total/Parte (estructura de objetos)

    La jerarqua de generalizacin/especializacin se conforma al agrupar abstracciones dentro del esquema b es un t ipo dea. Un ejemplo es: una mot o es un t ipo de vehculo.

    La herencia es muy importante en una jerarqua de generalizacin / especializacin por definir una relacin entreclases, en donde una clase comparte la estructura o funcionamiento definido en una o ms clases (herencia simple ymltiple, respectivamente). La herencia representa una jerarqua de abstracciones en donde una subclase (clase hijo)hereda de una o ms superclases (clases padre).

    La estructura y funcionamiento comn de diferentes clases pueden formar una superclase, as la herencia es unajerar qu a de general izac in/especi al izaci n , en do nde la sup ercl ase represent a abst racc ion es general izadas y lasubclase representa la especializacin de los mtodos de la superclase, los cuales son agregados, modificados yocultados.

    La abstraccin intenta proveer una barrera para ocultar los mtodos y estados, pero la herencia abre esta interface,para ver los mtodos y estados sin abstraccin.

    Existen niveles de abstraccin, hablando en trminos de jerarqua, una abstraccin de alto nivel es una generalizacin yuna abstraccin de bajo nivel es una especializacin.

    La jerarqua de tot al/parte se conform a al agrupar abstracciones dent ro del esquema d es parte de c. Un ejemplo es: unalumn o es parte de un grupo.

    La agregacin denota la relacin de total/parte de una jerarqua, en donde varios objetos forman parte de un total. Elconjunto de un grupo de objetos denota un total, la carencia de alguno de estos objetos no modif ica la identidad deltotal, y la destruccin del total no implica la destruccin de las partes conformantes. Una familia (total) se conformade un padre, una madre e hijos (partes), la carencia de un hi jo no destru ye a la fami lia, pero t ampoco la di visin de lafami lia destruye a sus integrantes.

    La encapsulacin ayuda a disminuir la complejidad ocultando detalles, la modularidad ayuda a agrupar la solucin asubproblemas, mient ras tant o la abstraccin y jerarqua permit en clasif i car simi lit udes para simpl if i car la comprensin.

    3Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 57.4Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 59.

  • 7/31/2019 Orientado a Objetos

    20/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    20

    Tipeamiento

    Un t ipo es una caracterizacin exacta de las propiedades estru ctur ales y fu ncionales, compartidas por u na coleccin d eent idades, clases u o bjet os.

    Un tipeamiento es forzar a una clase de un objeto, as como objetos de diferentes tipos, a ser intercambiables, o a lamayora, pudiendo in tercambiarse slo por caminos mu y restri ngidos5.

    Al t ener t ipos como u nidades de medida es posible dividir d istancia entre t iempo para obt ener una velocidad, pero noser posible dividir la temperatura entre el peso. El t ipeamiento obliga a slo poder realizar ciertas combinacioneslegales de abstraccion es.

    Un lenguaje puede ser f uertement e t ipeado, regularmente t ipeado o no ser t ip eado, y an as ser orientado a objetos.

    Un t ipeo fu erte previene de mezclar abstracciones ilgicas u obt ener result ados inesperados. Un t ipeo fu erte int roducedependencia semntica, as cualquier pequeo cambio de la base de la clase puede requerir afectar a los clientes queinteractuen con ella.

    Los beneficios ms import ant es de un lenguaje f uertement e t ipeado son:

    Permite detectar errores en el ciclo de editar, compilar y depurar, a pesar de ser tedioso. La declaracin de t ipos ayuda a docum entar un programa. La mayora de los compiladores generan cdigo ms eficiente cuando los tipos son declarados. Desaparicin de comportamientos no previsibles al asumir conversiones no deseadas. Sin chequeo de t i pos un programa puede t ronar m isteriosamente en t iempo de ejecucin.

    Concurrencia

    La concurrencia permite actuar a diferentes objetos al mismo tiempo. Cada programa tiene por lo menos un hilo decontrol , pero un programa concurrent e puede tener varios hilos de control: algun os transito rios y otros durant e todo eltiempo de ejecucin. Los sistemas ejecutados en mquinas con multiproceso permiten verdaderos hilos de controlconcurrentes.

    Existen dos tipos de concurrencia: la ligera y la pesada. Un proceso ligero comparte el espacio de memoria con otroproceso ligero, mientras la concurrencia de un proceso pesado tiene destinado su propio espacio de memoria.

    Un sistema orientado a objetos puede conceptualizar al mundo real como un conjunto de objetos cooperativosconcurrentement e, en donde cada objeto act ivo es un cent ro de actividad independiente.

    La concurrencia es la propiedad de disti nguir u n objeto act ivo de uno no act ivo, en un m ult iproceso6.

    Persistencia

    La persistencia se encarga de guardar el estado y la clase de un objeto a travs del tiempo y/o espacio.

    La persistencia es la propiedad de un objeto de trascender en tiempo (el objeto continua existiendo an despus delcese de su creador) y/o espacio (el obj eto cambi a su posicin d e espacio de m emori a en el que se cre)7.

    5Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 66.6Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 74.7Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 77.

  • 7/31/2019 Orientado a Objetos

    21/167

    Captulo 1. Orientacin a objectos

    21

    Objetos

    Naturaleza

    Desde la perspectiva del conocim iento hum ano un objeto puede ser: Alguna cosa tangible o invisible. Alguna cosa que puede ser aprendida int electu alment e. Alguna cosa hacia la que el pensamiento o accin puede ser diri gido.

    Un objeto representa un individuo, un artculo identif icable, una unidad o entidad (real o abstracta) con un rol biendefinido en el dominio del problema. Otros tipos de objetos pueden ser invenciones de procesos de diseos, paracooperar con otros. Los objetos sirven como mecanismos para proveer un alto nivel de funcionamiento cuandocooperan entre s.

    Un desarrollo orientado a objetos debe pensar todas las cosas como objetos. Aunque esta perspectiva puede ser un

    poco ingenua, por que no todo en el mundo real es objeto; atributos como el t iempo, la belleza o el color no sonobjetos, ni tampoco son objetos emociones como el amor o la indignacin, pero s son propiedades potenciales de losobjetos. Se debe tener cuidado en no confundir las propiedades de los objetos con objetos.

    Un objeto t iene un estado, un funcionamiento e identidad, la estructura y funcionamiento de objetos similares sondefinidas en clases comunes (los trminos de instancia de clase y objeto refieren lo mismo)8.

    Estado

    El fu ncionami ento de un objet o est inf luenciado por su historia: el orden bajo el que opera un objeto es import ante.

    El estado de un objeto son todas las propiedades (normalmente estticas) de un objeto, ms los valores actuales(normalm ente di nmicas) de cada un a de estas propiedades9.

    Definimos como propiedad a un atributo, variable simple o referenciada, con una caracterstica inherente o distintiva,rasgo o faccin que contribuyen a tener un objeto nico. Todas las propiedades contienen algn valor y este valorpuede ser una cantidad simple o denotar otros objetos. Todas las propiedades se representan por variables en trminosde programacin, siendo las variables ms complejas las que referencian a objetos. Una cantidad simple, como unnmero, es independiente del t iempo al no variar su valor, mientras tanto un objeto existe en el t iempo y t iene unestado, adems puede ser creado, destruido o compartido.

    Los trmin os propiedad y atribu to son i ndistint os, ambos hacen referencia a las caractersti cas de un objeto.

    Funcionamiento

    El f uncionam iento de un objet o representa su exterior visible y actividad medible.

    El funcionamiento de un objeto acta y reacta en trminos de los cambios de su estado y mensajes enviados otransmit idos10.

    Una operacin es la accin desempeada por un objeto al invocar a otro objeto sus servicios, con la f inalidad deobtener un a reaccin. El resultado de la operacin estar defi nido por el estado del objeto en el m oment o de responder

    8Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 83.9Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 84.10Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 86.

  • 7/31/2019 Orientado a Objetos

    22/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    22

    al client e. Las operaciones definidas para un objeto las conocemos como mtodos y en trmi nos de programacin l osconocemos como procediment os y/o fu nciones

    El estado de un objeto representa un cm ulo de result ados de su f uncionam iento.

    Un m todo denot a un servicio ofrecido por u n objet o a sus client es. Los tres t ipos de mtodos ms comunes son:

    Modificador: Mtodo que afecta el estado de un objeto. Selector : M todo qu e consult a el estado de un obj eto, sin alt erar el estado. I terativa: M todo que consult a todas las partes correspondient es al estado de un objeto con algn valor bi en

    definido, en forma repetit iva.

    Adicionalm ente t ambin existen mt odos para crear y destru ir objet os:

    Construct or: M todo creador de un objeto y/o i nicializador de su estado. Destru ctor: M todo liberador del estado de un ob jeto y/o destructor del mismo.

    El rol de un objeto es la mscara para definir un contrato entre la abstraccin y sus clientes, es decir, el rol de unobjeto se define por sus mtodos. Las responsabilidades de un objeto son todos los servicios provistos para todos loscontrat os soportados. Un r ol son los servicios ofrecidos por un objeto, mient ras la responsabilidad es el cumpl imi entode los servicios soportados en un contrato.

    Conjun tam ente el estado y f uncionam iento definen el rol de un objeto a j ugar en el mu ndo, a la vez que satisfacen susresponsabilidades.

    Los trminos mtodo y operacin son in distint os, ambos hacen referencia a su funcion amient o.

    Identidad

    Cada objeto es nico, incluso a pesar de compartir las mismos propieades de otro objeto, puesto que ocupa un espaciodiferente. Esta autent icidad se muestr a en l a variable de t iempo y espacio.

    La ident idad es la propiedad de un objet o de disting uirse de todos los dems objetos11.

    Relaciones entre objetos

    Al relacionarse dos objetos estos hacen suposiciones acerca del otro, incluyendo los mtodos realizados, as como elresult ado de su fun cionamient o. La jerarqua de objetos se conform a por dos t i pos:

    Liga Agregacin

    Liga

    Una liga se deriva de la conexin fsica (con un mensaje) o conceptual (sin mensaje) de dos objetos, en donde un objetopuede colaborar con otro objeto por medio de un mensaje. El mensaje representa una asociacin entre un objeto(cliente) utilizando los servicios de otro objeto (servidor). El mensaje entre dos objetos es generalmente unidireccional yespordicamente bidireccional.

    11Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 91.

  • 7/31/2019 Orientado a Objetos

    23/167

    Captulo 1. Orientacin a objectos

    23

    Un objeto al relacionarse con otro a travs de una liga puede desempear tres papeles:

    Client e o Actor: Un objet o puede operar sobre otros objetos, pero nu nca podr ser operado por ot ros objetos. Servidor: Un objeto no opera sobre otros objetos, pero puede ser operado por otros objetos. Agente: Un objet o puede operar sobre otros objetos y ser operado por ot ros objetos, es decir f ungir como cli ente

    o servidor para un o o di ferentes objetos.Si consideramos dos objetos a y b con una liga relacionndolos, a puede mandar un mensaje a b slo si lo puedevisualizar. Durante el anlisis de un problema se puede ignorar la visibilidad, pero al implementar es necesarioconsiderar la visibilidad a travs de las ligas, para determinar el alcance y acceso de los objetos a cada lado de la liga.

    Actualm ente un objet o puede divisar a otro de cuatro form as:

    El objeto servidor es global al cliente. El objet o servidor es algn parm etro del m todo del client e. El objet o servidor es una parte del obj eto del cli ente. El objet o servidor est localm ente declarado como objet o en algn mtod o del cliente.

    Dos objetos pueden comunicarse a travs de una liga slo si se encuentran sincronizados y para lograr la sincronizacinde un obj eto act ivo con u no pasivo puede presentarse en t res form as:

    Secuencial: Un objeto pasivo garantiza sincrona con la existencia de un slo objeto activo en el momento debuscar la sincronizacin.

    Protegido: Un objeto pasivo garantiza sincrona con mlt iples hilos de control slo cuando los objetos activosproporcionen exclusin mutua.

    Sincronizado: Un objet o pasivo garantiza sincrona con m lt iples hilos de cont rol slo cuando el objeto pasivogarantice exclusin mutua.

    Cuando un objeto pasa un mensaje a otro a travs de una liga, los dos objetos deben estar sincronizados de algunaforma. Los mensajes pasados pueden tomar alguna de las siguientes formas.

    Sincrona: Una operacin slo comienza cuando el emisor ha iniciado la accin y el receptor est l isto paraaceptar el mensaje, el emisor y receptor esperarn indefinidamente hasta que ambas partes estn listas aroceder.

    Resistimiento: Es similar a la sincrona excepto que el emisor abandonar la operacin si el receptor no estinmediatamente l isto.

    Tiempo de Espera: Es similar a la sincrona excepto que el emisor esperar un tiempo determinado al receptorpara que este preparado.

    Asncron o: El em isor puede ini ciar el m ensaje sin co nsiderar si el emisor espera el m ensaje.

    Agregacin

    La liga denota una relacin entre cliente y servidor, pero una agregacin denota una relacin jerrquica parte/totalpara navegar de la totalidad (agregado) a alguna de sus partes (atributos). Si el t iempo de vida de un objeto atributoest condicionado por el t iempo de vida del objeto totalidad, al ser considerado como un parmetro por valor, seconoce a la agregacin com o composicin. Pero si el t iempo de vida de un objeto atributo es independiente al t iempode vida del objeto tot alidad, al ser considerado como un parm etro por referencia, se conoce como agregacin.

    La agregacin ayuda a encapsular partes como secretos de una totalidad, pero las ligas pueden sustituir a laagregacin si se desea romper el acoplamient o ent re objetos. La agregacin perm it e tener objetos con f uncionam ientoscomplejos, pero visualizados por la encapsulacin como objetos simples.

  • 7/31/2019 Orientado a Objetos

    24/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    24

    Clases

    Naturaleza

    Una clase es un grupo, t ipo o conjunto marcado por propiedades comunes, una distincin, una clasif icacin decualidades o una clasificacin de condiciones.

    Una clase es un conju nt o de objetos compart iendo una estru ctura y un f uncionam iento com n12.

    Un objeto es una instancia de una clase, por lo tanto, un objeto no es una clase, pero de una clase nacen los objetos.Los objetos que no comparten estructuras y funcionamientos comunes, no pueden ser agrupados en una clase, exceptopor su naturaleza de objetos. Una clase es el molde de un t ipo de dato compuesto (con funciones, procedimientos yvariables), y un objeto representa la variable alojada en memoria del tipo de alguna clase, cuando se asigna un espaciode memoria para el objet o es cuando decimos que fue instanciado.

    Interface e implementacin

    Si segmentamos una clase, esta puede tener dos vistas: una externa y otra interna. La externa forma su interface,mientras la interna forma su implementacin.

    La int erface de una clase provee la vista exterior y enf atiza la abstraccin, mient ras ocult a la estru ctura y secretos delfuncionamiento. La interface consiste en declarar inicialmente todos los mtodos aplicables a las instancias de esaclase, tambin pueden incluirse la declaracin de otras clases, constantes, variables y excepciones, es decir suspropi edades, necesarias para compl etar la abstraccin . La im plem ent acin de una clase provee la vista int erna, la cualabarca los secretos del funcionamiento. La implementacin de una clase consiste bsicamente en implementar todoslos mtodos definidos en la interface de la clase.

    La interface de una clase se divide normalmente en tres partes: Pbli ca: Declaraciones accesibles a t odos los client es. Protegida: Declaraciones accesibles slo a su clase, sus subclases y sus amigos. Privada: Declaraciones accesibles slo a su clase y sus amigos.

    Relaciones entre clases

    En el dom inio particul ar de un problema, las abstracciones obtenidas se relacionan de diferentes form as, al conjunt o deestas relacio nes se les conoce com o estru ctu ra de cl ases.

    Las relaciones entre dos clases tienen dos razones primordiales. La primera, una relacin de clases puede indicar elcompartir algunas caractersticas jerrquicas (generalizacin / especializacin y total / parte). La segunda, una relacinde clases puede indicar algn t i po de conexin semnti ca.

    Existen t res tipo s bsicos de relaciones:

    Generali zacin/especializacin (dos clases se vincu lan p or la r elacin es un). Total/parte (dos clases se vinculan por la relacin parte de). Asociacin (dos clases se vincu lan p or dependenci a semn ti ca).

    12Object Oriented Anlisis and Design with Applications, Autor Grady Booch, de Benajmin / Cummings. Pag. 103.

  • 7/31/2019 Orientado a Objetos

    25/167

    Captulo 1. Orientacin a objectos

    25

    Los lenguajes de programacin, especficamente los orientados a objetos, proveen soporte directo para algunascombinaciones de las siguientes relaciones:

    Asociacin Herencia

    Agregacin

    La asociacin denota una dependencia semntica, es decir, su relacin es aplicada de forma conceptual y no esobligatoria su dependencia fsica al codificar. La asociacin es bautizada con el nombre del vnculo a travs del cual seenlazan las clases e indica una direccin para conocer el sentido de lectura de la asociacin para sus clases. En elmomento de anlisis son sumamente tiles para indicar dependencias existentes, sin entrar en detalles.

    Una asociacin t iene una cardinalidad entre sus participantes para indicar la cantidad de clases asociada a otracant idad de clases. Las cardinali dades comun es ent re dos clases son:

    Uno a uno Uno a muchos M uchos a muchos

    Herencia

    Una subclase puede heredar la estructura y funcionamiento de su superclase. La herencia es la relacin entre clases, endonde una clase comparte la estructura y/o funcionamiento definido en una clase (herencia simple) o ms clases(herencia mltiple). La clase con la propiedad de heredar se le denomina superclase y a la clase heredadora se leconoce como subclase. Una subclase puede aumentar o restringir la estructura y funcionamiento de su superclase,cuando una subcl ase aum ent a su superclase se dice que hereda po r ext ensin. Cuand o un a superclase es diseada para

    agrupar funcionalidad y estructura, pero no se disea para crear instancias se le conoce como clase abstracta.

    Una clase tiene dos tipos de clientes principales:

    Instancias Subclases

    El po l imor f ismo es un concepto, en donde el nombre de un mtodo, puede denotar operaciones de objetos de variasclases, siempre y cuando estas se relacionen por alguna superclase comn. Algn objeto estar habilitado pararesponder segn la necesidad del mensaje, a pesar de tener el mismo nombre de mtodo, por ejemplo, es como hablardel mtodo de manejar un automvil automtico y uno estndar, ambos mtodos concuerdan en el nombre, perotienen secuencias de solucin diferentes, adems ambos derivan de la clase automvil. El polimorfismo es muy tilcuando t enemos muchas clases con el mismo prot ocolo. Con el p olim orfismo, se eliminan grandes instru cciones de t ip ocase, porque cada objeto conoce su t ipo y por lo tant o sabe reaccionar.

    La necesidad de herencia mltiple en los lenguajes de programacin orientada a objetos es todava un gran debate. Laherencia mlt iple es como tener mlt iples padres para un nio. Uno de los problemas levantados por la presencia deherencia mltiple es heredar de un ancestro por ms de un camino conceptos similares, esta situacin se llamaherencia repetida, el problema surge si los padres del nio tiene religiones diferentes, por lo cual elegir una religinser complicado. Existen tres enfoques para tratar la herencia repetida:

    1. Las herencias repeti das son ilegales.

    2. Si se duplican mtodos o propiedades en una subclase al heredar de dos superclases, estas referencias debencalificarse con el nombre la superclase referenciada.

  • 7/31/2019 Orientado a Objetos

    26/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    26

    3. Indicar una p rioridad en l a seleccin de la superclase domin ant e para slo considerar un m todo o propiedad.

    Agregacin

    La relacin de agregacin entre clases tiene un paralelismo directo a la relacin de agregacin entre

    objetos, debido a la necesidad de cualquier objeto de instanciarse de alguna clase.

    Clases y objetos

    Interaccin

    Relacin

    En todas las aplicaciones prcticas las clases siempre son estticas, por lo tanto su existencia, semntica y relacionesson fijas, pero los objetos son dinmicos, al ser creados y destruidos en tiempo de ejecucin de un programa.

    Reglas de anlisis y diseo

    Durant e el anlisis y etapas inicial es del diseo, los desarrol ladores tien en dos tareas primor diales:

    Identif icar las clases y objetos del vocabulario del dom inio del problema. Inventar las estru cturas por medio de las cuales un conj unt o de objetos trabaja para proveer el fu ncionam iento

    que satisfaga el domin io del problema.

    Las clases y objetos se llaman abstraccindel problema, y a las estructuras cooperativas se les llaman mecanismosdeimplementacin.

    En el anlisis es import ante f i jar la at encin en la vista exterior de las abstracciones y mecanismos de implement acin.Estas vistas representan el marco lgico del sistema, y abarca la estructura de clases y objetos del sistema. En laimplementacin del diseo la atencin se f i ja en la vista interior de las abstracciones y mecanismos deimpl ementacin, envolviendo as el m arco fsico.

    Construccin de calidad

    Calidad de abstraccin

    El proceso de diseo de clases y objetos es incremental e iterativo. Para determinar si una clase u objeto esta biendiseado pu ede medirse en base a:

    Acoplamiento Cohesin Suficiencia Entereza Primit ividad

    El acoplamientoes la medida de fortaleza en la asociacin establecida por una conexin de un mdulo a otro, o bien

    entre clases. Un fuerte acoplamiento evita la independencia entre los mdulos o clases del sistema. Un mdulo o clase

  • 7/31/2019 Orientado a Objetos

    27/167

    Captulo 1. Orientacin a objectos

    27

    fuert emente acoplado con ot ro es rgido de ent ender, cambiar o corregirse, por lo t anto, la compl ejidad de un di seo desistema puede ser reducido ut i l izando u n dbil acoplam iento entre m dulos o clases.

    La cohesin es la medida del grado de colectividad entre los elementos de un diseo orientado a objetos como unmdulo, objetos simples o clases simples. La forma menos deseable de cohesin es la coincidental, en la cualabstracciones completas no relacionadas son agrupadas en la misma clase o mdulo.

    El acoplamient o y la cohesin f orman crit erios para permit ir a una clase o mdu lo ser sufi ciente, ent ero y primit ivo.

    Por suficienciase entiende que la clase o mdulo tiene caractersticas indispensables de abstraccin para permitir unsignif icado e interaccin eficiente, pero ut i l izando lo m nimo in dispensable.

    Por entereza se entiende la interface de la clase o mdulo que captura todo lo signif icativo de la abstraccin, sincarencias. Una clase o mdulo debe tener una interface general para ser ti l a cualquier cliente, lo que nos permitirtener cdigo reutil izable para diferentes propsit os. Tambin d ebemos de considerar a m ayor generalidad mayor t iempode diseo y construccin.

    Si se proveen demasiadas mtodos en niveles finales obtendremos niveles finales complejos, pero es posible dejarmuchas mt odos en n iveles primit ivos para lograr una agru pacin de las operaciones. Si f uera necesario in crementar l afuncionalidad bastar con apoyarse de las clases primitivas.

    Seleccin de mtodos

    Planear la interface de una clase o un mdulo es normalmente un trabajado arduo. Es recomendable hacer un primerintento de disear una clase, posteriormente al apoyarse en las necesidades de sus clientes creados, se determina si seaumenta, modif ica y se refina la interface, pero vale la pena sealar en tener un pensamiento general en todomomento para permitir clases capaces de responder a diferentes clientes.

    Si en una clase dada se guardan todos los mtodos en forma primit iva, se exhibe un pequeo y bien definido

    funcionamiento. Un buen diseador conoce el balance en crear muchos contratos, clases muy grandes en mtodos, ypocos cont rat os, clases pequeas con much as relacion es.

    Los mtodos pueden situarse tomando en cuenta los siguient es criterios:

    Reusabilidad: Funcionam iento ti l en ms de un context o

    Complejidad: Dif icultad de implementar el funcionamiento

    Aplicabil idad: Consideraciones de funcion amient o para cont extos determ inados

    Conocimiento de Implementacin: La implementacin del funcionamiento depende de detalles internos dela clase

    Seleccin de relaciones

    La relacin entre clases y objetos esta ligada a la seleccin de mtodos. Si se decide que el objeto a enve un mensajem al objeto b, ent onces directa o i ndirectam ente, b puede ser accesible a a, para lo cual se debe nombrar la operacinm en la implementacin de a, considerando la visibilidad requerida.

    Seleccin de implementaciones

    Slo despus de establecer la vista exterior de un objeto o clase se puede iniciar el estudio de su vista interior, slohasta conocer los contratos de un objeto podemos decidir com o satisfacerlos.

  • 7/31/2019 Orientado a Objetos

    28/167

    Metodologa para el desarrollo de aplicaciones orientadas a objetos

    28

    La representacin de una clase u objeto debe ser, casi siempre, uno de los secretos de la encapsulacin de laabstraccin. Una ventaja de encapsular es realizar cambios a la representacin, siempre y cuando no implique unaviolacin funcional de las suposiciones hechas por el cliente. Esto sucede sin necesidad de afectar a ninguno de susclientes, porque el protocolo o cont rato no se ve afectado.

    Clasificacin

    Importancia

    Para buscar la solucin de un problema es necesario descubrir e identificar. El proceso de descubrir debe encontrarabstracciones y mecanismos, desprendidos del vocabulario del dominio del problema, ms algunos otros implcitos. Sinos apoyamos en la clasificacin de las abstracciones y mecanismos, se identifican jerarquas de generalizacin,especializacin y agregacin. La clasificacin es una herramienta para modularizar, se pueden situar ciertas clases yobjetos en el mismo mdulo, dependiendo de las similitudes de sus declaraciones u otro concepto de clasificacin. La

    simil it ud se puede obtener uti l izando la cohesin y el acoplamient o.La clasificacin siempre estar relacionada al enfoque, visin, experiencia y necesidad del clasificador.

    Identificacin de clases y objetos

    Enfoques modernos y clsicos

    Histricamente, existen tres enfoques generales para clasificar:

    Clasificaci n Clsica Agrupamiento Conceptual Teora de Prot ot ipo

    Ninguna clasificacin es absoluta, porque algunas estructuras de clases pueden ser mayormente favorecidas de unaapl