Está en la página 1de 15

2 Edicin

Este manual presenta una introduccin prctica al anlisis y diseo orientado a objetos
(A/DOO) y a aspectos relacionados de desarrollo iterativo.

Larman

UML y Patrones

2 Edicin

El libro va dirigido a desarrolladores y estudiantes con experiencia en un lenguaje de


programacin orientado a objetos, pero con poca experiencia en el anlisis y diseo
orientado a objetos, as como a estudiantes de informtica o cursos de ingeniera del
software que estudien la tecnologa de objetos y a aquellas personas que,
familiarizadas con el A/DOO, quieran aprender la notacin UML, aplicar patrones, o
mejorar y perfeccionar sus habilidades de anlisis y diseo.
Esta nueva edicin presenta mejoras importantes respecto a la anterior, tales como:
Se actualizan los casos de uso para seguir el enfoque de [Cockburn01] que ha
tenido bastante aceptacin.
Se utiliza el conocido Proceso Unificado (Unified Process, UP) como ejemplo de
proceso iterativo.
Por tanto, todos los artefactos se nombran de acuerdo con la terminologa del UP,
como Modelo de Dominio.
Tratamiento atualizado de los patrones de diseo.
Introduccin al anlisis arquitectural.
Introduccin de Variaciones Protegidas como un patrn GRASP.
Actualizacin de la notacin UML ms reciente.
Discusin de algunos aspectos prcticos de dibujo utilizando pizarras o
herramientas CASE para UML.

IIIIIIII

IIIIIIIIIIIIIIIIIII

IIIIIIII

IIIII

II

IIII

i b r o site

IIIIIIIIIIIIIIIIIIII

IIIII

IIII

IIIII

w.l

IIII

ne

LibroSite es una pgina web asociada al libro, con una gran variedad de recursos y material adicional tanto
para los profesores como para estudiantes. Apoyos a la docencia, ejercicios de autocontrol, enlaces
relacionados, material de investigacin, etc., hacen de LibroSite el complemento acadmico perfecto para
este libro.

t / l a r m a n IIII

www.librosite.net/larman

UML y Patrones

Una introduccin al anlisis y diseo orientado a objetos y al proceso unificado

UML y Patrones

El objetivo principal del libro es ayudar a los estudiantes y a los desarrolladores a crear
diseos orientados a objetos mediante la aplicacin de un conjunto de principios y
heursticas explicables.

2 Edicin

w w w. l i b ro s i te . n e t / l a rm a n

Larman

ISBN 978-84-205-3438-1

www.pearsoneducacion.com

788420 534381

Craig Larman

Muestra de los artefactos del Proceso Unificado y evolucin temporal (c-comenzar; r-refinar)
Disciplina

Artefacto
Iteracin ]

Modelado del Negocio

Modelo del Dominio

Requisitos

Modelo de Casos de Uso


Visin
Especificacin Complementaria
Glosario

Diseo

Modelo de Diseo
Documento de Arquitectura SW
Modelo de Datos

Inicio
I1

Elab.
E1En

Const.
C1Cn

Trans.
T1T2

Implementacin

Modelo de Implementacin

Gestin del Proyecto

Plan de Desarrollo SW

Pruebas

Modelo de Pruebas

Entorno

Marco de Desarrollo

c
c
c
c

r
r
r
r

c
c

c
c
c

r
r

Muestra de las relaciones entre los artefactos del Proceso Unificado


Modelo del Dominio
Venta

Registro

Capturada-en

marcaDeTiempo 1

CatalogoDeProductos

...

...

...
...

conceptos del dominio


Modelo de Casos de Uso
: Sistema
Procesar Venta

las clases
conceptuales
del dominio
inspiran
los nombres
de algunas
de las clases
software en
el diseo

: Cajero

1. El Cliente
llega ...
2. El Cajero
realiza una
nueva venta.
3. ...

eventos
del sistema

introducirArticulo
(id, cantidad)
...

Procesar
Venta
Cajero

Diagramas de Secuencia del Sistema Diagramas de Casos de Uso

Casos de uso

realizacin del
caso de uso
con diagramas
de interaccin

crear
NuevaVenta()

Modelo de Diseo
: Registro

: CatalogoDeProductos

crearNuevaVenta()
create()

introducirArticulo
(id, cantidad)

: Venta

espec := getEspecificacion( id )
aadirLineaDeVenta( espec, cantidad )
...

Registro
...
crearNuevaVenta()
introducirArticulo(...)
...

