Ejemplo de actividades de desarrollo I 1 ( prelimina; preliminar be investigaci6n I I 1 3. Definir 10s 4. Registrar 10s thinos requerimientos en el g~osario I 5. lmplementar el prototipo I 7. Definir el modelo conceptual preliminar I 9. Perfeccionar el plan -1 . . . ,I . i.osW& 2. Perfeodonar 10s diagra- esenciales de uso mas de casos de uso I 3. Perfeccionar el 4. Perfeccionar - modelo conceptual I I 5. Definir Ice diagramas de 6. Definir los contratos sewencia del sistema de operaciones desarrollo 1 1 7. Definir 10s diagramas de estado Ciclo de desarrollo 2 nir loe cams 2. Definir rq es de uso de usuarl~ I eccionar la arqui- 4. Definir I(x diagramas lra del slstema de interi I I! 5. Definir 10s diagramas 6. Definir los esquemas de clases del diseiio de la base de dabs . Patrones generales de software para asignar responsabilidades (GRASP) Descripcih Experto ~Quiknas umirfi la responsabilidad en el caso general? Asignar una responsabilidad al experto en informaci6n: la clase que posee la informacih necesaria para cumplir con la responsabilidad. Creador ~Quiknc rea? Asignar a la clase B la responsabilidad de crear una instancia de clase A, si se cumple una de las si- guientes condiciones: 1. B c0ntiene.A 4. B registra A 2. B agrega A 5. B utiliza A muy de cerca 3. B tiene 10s datos de inicializaci6n de A LQuiQ administra un evento del sistema? Asignar la responsabilidad de administrar un mensaje de eventos del sistema a una clase que represente una de las siguientes opciones: 1. El negocio o la organizacibn global (un controlador de fachada). 2. El "sistema" global (un controlador de fachada). 3. Un ser animado del dominio que realice el trabajo (un controlador de papeles). 4. Una clase artificial (Fabricacibn Pura) que represente el caso de uso (un controlador de casos de uso). Bajo Acoplamiento ~C6mod ar soporte a poca dependencia y a una mayor reutilizacion? (evaluativo) Asignar las responsabilidades de mod0 que se mantenga bajo acoplamiento. Alta Cohesi6n &6mo mantener controlable la complejidad? (evaluativa) Asignar las responsabilidades de mod0 que se mantenga una alta cohesibn? Polimorfismo ~Quiknc, uhdo el comportamiento varia segh el tipo? Cuando varia el tip0 (clase) de alternativas o comportamientos relacionados, asignar la responsabilidad del comportamiento -mediante operaciones polimorficas- a 10s tipos en que varia el comportamiento. Fabricaci6n Pura ~Quienc, ubdo uno esth desesperado y no quiere violar 10s patrones Alta Cohesion ni Bajo Aco- plarniento? Asignar un conjunto muy alto de cohesion de responsabilidades a una clase artificial que no represente nada en el dominio del problema, a fin de brindar soporte a una alta cohesion, a bajo acoplarniento y a la reutilizacibn. ~Quienp,a ra evitar el acoplamiento directo? Asignar la responsabilidad a un objeto intermedio para que medie entre otros componentes o servicios, de mod0 que no se acoplen directamente. No Hables con ~Quienp, ara no conocer la estructura de 10s objetos indirectos? Extraiios (ley de Demeter) Asignar la responsabilidad al objeto directo del cliente para colaborar con el objeto indirecto, de mod0 que el cliente no necesita conocer el objeto indirecto. En el metodo, 10s mensajes unicarnente pueden enviarse a 10s siguientes objetos: El objeto this (o el seM. Un parhmetro del mktodo. Un atributo de self. Un elemento de una coleccion que sea un atributo de self. Un objeto creado dentro del metodo. UML PATRONES Y INTRODUCCION AL ANALISIS Y DISE~~OOR IENTADO A OBJETOS Versi6n en espaiiol: Luz Maria Henhndez Rodriguez Traductora profesional Con revisi6n tdcnica de: Ing. Humberto Chrdenas Anaya Director de la Carrera de Ingenieria en Sistemas Computacionales, Profesor del Departamento de Sistemas de Informacibn, Instituto Tecnolbgico y de Estudios Superiores de Monterrey, Campus Estado de Mtfxico PRENTICE HALL AMSTERDAM HARLOW MIAMI M.U NICH NUEVA DELHI MENLO PARK NUEVA JERSEY NUEVA YORK ONTARIO PARfS SINGAPUR SYDNEY TOKlO TORONTO ZURICH Datos de catalogaci6n bibliog~~ca (1 I Laman, Craig UML y Patrones Introducci6n a1 an6lisis y diseiio orientado a objetos PRENTICE HALL, MCxico, 1999 I ISBN: 970-17-0261-1 AREA: UNIVERSITARIOS I I Fonnato: 20 x 25.5 Piiginas: 536 Version en espaiiol de la primera edicibn de la obra titulada Applying UML and Pattern. An Introduction to Object-Oriented Analysis and Design, de Craig Larman, publicada originalmente en ingles por Prentice Hall, Inc., Upper Saddle River, NJ, EUA Esta edicibn en espaiiol es la unica autorizada. Original English language title by Prentice Hall, Inc. Copyright O MCMXCVIII All rights reserved ISBN 0-13-748880-7 Edicibn en espaiiol: Editor: Pablo Eduardo Roig Vkquez Supervisors de traduccih: Rocio Cabaiias ChAvez Supervisor de edicidn: Magdiel G6mez Marina Corrector de estilo: Arturo Velasco Carreto Edicibn en -6s: Editorial/production supervision: Dawn Speth White Art design director: Jerry Votta Cover designer: Bruce Kenselaar Manufacturing manager: Aleris R. Heydt Marketing manager: Stephen Solomon Acquisitions editor: Paul Becker PRIMERA EDICION, 1999 D.R O 1999 por Prentice Hall Hispanoamericana, S.A Calle 4 Num. 252do. piso Fracc. Industrial Alce Blanco 53370 Naucalpan de Juhez, Edo. de Mexico Cbara Nacional de la Industria Editorial Mexicana Num. 1524. Reservados todos 10s derechos. Ni la totalidad ni park de esta publicacibn pueden reproducirse, registrarse o transmitirse por un sistema de recuperacih de informacih, en ninguna forma ni por ningh medio, sea electr6nico. m d c o ,f otoqulmico, magn&ico o electre optico, por fotocopia, grabacih o cualquier otro, sin permiso previo por escrito del editor. El prestamo, alquiler o cualquier otra forma de cesi6n de uso de este ejemplar requerirh tambih la autorizacibn por escrito del editor o de sus representantes. . , ' 0 ISBN 970-17 -0261-1 TlpOGRAFICAw PIN0 No. 243 LOCAL 71-72 Impreso en Mhico. Printed in Mexico K)[KX). D.F. - 1234567890 0302010099 C.P. ObYI) m 0 RESUMEN DE CONTENIDO PARTE I INTRODUCC~ON1 1 ANALISISY DISENO ORIENTADOS A OBJETOS 3 2 ~NTRODUCC~A~ UNN PROCESO DE DESARROLLO 17 3 DEFINICI~DNE MODELOS Y ARTEFACTOS 29 PARTE II FASE DE PLANEACION Y DE ELABORACION 33 4 CASOD E ESTUDIO: EL PUNT0 DE VENTA 35 5 CONOCIMIENTODE LOS REQUERIMIENTOS 39 6 CASOSD E USO: DESCRIPC~OND E PROCESOS 47 7 CLASIFICAC~~NY PROGRAMAC~~DNE LOS CASOS DE US0 73 8 lNlCl0 DE UN ClCLO DE DESARROLLO 81 PARTE Ill FASE DE ANALISIS (1) 83 9 CONSTRUCCID~EN U N MODEL0 CONCEPTUAL 85 10 MODELOC ONCEPTUAL: AGREGAC~~DNE LAS ASOCIACIONES 105 11 MODELOC ONCEPTUAL: AGREGAC~~DNE LOS ATRIBUTOS 1 19 12 REGISTROD E LOS TERMINOS EN EL GLOSARIO 131 13 COMPORTAMIENTDEO LOS SISTEMAS: DIAGRAMA DE LA SECUENCIA DEL SISTEMA 135 14 COMPORTAMIENTDOE LOS SISTEMAS: CONTRATOS 145 PARTE IV FASE DE DISENO (1) 159 DELA NALISIS AL DISENO 161 DESCRIPCID~EN L OS CASOS REALES DE US0 163 DIAGRAMADSE COLABORAC~~N1 67 GRASP: PATRONES PARA ASIGNAR RESPONSABILIDADES 185 DISENOD E UNA SOLUCI~NC ON OBJETOS Y PATRONES 217 DETERMINACIODNE LA VlSlBlLlDAD 247 DIAGRAMADSE CLASES DEL DISENO 255 ALGUNOSA SPECTOS DEL DISENO DE SISTEMAS 271 RESUMEN DE CONTENIDO PARTE I INTRODUCCION 1 1 ANALISIS Y DISENO ORIENTADOS A OBJETOS 3 2 INTRODUAC UCN IP~RONC ESO DE DESARROLLO 17 3 DEFINICI~DNE MODELOS Y ARTEFACTOS 29 PARTE II FASE DE PLANEACION Y DE ELABORACION 33 4 CASOD E ESTUDIO: EL PUNT0 DE VENTA 35 5 CONOCIMIENTDOE LOS REQUERIMIENTOS 39 6 CASOSD E USO: DESCRIPC~OND E PROCESOS 47 7 CLASIFICACI~Y NP ROGRAMACI~ND E LOS CASOS DE US0 73 8 lNlCl0 DE UN ClCLO DE DESARROLLO 81 PARTE Ill FASE DE ANALISIS (1) 83 9 CONSTRUCCID~EN U N MODEL0 CONCEPTUAL 85 10 MODELOC ONCEPTUAL: AGREGACI~ND E LAS ASOCIACIONES 105 11 MODELOC ONCEPTUAL: AGREGACI~ND E LOS ATRIBUTOS 119 12 REGISTROD E LOS TERMINOS EN EL GLOSARIO 131 13 COMPORTAMIENDTEO L OS SISTEMAS: DIAGRAMA DE LA SECUENCIA DEL SISTEMA 135 14 COMPORTAMIENDTEO L OS SISTEMAS: CONTRATOS 145 PARTE IV FASE DE DISENO (1) 159 DEL ANALISIS AL DISENO 161 DESCRIPCI~DNE LOS CASOS REALES DE US0 163 DIAGRAMADSE COLABORACI~N 16 7 GRASP: PATRONES PARA ASIGNAR RESPONSABILIDADES 185 DISENOD E UNA SOLUCI~NC ON OBJETOS Y PATRONES 217 DETERMINACD~E~ LNA VlSlBlLlDAD 247 DIAGRAMADSE CLASES DEL DISENO 255 ALGUNOSA SPECTOS DEL DISENO DE SISTEMAS 271 PARTE V FASE DE CONSTRUCCION (1) 293 23 MAPEOD E LOS DISENOS PARA CODIFICAC~ON 295 24 SOLUCIONE N PROGRAMA DE JAVA 309 PARTE VI FASE DE ANALISIS (2) 31 5 ELECCIOND E LOS REQUERIMIENTOS DEL ClCLO DE DESARROLLO 2 317 COMOR ELACIONAR CASOS M~~LTIPLEDSE US0 321 EXTENSIONDE L MODEL0 CONCEPTUAL 329 GENERALIZACION33 5 PAQUETESO:R GANIZAC~OND E LOS ELEMENTOS 349 REFINAMIENTODE L MODEL0 CONCEPTUAL 355 MODELOC ONCEPTUAL: RESUMEN 367 COMPORTAMIENTDOE LOS SISTEMAS 373 MODELADODE L COMPORTAMIENTO EN LOS DIAGRAMAS DE ESTADO 379 1 PARTE VII FASE DE DISENO (2) 391 34 GRASP: MAS PATRONES PARA ASIGNAR RESPONSABILIDADES 393 35 DISENOC ON MAS PATRONES 405 PARTE Vlll TEMAS ESPECIALES 425 36 OTRAN OTAC~OND E UML 427 37 PROBLEMADSE L PROCESO DE DESARROLLO 433 38 ESQUEMASP,A TRONES Y PERSISTENCIA 455 APENDICEA . LECTURARSE COMENDADAS 487 APENDICEB . EJEMPLOSDE ACTIVIDADES Y MODELOS DE DESARROLLO 489 BIBLIOGRAF4~9A5 GLOSARIO49 7 ~NDICE5 03 PARTE I INTRODUCC~ON1 1 ANALISISY DISENO ORIENTADOS A OBJETOS 3 1.1 Aplicacibn del lenguaje UML y del anhlisis y el diseiio orientados a objetos 3 1.2 Asignacion de responsabilidades 5 1.3 lQuC son el anasis y el diseiio? 6 1.4 2QuC son el anasis y el diseiio orientados a objetos? 6 1.5 Una analogla: organizacibn de la ernpresa Microchaos 7 1.6 Un ejernplo del anhlisis y del diseiio orientados a objetos 10 1.7 Cornparacibn entre el anasis y el diseiio orientados a objetos y 10s diseiios orientados a funciones 14 1.8 Advertencia: el "anAlisis" y el "diseiio" pueden provocar guerras terminolbgicas 14 1.9 El Unified Modeling Language, UML 15 INTRODUCCA IUONN P ROCESO DE DESARROLLO 17 J' 2.1 Introduccibn 17 2.2 El lenguaje UML y 10s procesos de desarrollo 19 2.3 Pasos de rnacronivel 20 2.4 Desarrollo iterativo 20 2.5 La fase de la planeacibn y de la elaboracibn 23 2.6 La fase de construccibn: ciclos del desarrollo 25 2.7 Decidir cuhdo crear artefactos 26 DEFINICIOND E MODELOS Y ARTEFACTOS 29 3.1 Introduccibn 29 3.2 Sisternas de construccibn de rnodelos 29 \ 3.3 Modelos muestra 30 3.4 Relaci6n entre 10s artefactos 31 PARTE II FASE DE PLANEACION Y DE ELABORACION 33 4 CASOD E ESTUDIO: EL PUNT0 DE VENTA 36 4.1 El sistema del punto de venta 36 4.2 Capas arquitectbnicas y el Cnfasis en el caso de estudio 36 4.3 Nuestra estrategia: aprendiije y desarrollo iterativos 36 CONOCIMIENTDOE LOS REQUERIMIENTOS 39 5.1 Introduccibn 39 5.2 Los requerimientos 41 5.3 Presentacibn general 41 5.4 Clientes 41 5.5 Metas 42 5.6 Funciones del sisterna 42 5.7 Atributos del sistema 44 5.8 Otros artefactos en la fase de 10s requerimientos 46 CASOSD E USO: DESCRIPC~OND E PROCESOS 47 6.1 Introduccibn 47 6.2 Actividades y dependencias 49 Casosdeuso 49 Actores 52 Un error comun en 10s caws de uso 63 Identificaci6n de 10s caws de uso 53 Caso de uso y procesos del dominio 64 Casos de uso, funciones del sistema y rastreabilidad 55 Diagramas de 10s casos de uso 55 Formatos de 10s casos de uso 55 Los sistemas y sus fronteras 56 Casos de uso primaries, secundarios y opcionales 58 Casos esenciales de uso comparados con 10s casos reales de uso 58 Sobre la notacidn 61 Casos de uso dentro de un proceso de desarrollo 63 Pasos del proceso en un sistema del punto de venta 84 Modelos muestra 71 CLASIFICACI~N Y PROGRAMAC~~DNE LOS CASOS DE US0 73 7.1 Introducci6n 73 7.2 Rogramaci6n de 10s casos de uso en 10s ciclos de desarrollo 75 7.3 Clasificaci6n de 10s casos de uso en la aplicaci6n al punto de venta 76 7.4 El caso de uso de arranque 76 7.5 Rogramaci6n de 10s casos de uso en la aplicaci6n del punto de venta 77 7.6 Versiones del caso de uso 'Comprar productos" 78 7.7 Resumen 80 8 ~NICIOD E UN ClCLO DE DESARROLLO 81 8.1 Inicio de un ciclo de desarrollo 81 PARTE Ill FASE DE ANALISIS (1) 83 9 CONSTRUCCD~E~ UNN MODEL0 CONCEPTUAL ea 9.1 Introducci6n 86 9.2 Actividades y dependencias 87 9.3 Modelos conceptuales 87 9.4 Estrategias para identificar 10s conceptos 91 9.5 Conceptos id6neos para el dominio del punto de venta &4 9.6 Directrices para construir modelos conceptuales 96 9.7 Solucibn de 10s conceptos similares: comparaci6n entre TPDV y Registro 97 9.8 Construccidn de un modelo del mundo iwed 98 9.9 Especificaci6n o descripci6n de conceptos 99 9.10 Definici6n de tenninos en el lenguaje UML 101 9.11 Modelos Pawn 103 MODELOC ONCEPTUAL: AGREGACI~ND E LAS ASOCIACIONES 106 10.1 Introducci6n 105 10.2 Asociaciones 106 10.3 Notaci6n de las asociaciones en el UML 108 10.4 IdentificacMn de las asociaciones: lista de asociaciones comunes 107 10.5 lQut grado de detalle debertan tener las asociaciones? 109 10.6 Directrices de las asociaciones 110 10.7 Papeles 110 10.8 Asiiaci6n de nombre a las asociaciones 111 10.9 Asociaciones multiples entre dos tips 112 10.10 Asociaciones e implementaci6n 113 10.11 Asociaciones del dominio del punto de venta 113 10.12 Modelo conceptual del punto de venta 115 xii
Description: