Table Of ContentEjemplo 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:2. El "sistema" global (un controlador de fachada). 3. Un ser animado del dominio .. Grady Booch por revisar el tutorial de la edicion en ingles y a Jim Rumbaugh por sus captura manual, y autorizando 10s pagos con el servicio.