CatalogoDeProductos
1

...
getEspecificacion(...) : EspecificacionDelProducto
...

las clases
del diseo
descubiertas
durante el
diseo de las
realizaciones
de los casos
de uso se puede
resumir en
diagramas
de clases.

Patrones de Software Generales para la Asignacin de Responsabilidades (GRASP)


Patrn

Descripcin

Experto en Informacin

Un principio general del diseo de objetos y la asignacin de responsabilidades?


Asigne una responsabilidad al experto en informacin, la clase que tiene la
informacin necesaria para llevar a cabo la responsabilidad.

Creador

Quin crea? (Ntese que la Factora es una solucin alternativa frecuente.)


Asigne a la clase B la responsabilidad de crear una instancia de la clase A si se
cumple alguno de los puntos siguientes:
1.
2.
3.

Controlador

B contiene a A
B agrega a A
B tiene los datos
de inicializacin de A

4.
5.

B registra a A
B utiliza estrechamente a A

Quin gestiona un evento del sistema?


Asigne la responsabilidad de gestionar un mensaje de un evento del sistema a
una clase que represente una de estas opciones:
1.
2.

Bajo Acoplamiento
(evaluativo)

Alta Cohesin
(evaluativo)
Polimorfismo

Representa el sistema global, dispositivo o un subsistema (controlador de


fachada).
Representa un escenario de caso de uso en el que tiene lugar el evento del
sistema (controlador de caso de uso o sesin).

Cmo dar soporte a las bajas dependencias y al incremento de la reutilizacin?


Asigne responsabilidades de manera que el acoplamiento (innecesario) se
mantenga bajo.
Cmo mantener manejable la complejidad?
Asigne responsabilidades de manera que la cohesin permanezca alta.
Quin es el responsable cuando el comportamiento vara en funcin del tipo?
Cuando las alternativas o comportamientos relacionados varan segn el tipo
(clase), asigne la responsabilidad del comportamiento utilizando operaciones
polimrficas a los tipos para los que vara el comportamiento.

Fabricacin Pura

Quin es el responsable cuando est desesperado, y no quiere violar los


principios de alta cohesin y bajo acoplamiento?
Asigne un conjunto altamente cohesivo de responsabilidades a una clase de
comportamiento artificial o de conveniencia que no representa un concepto del
dominio del problema algo inventado, para dar soporte a la alta cohesin,
bajo acoplamiento y la reutilizacin.

Indireccin

Cmo asignar responsabilidades para evitar el acoplamiento directo?


Asigne la responsabilidad a un objeto intermedio para mediar entre otros
componentes o servicios, de manera que no se acoplan directamente.

Variaciones Protegidas

Cmo asignar responsabilidades a los objetos, subsistemas, y sistemas de


manera que las variaciones o inestabilidad en estos elementos no influya de
manera no deseable en otros elementos?
Identifique los puntos de variaciones predecibles o inestabilidad; asigne las
responsabilidades para crear una interfaz estable alrededor de ellos.

metodoAbstracto()

operacion1()

UML Y PATRONES
UNA INTRODUCCIN AL ANLISIS
Y DISEO ORIENTADO A OBJETOS
Y AL PROCESO UNIFICADO
Segunda edicin

UML Y PATRONES
UNA INTRODUCCIN AL ANLISIS
Y DISEO ORIENTADO A OBJETOS
Y AL PROCESO UNIFICADO
Segunda edicin

CRAIG LARMAN

Traduccin:
Begoa Moros Valle
Universidad de Murcia

Supervisin de la traduccin y revisin tcnica:


Jess Garca Molina
Universidad de Murcia

Madrid Mxico Santaf de Bogot Buenos Aires Caracas Lima


Montevideo San Juan San Jos Santiago So Paulo White Plains

Datos de catalogacin bibliogrfica

LARMAN, C.
UML Y PATRONES. Una introduccin al anlisis y diseo orientado
a objetos y al proceso unificado. Segunda edicin
PEARSON EDUCACIN, S.A., Madrid, 2003
ISBN eBookk: 978-84-832-2927-9
Materia: Informtica 681.3
Formato 195 250

Pginas: 624

Todos los derechos reservados.


Queda prohibida, salvo excepcin prevista en la ley, cualquier forma de reproduccin, distribucin, comunicacin pblica
y transformacin de esta obra sin contar con autorizacin de los titulares de propiedad intelectual. La infraccin de los derechos
mencionados puede ser constitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Cdigo Penal).
DERECHOS RESERVADOS
2003 respecto a la segunda edicin en espaol por:
PEARSON EDUCACIN, S.A.
Nez de Balboa, 120
28006 Madrid
LARMAN, C.
UML Y PATRONES. Una introduccin al anlisis y diseo orientado a objetos y al proceso unificado. Segunda edicin
ISBN: 84-205-3438-2
Depsito Legal: MPRENTICE HALL es un sello editorial autorizado de PEARSON EDUCACIN, S.A.
Traducido de:
APPLYING UML AND PATTERNS: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Second edition,
by Craig Larman.
Published by Pearson Education, Inc. Publishing as Prentice Hall PTR.
Prentice Hall, Inc.
2002 All rights reserved.
ISBN: 0-13-092569-1
Edicin en espaol:
Equipo editorial:
Editor: David Fayerman Aragn
Tcnico editorial: Ana Isabel Garca
Equipo de produccin:
Director: Jos Antonio Clares
Tcnico: Jos Antonio Hernn
Diseo de cubierta: equipo de diseo de PEARSON EDUCACIN, S.A.
Composicin: COPIBOOK, S.L.
Impreso por:
IMPRESO EN ESPAA - PRINTED IN SPAIN

Este libro ha sido impreso con papel y tintas ecolgicos

Para Julie
Sin su apoyo, esto no habra sido posible.

Para Haley y Hannah


Gracias por aguantar a un pap distrado, otra vez!

RESUMEN DE CONTENIDO

Parte 1:

Introduccin
1.
2.
3.

Parte 2:

3
13
27

Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprensin de los requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelo de Casos de Uso: escritura de requisitos en contexto . . . . . . . . .
Identificacin de otros requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Del inicio a la elaboracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33
39
43
79
103

Inicio
4.
5.
6.
7.
8.

Parte 3:

Anlisis y diseo orientado a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Desarrollo iterativo y el Proceso Unificado . . . . . . . . . . . . . . . . . . . . . . .
Caso de estudio: el sistema de punto de venta NuevaEra . . . . . . . . . . . . .

Elaboracin en la Iteracin 1
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

Modelo de Casos de Uso: representacin de los diagramas de secuencia


del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelo del Dominio: visualizacin de conceptos . . . . . . . . . . . . . . . . . .
Modelo del Dominio: aadir asociaciones . . . . . . . . . . . . . . . . . . . . . . . .
Modelo del Dominio: aadir atributos . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelo de Casos de Uso: aadir detalles con los contratos de las operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
De los requisitos al diseo en esta iteracin . . . . . . . . . . . . . . . . . . . . . . .
Notacin de los diagramas de interaccin . . . . . . . . . . . . . . . . . . . . . . . .
GRASP: diseo de objetos con responsabilidades . . . . . . . . . . . . . . . . . .
Modelo de Diseo: realizacin de los casos de uso con los patrones
GRASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelo de Diseo: determinacin de la visibilidad . . . . . . . . . . . . . . . . .

113
121
145
157
167
181
185
201
231
261

VIII

RESUMEN DE CONTENIDO

19.
20.

Parte 4:

La Iteracin 2 y sus requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


GRASP: ms patrones para asignar responsabilidades . . . . . . . . . . . . . . .
Diseo de las realizaciones de casos de uso con los patrones de diseo GoF .

291
305
321

Elaboracin en la Iteracin 3
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.

Parte 6:

267
281

Elaboracin en la Iteracin 2
21.
22.
23.

Parte 5:

Modelo de Diseo: creacin de los diagramas de clases de diseo . . . . .


Modelo de Implementacin: transformacin de los diseos en cdigo . .

La Iteracin 3 y sus requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Relaciones entre casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelado de la generalizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Refinamiento del modelo del dominio . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aadir nuevos DSSs y contratos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelado del comportamiento con diagramas de estado . . . . . . . . . . . . .
Diseo de la arquitectura lgica con patrones . . . . . . . . . . . . . . . . . . . . . .
Organizacin de los paquetes de los modelos de diseo e implementacin .
Introduccin al anlisis arquitectural y el SAD . . . . . . . . . . . . . . . . . . . . .
Diseo de ms realizaciones de casos de uso con objetos y patrones . . . .
Diseo de un framework de persistencia con patrones . . . . . . . . . . . . . . .

359
361
369
383
401
407
417
443
451
473
501

Temas especiales
35. Sobre el dibujo de diagramas y las herramientas . . . . . . . . . . . . . . . . . . .
531
36. Introduccin a cuestiones relacionadas con la planificacin iterativa . . . . . . . . . .
y el proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
539
37. Comentarios acerca del desarrollo iterativo y el UP . . . . . . . . . . . . . . . . .
553
38. Ms notacin UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
567

CONTENIDO

Parte 1:

Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

XIX

Prlogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

XXI

Introduccin
Captulo 1:

Anlisis y diseo orientado a objetos . . . . . . . . . . . . . . . . . .

Aplicacin de UML y patrones en el A/DOO . . . . . . . . . . . . . . . . . . . . . . . . . .


Asignacin de responsabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qu es anlisis y diseo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qu son el anlisis y diseo orientados a objetos? . . . . . . . . . . . . . . . . . . . . .
Un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lecturas adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3
5
6
6
7
10
10

Captulo 2:

Desarrollo iterativo y el Proceso Unificado . . . . . . . . . . . . .

13

La idea ms importante del UP: desarrollo iterativo . . . . . . . . . . . . . . . . . . . . .


Conceptos y buenas prcticas del UP adicionales . . . . . . . . . . . . . . . . . . . . . . .
Las fases del UP y trminos orientados a la planificacin . . . . . . . . . . . . . . . . .
Las disciplinas del UP (eran flujos de trabajo) . . . . . . . . . . . . . . . . . . . . . . . . .
Adaptacin del proceso y el Marco de Desarrollo . . . . . . . . . . . . . . . . . . . . . . .
El UP gil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
El ciclo de vida en cascada secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
No se entendi el UP cuando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lecturas adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14
18
19
20
22
23
24
25
25

Captulo 3:

Caso de estudio: el sistema de punto de venta NuevaEra .

27

El sistema de punto de venta NuevaEra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Capas arquitectnicas y el nfasis del caso de estudio . . . . . . . . . . . . . . . . . . .
Estrategia del libro: aprendizaje y desarrollo iterativo . . . . . . . . . . . . . . . . . . . .

27
28
29

CONTENIDO

Parte 2:

Inicio
Captulo 4:

Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

Inicio: una analoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


La fase de inicio podra ser muy breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qu artefactos podran crearse en la fase de inicio? . . . . . . . . . . . . . . . . . . . .
No se entendi la fase de inicio cuando . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34
35
35
36

Captulo 5:

Comprensin de los requisitos . . . . . . . . . . . . . . . . . . . . . . . .

39

Tipos de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lecturas adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40
41

Captulo 6: Modelo de Casos de Uso: escritura de requisitos en


contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

Objetivos e historias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Casos de uso y valor aadido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Casos de uso y requisitos funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tipos de casos de uso y formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplo completo: Procesar Venta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Explicacin de las secciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos y alcance de un caso de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Descubrimiento de actores principales, objetivos y casos de uso . . . . . . . . . . .
Enhorabuena: se han escrito los casos de uso y no son perfectos . . . . . . . . . . .
Escritura de casos de uso en un estilo esencial independiente de la interfaz de
usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramas de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Requisitos en contexto y lista de caractersticas de bajo nivel . . . . . . . . . . . . . .
Los casos de uso no son orientados a objetos . . . . . . . . . . . . . . . . . . . . . . . . . .
Casos de uso en el UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Caso de estudio: casos de uso en la fase de inicio de NuevaEra . . . . . . . . . . . .
Lecturas adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Artefactos UP y contexto del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Captulo 7:

44
44
45
46
46
47
52
56
60
64
65
67
68
70
71
72
76
76
77

Identificacin de otros requisitos . . . . . . . . . . . . . . . . . . . . .

79

Ejemplos del PDV NuevaEra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Ejemplo NuevaEra: Especificacin Complementaria (Parcial) . . . . . . . . . . . . .
Comentario: Especificacin Complementaria . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplo NuevaEra: Visin (Parcial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comentario: Visin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplo NuevaEra: un Glosario (Parcial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comentario: Glosario (Diccionario de Datos) . . . . . . . . . . . . . . . . . . . . . . . . . .
Especificaciones fiables: un Oxmoron? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Artefactos disponibles en el sitio web del proyecto . . . . . . . . . . . . . . . . . . . . . .
Poco UML durante la fase de inicio? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Otros artefactos de requisitos en el UP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80
80
84
87
90
94
95
96
97
97
97

También podría gustarte