UML - MANUAL DE REFERENCIA

2,056 views 211 slides Sep 09, 2010
Slide 1
Slide 1 of 211
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137
Slide 138
138
Slide 139
139
Slide 140
140
Slide 141
141
Slide 142
142
Slide 143
143
Slide 144
144
Slide 145
145
Slide 146
146
Slide 147
147
Slide 148
148
Slide 149
149
Slide 150
150
Slide 151
151
Slide 152
152
Slide 153
153
Slide 154
154
Slide 155
155
Slide 156
156
Slide 157
157
Slide 158
158
Slide 159
159
Slide 160
160
Slide 161
161
Slide 162
162
Slide 163
163
Slide 164
164
Slide 165
165
Slide 166
166
Slide 167
167
Slide 168
168
Slide 169
169
Slide 170
170
Slide 171
171
Slide 172
172
Slide 173
173
Slide 174
174
Slide 175
175
Slide 176
176
Slide 177
177
Slide 178
178
Slide 179
179
Slide 180
180
Slide 181
181
Slide 182
182
Slide 183
183
Slide 184
184
Slide 185
185
Slide 186
186
Slide 187
187
Slide 188
188
Slide 189
189
Slide 190
190
Slide 191
191
Slide 192
192
Slide 193
193
Slide 194
194
Slide 195
195
Slide 196
196
Slide 197
197
Slide 198
198
Slide 199
199
Slide 200
200
Slide 201
201
Slide 202
202
Slide 203
203
Slide 204
204
Slide 205
205
Slide 206
206
Slide 207
207
Slide 208
208
Slide 209
209
Slide 210
210
Slide 211
211

About This Presentation

UML - MANUAL DE REFERENCIA


Slide Content

E LENGUAJE UNIFICADO
DE MODELADO,
MANUAL DE REFERENCIA

JAMES RUMBAUGH
IVAR JACOBSON
GRADY BOOCH

| ä

EL LENGUAJE UNIFICADO

DE MODELADO
MANUAL DE REFERENCIA

EL LENGUAJE UNIFICADO y
DE MODELADO
MANUAL DE REFERENCIA

James RUMBAUGH
Ivar JACOBSON
Grady BOOCH
RATIONAL SOFTWARE CORPORATION

Cámara de Comercio. Industria y N
Universidad del País Vas

Colabor

Rombo Justo, Boch
ELLENGUAIEUNIFICADO DE MODELADO. MANUAL DE REVERENCIA

Para Madeline, Nick y Alex

Jim

Contenido

Prefacio

Objetivos
Esquema general del libro

‘Convenciones en el formate de los artículos de a enciclopedia
Convenciones de sintaxis

co

nformación adicional

Reconocimientos

Prólogo a la edición en español
Nota sobre la traducción

Antecedentes

Capítulo 1: Perspectiva general de UML
Breve resumen de UML
Astoria de UML
Objetivos de UML
Areas concepnuales de UML
Sintaxis de ls diagramas y las exp

Capítulo 2: La naturaleza y propósito de los modelos

¿Qué sun modelo?
{Para qué sirven los modelos?
Niveles de tos modelos

¿Qué hay en un modelo?

¿Cuáles el significado de un modelo?

Conceptos de UML

Capítulo 3: Un paseo por UML
Vistas de UML

VI CONIENIDO.

Vista estática
Vista de los casos de uso

Vista de interacción.

Vista de la máquina de estados
Vista de servidades
Vistas físicas

Vista de gestión del modelo
Construcciones de extensión
Conexiones ente vistas

Capítulo 4: La vista estática

Doscripción
Clasificadores
Relaciones
Asociaciones
Generalización
Realización
Dependencia
Resto
Instancias

Capítulo 5: La vista de casos de usos
Descripción
Actor
Caso de wo

Capítulo 6: La vista de la máquina de ostados

Deseripción
Máquina de estados
Exento

Estado

Transición

Estados compuestos

Capítulo 7: La vista de actividades

Descripción
Diagrama de actividad
Actividades y otras vistas

Capítulo 8: La vista de interacción

Descripción
Colaboración
Interacción

Diageama de secuencia

Activación
Diagrama de Colaboración
Patrones

Capitulo 9: Vistas físicas

Descripción
Componente
Nodo

Capítulo 10: La vista de gestión del modelo

Descripción
Paguete

Dependencias en los paquetes
Dependencia de acceso e import
Modelo y subsistema

Capítulo 11: Mecanismos de extensión

Descripción
Restricción

Valor etiquetado,
Estereotipos
Adaptación de UML.

Capítulo 12: El entorno de UML

Descripción
Responsabilidades semánticas

dades de notación
Responsabilidades del lenguaje de pro
Melo con herramientas

Referencia

Capitulo 13: Enciclopedia de términos

Capitulo 14: Elementos estándar

Apéndices

Apéndice A: Metamodelo de UML

Documentos de definición de UML
Esteuctura del metamodelo

conrenivo
Paquete de fanamentos
Paquete de elementos de Comportamiento

Paquete de adminisiación de modelos

Apéndice B: Resumen de la notación

Apéndice C: Extensiones de proceso

Cómo personalizar UMI
Extensiones del proceso de desarrollo del software
Extensiones de modelado de negocios

Bibliografía

Índice

Prefacio 19

Objetivos

ste libro está destinado 4 ser una referencia il y completa sobre el Lenguaje Unificado de
Modelado para el desarrollador, arquitecto, gest de proyecto, ingeniero de sistemas, prog
mador. analista, contrasta, cliente, y cualquicr otro que necesite especifica y, constr
+ entender sistemas de software complejos, Proporciona wna referencia completa sobre los
onceptos y construcciones de UML. incluyendo su semántica, sintaxis notación y propósito.
Fats organizado para ser una sil, pero minuciosa, referencia para el desarrollador profesional.
También intenta ofrecer detalles adicionales sobre temas que no están caros cn la documenta
ción estándar y ofrece una razón para muchas decisiones que se tomaron en UML

bro no pretende ser una guía sobre los documents estándar de UML o sure la es
interna del metamulelo contenido en ellos, Los detalles del metamodolo son del interés
de los metodélogus y los constructores de herramientas UML, pero la mayoría de los desarro
isterisos detallo, de los documentos del Object Management
Group (OMG). Est libro proporciona todos. los detalles que necesita la mayoría de los des
trolladores en muchos casos. hace explícita información que, delo contrario, habría que buscar
eis en los documentos originales. Para aquellos que quieran consultarlos, se han in
«nido las dou es, em inglés, en el CDROM adjunto,

Liste libro está pensado como una referencia para aquellos que ya tienen algún conoci
miento de a tecnología de orientación a objetos, Para los principiamtes. en a bibliagralía hay
tw listado de libros escritos por nosotros y por otros autores: aunque parte de a nor.
«subia, libros como [Rumbaugh-91], {Booch 94). Jacobson 921, y [Meyer-98 (eich
español) proporcionan uma introducción 4 los conceptos de «vientación a objets que toda
válida y que por tano no cs necesario duplica: Para una Incoducción a UML que muestra como
modelar vario problemas comunes, véase Guia de Usuario del Lenguaje Uniicado de Mode
lau Wooch 99), Aquellos que ya conocen un incio orientado y beton, como OMT, Booch,
Objectory. Coal-Yourdon, o Fusion, deberían ser capaces de Tee el Manual de Referencia y
sarl para entender la notación y la seinänlica de UML: para aprender UML rápidamente sin
embargo. podían encontea il scr la Guía del Usuario.

UML no requiere un proceso de desarollo en particular y este ihre no describe ninguno.
Aunque UML puede usarse con varios procesos de desarrollo, fue diseñado para usarse con un
proceso iterativo, incremental, guiado por casos de uso y centrado enla arquitectura, el tipo de
proceso que consideramos más apropiado pura el desarolle de sistema complejos modernos. El
Proceso Unificado de Desarrolo de Sofnsanı acobron-99] describe el tip de proceso que cre-
emos que complementa UML y que ayuda mejor al desarrollo de soteware,

xn

PRECIO

Esquema general del libro

EL Manual de Referencia de UML. est organizado en tres paste: una descripción de La historia
de UMI. y del modelado, una visión de conjunto de los conceptos de UML
alfabética de los términos y conceptos de UML.

La primera parte es un examen sel conjunto de UML —su historia, propósitos y unos— para
ayudar a entender el origen de UMI. y las necesidades que intenta cubrir

La segunda parte es una revisión de la vistas de UML. para poner todos los conceptos en
perspectiva. La visión de conjunto proporciona una breve descripción de las vistas disponibles
en UML y muestra cómo interactúan las diferentes construcciones, Esta pate empieza con un
ejemplo que abarca varias vistas de UMM, y también contiene un capitulo por cada clase de
vista. ste visión no pretende ser un curso complet ni una extensa descripción de conceptos.
Sirve principalmente para resume y relaciona ls diferentes conceptos de UML y propore
puntos de partida para lecturas de la enciclopedia en det

tema. La mayor part del libro es una enciclopedia alfahéica e todos los conecptos y eons
irucciones de UML. Cada término de importancia en UML tiene su propia referencia en la
enciclopedia. La enciclopedia debe ser completa, por lo que todos los conceptos descritos en
Ta parte dos de este libro se repiten de forma más detallada, Algunas veces se ha incluido la
misma similar información en vario anículos de a enciclopedia, para que el lector pueda
encontrarlas oportunamente.

La parte de referencia también contiene una isa alfabética de los elementos estándar de
UML. Un elemento estándar es una curacoritica predefinida que utiliza los mecanismos de ex
tensión de UML. Los elementos estándar son extensiones pensadas para ser muy les

Los apéndices muestran el metamodelo de UML. un resumen de la notación y
«conjuntos estándar de extensiones para dominios particulares, Hay una breve biblio

libros de orientación a objetos más importantes, pero no int mples

las fuentes de ideas para UML y tras métodos. Muchos de los libros de la bibliografía conte
men excelente listas de referencias a libros y artículos para aquellos interesados en seguir el
desarrollo de as ideas.

Convenciones en el formato de los artículos
de la enciclopedia

La enciclopedia está organizada como una lista alfabética de entra. cada una de las cuales
describe un concepto es mayor o menor detlle. Los aículos representan una lista “plana” de
los conceptos de UML a diferentes niveles conceptuales. Un concepto de alto nivel tpicamen-
te contiene un resumen de sus conceptos subordinados, cada uno de los cuales se describe com.
pletamente en un artículo separado. Los artículos tienen muchas referencias cruzadas, Esta
"organización “plana” de la enciclopedia permite presentar la descripción do cada concepto a un
nivel bastante uniforme de detalle, sin los constantes desplazamientos de nivel que serían ne-
cesaris para una presentación secuencial de las descripciones anidadas. El formato de hiper

PREFACIO XI

texto también debería hacerlo dl como referencia. No debería ser necesario usar el ndice; en su
lugar vamos directamente al artículo principal de la enciclopedia para cualquier término de
interés y seguimos las referencias eruzulis. Eso formo nu es necesariamente el ideal para
aprender el lenguaje: se aconseja a los principiames Iccr la descripción de UML. que se
encuentra en la Pare 2 o leerlos libros introductorios sohre UML, tales como EI lenguaje
Unificado de Modelado (Booch 991.

Lor artículos de la enciclopedia tienen las siguientes divisiones (aunque no todas as divi
somos aparecen en todos los tics)

Breve definición

El nombre del concepto aparece en negrita. colocado ks izquierda del texto del anículo. A con:
tinuación una breve descripción en letra normal, Esta definición tiene Ta intención de capturar
la idea principal del concepto, pero puedo simplificar el concepto para su presentación concisa.
Debomos remitimos al artículo principal para significados precisos.

Semántica

Esta sección comiene ura descripción della del significado del concepto, incluyendo ls re
Irieciones en su uso y ls consecuencia de su ejecución. sta sección no aburca la notación
aunque los ejemplos utilizan la notación apropiada: primero se da la semántica general, Pa
onceptos con propiedades estructurales subordinadas, xa semántica general sigue una lista de

edudes, a menudo bajo cl subrulo de estructura, En la mayen de los e880 las pro-
piedados se presentan como uns tabla ordonada afabsticamente por nombre, con la descripción
de cada propiedad ala derecha. Si una propiedad tiene una breve lista ce opciones, aparecerán
como una sublista somgrada, En casos más complicados, la propiedad tiene su propio arículo
Para cvtar el excesivo amidamiento. Cuando las propiedades requieren más explicación que la
permitida por una tabla, son descritas en texto normal con cuhcceras en negrita y cursiva, En
ciertos casos el concepto principal se describe de la mejor form bajo varias subdivisiones 6
gicas cn lugar de hacerlo on una lisa, En tales casos, lis sceciones adicionales están a cont
uen o reemplazan a la estructura de la subsección. Aumque se han usado varios mecanismos
de organización, su exructura deberi ser obvia para el lector

Notación

Fsta sección contiene una descripción detallada del concepto. Normalmente la seccién de no
tación tiene un formato semejante a la sección de semántica, cuya referencia, y a meno tiene
Las misas divisiones. La sección de notación a menudo incluyo uno o varios dramas para
ilustrar el concepto,

Ejemplo

su subsccción contiene ejemplos de natación o ilustraciones del uso de concepto. También es
frecuente que los ejemplos traten siuac icadas o potencialmente confusas,

XIV PREFACIO

Discusion

Esta socción describe asuntossutile. clarifica los puntos difíciles y habit:
ontiene otros detales que, de lo contrario, serían apartados de una sección desa
diva. Hay pocos artículos que tengan una sección de discusión
Fita sección también explica ciertas decisiones de diseño heches durante el desarollo de
UML. cn particular aquell que pueden parecer menos intl o que han causado gran on
troversi. Sólo una pequeña parte delos artículos ienen cta sección. Las diferencias im
los, generalmente no se contemplan,

Elementos estándar

Esta socción lista las restricciones, etiquetas, estereotipos, y otras convenciones estándar pre
definidas para el concepto del artículo, Esta sceción es muy poco cum

Convenciones de sintaxis

Expresiones sintáctica. Las expresiones sinácticas se dan en un formato BNF modificado.
escrito en un tipo de ltr distin.

Los subindices y ras superiores se usin como operadores simácticos de la s

expresión, Luexpresión es opcional
‘oxprsion,,, Puedo aparecer ma sta do las expresiones separada por comas. Si hay
¿ero o una repetición. no hay scparador, Cada repetición puede tener una
sustitución separada. Si aparece un signo de pununción diferente a una
uma en el subíndice. entonces es un separador

Tops, a juntos uno 0 mis términos que son considerados
avid o la repetición de ucunencis. En este
¿sión Forman uns unidad que puedo ser omitida

ores innecesaria si sólo hay un término,

les de anidamiento.

Cadenas de literales texto ejecutable. us palabras clave del tenguaj, los nombres de lo
mentos del modelo y la comas de ejemplo de modelos se muestran en un tipo se letra distinto,

Diagramas, Fa los diagramas, el texto y las Mechas en az son anotaciones, ex decir, expli
caciones de las notaciones de diagramas que no aparecen en un diugrama real, Cualquier exo y
simbolos en tinta negra son notaciones de di

Este libro se acompaña de un CD que contiene el texto completo en inglés del libro en formato
‘Adobe Acrobat Reader" (PDF). Usando “Adobe Acrobat Reader”, el lector puede buscar
fácilmente en el libro uns palabra o frase. La versión en CD también contiene una tabla de

PREFACIO XV

¡contenidos cuyos términos son enlaces al texto donde aparecen definidos índice, miniatras e
hiperenfaces cu el cuerpo de las artículos, Basta con pulsar en uno de lo enlaces pata salar al
articulo dela enciclopedia para esu palabra o frase

Fi CD también contiene el texto completo de las especificaciones de OMG de UML,
incluidas con el permiso del Object Management Group.

Tenemos la impresión de que este CD ser una referencia muy útil para usuarios avanzados.

Información adicional

Pueden encontrane archives fuente adicionales e información xctuatizada sobre trabajos pos-
tenores en UM, y temas relacionados en los servidores Web venwraiona.com y wrong 19.

Reconocimientos

¡Queremos darlas gracia a todos aquellos que han hecho posible UML. Primero, debemos agra
decer a Rational Software Corporation, especialmente: Mike Devlin y Paul Levy, quien tuvo la
viión de reunimos, empezar el trabajo de unificación. y continuar durante los cuatro años que
hicieron falta para llevar el trabajo a un Final con éxito, También quecemos darlas gracias al
Object Management Group por brindae ol marco que reunió muchos puntos de visa y los
fusions en un ampli consenso lo que superó todas las tras contribuciones,

cis en particular a Cris Kobryn, quien lideró al equipo técnico que
preparó el estándar de UML y que se las utegló para alcanzar un consenso entre un grupo de
personas extromaalamenteexaltadas (y nosotros res no fuimos el menor de sus problemas). Su
habilidad diplomática y equilibrio ócnico evitó que el esfuerzo de UML fracasara en medio de
Tas muchas opiniones diferentes, Cs también revisó e libro y nos ofreció incontables y útiles
suger

Queremos agradecer a Gunna Óvergaard por la revisión concienzuda del libro. así como su
perseverancia en completar muchas scecionos de los documentos de UML, lo cual no fue di
vertido de escribir poro sf necesario pa su corrección Farm

Queremos dar as gracias Karin Palenkvist por una revisión extremadamente detallista del
libro que descubrió muchos erroes en el contenido técnico as como varios fallos de gramática,
expresión y presentación

También nos gustaría ugrodecer a Mike Blaha, Conrad Bock, Perry Cole, Bruce Douglas,
Martin Fowler, Bran Gery, Pete MeBreen, Gus Ramackers, Tom Schult, Ed Seidewit, y Bran
Sel por sus provechosas revisiones.

¡Sobre todo, queremos dar las gracias a los, incluso, cientos de personas que contribuyeron
2 la comunidad de ideas de la cuales derivó UMI. ideas en tecnología de orientación a oje
tos, metodología de software, lenguajes de programación, interfaces de usuario, programación
visual. y muchas otras reas de la informática. Es imposible enumerarlas todas o, en realidad,
incluso hacer un seguimiento de las cado sin hacer un gran esfuerzo
erudito. y este es un libro de ingeniería, no una reseña liióricu. Muchos son muy conocidos

is buenas ideas vienen de algunos que no tienen la buena suerte de ser ampli

xv

A nivel más personal, quiero dar las gracias al Profesor Jack Dennis, quien inspiré mi trabajo
en el modelado y el trubajo de muchos otros estudiantes, hace mis de veinticinco años. Las
ideas desu Grupo de Estructuras de Cumputaciôn en cl MIT han dado muchos frutos y no son
la menor de las fuentes de UML... También debo dar las gracias a Mary Loomis y Ashwán
Shah, con quien desaralló las ideas originales de OMT, y a mis primeros colegas en el Centro
de [Den GE. Mike Blaha. Bill Promerlani, Fred Ed y Bill Lorensen, con quien excribí el
Hibeo de OMT

Finalmente sin la paciencia de mi exposu, Madeline. y mis Bios, Nick y Alex, no hab
habido UME ni libro sobre

James Rumbaugh
Cupertino, Califommia
Noviembre 1998.

Prólogo a la edición en español y

UML: Una historia del futuro del desarrollo de software

no tecnológico del de
re que más expectativas y emus en muchos
parición e implantación de los lenguajes COBOL, BASIC, Pascal, C
Además, todas las e vas e han cumplido y han gene
la insti, pero mo sólo dela industria

fomente, uns de as imuvaciones cons

del soltware sino, ca general, de cualquier industria que requiere ke construcción de mé

«omo condición provia para el diseño y posterior cousine pratopon.

Desde la mits versión 8 del entonces denominado Unified Method versión 0.8, fruto de

adores de las metodologías Booch'94 y OMT (Grady Booch y

y Là comunidad informática en la primavera de 1995, Posterior

nto se unió al equipo Ivar Jacobson, crear a su vez del método OOSE y, sobre todo, del in
3 amigos”, como se Les ha

ni concepto use case (casos de uso). La union del equmpo de
conocido, (incluso so les ha compurado con fo 3 tenores que en el cumpo de he música forma
ron Luciano Paveroti, Plácido Domingo y Jose Carteras; 3 so prestigio en
el mundo dela ingenieria del software que se propusieron construir ruse de mo.
dla, UML, cuya primera versión (1.1) se presentó para u estandarización al OMG (Object
ment Group) en 1997 y que fue aceptada, Las últimas versiones 1.2 y 1.3 se han pre
voteriomente y nos encontramos en periodo de evaluación y pruobas de la version 14

Estas versiones están disponibles en el sitio Web de Rational fwnwrational.com)
Or on forma de herramienta,
ane asistida por computador) de
nominada Rational CASE, cuyu versión Rationa'98 está muy extendida en a industria y que si
ue toas las especificaciones de UML. Recientemente se ha presentado Rational 2000, que bi
mejorado sensiblemente respecto de Kationa193 y promete ser una de las herumientas de re

Ferencia en el mundo de lu ingeniería y. en particular, la in de software

¿Por qué UML es tan influyente en la industria
del software?

UML han e, pero cs mucho más que un lenguaje de programación.
Aunque en su génesis se parece à C++ 0 Java, en realidad se ha diseñado y construido un len
gunje que hu nacido con una madurez muy ucentuza se le compara, incluso, co los últimos
«desarrollos de HMI. Java y XML. los lenguajes por excelencia del mundo Internet

"UML se ht diseñado reizando combinaciones de una gran cantidad de estándares, s bien se
rige a través de tres metodologías procedentes de la coluboración de los res creadores de
UML ya citados, 1. Rumbaugh, G, Booch €. Jacobson, us como del análisis y estudio de al
rededor de 20 métodos estándares que a su vez se han integrado en ol estándar en este caso,
UML: esta fue una gran iniciativa de los tres creadores que pusieron las especificaciones
de UML la consideración de a comunidad informática mundi, ames de su publicación. Fld
seño de UML ha sido completo desde el pricipio. al contrario que HIM, que ha cambiado gra.
‘dualmente, de forma que XMI. ha trado de resolver os problemas de HTMI. y Java, que sigue
todavía en el proceso de estandarización con la meva versión 2.0. Al contrario que HTTMUXML
que son lenguajes de marcación (markup). UML cs un lengunje para modelar, ue es el proce
ento que eyes los À diseño de software ames de pasar à su consiucción
igual que sucedo con cualquier producto manufacturado o fabricado en sere.

UML ayala al usuario a entender la realidad de la tecnología y la posibilidad de que re-
flexione antes de invert y gastar grandes cantidades en proyectos que no estén seguros en su
desarollo, reduciendo el cost y el tiempo empleado en Ea construcción de las piezas que
constiairán el modelo.

Sin embargo. desde el punto de vista puramente tecnológico, UML, tiene una gran cantidad
dle propiedades que han sio las que, realmente, han contribuido à hacer de UML el estándar de
Facto de la industria que es en relidad, Algunas de las propiedades de UMI. como lenguaje
de modelado estindar son

+ Concurrencia, ex un lenguaje distribuido y adecuado a las necesidades di
actuales y futures

Ampliamente utilizado por la industria desde sw adopción por OMG.
Reemplaza a decenes de noraciones empleadas con otros enguajes.
Modela estructaras complejas,

Las estructuras más importantes que soportan tienen su fundamento en las tecnologías
“orientadas objetos, tales como objetos, clase, compumentes y nodos.

Emplea operaciones absiractas como gute para variaciones fumas, añadiendo variables

Comportamiento del sistema: casos de uso, diugramas de secuencia y de colaboraciones,
que sirven para evalur el estado de las máquinas

la Web y el comercio electrónico

Uno de los grandes anuncios del año 2000 en el mundo de UML, se ha producido el pasado 1
de mayo com el anuncio conjunto de Rational Software (empresa creadora de UMI. y de Ratio
nal CASE) y Commerce One (lider mundial en soluciones globales de comercio electrónico) de
colaboración mutua para rear la especificación de la primera versión UML para la industria.
que siga las especificacionos XML para el desarollo del comercio electrónico. Es decir, e han
unido dos grandes empresas con el objeto de constuir un método estándar que reduzca drésti-
camente e tiempo de desamollo incremente la calidad de ls aplicaciones de comercio elec
tónico basadas en XMI

PRÓLOGO À LA EDICIÓN EN ESPANOL XIX

Se trata de alcanzar a wi c net ha creado una paradoja
para el desarrollo del conocido como e-software para aciones que requieren la en
reg de software de um modo mucho mis rápido pero conservando uns calidad ala. La versión
de UML par
minder tmp,

Ou gran ventaja que endo UML se reier al desarollo de aplicaciones globales
jura la Web, no só para comercio electónico. UML, está siendo utilizado por los gerentes de
proyectos, desarrolladores y aque de a Web que aplican técnicas orientadas à objetos para
ons aplicaciones Web robustas, escalables y clientes. UMI, permite a los desurolidores
modelar sus aplicaciones Web como parte de un sistema completo y la lógica de negocios que se
¿ho ref en ls aplicaciones.

El futuro ya no es lo que era sin UML

UML. como sc ha comentado, ha generado y sigue generando un enorme entusiasmo compa
fable al niente del desarrollo orientado a abetos principios delos 90 y posteriormente el
«rollo de components en la segunda mitad dela década, Este entusiasmo se ha hecho una
lidad y UML se ha convertido ya en una de las mejores herramientas para cl iso

e. eicieme y de calidad

prc de que esl entusiasmo ex una resid creciente, se puedo ver en a inmonsa

a de bibliogratía que ha generado y sigue generando UML. as como en os numerosos
even de tado tipo (Congresos. seminarios. simposiue. jornadas, ec) que se celebran a lo
largo y ancho dol mundo tecnológico y en los que brilla con luz propia UML (léase ECOOP,
Taols, Object Expo, OOPSLA, UML Conference, et)

UML está predestinado convertie en el lenguaje estándar de La industria para especificar,
visualizar, construir y documentar sistemas de Software del siglo xt. Iniciativas como las
cords con Commerce One. con Microsoft para incorporar UML como herramienta de di
seño de Office 2000, con Sun para el desarrollo de Java. ct, hacen que UML sen el nuevo
buque insienia de la indus del futuro,

Madrid. mayo de 2000
Dr. Luis Joyanes Aguilar
Facultad de Informática
Universidad Pontificia de Salamanca campus de Madrid

Nota sobre la traducción

ado de formalismo tales sistemas, puedan ser entendidos por los e)
usuarios de aquello que se modela. Para elo, es ay importane que e idioma en el que
as palabras y textos que aparezcan en tales modelos sea el propio de estas persons.

En cualquier comunidad hispanohablanto, Jer Pedido aclara mucho más que ver Onde y
leer hered de min que leer inherits, porque lo sécminos en español evocan directamente al
lector una semántica cercana ala que se pretende con su uso en el modelo, y esa evocación es
precisamente la razón por la cu fueron clegidos los ¡órminos ingleses de ese modelo. Como
lenguaje de modelide y descripción, UMT. permite que todo el modelo se cree en español o en
cualquier otro lenguas. Sin embargo, el inglés ha sido el idioma nativo en la ereuciôn de
UML, por lo que las palabras clave incorporadas en el propio UML están en

cliente y el equipo de desarrollo, esto no ex un problema, pueden usar los término» traducidos
“que emenderin mejor: pro cuando so quiere usar una horramicnt de ingeniería de software que
entiende semántica UM, éta esperar encontrarlos écminos ingleses para entender lo que
¿quiere dir, por ejemplo. sa neo Mig

Las palabras que aparecen en este Manual de Referencia de UML pueden clasificarse de

à su traducción, 1 ns que aparezcan en cualquier documento UML, en varias cate

parias del siguiente modo:

+ Palabras clave UML, es decir, ¡érminos con un significado especifico asignado porel
propio UML. no por un modelo en particular, que na son extensiones UML (aplicaciones
ensign de UML). send, entry, ot

Palabras clave que son extensiones UML, Por ejemplo: <<trace>> [sor]
Extensiones de UML, que no son palabras lave UML pero están incorporadas al propio
estándar por ser de uso común. Estas, junto con as palabras clave componen las ele
mentes estándar de UML y están listadas en el Capítulo 14,

Extensiones de UML que no son elementos estándar. sino extensiones introducidas
por los modelos usados como ejemplo.

as que forman parte de ar, usado como ejemplo.
‘Texto explicativo, que en el libro es el texto básico delos párafos: y en un modelo los
textos de acompañamiento.
Fo el Capitulo 13 de ete libro, cuyo uso seri similar al de
se ha optado por mantener en inglés.

xx

corresponden alas res primeras categorías dela clasificación anterior. Estos términos, en lose
pitulos 1 al 12 se han traducido. como regla general. puesto que su Joctura será probablemente

Para su más rápida localización los tiulos de ls términos del Capítulo 13 se han traducido
al castellano, mies que fos del Capitulo 14 se mantienen en ingles, pero hacienda rlerencia
a hs términos adecuados del Capítulo 13, De este modo, los elementos estándar se pueden lo
‘alia bien en ínglés bien en su traducción al castellano.

wand se erean ets UME. para su uso con herramientas de ingeniería de software que
is Wes primeras categorías ción en inplé, según el
‘Cuando los implicados en un modelo
xs de habla no hispana, tods las categorías, incluso Is tres uti, deben estar
en el idioma convenido. En ausencia de ls condiciones anteriores, para modelar sistemas en los
¿ue todos los implicados hablen castellano no es necesario uilizar términos à
ma delas categorías de palabras de la clasiicación anterior

Madrid, mayo de 2000
Carmelo R. Fernández

Director de Sistemas de Información

Cámara de Comercio, Industria y Navegación de Gipuzkoa
Universidad del País Vasco / Fuskal Herriko Uniberstatea

>
Parte 1: Antecedentes ——— ML

MI, incluyendo la naturaleza y
ann todas ls áreas foncionalos

a

Perspectiva general de UML

Fate capitulo es um rápida descripción de UML y para qué es bueno.

Breve resumen de UML

je Unlicado de Modelado (UML. es un lengunje de modelado visual que se usa para
zu. visualizar, consti y documeniae artefactos de un sistema de software. Capua de
os y coaucimiento sobre los sistemas que se deben construir Se usa pura entender. diseñar,
hojeur, configurar, mantener, y controlar la intormación sobre tales sistemis, Está pensado
para usarse con todos los métodos de desamullo. etapas del ciclo de vida. dominios de aplicación
y medios. El lenguaje de modelado pretende unifica la experiencia pasala sobre técnicas de
‘wadelado e incorporar las mejores práctica actuales en un acercamiento estándar: UML inclu
ye Conceptos semánticos, notación y principios generales, Tiene partes estáticas, dinámicas. de
tou » organizativas. Está pensado pars ser utilizado en herramientas interactivas de mode
do visual que tengan generadores de código así como generadores de informes. 1 espec
«ación de UML no define un proceso estándar pero está pensado para ser útil en un proceso de
desarollo iterative. Pretende dar apoyo a la mayoría delos process de desarrollo orientados a
objetos.

UML capta la información sobre la estructura esitica y el comportamiento dinámico de un
sistema, Un sistema se modela como uns colección de objetos discretos que ineracióan para
realizar un wabajo que finalmente beneficia à un usuario externo, 1a estucta
los tipos de objetos importantes para un sitema y para su implementación, así como las re
Laciones entre los objetos. El comportamiento dinámico define lu historia de los objetos en el
tiempo y la comunicación cute objetos pura cumplir sus objetivos. El modelar un sistema
desde varios puntos de vista, s
propósitos.

UML también contiene consteueciones organizativos para agrupar os modelos en pad
lo que permite los equipos de software dividir grandes sistemas en piezas de trabajo. i
entender y controlar lx dependencias entre paquetes, y para gestionar las vesiones delas uni
dies del modelo, en un entorno de desarrollo complejo. Contiene construcciones para repre
sentar decisiones de implementación y para elementos de tiempo de ejecución en compone

UM, no es un lenguaje de programación. Las herramientas pueden ofrecer generadores de
código de UML para una gran variedad de lenguajes de programación, así como construir mo.
¿elos por ingeniera inversa a parte de programas existentes, UML no es un lenguaje altamen
le formal pensado para probar teoremas, Hay vario lenguajes de es tipo. pero no son fáciles de
entender ni de usar para la mayoría delos propósito, UML es un lenguaje de modelado de pro

EL LENGUAIE UNIEICADO DE MODELADO, MANUAL DE REFERENCIA.

pósito general, Para dominios especializados, tales como la composición de IGU. diseño decir

<uitos VEST, o inteligencinantificil basada cn regla, podría ser más apropiada una herramienta

especializada con un lenguaje especial. UML es un lenguaje de modelado discreto, No se creó

para modelar sistemas continuos como los basados en ingeniería y física. UML. qiere ser un
sje de modelado universal, de propósito genera, para sistemas discretos, tales como los
uestos por software. Firmware o lg a

Historia de UML

UML fue desarrollado cn un esfuerzo para simplificar y consolidar el gran número de métodos
¿e desarrollo orientado a objetos que habían surgido.

Los métodos de desarrollo orientado a objetos

Los métodos de desarrollo para los lenguajes de programación tradicionales, tales como Cobol
y Fortran, emergieron en los años 70 y llegaron user armliamente difundidos en los 80. Prin
<ipalmente entre ellos estaba el Análisis esacturado y el discho estructurado | Yourdon-791 y
sus variantes tales como Diseño esrucrurado de tiempo real [Ward-85] y otros, Esos métodos.
¿originalmente desarrollados por Constantine, DeMarco, Mellor, Ward, Yourdon, y otros, al
«anzaron cierta penetración en el área de los grandes sistemas, especialmente para los proyectos
«omratados por el gobierno en los campos serospacial y de defensa cn los cuales los contrat
las insistieron en um proceso de desarrollo organizado y en una amplia documentación del diseño.
+ implementación del sistema, 1.0 resultados no fueron siempre tan buenos como se esperaba

amachos sistemas de ingeniería de software asistidos por computador (CASE) fueron poco más
que generadores de informes que extraan diseños después de que la implementación estuviert
terminada— pero los métodos incluían buenas ¡deus que fueron usadas cficiontemnto en al
unos casos para la construcción de grandes sistemas. Las aplicaciones comerciales fueron más
seacias a adoptar grandes sistemas CASE y métodos de desarrollo, La mayoría de los negocios
desernollabun su software internamente según ss prop necesidades, sin la relación de en-
Frentamiento entre cliente y contratista que caracteriza los grandes proyectos del gobierno.
Los sistemas comerciales se percibían como más simples, tanto o eran cn verdad como sino.
y por tanto había menos necesidad de waa rovisión por parte de una organización externa

El primer lenguaje que es generalmente reconocido como orient a objetos es Simul 67,
«desarrollado en 1967. Est lenguaje nunca tuvo un significativo seguimiento. aungue influyó no
tablemente en los desarolladores de varios delos lenguajes orientados a objets posteriores EL
movimiento de la orientación a objetos se convirtió en activo con L ón de la dis
ponibilidad del Smallalk principio de los 80, seguido po 5 ados a objetos
‘como Objetive C, C++, Bill, y CLOS. El uso real delos lenguajes orientados a objetos fe I
mitado al principio, pero la orientación a objetos trajo mucho a atención. Apeoximad

5 años después de que Smalltalk Legar ser conocido, fueron publicados los primeros m

¿de desarrollo orientado a objetos por Shlacr/Mellr [Shlaer88} y Cosd/Yourdon [Cond 91], se
guidos muy de corea por libros de Booch [Bavch-91). Rumbaugb/BlahPremerlani/Eddy/
Lorensen (Rumbuugh-1].y Wirf-Hrock/Wilkenan Wiener [Wir Brock-90) (nótese que los
sis delos derechos editoriales, a menudo empiczan en julio del año anterior), Esos libros, uni
dos alos primeras libros de diseño de lenguajes de programación escritos por Goldbery/Robson
[Goliherg-83), Cox [Cox-S6l. y Meyer [Meyer-8], niciuron el cumpo de la metodología

PERSPECTIVA GRNFRAL DE UML

orientada a objetos. La primera fase so completó al final de 1990. EL libro de Objcctory [la
cubson-92j fue publicado ligeramente después, basado en publicaciones antetioes. Este ihre
{ome un acercamiento un poco diferente con su enfoque sobe lus casos de uso y el proceso de
desarrollo.

Durante lo siguientes cinco años, aparecieron muchos libros de metodologías orientados a ch
jets, ala uno con su propio coajunte de conceptos deliniciones. mutación. terminología y pro
osos. Algunos añadieron nuevos conceptos útiles, poro en general hubo era similitud eme los
concepios propuestos rentes autores, Muchos de los nuevos libros partieron de uno o
máx de fox métodos existentes e hicieron extensiones o cambios menores. Los autores
‘originales tampoco estuvieron inactivos la muyoría de ells actualizaron su trabajo oral. à
menudo incorporando buenas ideas de oros autores, Kn general, surgió un úclco de conceptos
‘comune junto con una gran variedad de conceptos aceptados por uno o dos autores pero oUt
Hide ampliamente. Incluso en e núcleo de conceptos comunes, hay pequeñas discrepancias en.
tre Jos métodos que hacían una comparación detallada algo Capciosa. especialmente para el
lector ocasional,

Esfuerzo de unificación

Hub algunos intentos tempranos de unificar los conceptos cure métodos. Un ejemplo desta
‘cable fue Fusion por Coleman y sus colegas [Coleman 94]. el cual incluyó conceptos de OMT.
IRumbauglv91], Booch [Rooch 01}. y CRC [Wir Brock SD]. Como no involucró a

originales. permaneció como ro nuevo método en lugar de un

todos existentes. Fl primer intento exitoso de combinar y reemplazar los métodos exist

legó cuando Rumbaugt se unió Booch en Rational Software Corporation en 1994. Ello
peraron combinando conceptos de los métodos OMT y Bosch, vbteniendo como resultado u

primera propuesta en 1995, En ese momento Jacobson también se unió a Rational y comenzó a
trabajar con Rooch y Rumbaugh. Su trabajo conjunto fue llamado Lenguaje Unificado de Mo.
dela (UML). Fl impulso ganado al tener à los autores de tes de los métodos más importantes
rabajndo juntos para unificar sus enfoques desplszó a balanza en el campo de ls metodolo-
gas orientadas objetos, donde había habide my poco incentivo (o al menos poca voluntad) de
los metodólozos de abandonar algunos de sus propios conceptos para alcanzar la armonía,

Fn 1996. el Object Management Group (OMG) publicó una petición de propuestas para un
enfoque estándar sobre cl modelado orcutado a bt. Los autores de UML (Booch, Jacubson
y Ru empezaron a trabajar con metodólogos y desarrolladores de otras compas. ara
enerar una prupuesta atractiva alos miembros de OMG. así como también un lenguaje de
«clado, que sería ampliamente aceptado por los Fabricantes de herramict
Sarrolldores, quienes serían los usuarios cventuales, Empezaron
competitivos. Finalmente. todas ls propuestas se unieron a la propuesta inal de UML que fue
sometida a considoración del OMG en septiembre de 1997. Li prod

unos el estucrzo de UML y aportamos unos pocas
1 som el producto de muchas mente,

Estandarización

El Lenguaje Unificado de Modelado fue adoptado unánimemente por los miembros de OMG
«omo estándar en noviembre de 1997 JUML-OS]. OMG asumió la responsabilidad de futuros de

6 LLIENGUAIE UNIFICADO DE MODELADO. MANUAL DE REFERUNCIA

sarollos en el estándar de UML, Incluso antes de que se adoptara finalmente, se publicaron
varios libros esbozando los puntos clave de UML, Muchos proveedores de herramientas anun.
ciaron apoyo o planes pars ofrecer UML. y muchos metodólogos anunciaron que usaran la no
tación UML en sus trabajos futuros, L surgir de UML parece ser atractivo a la gencralidad del
público informático porque consolida la experiencia de varios autores con un estado oficial que
reducirá las diferencias gratuitas entre horrimientas. Creemos que la estandarización apoyar
tanto la expansión del uso del modelado orientado a objetos entre ls desarrolladores como la
“paición de un robusto mercado en herramientas de formación y wilización, ahora que ni los
usuarios mi los proveedores tienen que pensar qué metodologías usar y mantener

Equipo principal
Las siguientes persons formaron pure del oquipo principal de dexrrll de la propuesta de
UML trabajaron ene equipo de revisión:
Data Access Corporation: Tom Digre
DHR Technologies Ed Seidewit
HP: Matin Gras
nt: Steve Brodsky. Steve Cok, Jos Warmer
I-Logix: Eran Gory, David re
ICON Computing: Desmond D’Sonca
IntlliCorp and James Martin &Co.: Conrad Bock, James Odell
MCI Systemhouse: Cris Kobeyn Joaquin Miller
Objet Tine: John Hogg, Bran Scie
Oracle: Guus Rumackers
Platinum Technologies Dilhar DeSilva

Rational Software: Grady Booch, Ed Fykbolt, Ivar Jacobson,
Gunnar Overgaard, Karin Palmkvis, James Rumbauch

SAP: Oliver Wiegert
SOFTEAM: Philippe Desfray
Sterling Software: Jahn Cheesman,
‘Taskon: Trygve Recnskaug

Unisys: Sridhar Iyengar, GK Khalsa

¿Qué significa unificado?

significados relevantes para UMI

A través de los métodos históricos y notaciones. UML. combina conceptos comúnmente
ados por muchos métodos orientados a objetos, seleccionando una definición clara para
«concepto, así como una notación y una terminoloafa. UML puede representar la mayoría de
jodelos existentes an bien o mejor que como lo hacían los métodos originales.

PERSPECTIVA GENERAL DE UML 7

A través del ciclo de vida de desarrollo. UML vo ticne salts ni discontiniddes desde los
requisitos ala implantación. Se puede utilizar cl mismo conjunto de conceptos y notación en las
diferentes capas del desamullo, incluso mezcladas en un solo modelo. No es necesario traducir
de una etapa a otra, Esta continuidad es cía para un desarollo iterative € incrementa.

A través de ls dominios de aplicación. UM. ets pena para modelar ta mayoría de los
dominios de aplicación. incluyendo aquellos que implican sistemas grandes. Complejos, de
tiempo real. ditribuidos, con tratamiento intensivo de datos 0 con culo intensivo, entre
rs propiedades, Puede haber reas especial eas cus un lenguaje special pura se
propósito reste más til, ero UML pretendo ser an buco o mejor que cualquier oo lena
¿modelado de propósito general para la mayoría de fs res de pliación.

A través de los lenguajes de implementación y pltaformas, UML est pensado para se usa
do en sistemas dessrzllados en varios le implementación y plataformas, incluyendo.
lenguajes de programación, bases de datos. 4GL, documentos de organización, firmware. y
otros, Fl trabajo de la capa superior debería ser idéntico o similar, mientes que el trabajo de la
apa interior diferir en algo para cada medio,

A través de procesos de desarrollo, EI UML es un lenguaje, no una descripción de un pro
¡eso de desarrollo detallado. Se protende que sea usado como lenguaje de modelado subyacen
te a la mayoría de los procesos de desarrollo existentes de nueva creación, dela misma forma

lenguaje de programación de propósito general puede ser usado en varios exis de pro:
gramaciôn, Está especialmente pensado para apoyar un estilo de desarrollo iterative € incre
mental. que es el que recomendamos.

A través de los conceptos internos, En a construcción del metamodelo de UML, hicimos un
estuezo deliberado para descubrir y represent ls raciones subyacentes entre varios con
cepos, intentando captar conceptos de modelado de manera ubieta, aplicable a muchas situ
«iones cond y desconocidas. Este proceso permitió comprender mejor los conceptos y
hacerlos más aplicables, Ése no fue el propósito original de la unificación, pero síuno de Tos re
sultados más importantes

Objetivos de UML

Hubo varies objetives detrás del desarollo de UML. El primero y más importante, UML es un
lenguaje de modelado de propósito general que pueden usar todos los modeladores. No tiene
propietio y está basado cn el común acuerdo de gran parte de la comunidad informática. Esto
significa incluir conceptos de los métodos fideres para que UMI. pueda usarse como su lenguaje
de modelade. Está ponsa para remphazar al menos los modelo de OMT, Booch y Objector.
as como aquéllos de otros participantes de la propuesta. Se pensó par ser tan familiar como sea
posible, usar la notación de OMT, Booch, Objectory y otros métodos importantes, Esto si

a incorporar buenas prácticas de diseño, tals como la encapsulación, Separación de los tem,
y la captura de la intención del modelo cons etende abordar los problemas actuales del
¿sarrollo de sofware, ales como & ón, concurrencia, parones, y desi
rrollo en equipo.

UML no pretende ser un método de desl completo. No incluye un proceso de desarollo
paso a puso, Creemos que un huen proceso de desarrollo ex crucial para et éxito de un
desarollo de software, y proponemos uno en un libro complementario Hacobson-99]. Es im.
portante darse cuenta de que UM. y el proceso para usar LMI. son dos cosas independientes,

ELL LENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA

UML pretende tna correctamente con todos, al menos com la mayoría de los procesos de
desarrollo existentes, UML incluye todos lox conceptos que consideramos necesarios para ul
lizar un proceso moderno ¡traivo. hasado en construir una sólida arquitectura para resolver
requisitos dirigidos por casos de uso.

Un objetivo final de UML era ser tan simple como fuera posible pero muntenicndo la €

pacidad de modelar tod la gana de sistemas que se necesita construir. UML necesita serlo

Sulcientemene expresivo para manejar todos los concepts que se originan en un sistema mo-

demo, tales como la concurrencia y distribución, asi como también los mecanismo de la inge-

miería de software, tales como encapsulación y components, Debe ser un ls

come cualquier lengusie de programación de propósito general. Desafortuna

fica que no puede sor pequeño quiere

_Euajes modernos y los sistemas operativos modernos, son mucho

40 años. porque nosotros esperamos mucho más de ellos, UM tene varios tipos de modelos; no

10 que uno pueda dominar en un dia, ES más complicado que algunos de sus antecesores

porque intenta ser más ampli. Pero no es necesario aprenderlo edo la vez. no más que lo que

ige un lenguaje de programación, un sistema operativo, o una compleja aplicación de usuario,

Áreas conceptuales de UML

Los conceptos y modelos de UMI. pueden agruparse en las siguientes reas conceptuales

Estructura estática. Cualquier modelo preciso debe primero definir el universo del discurso,
esto es, los conceptos clave de la aplicación, sus propiedades temas. y las relaciones ente cada
una. Este conjunto de construcciones esla vista estética. Los conceptos del aplicación son mo-
detados como clases. cada una de ls cuales describe un conjumto de objetos discrets que al-
‘macenan información y se comunican para implementar un comportamiento, La información
que almacenan es mxlelad como tributos; cl comportamiento que reslizan es madolado
Somo operaciones, Varias cincs pueden compartir uns estructura común usindo generalización
Una clase ha añado mas estructura; y comportamientos la estructuras y comportamientos
{que uhtiene por herencia de la clase padre. Los objetos también icnen conexión durant la je
Suciön con eros objetos individuals. Tales relaciones "Objeto a Objeto” sun mx

ociaciones entre cases. Algunas relaciones entr elementos so agrupan como relaciones de
pendenci, incluyendo las relaciones para modelar desplazamientos en los niveles de abstrac
ción, entace de parámetros del modelo, concesión de permisos, y uso de un elemento por parte

tro. Otis relaciones son la combinación de casos de uso y el flujo de datos. La vista
esta se expresa con diagramas de class y puede usarse para generar
eluracionos de estructuras de datos en un programa, Hay muchos tipos de elementos
diagramas UML. ales como interfaces, tipos de datos, casos de uso y señales, En conjunto, se
Jes lama claificadoros, y se comportan de form muy parecida Ls elses, con ciertas ses
tricciones en cada tipo de clasificador

Comportamiento dinámico. May dos Tormas de mode
la historia de la vida de un objeto. que mest la forma er rata con el esto del mun-
do: a otra son los patrones de comunicación de un conjunto de objetos conectados, que mues
a cómo interactian para implementar su comportamiento,

La visión de un objeto aliado es una máquina de estados —una vista de un objeto que
muestra la forma en que responde a los eventos en unción de su estado actual, esla acciones

PERSPECTIVA GENERAL DE UML 9

‘como parte de su respuesta y transiciones à un aucvo estado— Las máquinas de estados se
representan en un dí

La visión de La interacción de los objetos de un sitema es una colaboración: una vista, de
pendient de contexto, delos objetos y Is enlaces catre llos. junto con el luo de mensajes en
{re fos vbjetos mediante los enlaces de datos. Esto punto de vis unifica la estructura de los
datos, e control de Majo y el Mujo de datos en una sola vst, Las colaboraciones € interacciones
se muestran mediante los diagramas de secuencia y los dineramas de colaboración. Cuando to
(das las vista de comportamiento se encuentra un conjunto de casos de uso. Cada uno es una
‚deseripciön de una porción dela funcionalidad del sistema como la percibe un actor, un usuario
externo del sister

Construcciones de implementación, Los modelos de UMI. tienen significado para
sis lógico y para la implementación física, Ciertos constructores reptexentan elementos de
implementación. Un componente es una parte Física reemplazable de un isiema y es capa
responder a las peticiones descritas por un conjunto de interfaces. So pretende que sea cia
sustituible por otro componente que cumpla la misma especificación. Un nodo es un re
computacional que define una focalización durante la ejecución del sistema. Pueden come
‘componentes y objetos. La vista de desplicgue describe la configuración de los nodos de un sie
tema on ejecución y la organización de los componente» y objet en él. incluyendo posible
jones de contenido care nodos

Organización del modelo. Ls ordenadores pueden manejar grandes modelos “planos
pero los humanos no. En un sistema grande, la información del modelo debe ser dividida en
pican coherentes, para que los equipos puedan trabajar en las diferentes parts de forma core
current, Inclso e más pequeño, el conocimiento humano requiere que se organi

ce el contenido del modelo en paquetes de tamaño modesto. Los paquetes son unidados
Organizativa, jerárquicas, y de propósito general de los modelos de UM Pueden usarse para
almacenamicato, sión de la configuración. y construcción de bibliotecas
que contengan frugmentos de código reutilizable. Una dependencia ente paquete resume las
dependencias entre los contenidos del paquete, Una dependencia entre paquetes puedo ser im
puesta por la arquitectura global del sistema, Por Jo tanto, los contenidos de los paquetes deben.
aaplarse a ls dependencias del paquets y alas impuextas por la arquitectura del sistema

Mecanisios de extensión. No importa cuan completo sea el conjunto de “facilidades” de un
Ieguaje, la gente querrá hacer extensions, Homos dotado a LMI. de una limitada capacidad
Extensión. que creemos suficiente para la mayoría de las extensiones que requiere el “ía a die
sin la necesidad de un cambio en el longunjie básico, Un estereotipo es una nueva clase de ele
sente de modelado con ls misma estructura que un elemento existeate pero con restriccionos
“adicionales, una interpretación diferente de un icono, y un tratamiento diferente por los.
‘adores de digo y otras herramtcata de bajo nivel. Un valor etiquetado es un par arbitrario de
Sadenas etiqueta-valor. que pueden enkxzarse a cualquier tipo de elemento de modelado, para
almacenar información arbitrari. como información de gestión de proyecto, guías para os
generadores de código. y valores requeridos por los estereotipos, La ctigueta y el valor son ne
Presentadas como cadenas. Una restricción es una condición "bien formada" expresada en una
Sade de texto en algún lenguaje restringido, tal como un lenguaje de programación, un len
guaje especial limitado, o lenguaje natural. UML. incluye un lenguaje de restricciones llamado
OC. Como con cualquier mecanismo de extensión. estos mecanismos deben usarse con cu

10 ELLENCIVAJE UNIFICADO DE MODELADO, MANEAL DE REFERENCIA

dado debido al iesgo de producir un dialect privado ilegible por los demás, Pero à la vez pue-
den evita la necesid de cambios más radicales.

Sintaxis de los diagramas y las expresiones

Este libro contiene expresiones y disgamas que muestran ejemplos de modelos reales, af
como también la sintaxi de las expresiones y anotaciones explicando los diagrams. Para
reducir el peligro de confundir as explicuciones con los ejemplos, ve han usado ciertas con
venciones de Forma,

¡Dentro de los diagrama y las expresiones de texto los Fragmentos de diana o iterates de
texto, que aparecerán en kr notación tal, e mucstrun cu otra “Helvética”. Por ejemplo, un nom.
Ine de case en negroes un nombre Legal que puede aparecor en un modelo, Un paréntesis en
una expresión de sintaxis es un paréntesis literal que aparecerá en la expresión real: no es
parte de la maquinavia” sintáctica. Por ejemplo:

Peido crear (onto cantidad

Dentro de texto be. ks plans Tierales del model y los nombres de los
el modelo, también se muestran en letra “Helvetica” negra, como Pedido o cliente

Tin una expresión sintáctica, los nombres de las unidades sináctics, que deben ser room
plavadas por las expansiones reales del texto, se muestran en fetta “Helvética” azul, como

de texto negr en una Expresión. representa un valor literal que aparecerá en a
0. El uso de cursivas o subrayado significa. que el texto que In recmplzará,
tiene esa propiedad. Por ejemplo:

nombre.operacion (argumento...)

En una expresión sintáctica, un subindiee azul y uns har superior wz, se usan para dene
tar cenas propiedades sintáctica,

expresión... La expresiónes opcional

expresión... Puede parecer una lista do expresiones separadas por comas. Si
‘ua repctción, mo hay separador, Cada repetición puede tener um
tución independiente, Si aparece un si
com, este es el separador

presi ca superior enlaza juntos uno a más términos, que son considerados.

úvptatividad o la repetición de ocurrencias. En este

ejemplo, el igual y la expresión forman una unidad que puede ser omitida
incluida. La barra superior es innecesaria si sólo hay un tér

cama os textos y Mechas en azul som anotaciones. No son parte de a notación
pero se pensaron como explicaciones. Las símbolos y texto en negro son parte de la no:

La naturaleza y propósito de los modelos

L

Este capítulo explica qué son los modelos. para qué son buenas, y cómo se usan. También
explica varias cases de modelos: ideal, parcial y basado en herramientas.

¿Qué es un modelo?

Un modelo es una representación. en cierto medio, de algo cn el mismo u otm medio. El modelo
capta los aspectos ando, desde cierto punto de vist, y
simplifica u omite el resto. La ingeniería la arquitectura y muchos otros campos ercstivos usan
modelos.

Un modelo se expresa en un medio adecusd para el trabajo, En modelos de construcciones
pueden dibujame en papel, las figuras tridimensionales son construidas con cartón y papel
cantón, olas ecuaciones de clementos finitos en un computador. Un modelo de construcción de
tun edilicio mueste a apariencia del ciicio pero también puede usarse para hacer ingeniería y

Un modelo de un sistema software está construido en un lenguaje de modelado, «
UML. El modelo tiene semántica y notación y puede adoptar varios formatos que inc
texto y gráficos. El modelo pretende ser más fácil de usar para ciertos propósitos que el sistema

¿Para qué sirven los modelos?

La modelos se usan para muchos propósitos

Para captar y enumerar exhaustivamente los requisitas y el dominio de conocimiento, de
{forma que todas los implicados puedan entenderlos y estar de acuerdo con ellos. Dilerent
modelos de un edilicio caplan requisitos sobre la apariencia, los patronos de tráfico,
tipos de servicios, fortaleza frente al viento y terremotos, costes y otras cosas. Los implicados.
incluyen al arquiccto, aparejador. contrata, varias suboontatís, el dueño, los inquilinos y la
ciudad.

Los diversos modelos de un sistema de software pueden capturar requisitos sobre su dominio
de aplicación, las formas en que los usuarios lo alia, su división en módulos. los patrones
omnes usados en su construcción. y otras cosas. Los implicados incluyen al arquitecto, alos
“malita, a os programadores lo del proyecto, x os clientes, inversores, a los ust
rior Finales, y alos operadores, Se tes tipos de modelos de UML

n

EL LENGUAJE UNIFICADO DE MODE ADO, MANUAL DE REFERENCIA

Para pensar del diseño de un sistema. Un srquitecus wiliza modelos en papel, sobre un
‘computador, o como construcciones tridimensionales, pura visualizar y experimentar con post
bles diseños. La simplicidad de crear y de modificar modelos pequeños permite penssmtento
creativo e inovación con poco coste

Un modelo de un sitema software ayuda a os desamolladores a explorar vacas arqu

ras y soluciones de diseño Fácilmente, anos de escribir el código. Un buen k

permite que el diseñador consiga la arquitectura corecta ames de que comience el disoño de
do.

Para capturar decisiones del diseño en una forma matable a partir delos requisites. Un
modelo de un edificio muestr el aspecto externo convenido con el cliente. Otro modelo mues
{ta el encaminamiento interno de cabos, de tuberías, y de conductos de ventilación. Hay muchas
maneras de implement m 1 muestra un diseño que el arquitecto
cree que es bu erificar esa información. per, menudo, los clientes nos
preocupan por los deal,

Un modelo de un sistema software puede captar el comportamiento extern de un sistema y
la información del dominio del mundo ral seprescatado porel sistema. Otro modelo muestra ak
clases y ls operaciones ntemas, que impiementan el comportamiento extern. Hay muchas ma
neras de implementar el comportamiento; el modelo Final de diseño muestra un acercamiento
que cl diseñador ree correcto.

Para generar productos aprovechables para el trabajo, Un modelo de un edificio se puede

úlizar para generar varias clases de productos, Éstos incluyen una cuenta de materiales una si
«ión animada de un paseo, una abla de desviaciones va del vient, 0 una
talizacin de La tensión en varios puntos en el armazón.

Un modelo de un sistema software se puedo wilizur para generar ln declaraciones de cle,
los cuerpos de procedimiento, ls intertaces de usuario. las bases de dato. los escenarios de uo
válidos o los guiones de configuración.

Para organizar, encontrar, fra, recuperar, examinar, y corregir la información en
grandes sistemas. Un modelo de un edificio organica la información par servicio: estat
eléctrico. fomanería. ventilación, decoración, etcétera. A menos que e] modelo esté en un com
putador, no es tn fei! encontrar cosas y modificarls. Si ost en un computador, os cambios se

ados fei

Un modelo de un sistema de software organiza la información en vats vistos: exructra ese
tática, máquinas de estado. interacciones, requisites. ete, Cada vista &s una proyección del
modelo completo para un propóxito determinado. Mantener un modelo, de cualquier tamaño, os
imposible in tener una horramienta de edición, que man

teractivo del modelo, puede presentarla información en diversos forn

¿que es innecesari para un propósito dado, y mostrarla otra vez más adelante, agrupar opera
cones relacionadas, realizar eamios cn los clement individuales, así como Cambiar grupo de

entos con un comando, te

Para explorar económicamente múltiples soluciones, Las ventajas y los riesgos de diversos
métodos de diseño pura cdiicio, pueden no esta claros al principio. Po
ubestructuras pueden interactuar de formas complicadas. que no se pue

A NATURALEZA Y PROPÓSITO DE LOS MODELOS 13

de un ingeniero, Los modelos pueden explorar los diversos diseños y permitir cálculos de cos
lex y de riegos, antes de que se construya el edificio real

Los modelos de un sistema de software grande permiten que se propongan y comparen varios
diseños. Los modelos no se construyen por supuesto, pero incluso un modelo noi
mentario puede exponer muchas cuestiones lo final debe tener en cuenta. Modelar
permite vonsiderar varios diseños, con un coste pequeño al implementar cualquiera de ellos,

Para domesticar los sistemas complejos, Un wodelo de ingeniería de wn tora 0
dose a un edifico, proporciona un conocimiento que no es posible obtener de un edilicio del
‘mundo rel. Un tornado verdilero no se puede producir voluntad, y desire os instrumen
tos de medida, de todas formas, Muchos procesos físicos rápidos. pequeños, 0 violentos se pue
den entender usando modeles Físicos

Un mode de un sistema software grande permite ocuparse de la complejidad que es de
masiado dic de tratar directamente. Un modelo se puedo abstruer un nivel que sea ©

prensible os seres humanos sn ponerse en detalles. Un computador puede realizar complicados
análisis en un modelo, en un esfuerzo para encontrar problemas tales como errores de sine:
nización o desbordamiento en fos recursos, Un modelo puede determinar el impacto potencial de
un cambio antes de que se haga, explorando dependencias enel sitema, Un modelo puede tum

Niveles de los modelos

Los modelos adquieren diversas formas para diferents propósitos, y aparecen en diversos ni
veles de abstracción. La cantidad de deta del modelo debo auıptarse à uno de los
propósitos

Guías al proceso de pensamiento. Lox modelos de ato nivel construidos al principio de un
proyecto. sirven para enfacur el proceso del pensamiento de los participantes y destacar deter
minadas opciones. Capturan requisites y representan un punto de partida hacia un diseño del
sistema, Los primeros modelos ayudan a los autores a explorar ls opciones posibles antes de

ser en un voncepto de sistema. Según progresa cl diseño. los primeros modelos son
sustidos por otros modelos mis exactos.

No hay necescad de conservar cada giro y vuelta del proceso de exploración inicial, Su pro
pósito es producir ideas Sin embar los modelos de pensuniento finales. se deben preservar
incluso despucs de que nuesto foco de ¿tención se desplace tareas de disco, Los primeros
modelos no requieren el detall la precisión de un modelo de implementación. y no necesitan
una gama completa de conceptos de implementación, Tales modelos utilizan un subconjunto de
construcciones de UML, un subconjunto mis limita que los de modelos posteriores.

Cuando un primer moslelo es una vista completa de un sistema con determinada precisión
por ejemplo, el modelo resultante del anilisis de lo que debe er hecho — dehe ser preserva
do cundo el desarollo paa a la elapa siguiente. Hay uns diferencia importante ente añadir
detalles fen cuyo caxo la cadena de razonamiento debe ser preservada) y el proceso normal de
air al azar. explorando muchos calljones sn all, ames de llega ula solución correct.
En este último caso es goneralmente abrumador e innocosario zuardar a historia completa. ex.

10 cn as situaciones exteaordimarias, cn as cuales se regie i completa de ave
Figur lo ocurrido,

4

EL LENGUAIE UNIFICADO DI: MODELADO, MANUAL. DE REFERENCIA

Expecificaciones abstracts dela estructura esencial de un sistema, Los modelos en cl an
lisis las tapas preliminares del discño se centran en los conceptos y mecanismos claves del
probable sistema. Se cortespernlen de cieta munera con el sistema final. Peo flan los detalles,
‘gue se deben agregar explícitamente rante el proceso de diseño. El propósito de los modelos
abSITACOS cs conseguir que los aspectos de alto nivel estén correctos, antes de abordar los de
talles más localizados, Estos modelos se piensan para evolucionar en los modelos finales,
mediante un proceso cuidadoso que garantie que e sistema final implementa correctamente el
‘objetivo de los modeles anteriores. Estos modelos esenciales deben corresponderse con los mo-

¿delos completos; sino, no hay seguridad de que el sistema final incorpore corectamente ls €
ractersticas clave, que el modelo esencial intents mostrar. Los modelos esenciales se centran en
la semántica. No necesitan la gama completa de opciones de implementación. De hecho, los de-
talles de funcionamiento a bajo nivel escurccen a menudo la semántica Logic. La trayectoria de
al à un modelo completo de implementación debe ser clara y directa, mo im.

igo 0 desarollada ma

Especificaciones completas de un sistema final. Un wodelo de implementación incluye su

información para construire sistema. Debe inclir no solamente la semántica lógica del
sistema y los algoritmos, ls estructuras de datos y los mecanismos que aseguran funcionamiento
“apropiado. sino también las decisiones de nganización sobre los artefactos del sistema que som
necesarios, permiiendo ast el tubajo cooperative de las personas y el procesamiento por parte
de las herramientas. Esta clase de modelo debe incluir as construccion:

modelo, para la comprensión de la persona, y para la conveniencia de la computadora. Éstas mo
son las caracteristicas de la aplicación en sf misma. En realidad, son caracteiticas del proceso.
de construcción.

Ejemplos de sistemas picos o posibles Algunos bien elegidos pueden lsclitar el entendi-
miento a ls persones, y pueden validar las especificaciones € implementación de sistema. Una
gran colección de ejemplos, sin embargo, no elimina la necesidad de una descripción definitiva.
En última instancia necesitamos los modelos que especifican el caso general; que es un pro:
gruma, después de todo. Sin embarg plos de las estructuras de datos picts, de ls
secuencias de interacción, de las historias de los objetos. pueden ayudar a las personas a
tentar entender uns situación complicada. Los. ¿bon utilizar con un ceo cuidado,
Es lógicamente imponible inducir el caso general, partir de un conjunto de ejemplos, pero los
prototipos bien clegidu son la manera de pensar de la mayoría de la gonte. Un modelo de ejom-
plo incluye instancias más que deseriptores gencrales y por Io tato, ende a dar una visión dí
Trento de la que da un modelo descriptivo genérico. Los modelos de ejemplo

sólo un subconjunto de las construcciones de UML. ls que se ocupan de instances. Los me
delos deseriptivos y os modelos de ejemplo son útil para modelar un sitema.

Descripciones completas o parciales de sistemas. Un modelo puede set una descripción
completa de un solo sistema. sin referencias externas, Más a menudo se organiza como un con,
junto de unidades distimas, discretas, ca una de las cuales se puedo almacenar y manipular por
separado, como parte de la descripción completa. Tales modelos tienen conexiones que se eben
enlazar a otros modelos en un sistema completo. Como las piezas tienen coherencia y signi
«ado, pueden ser combina con otras piezas de varias maneras para producir sistemas muy di
versos. Lograr la reutilización es una meta importante dl buen modsiado,

Los modelos cambian con e tiempo. Los modelos con mayor grado de detalle se derivan de
modelos más abstractos. y los modelos más concretos se derivan de modelos más 1

LA NATURALEZA Y PROPÓSITO DELOS MODELOS 15

ejemplo, un modelo pudo comenzar como vista de uo nivel del sistema enero, con algunos se
vicios clave poco detallados y ningón adomo. En un cierto plazo. se agrega mucho más detalle
y Se intaducen las variaciones, También en un cierto plazo, el enfoque cambia de una visión
Sentrada en el usuario y el aspecto exterior del sistema a una visión lógica centrada en su núcleo.
‘medi que lo desrollaores trabajan con un sistema y lo entienden mejo, el modelo se
¿debe iteraren todos los niveles para cplurar ese conocimiento: es imposible entender un site
‘ma grande en una sola pasad lineal, No hay ninguna forma “correcta” para un modelo,

¿Qué hay en un modelo?

Semántica y presentación. Lx modelos tienen dos aspectos importantes: Informacion semán
tica (semántica) y presentación visual (notación

El aspecto semántico capta el significado de uns aplicación como una red de construcciones
lógicas, por ejemplo clases, asociaciones, estados, casos de uso, y mensajes, Los elementos se
imánsicos del modelo llevan el significado del modelo, es dect, transportan la semántica. Los
elementos semánticos del modelo se waliran par la goneración del ige, la comprobación de:
la validez, las métricas de complejidad, ic El aypecto visual es irrelevante para la mayoría de
las herramiontas que procesan modelos. La información semántica menudo ex Nama el mo.
defo. Un modelo semántico tiene una estructura sintáctica, reglas para asegurar su corrección, y
¿dinámicas de ejecución. Estos aspectos se describen a menudo por separado (como en los do
cumentos de definición de UML), pero ve correlaciona finmemente y parten de un solo mode
lo coherente,

La presentación vis muestra la información semántica de modo que se pueda ser consi
«rado, hojeads y corresida por los seres humanos. Los elementos de la presentación llevan la
presentación vis dol modelo. eto es. lo muestran en una forma directamente comprensible
por las persons. No agregan significado, sino que organizan la presentación, para acentuar la
organización del modelo de una manera wil, Por lo tano, dirigen la comprensión humana del
modelo, Los elementos de la presentación derivan su semántica de clementos semánticos
del modelo, Pero, ya que la dí elos diagra ian ls personas, los elementos
de a presentación no son total e entos lógicos. La disposición de los ele
ments de preseración pue votaciones sobre las relaciones semánticas que son

model semántico pero que, sin em-
bargo, sugieren algo a las personas.

Comtexto. Los modelos son arefactos en un sistema informático, y se utilizan dento de un
contesta más grande que ls dé significo contexto incluye la organización in
tema del modelo, anotaciones sobre el uso de € en el proceso total del desarrollo,
Sistema de valores por dofecto y de suposi reación y la manipulación del
mento. y una relación al entoeno on el cual se utilizan

Los modelos requieren una organización intra que permit su uso simultáneo por varios

upon de trahajo sin inorfrencias indebidas. Esta descomposición mo se hace necesaria por Re
Zone semánticas —un modelo monolinen grande sora tam exacto como un sistem de modelos
organizados en lo paquetes cohorones, quizá aún más exacto porque los límites de organización
complican el trabajo de definirla semántica exaets-—, Poro los equipos de trabajadores no po-
¿an trabajar con eficacia en un modelo monolítico grande Sin entorpecer constantemente unos
a tros. Por ira part, un modelo marolico no iene piczas que se puedan retlizar en otras si
usciones. Finalmente, los cambios en un modelo grande tienen consecuencias difíciles de de

16 — FILLENGUAJEUNIHICADO DE MODH.ADO, MANUAL DI REFERENCIA

terminar. Los cambios en una pieza pequeña, sislada, de un modelo grande pueden ser maneja
les si el modelo se estructura correctamente cn subsistemis con interfaces bien dofinicas. En
‘cualquier aso, divi los sistemas grandes en una jerarquía de piezas bien elegidas es la mane:
Fa más fable de diseñar sistemas grandes que lo seres humanos han inventado en miles de años

Los maxes capturan la infarmación semántica sobre un sistema, poro también necesitan re

arar mucha iutormación sobre el proceso de desamallo mismo. ta como el autor de una
tase, el estado de depuración de un procedimiento, y el pormiso de acceso de una persona a un
diagram, Tal información es, en el mejor delos casos, jena la semántica del sitema, pero es
important para el proceso de desarollo El modelo de un sistema. por lo tant, necesita inluir
“ambos puntos de vit, Esto se consigue más fácilmente adadiendo inormación de gestión del
proyecto, como anotaciones al modelo semántico (descripciones arbitrariss añadidas los ole
mentos del modelo pero cuyo significado está fura del lenguaje de modelado), Kn UML. se im
plementan como eulenas de texto,

Los comandos usados para car y modificar un modelo mo son parte de la semántica del len

sje de modelado. del mismo mado en que los comandos de un editor de textos 0 de un
‘navegador no son parte de la semántica de un lenguaje de programación. Las propiedados del
elemento del modelo no tenn valores prefijados: en un mo
valores. Para el desarrollo práctico, sin embargo. las person
modelos, sin tener que especifica todo completo en detallo, Los valores prefijados esti en e 1
mite entr el lenguaje de modelado y la herramienta de edición que lo soporta. Son realmente
valores por defecto en los comandos dela herramienta que ces un modelo aungue pueden tes
Sender de una herramienta individual y convertie en expectativas del usuario sahre la imple

tación del lenguaje por las herramientas en general

Los modelos no se construyen y wiizan aislados. Son parte de un entorno más grande que
incluye herramientas de modelado, lenguajes y compiladores, sistemas operativos, redes d
computadores, restricciones de implementación. ec. La información sobre un sistema incluyo la
información sobre todas las partes del entro, Part será slmaconado en un modelo aunque mo ex
información semántica por ejemplo, as anotaciones de gestión de provoct (discutidas ames), las
“ayudas y directivas de la generación de código. opel del modelo, yla configuración por
defecto para herramienta de edición, El resto puedo almacenar por separado: có
programa. comandos de configuración del sistema operativo, et, Incluso s una cierta

¿de un modelo, a responsabilidad de interpretarlo puede subyacer en varios lu
je de modelado, lu herramienta de modelado. el genorader de código. el
je de comandos. cc. Este libro describe la inierpretaciön de modelos

hos con el lenguaje UML, pero cundo funcionan en un entorno fisico de desarollo. oras

fuentes pued la información que es opaca para UML.

¿Cuál es el significado de un modelo?

Un modelo es un generador de potenciales configuraciones de sistemas; los posible sitemas
son sus extensiones, valores. Malmente, toas las configuraciones consistentes com el modelo
Jehertan ser posibles. A veces, sin embargo, no es posible representar todas las restricciones
Gent de un modelo. Un modo es también una descripción de la estructura genérica y del si
nificado de un sistema. Las descripciones son su objetivo significado. Un modelo es siempre
na abstracción a un cierto nivel. Captura los aspecto esenciales de un sistema y omite algunos
¿e los detal. En los modelos hay que considerar ls siguientes aspectos:

LA NATURALEZA Y PROPÓSITO DE LOS MODELOS 17

Abstraceiön frente a detalle. Un modolo capuua los aspectos escnsiles de un sistema y om
1 tros, Cuáles Son esenciales es una cuestión de icio que depende del propónito del modelo.

Esto no es una dicotomis; puedo haber un espectro de modelos de precisión creciente, Un len
ue de modelado no ex un lenguaje de programación

Un tenguado de modetalo puedo ser menos exacto a propósito, porque el detalle adicional es
ivrelovante para el propósito actual, À lo lago de la vid de un proyecto, se pueden utilizar mo:
delos de diferents niveles de precisión. Un modelo pensado para la generacich del código re
‘quiere que se traten, por lo menos. algunos elemento del lenguaje de programación. Típica.
mento, los modelos tienen pues precision darante el análisis. Ganan en detalle à medida que
progresa cl ciclo de desarollo. por lo que los modelos Finale, ienen um detalle y precisión con-
siderahles

Expecifieaeiön frente a implementación, Un meulelo puede decir qué hace algo (epecif

‘caren, también cómo se logra la función (implementación), Estos aspoctos deben vr sepa

rados en el modelado. Ex importante determinar el qué, antes de invertir muchas horas en cl

éme. Abstraese dela implementación cs una Fceta importante del modclado. Puede haber una.

teadena de vatiay relaciones especificación implementación, cn lus cuales cada implementación
ine la espocificucionos para la cupa siguiente

Descripción frente a instancia. Los modelos son sobretodo descripción. Las cosas que des
<ribon son las mstancias, que generalmente aparecen en fos modelos sólo como ejemplos. La
mayoria de las instancias existe solamente como parte de la ejecución. Algunas veces si em
bargo, la instancias de tiempo de ejecución son a veces en sf mismas descripciones de otras co
sas: Llamas a estos objetos híbridos metadatos. Fs poco realista insitir cn que todo ex un
instancia © una descripción: algo es una instancia o una descripción solamente en re
Tenencia a algo más. y la mayoría delas cosus se pueden considerar desde mips puntos de

Variaciones en la interpretación. May mucha interpreticiones posibles de mudelos en
lenguaje de modelado. Uno puede definir ieros puntos de variación semántica —lugares en los
cuales son posibles diversas interpretaciones y anignar à ca ación un nombre
como variación semánico, de modo que uno pueda ind ión está utilizando. Por
ejemplo, los usuarios de Smalltalk pueden descar evitar herencia múlipe en un modelo de in.
plementacién porque no la tiene ell : programación, Los usuaris de otros lenguajes de
programación lo necesitaran. Los puntos sem

modelos de ejecución.

Parte 2: Conceptos de UML

À
y

Un paseo por UML

Este capítulo presenta brevemente los conceptos y los diagrams de UMI., usando un ejemplo
simple. Ll propósito del capítulo es organizar los conceptos de alto nivel de UML. en un pe
queno conjunto de vistas y de diagramas que presentan los conceptos visualmente, Muestra
‘im se utilizan los diferentes conceptos describir un sistema, y cómo encajan las vists unas
cou otras, Este resumen no pretendo ser completo: se omiten muchos conceptos, Para más de
tall», véanse los capítulos siguientes, que desarrollan his vistas semánticas de UML, así como
À material de referencia detallado en el vapíulo de la enciclopedia

El ejemplo es una taquilla de teatro que ha automatizado sus operaciones. Es un ejemplo in-
venado con el propósito es destaca varias construcciones de UMI. en un espacio breve, Está
simplificado y deliberadamente no se presenta por completo. La presentación de un modelo
complete, de un sistema implementado, ni cabría en un espacio an pequeño ni destacaría una
gama suficiente de construcciones. sin excesiva repetición.

Vistas de UML

No hay ninguna linea entre los diferentes conceptos y las construcciones en UML, pero, por con-
veniencia, nosotros los dividimos en varias vistas. Una vista es simplemente un subconjunto de
UML que modela construcciones que representa un aspecto de un sistema. La división en di-
versa visas es algo arbitraria, poro esporamos que os inuiiva, Una o dos class de diagramas
proporcionan una natación visual para los conceptos de cada vista

En el nivel superior. las vistas se pueden dividir en tres áreas: clasificación estructura,
comportamiento dinámico. y gestion del modelo,

ión estructural describo los elementos del sistema y sus relaciones con oros ce

montos. Los clasficadores incluyen clase, casos del uso, componentes, y nodos y elementos

proporcionan la hase sobre la cual se construye el comportamiento dinámico, La clasificación de
la vista estic, lu vist de caos de uso, y Ia visa de implementación.

mportamiento dinámico describe el comportamiento de un sistema en el tiempo. El
comportamiento se puedo describir como serio de cambios a lus fotos del sistema dibujadas a
partir dela visión estática. Las vistas de comportamiento dinámico incluyen vista de an

mu de estados, a vista de actividad, y la vista de interacción.

La gestión del modelo describe la onganización de los propios modelos en unidades jer
quicas. El paquete es la unidad! anización para Jos modelos, Los paquetes espe
ia incluyen a los modelos y 4 los subsistemas. La vista de gestión del modelo cruza las otras
vistas y la organiza para el trabajo de desarollo y cl control de configuración.

EL LENGUAIE UNIFICADO DE MODELADO. MANUAL. DE REFERENCIA.

Tobla 34

Frs Vista

estructural vaa esca

visa de casos | diagrama de casos | caso de uso, actor asociación
de uso Er ‘extension, incusión, gene

vista de Gagrama componente. interfaz, depen

implomenación | decamponentes — | dena, eaizac

vista de desptegue | dagrama | redo, component, depencen
Ge desplegue | cia lcaizacon

dinámica vista de mäquina | diagrama ‘estado, avento, transición, acción
6 ostados de osados |

Vista de activdad | eingrama ‘estado, actividad, transición de
Ge actividad terminacion, división, union

vista de interacción | dagtema interacción, objeto, mensaje

iagrama «colaboración. Interacción, rol do
| de colaboración — | eoiboracon, mensaje

gestión dei modelo | usa do gestion | diagrama de clases | paqueto, subsistema, models
el modelo

extension de UML to restricción, esterectipo, valores
| iquetacos

UML también contienc varias construcciones previstas para proporcionar una
mitad, pero stil, e extensiôn. Estas construcciones incluyen restricciones. esterealpos,y Ya.
lores etiquetados y son aplicables a low elementos de todas as vistas.

La Tabla 3.1 muestra las vistas de UML y los diagramas que las muestran, así como los
principales conceptos relevantes de cad vista. Est tabla no e debe tomar como un rgido sis
tema de reglas sino simplemente como guía so normal. dado que se permite la quezcla
de vistas.

Vista estática

ts del dominio de la aplicación así como los conceptos in
temnos inventados como parte dela implementación dela aplicación. Esta visión es estática po
«que no describe el comportamiento del sistema dependiente del tiempo, quese describe en tras
vistas. Los componentes principales de la vista estítica son las clases y sus relaciones:

y varias clases de dependencia, tales como realización y uso. Una
clase es la descripción de un concepto del dominio dela aplicución o dela solución de la plie

UNTASEOPORUML 23

«ación. Las clases son el centro alzededar del cual se organiza la vista de case; tros elementos
pertenecen 0 se unen a las clases, La visión estática se exhibe en os diagramas de cases, a
mados así porque su objetivo principal esla descripción de cases

Las clases se dibujan como rectángulos. Las listas de tributos y de operaciones se muestran
en compartimentos separados. Los compartimemos pueden ser suprimidos cundo no es nece:
Sario el detalle completo. Una clase puedo upurecer en varios diggramas. Sus atributos y ope-
raciones se suprimen, a menudo en todos menor en un diagrama.

La relaciomes entre cases se dibujan como as inc que conectan rectángulos de canes.
divers class de relaciones se diferencian por a textura de la linea y por los adornos en las I

La Figura 2.1 muestra un diagrama de clases de la aplicación de la taquilla, Est diagrams
caiene part del modelo del dominio "venta de entras”, Muestra varias clases importantes,
{ales como Cliente, Reserva, Entrada, y Representación. os clientes pueden tener muchas re
servas, pero eu reserva es hecha por un cliente, Las reservas son de den clases: suscripción y
vas individuales. Ambos reservan entradas: en un caso, solamente una entrada; en el otro.
Cada entradas parte de una suscripción de una reserva individual, pero

Cliente

Reserva

‘Obra

[ Tite
SuscripciónA

- Fueprsentación.
Enten rg

Figura 3. Dino le lacs

EL LENGUAIE-UNIPICADO DI: MODELADO. MANUAL DE REFERENCIA

mo de ambas. Cada representación tiene muchas entradas disponibles. cada una con un número.
de siento único. Una representación se puede idemtiticar por una obra. una fecha. y una hora

Las clues se pueden describir com varios niveles de precisión y concreción. Al empezar el dí

el modelo caprara los aspecto más lógicos dl problema. E las lanes posteriores. el mudelo
también capta decisiones de diseño y detal dela implementación. La mayoría de Jas vst e
en un comporismiento evoluivo simil

Vista de los casos de uso

La vita de los casos de uso modela la Funcionalidad del sistema según lo perciben los us
rios externos, llamados actors, Un caso de uno es una unidad cohcrente de funcionalidad. ex
presada como transacción entre los actores y el sistema, El propósito de Ba vista de casos de
uso ex enumerar a los actores y los casos de uso, y demostrar qué actores participan en cada
¿caso de us,

La Figura 3.2 nmestr un diagrams de casos de uso para el ejemplo dels taquilla. Los acto
res san el vendedor, el supervisor y el quiosco, FI quiosco es + accpta pedidos de
vn cliente, Fl cliente no es la Gall, porque no est conectado direc
tamente con la aplicación. Los casos de uso incluyen el comprar entradas, través del quiosco
vo del vendedor, comprar suscripciones (solamente através del vendedor) examina as ventas
totales (a petición del supervisor

El comprar entradas y el comprarlas suscripciones incluyen un fragmento común — qu
acer cargos al servicio de la nota de exito — (La la taquilla im

Taquilla

comprar
entra

comprar +} Vendedor
(suscripción,
+

Servicio delajeta
Quiosco Seat

Supervisor

UNTASEOPORUML 28

plicaría muchos otros casos de us, tales como cumbio de entradas y comprobación de dispo
Dibilidad

Los casos de uso so pueden también describir en varios niveles de detalle, Se pueden sacar
parts como factor común y ser descritos en 1érminos de otros casos de uso más simples. Un
¿aso dele se implementa como una colaboración cn la vita de interacción.

Vista de interacción

La vista de interacción describe secuencias de intercambios de mensajes entre os ol

Plemenian el comportamiento de un sistema. Un tol de clasificador, o simplemente “rol

¿descripción de un objeto, que desempeña un determinado papel dent de una interacción.

distinto delos otros objetos dela misma clase, Esta visión proporciona u del

comportamiento de un sistema —es deci. muestra el Majo de controla través de muchos ob

jetos —. La vista de interacción se exhibe en dos diagramas centrados en distintos aspectos: dí
amas de secuencia y diagrams de colaboración

El diagrama de secuencia

Un diagrama de secuencia muestra un conjunto de mensajes. dispuestos en una secuencia tem
poral, Carol en la secuencia se muestra como una línea de vida, es decir, una línca vertical

Figura 33. Dingrama de seven

2

EL LENGUAJE UNIFICADO DE MODELADO, MANUAL DE REFERFNCIA

que representa el rol durante cine plazo de tiempo, con a interacción completa. Los mensajes
se muestran como Mechas etre las fincas de vida Un diagram de secuencia pus
decir una historia individual de una transacción

Un uso de un diagram de secuencia es mostrarla secuencia del comportamiento de un caso
del uso. Cuando está implementado cl comportamiento, cada mensaje en un diagrama de se

ia conesponde a una operación cn un clase a un evento disparador, una tramáción en
una máquina de este,

La Figura 3.3 muestra un diagram de secuencia para el caso de uso comprar entrada, Este
een el quiosco, comunicándose con la taquilla. Los pasos para
o de uso hacer cargos se incluyon enla secuencia, que implica la comunicación con el qui.
o y el servicio de la tarjeta de crédito. Este diagrama de sscuencia est en una primera ctapa de
desarrolo y no muestra los detalles completos de la inter de usuario. Por ejemplo, la lora
a de La list de a mecanismo de especificar asientos, deben ser definidos aún.
pero la comunicación esencial dela interacción ha sido especificada por el caso de uo.

El diagrama de colaboración

Una colaboración modela los objetos y los enlaces significativos dentro de una interacción. Los
objetos y los enlaces son significaivos solamente en el contexto proporcionado por la interac
ción. Un mol describe un objeto y nn rol en la asociación describe un enlace dentro de una co
Jaboración. Un dia € en a interacción en uns disposición
geométrica (Figura 34) Los mensajes se muestran como flechas ligadas alas lineas dela re
lación, que conectan a los roles. La secuencia de mensajes, se indica con los números secuen

ta implementación de uns oporación. La
colaboración muestra los parámetros y las variables locales de la operación. af como ss
ciaciones más permanentes, Cuando se implementa el comportamiento. la secuencia de ls ine.
sajes conresponde la tructura de llamadas amadas y el paso de soñalos del pro

La Figura 3: muestra un diagrama de colaboración para la interacción de la reserva de en
tadas en una fase ulterior del desarrollo. La colaboración muestra la interacción entre objetos
internos en Ja aplicación para reservar entradas. La petición Mega del quiosco y se utiliza
para encontrar I hase de datos de la representación descada en el vonjunto de todas las repre
sentaciones. Fl puntero db que es devuelto al objeto vendedor de entradas representa un
enlace local tn ase de datos de representaciones, que persiste durante la inte
racción y desp EI vendedor de entradas solicita un númezo de usientos para Ja
representación: se encuentra una solvción de asientos en arias gamas de precios, se bloquea
temporalmente, y se devuelve al quiosco para la selección de los clientes. Cuando el cliente
hace una selección de I lists de asientos, se obtienen los anton Seleccionados y el resto son
liberados,

Tanto los diagramas de secuencia um los diagramas de colaboración muestran interacciones
pero acentéan aspectos diferentes. Un diagrama de secuencia muestra necuencias en cl tits
como dimensión gewnétrica, poro las relaciones cinc roles son implicites. Un diagrama de coke
Boración muestra las relaciones entre roles gcométicamente, y relaciona los mensajos con las re
Taciones, pero las secuencias temporales estän menos claras porque vienen dadas por los números
dle secuencia, Cada disgrama debe er utilizado cuando su aspecto pricipal e el foco de aención

ENPASEO POR UM. 27

re

Figura LA Diam

Vista de la máquina de estados

Una máquina de estados modela las posibles historias de vida de un objeto de uns clase. Uns
ani de estados contiene los estados conectados por transiciones, Cada estado modela u

todo de tiempo. durante la vida de un objeto, en el que satistace ciertas condiciones. Cuando
cure un evento, se puede desencadenar una transición que lleve el objeto a un nuevo estado,
Cuando se dispara una transición, se puedo ejecutar una acción unida la transición. Las má
uinas de estados se muestran como diagramas de estados

me Vendido

Disponible

EL LENGAIE UNIFICADO DF MODELADO, MANUAL. DE REFERENCIA

Ta Figura $.5 muestra un diagrama de estados de la historia de una entra para una repre
sentación. El estado inicial de uns entrada represcutado por un punto negro) e cl estado dls
ponible. Amex del comienzo de la temporada, se asignan Io asientos para los suscriptores de E
Temporada. Las entradas individuals compradas interctivusent primero so bloquean mientras
€ clieme hace una seleción. Después de eto, se venden o se liberan sino se cligen, Si el cie
te tarda demasiado en hacer una seloeciön. Finaliza el tiempo de la Iransacción y se libera el
“siento, Los asientos vendidos para suscriptores de temporada, se pueden cambiar para otras re
presentaciones, en cuyo caso, vuclven a estar disponibles otra vez.

Las máquinas de estados se pued utilizar pata describir inter
res de dispositivo y otros subsistemas reactivos, También pued

faces de ustrio, contra
a are ara descrbir los obs
jetos pasivos que pasan por varias fases cualitativas distias. durante su tiempo de vida, cl

las cuales ine su propio comportamiento especial

ae.

UN PASEO POR UML, 29

Vista de actividades

Un gra de actividades cs uns variant de una máquina de estados, que mucstra las actividades
de computación implicadas en a ejecución de un

actividad: un paso on cl Mojo de trabajo ola ejecuch

‘ex deserbe grupos secuenciales y concurrentes de actividades, Los grafo de actividades se
muestran en diagramas de uetvidados.

La Figura 3.6 muestra un diagrama de actividades para la taquilla, Eto diagram muestra las
actividades implicadas en montar una obra. (¡No tome etc ejemplo demasiado en serio len
experiencia tra!) Las flechas muestran dependencias secuencias por ejemplo, las repree
taciones deben ser seltcionadas ante de poder planificaria. Las Baras horizumales tor nentan
bifurcactones o uniones de control. Por ejemplo, después de planificar la obra. el tat puedo cu
menzar à dal publicidad, comprar guiones, Contrata artists, a constar decorados à dise
la min cer los ta Antes de que el ensayo pueda co
+ y conrad alos aristas.

mplo muestra un diagrama de actividades. cuyo propósito ex modelar los procenos
reales de una organización humana, Fl modelado de tales negocios cv un propósito importante
de ios diagramas de actividades, pero los diagramas de actividades se pueden también ul

Para muela actividades software. Un grama de actividades es provechoso para entende el
Sompurtamiento de alto nivel de la ejecución de ma sistema. sin prolundizar en los detalles ne
termos de los mensajes lo quo requeriría un diugrama de colaboración

Los parämetros de entrada y de salida de una accion se cn mostrar usando las relaciones
de Mojo que conectan la ación y un cstudo de flujo el

Vistas físicas

Las vistas anteriores modclan los conceptos dela aplicación desde un punto de vista lógico. Las
vistas físicas modela la estructu de la implementación de la aplicación por ai misma, su ur.
_ganizacion en componentes. y su desplicgue en nodos ejecución. Estas visas proporcionan ia
oportunidad de establecer correspondencias entre las clases y los componentes de implement.
ción y nodos.

Hay dos vistas físicas: la vista de implementación y ta vita de despliegue,

La vista de implementación modela los componentes de un sistema —a parir de Lo
se consiuye la aplicación — af como la dependencias entr los companies, pura poder deter.
minar el impacto de un cambio propuesto. También modela la aiguación de clases y de otros
elementos del modelo hos componentes.

La vista de implementación se represent en diagramas componentes. La Figura 37 muestra
un diagrama de componentes par el sistema de la tquill

Hay tes interfaces de usuario: la de lo clientes que usan tn quiosco, la de los vendedores
‘que usan ot sistema de reserva sutomatizado, yla de fos supervisores que hacen comsults sobre
lis ventas de entradas. Hay un componente vendedor de entradas que orden las peticiones de
los quioscos y delos vendedores; un componente que procesa los cargos ala tries de era.
y la base de datos que contiene La información de la entrada. I diagram de components mics

FL LENGUAJE UNIFICADO DI: MODELADO, MANUAL DE REFERENCIA,

„| EntidaaDeTarjetasDecrédito

CargosDeTarjetasDeCréatto 0 0 o
BDEntradas

I intertazneGestor

Supervisor

== IntertazDevendedor

IntertazDeQuiosco

Cliente Vendedor

Figura 37. Diagrama de somponentes

tru los tipos de componentes del sitema: una configuración particular de la aplicación puede to-
ner más de una copia de un component

{Un círculo pequeño con un nombre es una inesfaz un conjunte coherente de servicio —
Una línea sólida que va desde un componente a una inter, indica que el componente pro
porcion los servicios de la intrf.

Una fecha de guiones de un componente una interfaz indica que el componente requiero
los servicios proporcionados por interfaz, Por ejemplo. ls ventas de susempciones y las ventas

upon de entradas, son proporcionadas por el componente “vendeur de entradas”; las
Ventas de suscripciones son accesibles tanto para lo quioscos como para los vendedores, pero
las ventas de grupos sólo son accesibles para un vendedor

La vista de despliegue representa la disposición de las instancias de componentes de ejecu
ción en instancias de nudos, Un nado es un recurso de ejocución, tl como una computadora, un

UNPASEO FORUML 31

EntidadDeTarjotasDeCredito Gestor

CargosDeTarjetaDecrécito

InterfazDeGestor

} VendedorDeEntradas | ee

SarvidorDeEntra

['Guiosco

TerminalDoVentas

| InterfazDeCliente |

IntertazDeVendedor

Cliente | vendedor

Figura 38 Disprama de explique nivel de descripto)

ria, Esta vists permite determinar las consccucncias de la distribución y de
ción de recursos.

La vista de despliegue se representa en diagrams de despliegue. La Figura 3.8 muestra un
diagrama de despliegue del nivel de descriptor para el sistema de taquilla. Este diagrama mcs.
tea los tipos de nodos del sistema y os tipos de componentes que contienen. Un nodo se pre
senta como un cubo.

Ta Figura 3.9 muestra un diagrama de despliegue del nivel de instanci par el sistema deta
quill. Fl diggram muestra ls nodos individuales y sus enlace, en una version particular del

sistema. La informacion de este mado es vonsitente con la información del nivel de descrip
tor dela Figura 38,

2

EL LENGUAJE UNIHICADO DE MODEL ADO. MANUAL DE REFERENCIA

Vista de gestion del modelo

La vista de gestión del modela modela la organización del modelo en sí mismo. Un modelo
abuses un conjunto de paquetes que contienen Io elementos del modelo, tales como elise. má
«quin de estados, y eer de uso. Los piles puedes contener ros paquete: por la ndo, ma
‘modelo señala un puquete rai, que contiene indirectamente todo el contenido del modelo,
Los paquetes son wnidados para manipular el contenido de un modelo, así como unidades par
cl control de scceso y el control de configuración, Cala elemento del modelo pertenece 41m ae
quete os ou elemento,

Un modelo es una descripción complera de un sistema, con una determinada. precisión,
desde un punto de vita, Puedo haher varios madelos de un sistema desde distingos puntos de
vistas por ejemplo. un modelo de anilisis y un modelo de diseño. Un modelo se representa como
una he especial de paquete,

Un subsistema es at paquete especial. Representa una porción de un sistema, con una in
terfaz perfectamente determinada, que puede ser implementado como un componente distinto

Generalmente, la información de gestión del modelo so representa on diagramas de class
La Figura 3.10 muestra la descomposición de a torlidad de cisterna de teatro en paquetes y
sus relaciones do dependencia. El subsistoma de taquilla incluye los ejemplos anteriores de este

api el sistema completo tambien incluye operaciones del teatro y Subsistemas de plan
cación. Cada subsistema consta de varios paquetes

UNPASEO POR UML 33

mE

Programación

“Taquilla

Ventas | Registros
DeEntradas DeEntradas

Operaciones

Nómina

310. Pages

Construcciones de extensión

rincipales de extensión: restricciones, estereotipos, y valores

ión es una declaración textual de una relación Semántica expresada en

uaje formal o en lenguaje natural. Un estcecoti es una mueva clase de clomento

¿el modelo, dead por el modelador, y sad en un tipo existente de elemento del modelo

Un valor eriquetado es una porción de informacién con nombre, unida a cualquier clemeno del
modelo.

onstrucciones permiten muchas clases de extensiones a UML, sin requerir cambios al
lo bisico de UML. Pueden ser wills para crear versiones adoptadas a un área de
aplicación

La Figura 3.11 ¡nuestra ejemplos de resriciones, etercotipos, y de valores eiguctados La
resuicción en la clase Obra ascgura que los nombres de las abris scan únicos. La Figura 31

34 ELLENGUAJE UNIHCADO DE MODELADO, MANUAL DE REFERENCIA

Obra

Y ase de a
BD Entradas
BD Entradas

Programación

nuestra uns restricción xor entre dos asociaciones: un objeto sólo puede tener un enlace desde
tuna de clas a a vez, Lan restricciones son les para representar sentencias que se pueden ex
presar en un lenguaje textual poro que mo tienen soporte directo mediante construcciones de

UML

El estereotipo enel componente BBEntrada indica que cl componente es una hase de datos
Lo que permite omitir qué interfaces sopor, puesto que son las soportadas por todas las hanes de
datos. Los modeladores pueden ugtogar nuevos estereotipos para representar elementos espe
la. valores etiquetados, o características de L
ón del código. pueden ser asociados a un estereotipo. Un modetador puede de
‘pura un nombre de etereipo, como ayuda visual, según lo mostrado en el diagrama, No
textual se puede utilizar siempre

Los valores etiquetados en el paquete Programación muestran que Frank Martin es respon
salle de acabarla ante del final del milenio. Se puede unir a un clement del modelo cualquier
picza de información erbiraria, come un valor ciquetado bajo un nombre elegid por el mo
Belador. Los valores de texto son especialmente iles pur a información de gestión de proyecto
y para los parámetros de generación del código. La mayoría de los valores etiquetados serían al
acenos, como información emergente, dentro de una herramicnta de edición y no ap
rán generalmente en ls figuras impresin,

Conexiones entre vistas

Dentro de un modelo coenisten distintas vistas y sus elen
nexiones, algonas de las cu scan en la Tabla 3.2. Esta tabla no pretendo ser
Completa, sino mostrar algunas de las relaciones principales ente

Table 32

UN PASEO POR UML

Algunas Aelacionos entro Elementos de Dlrentes Vistas

Elemento

Elemento econ

eas de uso

acc

actviand

1

|

_ miguna de |_Prepesea

“nstancia de

realzación

[tamada

operación

paquete

due T propiedad

case lasiicacin

17

La vista estática

Descripción

La vista estática es la base de UML. Las clementos de la vist estática de un modelo son los
conceptos os en una aplicación, incluyendo conceptos del mundo ral, conceptos abs
Lacs, conceptos de implementación, conceptos de computación y toda tipo de conceptos en
dos € ejemplo, ws Sema de ent para un teal tiene eonceplos
s como entradas, eservas. planes de subscripción. algoritmos de a asignación de asientos
Páginas Web interactivas para hacer podidos, y datos de archivo para redundancia

La vista estática captura la eximctura del objeto. Un sistem orientado objeto unifies

Iruetura de datos y características del comportamiento cn una sola estructura de objeto Ls
incluye todo lo concerniente as estructuras de tos tradicionales

dación de las operaciones sobre los datos. Los datos y lis operaciones son cuantficadas en clases,

Ln la perspectiva orientada. objctos, los datos y el comportamiento se relacionan esrcchamen.

i. Por ejemplo, un objeto de entrada lleva datos. cono up

vimero de asiento, a como operaciones sobre él. como reservar. calcuar su pr

cuento especial

La vista estática describe entidades de comportamiento como clementos de modelado dis.

ruios, pero no contiene los detalles de su comportamiento dinámico, Los trata como elementos

Para ser nombrados, poseídos por los clases, invocados, Su ejecución dinámica es descrita por

¡tas vistas que muestran fos detslesintemos de su face dinámica. Estas ota vistas incluye

de estados. Lan vistas dinámicas requiren la vista

para describir las cosas que imractóan dinámicamente: no se puede decir emo inte.

0 sin decir primero qué et interactuando. La vista etíica es la base sobre la que se
construyen las otras vistas.

Lon elementos clave en a vista estática son la clasificadores y ss relaciones. Un casifie
sado es un elemento de muxolado que deseribe cos. Hay varas clases de elaifcadores, como
Tas clases, interes, y ipos de dats, Ls aspectos de comportamiento sun materalizados por
otros clasificadores, como los casos de uo y las señas, Los propúnitos de implementación es.
tán detrás de varia class de clasificador, als como subsistemas, componentes, y modos,

Los modelos grandes ss deben organiza en unidades más pequeñas para a compcnsión fe

vlización. Un paquete es uns unidad de organización de uso general para poset y

jar el contenido de un modelo, Ca elemento est contenido en algún paquete. Un modelo

En paquete que describo una vita completa de un sistema y se puede utiliza más o menos in

dependientemente de otos modelos: es la raz pscedora de los paquetes más detullados que
describen el sistema

ES

A LENGUAIE UNIEICADO DE MODELADO. MANUAL DE REFERENCIA

Un objeto es una unidad discreta, fucra de la cual el modelador entiende y construye un sis
ema. Fs una instancia de una clase s decir, un individuo con idemidad cuya estructura y com
portamiento son deseritos por la clase. Un objeto ex una pieza de estado idemificable con un
Comportamiento bien definido que puede ser invocado,

Las relaciones entre lasficadores son asociación. generalización. y varia clases de depen:
encia. como lu relización y el uso.

Clasificadores

Un clasificador es un concepto discreto en el modelo, que tiene identidad, estado. compor
miento, y relaciones. Las claves de claiicadores incluyen la case. la interaz.y los tipos de die
los. Otias clases de clasficadores son muterislizacionos de conceptos de comportamiento, de
cosas del entomo, ode estructuras de implementación. Estos clasificadores incluyen coso de uso,
Actor componente, nodo, y subsistema. La Tabla 4.1 enumera las distintas cases de clasifica
ores y sun funciones, El término clasificador del mcamonlelo incluye odos estos concept,
pero como a clase es el término más Familiar o discuriremos primer y definiremos los otros
Sonceptos por diferencia con cl

(Clase. Una clase representa un concepto diereto dentro de la aplicación que se esti modelando:
tuna cosa sica (tl como un erp}, una cosa de negocios (al como un podido), una cosa 16
ica (tal como un horario de difusión), una cosa de una aplicación (al como un hin de can.
Cela), una cose del computador tal como una tabla hash). o una cosa del comporiamient (tal
mo nature). Una cise es el descriptor de un conjunto de objetos con una estructura, com
portaient, y relaciones similares. Tecos los tributos y operaciones están unidos a clases o à
Bros clasificadores, Las clase son los Iocos alrededor delos cuales sc organizan los sitemas
orientados a objetos,

Un objeto es una cuidad diserta con idemidnd. estado y un comportamiento invocable, Los
objetos son piezas individuales fuera delas cues se construye un sistema ejecutable Las cla
Ses son los conceptos individuales, por los cuales se entiende y describe la muliicidad de ob
jetos individus

Una clare define un conjunto de objetos que tienen estado y comportamiento, El estado ex
descrito portes y asociaciones. Los aributos se uilizan generalmente para los valores par
os de los datos sin identidad, tales como número y cadenas. y las asociaciones se uiizanp

Suscripción

oraDePrecs: Categor

Figura Notación declines

LA VISTA ESTÁTICA 39

Tabla 41 Tipos de Clasticad

Giasiicador Función Notación

acer Un usuario extema al sistema

Un concepto del sistema modelado

clase on Una case restingda a estar en e estado dado =
imesado | [nombres]

Casifeador restringido a un uso partcuar en una co: | — ——
| taboracon rotNombre

componente | Una peza tiica de un sistema

ipo de dato | Undoserpior de un conjunto de valores primos que

intra | Un conurto de operaciones con nombre que caracte

Un recurso computacion

Una comunicación asinerona entre objetos

a a —
subsistema | Un paquete que as ralad como una unidad con una
especlicacón, implementación, e identidad
|
caso de uso | Una ospecticación da comportamiento de una iden:
lidad y su interacción con los agontes extemos

coneniones entre vijetos con identidad. Las piczas individuales de comportamiento invo-
cable se describen mediante operaciones: un método es la implementación de una operación. La
historia del curso de vida de un objeto ex descrita por una máquina de estados, unida a una ch.
La notación para una clave es un rectángulo con compartimentos para el nombre dela clase.
Jos atributos, y las operaciones, según se muestra en la Figura 4.1

Un conjunto de clases puede utilizar la relación de generalización y cl mecanismo de
herencia constaidos en ella para compartir piezas comunes de estado y descripción del com.
portumiento. La generalización reciona clases más específicas (subclascs) con clases más ge

0

LENGUAJE UNIFICADO Dt: MODELADO, MANUAL DE REFERENCIA

morales (uperelanes que contionen propiedades comunes a varia subclasos, Una ease puede te
mer cero ms padres suporclses) y ceo 0 más hijos (suhelixes), Una clave hereda estado y
descripciôn del comportamiento de sus padres y de otros antecesores, y define el estado y des
‘ripcion del comportamiento que sus his y otros descendientes her da.

Una clase tiene un nombre único dentro de su contenedor. que es generalmente un pa
pero algunas veces es ota case. La case tiene viiilidad con respecto a su contenedor la vi
bilidad especifica cómo puede ser utilizada por otras clases externas al contenedor, Una clase
tiene una muliplcidad que especilica cuantas instancias de ella pueden exisur. La mayoría de
las voces, es muchos (crow má, sin limite explicito), pero existen clases unitaria de la que
existe una sola instancia durante la ejecución

Interfaz. Uns imerkaz es la descripción del comportamiento de objetos sin dar su imple
mentación 9 estado: una iterfazcontiene operaciones pero no abus, y na Gee asociaciones
salientes que muestre I visibilidad desde a propia inert

Una 6 mis clases o componentes pueden realizar una inerfuz, y cada clase implementa las
‘operaciones de I merlaz

Tipo de datos Un tipo de datos os la deserción delos valores primitives, que carecen de
identidad toxitenca independiente y posibilidad de efectos secundarios). Los tips de datos in
cluyen númes «lores enumeradon. Tas tipos de dos son pasados por valor y son
mides inmutable, Un tipo de dato no tine suibatos pero puedo tener operaciones, Las ope
raciones no modifie valores de los datos, sino que pueden devolver valores de datos como re
salad,

Niveles de significado. Las cles puedon exit on vasos niveles de sigilicación en un mo
des, incluyendo los niveles de análisis diseño, e implementación. Al representar conceptos del
mundo real. es importaste captura el edo, las relaciones. y el comportamiento del mundo
real, Pero los conceptos de implementación tales como ocultación de información, eficacia, v
sibilidad. y métodos. no Son conceptos relevantes del mundo real (son conecptos relevantes de
diseño). Muchas propiedades potenciales de una clase son Simplemente inaplicable en este ni
vel, Una clase en el amis representa an concepto lógico cn el dominio de la uplicación o cn la
splicación misma. El modelo de anliis debe sor una representación minima del sitema que se
sé modelando, suficiente para cupturar la Iógica esencial del sitema, sin entrar en tcs de

Al representar un dische de alto nivel, conceptos tales como hallar los estados de una clase
particular, a eficacia de la navegación entre objeto, la Separación del comportamiento exteno
y de la implementación interna. yla especiicación delas operaciones exactas son relevantes
“ina clase, Una clase en el diseño represen la decision de empaquetar I información de estado
y Tas operaciones en una unidad discreta, Capra ls decisiones clave del diseño a localiza

dela intormación y la Funcionalidad de los objetos. Las clases en el diseño contienen a

del mundo rel y aspectos del sistema informático.

Finalmente al representar código del lenguaje de programación. la forma de una clase so

asemeja mucho ¡mación elegido, y se puedo renunciara algunas
À, sino tienen ninguna implementación direct en ella

‘clase para implementación se corresponde directamente con el código del lenguaje pro

LAVISIAESIATICA 4

EI mismo sistema puede contener más de un nivel de cline ls casos orientadas a
mentación pueden realizar cases más lógica en cl model. Una case de implementación ro.
nia la declaración de una clase como a encontram en un lenguaje de programación particular
Captura la forma exacta de una class, según lo requerido porel lenguaje, En muchos ces. di
embargo. el análisis el diseño, y la información de ha implementación se pueden anidar en u

ificadores son asociación, generuisaciön. Maja. y arias clases de de
acia, que incluyen la eslización y el uso (weasel Tabla 4.2

La rolación de lecribe conexiones semánticas entro los objetos individuales de
¿ases dadas. Las asociaciones proporcionan las conexiones. con ls cuales los vbjeto de de
vers clases pueden intractus Las relaciones restantes relacionan las denripciones de ost
Ficadores com ellos mismos. y no con sus instancias.

La relación do genoralización relaciona descripciones generales de Los clasficadores padre
Guperelases) con clasiticaores hijos especializados (subclases). La generalización facil la
descripción de clasificador, sin piezas de declaración incremental, cad uno de fos cuales
agrega a la descripción heredada de sus antecesores, Ll mecanismo de herencia construye des
cripéiones completas de clasificadores a partir de descripciones inerementales que ula:
laciones de generalización. La generalización yla herencia permiten a diferentes chsilicado
ompartir atributos, operaciones. y relaciones que tienen en común. sin repetidas

Ta relación de seslización relaciona um especicación con una implementación. Una inter.
faz es, una especificación del comportamiento sin la implementación: una clase incluye la
Estructura de implementación. Una o más clases pueden realizar una imu, y cada cl
lement las operaciones de interfaz

Tabla 4.2, Tipos de Relaciones

Falacia Función "Notación

asocacón Una descripción de una conexión ente instancias

dependencia | Una relación entre dos elementos del

up {Una relación ente dos versiones de un objeto en susan

¡enoralzación — | Una relación ento una desctpción más general y una vane
ac más específica do la genera, usada para norencia

realización lación ente una especticación y su Implementación

2

FI, LENGUAME UNIFICADO DE MODE ADO, MANUAL DE REFERENCIA.

La relación de Majo relaciona dos versiones de un objeto en momentos sucesivos, Representa
tuna transformacin de vor, estado, o localización de un objeto La relación de Nujo puede co
nectar roles en una interacción. Las Variedades de Majo son conversión (dos versiones d

mo objeto) y copi (un nuevo objeto credo de un objeto existe

La relación de dependencia relaciona las clases cuyo comportamiento o implementación
een a otras claves. Hay varias clases de dependencia además de la realización, incluyendo la
tra (una conexión leve cutre elementos de diversos modelos). refinamiento (la correspondencia
ne dos mieles de significación), uso (un requisito part la presencia de oro elemento dentro de
un solo modelo). y igaluea vación de valores los parámetros de una planilla). La de
pendencia de uso se utiliza con frecuencia para representar relaciones de implementación. tes
¿omo relaciones al nivel de código. La dependencia es particularmente útil cuando esti resumida
en unidades de organización del modela, tales como paquetes, en los cuales se muestra la es
Actu arquitectónica de un Sistema. Por ejemplo as restricciones para la compilación se pue»
‚den mostrar con dependene

Asociaciones

¡sociación describe vonexinnesdiscretas entre objetos y ot instancias de un sistema. Una

ción reluciona una ta orem (tupla) de dos o más clsificadores, con as repeticiones
permitidas, El tipo més común de asociación es una asociación binaria ente un par de clas
adores Una instancia de una asociación es un enlace. Un enlace abarca una topla (una ita oF
¿enada) de objeto». cada uno dibujalo partir de su clase correspondiente. Un enlace binario
bares un pur de objetos.

Las asociaciones van a información sobre relciones entre objeto en un sistema, Cuando
se ejecuta un sitema, los enlaces etre objetos so crean y se destruyen. Las asociaciones son el
pegamento” que mantiene unido un sistema, Sin asociaciones, no hay nada ses ais
Lada que no trabajan juntas

Suscripción

Reserva

LA VISTA ESTÁTICA 43

Organización Rae | persona

Nivel de Contribución |< ine moranéntimuncemen)

Figura 43 Cle de woe

Un solo objeto se puede asociar a f mismo sila misma clase aparece más de una vez tuna
asociación. Sila misma clase aparece dos veces en una asociación, Is dos instancias no tienen
que ser el mismo objeto, y no lo son generalmente.

‘Cada concxión de unz asociación a una clase se llama extremo de a asociación, La mayoría
de la información sobre una asociación se une a uno de sus extremos, Los extremos de la as
ciación pueden tener nombres (nombres de ro) y visibilidad. La propiedad más importante que
tenen esla multiplicidad: cuantas instancias de una case so pueden relacionar con una instan-
ia de otra clase. La multiplicidad es más iil para hs asociaciones binarias porque su definición
para las asociaciones de aridad-w es complicada

La notación para una asociación binaria es ut lnea 0 una trayectoria que conecta las clases

que participan. Él nombre de asociación se pone a lo lar de la Inca. con el nombre de rol yla
multiplicidad en cada extremo, según lo mostrado en la Figura 4.2

Una asociación puede también tenor aibutos por sí misma, en cuyo caso ex una asociación
y una ese. es deci, una clase asociación (véase la Figura 4.3. Si un stibuto dela asociación
€ único dentro de un conjunto de objets relacionados, entonces es un calificador (véase la Fi
gura 4.4). Un calificador es un valor que selecciona un objeto único del conjunto de objetos re
Taciomados a través de una asociación. Las tablas de valores y los vectores se pueden modelar
como asociaciones cualificadas. Los clificadores son importantes para modelar nombres y x
digs de identificación. Los calificadores también modetan índices en un modeto de diseño.

Durante el análisis, las asociaciones representan relaciones lógicas entre objetos. No hay
zan necesidad de imponer la dirección. de tratar sobre cómo implementarla. Las asociaciones
redundantes deben ser evitchs porque no añaden ninguna información lógica. Durante el diseño,
las asociaciones capturan las decisiones de diseño sobre a estructura de datos. así como la se

Obra [ercer reza,
en: Nam Ventas

Figura 44 Asociación aliada

FL.LENGUAJE UNIFICADO DE MODELADO, MANCAL DE REFERENCIA

Persona -| Dirección

EntadaDoTiansación |

ón de rexponsabilidades entre clases, La dirccionalidad de la asociaciones es important
y las asociaciones reinndantes pueden ser incluidas por eficacia en el ucceso al objelo. así
como para localizar la información en una ease particular Sin embargo, en esta etapa de mode
lado, las asociaciones no se deben comprar con os punteros de C++. Una asociación navegable
en I etapa de diseño representa información de estado disponible para una clase, poro puede in
plementarse en código del lenguaje de programación de varias maneras. La implementación pue.
de er pnt, una cle contenedor mia en una che. cise una abla de js
fe separada. Ou class de propiedades del diseño incluyen visibilidad y posibilidad
‘eambio de enlaces. La Figura .5 muestra algunas propiedades del diseño de asoctaciones

Agregación y composición. Una agregaciön es una asociución que representa una relación
todo- pane, Se muestra adornando con un diamante hueco cl extremo dela trayectoria unida ala
clase agregada. Una composición es una forma más fuene de asociación. en a cual el compuesto
sel responsable único de pestiona sus partes. por ejemplo su asignación y desasignación. Se
‘muestra con un diamante relleno adormando ci Extremo compuesto. Hay una asociación separada
entre cada clase que represent una parte y la clase que representa el todo, pero por convenien,
cia, las trayectorias unidas al todo pueden ensamblarso juntas para dibujar el sistema enter de
asociaciones como un ärbol. La Figura 1.6 nuestra un agregado y un compuesto,

Enlaces. Una instancia de ana asociación es un enlace, Un enlace es una ta ordenada de ro
Ferencias a objetos, cada uno delos cuals debe ser una instancia de la clase correspondiente en
la asociación o una instancia de un descendiente de la case. Los enlaces en un sistema const
{yen parte del estado del sitema. Los enlace no existen independientemente de los objetos 0

Suscripción | ses Pedido.

i Le

LAVISIA ESTÁTICA 45

‘mam ss identidad de los objetos que se setacionan on términos de bases de datos. la sta de ab
jetos esla cave para el enlace). Conceptualmente, una asc es distinta de las cases que re
Taeiona, Fin la práctica, las asociaciones se implementan a menudo usando punteros en las clases
participantes, pero se pueden implementar como objetos contenedores, separados de ls clases
‘que conectan.

Bidireccionalidad. os diferentes extremos de una wsociación son distinguibles, incluso si
dos de llos implican la misma case, Esto signi simplemente que diversos objetos dela mis
ma clase pueden ser relacionados. Debido à que los extremos son distinguibles, uns asociación
mo ox simétrica (excepto en cuson especiales los extremos no pueden ser intercambiados.
Estos sólo sentido coma: el sujeto y el predicado de un verbo no son permutabl, A veces,
e dice que una asociación es bidireccional, Et significa que ls relaciones lógicas taba
bes sentidos, Esta declaración se eniende mal con Iroeuencia, incluso por à
logos. No significa que cada clase “conozca” a la tra clase, que, en una implementación, sea
posible ener acceso a cada case dese la ora. Significa simplemente que cur relación 16.
tone un contrario, tanto slo contrario es Fil de computar como sino, Las asociaciones se
marcar con ditesciones de navegación. para asignar la posibilidad de atravesar una aso.
en una dicección poro no en la otra, como una decisión del diseño.

¿Por qué es relacional el modelo básico. en vez de con punteros, que son un modelo más fre
cuente en lenguajes de programación? La razón es que um modelo procura capturar el objetivo
subyacen a una implementación. Por consiguiente, si ns relación entre dos clases se modela
¿omo un par de punteros. los punteras deben esta relacionados, El concepto de asociación
conace que las relaciones son signiicutivas en ambas diresciones, sin impor

plementan, Es sencilla convertir una asociación en un par de punters para su

pero es muy difícil reconocer dos punteros que son contaros ent

Generalización

La relación de generalización os una rlación taxonómica cnt una descripción m
tuna descripción más espscífia, que se comtruye sobre el y la extiende. La descripción más es
es completamente consiicnto con la más general lene todas sus propiedades, miembros
y relaciones), y puede contener información adicional. Por ejemplo, una hipoteca es una clase
mis específica de préstamo, Una bipoteca guarda la propiedades básicas de un préstamo pero.
gresa propiedades adicionales, tales como una cesa o como Segurid A préstamo. La des
eripción más general se Hama pudre: un clement en la clausura 1
descripción más específica se ma hijo un elemento en la claus tastes ex un descendiente,
Fn el ejemplo, l préstamo os la clse del padre y la hipoteca ex la clase hija. La generalización
liza para los clasisicadores (clases interfaces, tipos delos datos. casos de uno, actores, se
fale, otero, paquetes, máquinas de estado. y oros elementos, Par as clases, ls términos sur
porelas y subclase se utilizan pura el padre y el hijo

eneralización se dibuja como una Mecha desde hijo al padre, con un triángulo hueco en
el extremo conectado con el padre (Figura 4.7). Varas relaciones de generalización se pueden
dibujar como un ¿ebo! con una punta de flecha que se ramifica en varias línas à los hijos.

Propósito de la generalización. La generalización tiene dos propósitos. El primero debe
definir ss condiciones bajo los cuales una instancia de un clase (u otro elemento) puede ser

4

FI.LENGUAIE UNIFICADO DE MODEI.ADO. MANUAL DE REFERENCIA

PedidoPorCorreo PedidoEnTaquilla

2:47. Notación dela one

ilizado cuando se declara una variable (tal como un parámetro o variable del procedimien-
10), conteniendo valores de una clase dada. Esto se lama principio de sustitución (de Bib
a Liskov), La regla es que una instancia de un descendiente se puede utilizar dondequiera que
esté declarado el antecesor Por ejemplo, si una variable so declara para contener présicmos, un
‘objeto hipoteca es un valor legal para es vial

La generalización permite operaciones polimórfcas, es decir operaciones cuya implemen
tación tmétodo) es determinada por la clase de objeto a a que se aplican, en vez de ser indie

da explícitamente por el llamador, Esto funciona porque una clase padre puede tener muchos
hijos posibles, cads uno de los cuales implementa su propia variación de una operación, que se
define a través de todo el conjumo de clases. Por ejemplo. el cálculo de intereses funcionaría de
Forma diferente en un hipoleci y en un próstamo para un automóvil, pero cada uno de ellos es
‘una variación del cúlulo de interés de In clase padre Préstamo, Cuando se dectara una variable
¿e la clase padre, cualquier objeto de clases hijas puede ser asociado a ella, lógicamente cada.
uno de ellos con sus propias operaciones según la clase ala que perenezca. Esto es particular
mente til porque se pueden agregar nuevas clases mis adelante. sin necesidad de modificar las
Tlamadas polimórfices existente. Por ejemplo. e podría agregar más adelante una nueva clase
préstamo, y el código existente que wiliz la operación del calculo de Interés todavía funcio:
maría. Uns operación polimórfica se puede declara sin una implementación en una clase pale
on objeto de que se proporcione una implementación para cada clase descendiente. Tal o

ón incompleta es abstracta y se representa poniendo si nombre en cursiva,

E otro propósito de a generalización es permit Ja descripción incremental de un elemento
que comparte las descripciones de sus amtecesores, Est se lama herencia. La herencia es el

nismo por el cual la descripción de los objetos de una clase se ensambla a partir de los
fragmentos de dectaración de la clase y de sus antecesores. La herencia permite que las partes

artidas de Ja descripción sean declaradas una vez y compartidas por muchas clases, en
logar de que se repitan en cada clase que las utiliza. AT compartir se reduce ci tamaño del mo
delo. Más importante aún. reduce el múmero de los cambion que se deben realizar en una ac-
tualización del modelo y seduce la posibilidad de inconsistencia accidental. La herencia trabaja
de una mancra similar con otras clases de elementos, tales como estados, señales, y casos de

LA VISTA ESTÁTICA 47

Herencia

Cada clas de elemento generalizable tiene un conjunto de propiedades que se puede heredar.
Para cualquier elemento del mods, éstas incluyen restricciones, Para los clasificador, también
incluyen as propiedades atributos, operaciones, y recepción de señales) y la participación en
asociaciones, Un hijo hereda todas las propiedades heredables de todos sus antecevores, Su
conjunto completo de propiedades es el conjunto de propiedades heredadas junto con las peo
Piedades que declara direc

En un clusiicador, ningún «tributo con a misma signatura se puede declrar más de una vez
(directamente 0 heredado). De lo contrario, hay un conflicto y el modelo está mal formado. Es
deci. un atributo declarado en un untecesor no puede estar redeclara en un descendiente, Una
Operación se puede declarar en más de un clasificador. con tal que as especificaciones sean con.
sistentes (los mismos parámetros, restricciones. y significado)

Las declaraciones adicionales son simplemente redundantes. Un método puede ser declara
do por múltiples clases en una jerarquía, Un métado unido a un descendiente reemplaza y
sustituye elimina) a un método con la misma signstora declarado en cualquier antecesor. Sin
embargo, si dos a más copias distinta de un mutodo son heredadas por una clase (via herencia
lt de diversas class), entonces estén en conflict y el modelo está mal formado. (Age
mos lenguajes de programación permiten elegir uno de los mótodos explícitamente. Encontramos

nple y más seguro tener que redetinir el método en la clase hija, Las restricciones cn un
ento son la unión de la ostriccionos en el propio elemento y todos us antecesores dí cua:
Jesquiera de ellas son contrarias, entonces of melo está mal forma.

En una clase conereta, cada operación heredad 0 declarada debe tener un método definido,

cctamente o por herencia de un antecesor

Herencia múltiple

Si un clasificador tiene más de un padre, hereda de ambos (Figura 4-8). Sus propiedades
(atributos, operaciones, y señales) son La unión de los de sus padres. Aunque la misma clase

Reserva

TransacciónConMarcaDeTiempo

Figura 48. Herencia mip

se

FL LENGUAJE UNIFICADO Dk MODELADO, MANUAL DE REFERENCIA

aparezca como unocesor por más de una ruta, sólo contribuye con una copia de cada uno de
sus miembros. Si uns propiedad, con la misma signatura, os declarada por dos clases que no la

lan de un antecesor común (declaraciones independientes), entonces las dscaraciones es
tán en con modelo está mal formado. UML. no proporcion una regla de resolución
del conflicto, pura eta situación, porque la experiencia ha demostrado que el diseñador debe
resolver explícitamente. Algunos len; Eile, permiten que los conflictos sea
resueltos explícitamente por el programador. que es mucho más seguro que las reglas impli
«tas de resolución del conflicto, que conducen con frecuencia a sorpresas pura el deseo

Tador

Clasificación simple y múltiple

Fin la Formulación más simple, un objeto iene una cise directa, Muchos lenguajes orientados.
bjetos tienen esa resicción. No hay necesidad lógica de que un objeto tenga una soa clase:
nosotros observamos cası siempre los objetos del mundo real de

neamente. En a formulación más general de UML, un objeto puede tener una o más cla
rectas, FI objeto se comporta como si perteneciera a una clase implícita que Fuera hija de coda
una las claves direct en este seudo, con herencia múlpie no hay neces realmente de de.
clarar la nueva clase,

Clasificación estática y dinámica

En la formulación más simple, un objeto no puede cambiar su clase después de haber sido
ea. Una vez mis. no hay necesidad lógica para ext restricción, Tiene como objeto sobre
todo, hace mentación de lenguas do programación orientados a objetos más sencilla
En la formulación más general, un objeto puede cambiar su clase directa dinámicamente, Ha
ciendo eso. puede mar atriburos o asociaciones, Si los pierdo, la información en lla
se pierde ÿ no se puede recuperar más adelanto, incluso si cambia de nuevo ala ease original. Si

isciaciones, entonces deben ser inicilizados en el momento del cambio, de
‘manera similu a a inicialización de un nuevo objeto.

Cuando la clasificación múliple se combina con la clasificación dinámica, un objeto puede
fe toda su vida, Las chives dinámicas a veces se llaman roles o tipos.
Un patrón de modelado común es requerir que cada objeto tenga una sola clase inherente est
ambiar durante toda la vida de objeto) y cero o más clases rol que Se

puedan agregar quitar durante el curso de vida del objeto. La clase inherenie describes
picdados fund es, y la clases de ol describen propiedades transitorias. Aunque muchos
les de la clasificación dinámica múltiple en la jerarquía de
declaración de clases os, sin embargo, un concepto de modelado valioso, que se puede repre.

Realización

La relación de realización conecta un elemento del modelo, tal como una clase, con otro
clement, tal como una interfaz, que especifica su comportamiento pero no su estructura im.
plementaciön. El cliente debe tener (por horencia o por declaración direct), al menos todas Jas

A VISTA ESTÁTICA 49

ras. MendEmergente

BloqueDeElección ein Bon)

VectorDeBotónDeOpción

E | Lem

Figur 39 Retchn de wats

‘operaciones que tien el proveedor. Aunque la realización prtende ser utilizada con elementos

ión, tales como interfaces, tsmbién puedo ser utilizada con un elemento concreto
de implementaciön para indicur que su cspecificación (pero mo su implementación) debe es
tar presente. Por ejemplo. esto se puede utilizar para mostrar a relación de una versión optim
ad de una clase una versión más simple pero ineficaz

La generalización y la ealizacion relacionan una descripción más general, con versiones más
detalladas de la wisi. La generalización relaciona dos elementos en el mismo nivel sem

o (en el mismo nivel de absracción, por ejemplo) genersimente dentro del mismo modelo; la
eslizaión rlaciona dos elementos cn diversos niveles semánticos (um clase del análisis y una
clase de diseño, por ejemplo, o una inert y una clas). a menudo en diversos modelos. Puede
babor os © más jerarquías completas de clases en disuntas etapas de desarrollo, cuyos ele
mentos están relacionados por realización, Las dos jerarquías no wecesitan ener la misma forma.
porque lis clases que la realizan pueden tener dependencias de implementación que no sean re
levantes en las eases que actin de especificación

La realización se indica con una Mechs de linea discontinua con una punta de Mechs hueca
cercada (Figura 4.9). Es similar al simbolo de la generalización con una línea discontinua.
para indicar que es similar a un tipo de herencia,

Hay una notación reducida especial para mostrar interfaces (sin su contenido) y las cases o
los components que los realizan. Se mues la interfaz como un círculo pequeño, unido al rec
lo del clasificador por una línea sólida (Figur 4.10).

EnviorTarea
RevisarEstado ServiderDelmpresin
EstablecerPropiedadesDelmprasién

so

EL LENGUAJE UNIFICADO DE MODHI ADO, MANUAL DE REFERENCIA

Dependencias

i indica una relación semúnica entre dos o más elementos del modelo. Rela
ciona los elementos de modelo entre ellos, y no requiere un conjunto de instancias para su Sie
nificado, Indica una situación, eu la cual un cambio al elemento proveedor puedo requer un
cambio o indicar un cambio en el sigilicado del elemento cliente en ls dependencia

Las relaciones de asociación y generalización son dependencias según esta definición, pero
tienen semántica específica con consccuencias importantes, Por lo tanto, tienen sus propios
nombres y semántica detallada, Utilizamos normalmente la palabra dependencia para cl reto de
relaciones, que no encajan en categoria más definidas. La Tabla 4.3 enumera las clases de de
pendencia encontradas en el modelo base de UML.

Una traza es una conexión conceptual entre clementos de diversos modelos. u menudo mo
detados en diferents tapas del desarollo. Carece de semántica detallada, Se utiliza típicamente
para seguir L pista de requisitos del sistema. a través de las modelos, y para no perder de vita
los cambios realizados en un modelo, que puedan afectar aros modelos

Un refinamiento es una relación entre dos versiones de un concepto en diversas ctas del de
sarollo wen diversosniveles de abstracción. Los dos conceptos mo pretenden coexistir en el mo
delo final detallado, Uno de ellos es goneralmente una versión menos acabada del ouo. En
principio, existe una correspondencia del concepto menos acabado al concepto acabado. Esto no
significa que la traducción sea automática, Generalmente el concepto más detallado contiene las
decisiones tomadas por el diseñador, las decisiones del diseño que podrían haberse tomado de
muchas maneras. En principio, los cambios un modelo se podrían validar conta el our, seña.
lando ls desviaciones, Fa la práctica, las hcerumientas no pueden hacer todo eto hoy en día,

nque se pueden implementar algunas correspondencias más sencillas. Por lo tanto un refina
miento es sobre todo un recordatorio al modelador de la presencia de mútiples modelos cla
cionados de una manera previsible

Una dependencia de derivación indica que un elemento se puede computar à partir de oro
elemento (se puede haber incluido explícitamente el elemento derivado en cl sistema para ev.
tar una recomputación costosa), La k . el refinamiento, y la traza son de
pendencias de abstracción: relacionan dos versiones de la misma cosa subyacente

Una dependencia de uso es una declaración de que el comportamiento o a impleme:
de un elemento. afectan al comportamiento o la implementación de otro elemento. Con fre.
cuencia, est se debe temas de implementación, tales como requisito del compilador que ne-

a la definición de una clase para compilar ora clase, La mayoría de la dependencias de uso
se pueden derivar del código y no necesitan ser declaradas explícitamente, a mio que scan
parte de un estilo de diseño descendente, que limita la organización del sistema (pur ejemplo,
usando componentes y bibliotecas predefinidos). Fl tipo específico de dependencia de uso
puede ser especificado, pero esto se omite a menudo porque el propósito dela relación es des
tacar la dependencia, Los detalles exactos se pueden obtener a menudo del código de inpie-
mentación. Los estereotipos de uso incluyen fa Hamada y la instanciaciön. La dependencia de
amada indica que un método, en una case, lama una operación en tra case: la instanciación
indica que un método, en una clase, crea una instancia de ura clase

nas variedades de dependencia de uso conceden permiso para que los elementos tengan
acceso a otros elementos. La dependencia de acceso permite que un paquete vea el comenido de
oo paquete. La dependencia de importación va más os, y agrega los nombres de los conte:
nidos del paquete destino al espacio de nombres del paquete desde el que se importa

TA VISTA ESTÁTICA St

Tabla 43 Tios de Dependencias.

Dependencia me Palabra clave

‘acceso | Pormeo para un paquete para acceder alos come. [access/accode

Igedara [asignación de valores alos parámetros do una plan: [bina-nigado
ita, para generar un nuevo elemento de modelo

lamada tableve que un método de una clase lama a una [calama
operación de ora

dervaciôn — [Establece que una instancia puede ser calculada a |derive/deriva
parir de ova

amigo Permiso para un olomonto para accedera oro cie |riondiamige
monto reteranta al visio cac

imporación — [Permiso para un paqueto para accedor alos conte. |importimporta
nidos de oro paqueto y añadr alas de sus nombres
en ol espacio e nombres del importador

nstanciacion [Establece quo un método de una caso cres nstan- |instentiata/usa instancias

parämetro [Relación entre una oporación y sus parámettos | parameteriparametro

roalzación — [Correspondencia enre una especiicacón yla impe- reallz/roaliza
mentación dela mama

refinamiento | Establece quo existe una corespondonca entre el: refine” retina
mentos a dos velos semanticosoerentes

Rotación entr ol emisor de una señal y clrecaptor. |sencienvia
[e la misma.

Establece que oxste alguna conexión one elemen: |trace“fraza
los en arerentos madelos, paro menos preciso que

Esiaoieco quo un clement require la pesoncia de [use vasa
oto element, para su correct funcionamiento (a

cuye amada, nstarciacén, parámetro, envío, pero
est abieno a oros 1008)

dle amistad es una dependencia de acceso, que permite que el cliente vea incluso el
lo privado del provecdor,

Una ligadura es la asignación de valores a los parámetros de una planíll, Es una relación al
tamente estructurada, con la semántica exacta obtenida sustituyendo los argumentos por los pa
iminos, en una copia de a planilla.

52 HLLENGUAIE UNIHCADO DE MODELADO, MANUAL DF REFERENCIA

Taquilla -| MotorDeProgramación

Figura u Dependencia:

Las dependencias de uso y de ligadura implican uma semántica fuerte entre elementos al mis
mo nivel semántico, Deben conecta elementos al mismo nivel del modelo (ambos en análisis o
en diseño, yal mismo nivel de abstracción). Las depondencias de traza y de refinamiento on
mis vagas, y pueden conectar elementos de distintos modelos v nivele de abnracción.

La instancia de la retación (una metarelación, mo etrieumente una dependencia) indica que
un elemento (tl como un objeto) e una in le oro elemento (al como una clase),

Una dependencia se dibuja como una flecha de linea discontinua, dese el liente al pro
veedor, con una palabra clave de esterentipo para disinguira. según lo mostrado en la Figo.
ma

Restricción

UML provee un sistema de conceptos y de relaciones pura modelar sistemas como grafos de cl
mentos de modelado, Sin embargo, algunas cosas se expresan mejor linguiticamemte,s dech
usando la potencia de un lenguaje textual. Una restricción es una expresión booleana represen
tada como una cadena interpretable en un determinado lenguaje. Para expresar restricionos se
puedo utilizar el lenguaje nator. notación de teoría de conjuntos. lenguajes de restricciones 6
varios lenguajes de programación,

UME. incluye la definición de un lenguaje de resrición, llamado OC, adecuado para ex-
presas restricciones de UML. Esperamos que seciba un amplio apoyo y soporte. Véase la 1e.
neia de OCL y el libro [Warmer-99] para más información sobre el mi

— ¡2 Miembro-de y —

Persona turn | Comité una enr or

Sillade +” — _

01 Compañía

Figur 2 Resines

LA VISTA ESTÁTICA — 53

Se uan ii ls restricciones para indicar varas relaciones no locals, tales como res
triciones enla asociacionos, En dell, las resriciomes se pueden utilizar para indicar propi.
¿ados de existencia (existe un X tal que la condición Ces verdadera y propiedades universales
(para oda ven ¥ la condición D debe ser verdadera).

Algunas restricciones estándar han sido predefinidas como elementos estándar de UML. por
las asociacionos en una relación de “o exclusivo” y varias restricciones en las relacio
res entre subclases enla generalización.

Véase el capitulo 14, elementos estándar. pura más intormació

restricción se muestra como expresión del testo entre Haves, Puede ser escrito en un len
guaie formal o natura. La cadens de texto se puede colocar en una nota o unir a una Mecha de
dependencia. La Figur e nas restricciones.

Instancias

Una instancia es una entidad de ejecución com identidad. es decir lgo que puede sor discinguido
de otras enida ón. Tiene un valor en todo momento. A lo largo del tiempo. cl va
Jor puede cambiar on respuesta a operaciones sobre él

Un propósito de un modelo es describ os posibles estados de un sistema y de su compor-

modelo es una declaración de potencia, de as posible colecciones de objetos que

exist, yde la posible historia de comportamiento que los objetos pueden experimentar

estática define y restringe las posibles configuraciones de los valores que un sistema en
ejocución puede asumir

La vist dinámica define las maneras por las cuales un sistema en ejecución puede pasar de
nut Tas distitas vistas dinámicas husos en ell,
y ol comportamiento de un sitema

Uns configuración articular de un sistema en un instante se Hama una instantánea.
Una abarca objetos y otras instancias. valores, y enlaces, Un objeto cs una instancia
de una clase, Cada objeto es una instancia directa de fa clase que lo describe totalment y una.
instancia indirect de los antecesores de es clans, (Si xe permite la claificación múltiple, en-
in objeto puede ser la instancia directa de más de una clase.) Del mismo modo, cada en

Jancis de una asociación. y cada valor es uns instancia de un tipo de datos

{Un objet tien un valor para cada suribuo de su clase, LI valor de cada atributo debe ser
consistente com el tipo de dato del sito. Si el atributo tiene mulplicidad opcional o múltiple,
entonces el atributo puede contener cero o miliple valores, Un enlace abarca una tupla de va
loros, cada uno de los cuales e uma referencia a un objeto de na clave dada (0 uno de sus des
cendientes) Las objetos y los enlaces deben obedecer cualquier restricción en las clases o las
asociaciones de las cuales son instancias incluyendo tanto restricciones explícitas como res
tricciones incorporadas. tales como la multiplicidad).

El estado ce un sister es una ¿nani válida del sistema si cada instancia en les instan
fn elemento de un mismo modelo de sistema, este modelo esti bien formado, y todas

las restricciones impuestas por el modelo son satisfechas por los casos
La vista estética define el conjunto de objetos valores, y enlaces que pueden exist en una
sola instantánea. Fn principio, cuslquicr combinación de objetos y de ences que sen consistente

s

EL LENGUAJE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA.

‘con una vista estática es una configuración posible del modelo. Esto no significa que toda ins
tanténca posible peda ocurrir u ocurra. Algunas instantáneas pueden ser legales eslaticamente
pero pueden no ser dinámicamente accesibles ajo las vistas dinámicas del sistema

Los elementos y diagramas para comportamiento de UML describen las secuencias válidas
de las instantáneas que pueden ocurrir como resultado de efectos del comportamiento externo €
interno. Las vistas dinámicas definen cómo se mueve e sistema de una instantánea ora

Diagrama de objetos

Un diagrama de una instantánea es una imagen de un sitema, en un instante en el tiempo. De-
ido a que contiene imágenes de objetos, se Hama diagrama de objetos. Puede ser til como
ejemplo del sistema, por ejemplo, ilustrar las estructuras de datos complicadas o mostrar el com
portamiento con uns secuencia de instantáneas en un cierto plazo (Figura 4.13), Recuerde que
odas las instaníneas son ejemplos de sistemas, no definiciones de sistemas, La definición dela
estructura y del comportamiento del sistema se encuentra en ls vistas de definición, y constr
las vistas de definición es el objetivo del modelado y el diseño.

La vista estática describe los casos posibles que pueden ocurrr. Los casos reales ge
mente no aparecen directamente en modelos, los.

partes Pomo

Figura 4.13 Diagrama de objetos

La vista de casos de usos

¿>
L

Descripcion

La vista de casos de uso captura el comportamiento de un sistema, de un subsistema, o de una

al como se muestra a un usuario exterior. Reparte la funcionalidad del sistema en tran
acciones significativas para Tos actores usuarios ideales de un sistema, Las piezas de funciona-
lidad interactiva se llaman casos de uso, Un caso de uso describe una interacción con los actores
como secuencia de mensajes entre el sistema y uno o más actores El iármino actor incluye alos
seres humanos, as como otros sistemas informáticos y procesos. La Figur 5.1 muestra un día
grama de casos de uso, para una aplicación teetónica de vena por catálogo. El modelo se ha sim-
plificado como ejemplo.

> Catálogo telefónico |

Cliente

Mensajero

Supervisor

56 EL LENGUAIR UNIFICADO Dr MODELADO, MANUAL DE REFFRENCIA

Actor

{Un actor es una idealización de una persona extema, de un proceso, o de una usa que Interacnia
con un sistem, un subsistema, una se. Un actor caracteri fs interacciones que los usuarios

ores pueden tener con el sistema, En tiempo de ejecución, un usuario Físico puede estar
mido a os actores múltiples dent del sistema, Diferentes usuarios pueden estar ligados a is
m actor y por lo tanto pueden representar casos múltiples de la misma definición de actor

Cad actor participa en uno o máx casos de uso. Interact con el caso de uso (y por lo tanto
¡on el sistema o la lane que posee el caso de uso), intercambiando mensajes. à implementación
interna de un actor no es relevante en el caso de uso: un actor pued ser caracterizado sul
cientemente por un conjunto de atributos que definen su estado,

Lax actes pueden ser definidos en jerarquías de generalización, en as cuales una descripción
abstracta del actores compara y aumentada por una o más descripciones específicas del actor

Un actor puede ser un ser humano, otro sitema informático, un cierto proceso ejecutable,

Se dibuja a un actor como una persona poqueña con trazos in

de uso

Un caso de uso es una unidad coherente de Funcionstidad, extermamente visible, proporcionada
por una unidad del sistema y expresada por socuentcius de mensajes intercambiado: por la um.
dad el sitema y uno o más actores, El propósito de u > es definir una pieza de com
portamiento coherente. sin revelar la estructura interna del sistema. La detinición de un caso de
uso incluye todo el comportamiento que implica: las hin os as difeentos vuracio
nes sobre el comportamiento normal. y todas ls condiciones excepcionales, que pueden ocurrir
«on tal comportamiento, junto con la respuesta descada. Desde el punto ale vista de los usuarios.
éstas pueden ser situaciones anormales. Desde el punto de visa delos sistemas, son as varia
«iones adicionales que deben sor descritas y manejadas

En el modelo, la ejecución de cada caso de uso es independiente d las demás, aunque una
implementación de casos de uso puede crear dependencias implícitas entre ells, debido a los
objetos compartidas, Cada. caso de uso represonta una picza ortogonal de la Funcionalidad. cuya
ejecución se puede mezclar con la ejecución de otros casos de uso,

La dinámica de un easo de uso se puede especifica por la interacciones de UML. mostradas
como diagramas de st amas de secuencia. diagramas de colahoraciön. descripciones
intormales de testo. Ci plementan. os easos de uso son reslizados mediante colabo-
raciones ente clases del sistema. Una case puede participar en miltiples colaboraciones. por
Lo amo, on múlples casos de uso,

Enel nivel de sistema, los casos de uso representan el comportamiento externo de todo sis
{ema tal y como se muestra a los usuarios exteriores. Un caso de uso es como una operación de
sistema, una operación invocable por un usuario exterior: Sin embargo, a diferencia de una ope
ración, un caso de uso pede continuar recibiendo la entrada de sus uctres durante su ejecu
ción. Los casos de uso también se pueden aplicar internamente unidades más pegueñas de un
sistema, tales como subsistent y clases individuales. Un coso intro de uso representa el
comportamiento que una parte del sistema present al resto del sistema, Por ejemplo, un cano

LA VISTA DECASOS DEUSOS 87

de uso para una clase representa una piers coherente de a funcionalidad que una clase pro-
porcion a otras clases que desempeñen cienos roles dentro del sistema, Una case puede tener
más de un caso de uso.

Un caso de uso es una deserción lógica de una parte de Funcionalidad del sistema. No es una
«construcción manifiest en la implementación de un sistema, En su lugar, cada caso de uso se debe
corresponder cun la cases que implementan un sistema, Fl comportamiento del caso de uso
se corresponde con las transiciones y operaciones de la cases, Ya que una clase puede desem-
peñar roles müliles en a implementación de un sistem, pued por o tanto realizar porciones de
múltiples casos de uso. Una parte de a ta del diseño ex encontrar las clases de implementación
que combinen claramente los roles apropiados para implementar odos los casos de uso, sin
introducir complicacions inuecesaris, La implementación de un caso de uso se puedo modelar
como un conjunto de una o máx colaboraciones, Una colaboración es um realización de un cano

Un caso de uso puede participar en varias relaciones, además de poderse asociar con actores
(Tabla 5.

Un caso de uso se dibuja como una elipse con su nombre dentro o debajo de fla, Se conce=
La por líneas con trazo continua con los actores que se comunican con ela

Aunque cado instancia de un caso de uso es independiente, la descripeiön de un caso de uso
se puede descomponer cn factores de oros caso de uso más simple, Esto es similar la manera
en que la descripción de una clas se puede definir incrementsimente a partir dela descripción
de as superclaes, Un caso de uso puedo incorporar simplemente el comportamiento de otros ca
sor de uso como fragmentos de su propio comportamiento. Eso se llama relación de inclusión
En este co, el nuevo caso de uso no es un cano especial del caso de uso orginal, y no se pue
de sustituir por él,

Un caso de uso e puedo también definir como una extensión incremental de un ©
hase. Esto se una relación de extensión. Puedo haber varas extensiones del mismo ©

asc. que pueden ser aplicada conjuntamente, Las extensiones a un aso de uso base se agregan
su Semántica; que es el caso de uso hase instanciado. no los casos de uso de La extemión.

Las relaciones de inclusión y extensión se dibujan como fechas de Hews discontinuns con la
palabra clave «imelude- o «extend». La relación de inclusión upunta al caso de uso a ser in-
lid; la relación de extensión señala el caso de uso que se extenderá,

Tabla 5.1 Tipos do Relaciones de Casos de Uso

Pei Función

rockon La lines de comunicación ent un actory un caso do uso on el
que participa

extension La inserción de comportamiento adicional en un caso de uso | “extend —
base que no Nano conocimiento sobre dl =>

Una relación entre un caso de uso general y un caso de uso
| más especifoo, que hereda y hace propiedades a aquél

inclusión Insercón de comportamienio adciona en un caso de uso base, | “include:
que describe explictamontolainsorcón es,

ADO DE MODEL ADO, MANUAL. DE REFERENCIA

Hacer Pedido ), Solicitar
\ Catalogo

Suministro Pedir >) (Shea
‘de Datos. Producto Eausioge
¡ee Clientes, en

(Pagar al Acordar
Contado credito

Vigura 52. Relaciones de casos de uo

{Un caso de uso también se puede especalizares

100 mis casos de uso hijos. Ésta esla go
neralizacin de casos de us. Cualquier ca

o de uso hijo se puede utilizar en una sición en.
se espera el caso de uso padre

La generalización de casos de uso se dibuja igual que cualquier seneralización, utilizando

nea desde el caso de uo hij al caso de uso padre com una punta de fecha triangular gran
nel extremo del padre La Figura 52 muestra ls re
de venta por catálogo.

iones de casos de uso en aplicación

1

La vista de la máquina de estados

Descripción

La visa de la máquina de estados deserihe ct comportamiento dinámico de los objetos, en un
cierto plazo, modelando los ciclos de vida de los obje clase. Cada objeto se tata
como una entidad aislada que se comunica indo detectando eventos y
respondiendo a ellos. Los eventos represent las clases de cambios que un objeto puede u
tectar la recepción de llamadas v Señales explícitas desde un objeto otro, un cambio en cee
tos valores, o el paso del tiempo, Cualquier cosa que pueda ufectara un objeto se puedo ca.
rar Como evento. Los sucesos del mundo real se modelan como señales del mundo

Un estado es un conjunto de los valores de un objeto para una clase dada, que tienen la mis
ma respuesta cualitativa los eventos que ocunsen. Es decir, todos las bjctos con el máximo es.
tado reuccionan de la misma manera general a un event, ax que todos los abjetos en un estado

¿lado ejecutan la misma acción cundo reciben el mismo evento, Sin embargo, los objets en di
ferentes estados, pueden resccionar de d forma al mismo even n
ones. Por ejemplo, una máquina de cajer automälico reacciona de botón
clar cuando está procesando una transacción y de oir manera cuando extá inactiva.

Las méquinas de estados describen el comporsamicnto de las clscs, pero también describen
+ comportamiento dinámico de los casos de uso, de las colaboraciones. y de los métodos. Para
¡uno de estos objets. un estado representa un poso cn st ejecución, Cuando hablamos de las má
uinas de estado como descripción o hacemos. la mayoría de lis veces en términos de clases y
objets, pero pueden ser aplicadas ot dos de manera directa,

a de estados

Una máquina de estados es un gráfico de estados y de transiciones. Una máquina de estados se
une a un clase y describe, generalmente, la respuest de una instancia de la eins, à los eventos
que recibe. Las máquinas de estados también se pueden unir a lay operaciones, lus sos Je
uso, y las colaboraciones pars dexcriir su ejecución
ina de estado es un modelo de todas Las posibles historias de vida de un objeto de
una clase, El objeto se examina sisiadamento. Cunlquier influencia externa del resto del mundo.
se resume como evento, Cuando el objeto detecta un evento, responde de una manera que de
pende de st estado actua, La respuesta puede inclui la ejecución de una acción y un cambio a
as de estados se pueden estructura para horedar iraiciones, y

60 EL LENGUAIE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA

Una msi de estilos es una vita localizada de un objeto, una vista que lo separe del rs
to del mundo y examine su comportamiento sido, Es una vita reduccionista de un Stern.
Es una buena manera de especifica poramicito exacte, poro na s,s menudo, una Duc-
ra manera de entender el tuncionamicnto ota de un sistema, Para una idea más amplia de los
efectos del comportamiento de un sistema, san más Giles ls vistas de interacción. Sin embar
o las miguinas de estudos san útiles pars entender los mecanismos de control, ales como in
terfacos de usuario o controladores de dispositive,

Evento

Un evento es una ocurrencia signilicaiva que tien una localización en tiempo y espacio.
Ocurre en un punto cn el tiempo y ma tiene duración. Modele algo como un evento s su oct
rencia iene consecuencias Cando wilizunos la palabra evento por si mismo, queremos decir
generalmente que es un descripto, es dech una descripción de todas las ocurrencias indivi
des del evento, que tienen la misma forma general, del miss mudo que la palabra ease expresa
todos los objcios individuls. que tienen a misma estructura, Una ocurrencia expecíica de un
evento se lama instancia del event, Los eventos pueden tener parámetros que garterisen cod

del evento, de la misma forma que las claves tenen tributos que caracto

‘Como con lis clases, lis sales se pueden ordenar en jeranquíss de genera

plicitos € implichen: eventos de señal, eventos de Tamada, eventos de cambio y eventos de
tiempo. La abla 6.1 ex una lista de los ipos de eventos y sus descripciones.

Tabla 61_ Tipos de Eventos

Tipo de evento Des Sintaxis

"amada | Recepción de una petición explica sincrona ene | 09 Gt)
bos quo osporan por una ospuk

everto de cambio | Un cambo en el valor de una expresión Boaleana | cuando (ous

vento de señal — | Recepción de una comuricacion asinewona explcta | names (a7)

y con nombre entre ebjetos

evento de tiempo | La conclusión de un tempo absoluto o el ranscurso | tas (mes)
¿na cana relata de tiempo

Evento de la señal, Una señal es una entidad con nombre, que e piensa expleitamente como
vehículo de comunicación entre dos abetos: la recepción de una señal es un evento para el ob
eto receptor. El objeto que envía, rca explícitamente e inciaiza uma instancia de La seal yla
envía a uno o un conjun de objetos explícitos. Las señales incorporan lu comunicación un
(ireeciongl asinerona el ipo más importante. El remitente o espera a que el receptor se ecupe
¿e la señal, sino que continúa con su propio trabajo independientemente. Para modelar la co
municsciôn bidireccional se pueden tar varias señales, por lo menos una en cada dirección
Fl remitente y el roveptor pueden ser el mismo objeto.

La sefitles se pueden declara en dingramas de clase como clsiicadores, usando la palabra
clave «signaVsoñal»': los parámetros de la señal se declaran omo atributos, Como clasifica
dores, las señales pueden ener relaciones de generalización. Las señales pucden ser hijas de

LA VISTA DELA MÁQUINA DEESTADOS Al

EventoDeEntrada |

EntradaBeUlsuario

Bain | | dear
Al

senal | [can on gt
Botan || Botón | | Carseter , Caracter

DeRaten || DeRatôn | | De || Grafico
Pulsado | | Liberado | | Control pace)

Espacio | | Allanumórica | | Puntuación

ras señales; horedando los parimetros de ss padres, y accionando ls transiciones que de
penden de la señal del pudre (rigur 6.1),

Evento de Hamada. Un event de llamada esla recepción de una llamada por un objeto que
lise poner ung operación en ejecución, como transición de la máquina de estados en vee de
«omo procedimiento fio. Pare lamador, una Haas ordinaria (implementada por un método)
es indisinguible de un evento de amada. Fl receptor elige si una operación será implementada
como un método como disparador de un evento de Ihmada cn una máquina de ados. Los pur
rimetros de la uperación son los parámetros del evento, Una voz que el objeto receptor procesa
+ exento de Hamada tomando una trusición accionada por el evento, 6 no pudiendo tomar ni
a transición. el contro retorna al objeto llamador

Sin embargo, diferencia de un llamada ordinaria, el receptor de un evento de Hamada pue:
de continuar su propia ejecución en paralelo al Ilamador,

Evento de cambio, Un evento de cambio esla satisfacción de una expresión booleana que
¡dependa de cientos valores de un tributo, Esto es una manera doclaraiva de esperar hasta que
una condición ext satisfecha, poro debe ser wilizad con cuidado, porque representa un com,
puto continuo y potencialmente o local (acción en una distancia, porque el valor. los valores
«omprobados pueden ser distantes) Esto es seno y malo. HS bueno porque centra el modelo en

a

EL LENGUAJE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA.

la verdadera dependencia —un efecto que ocurre cuando se satisface una condición dada-—y no
en la mecánica de comprobuciôn de condición. Es malo porque excurece la relación caus feo

n que cambia un valor subyucent y el efecto eventual. EI coste de comprobar un
evento de cumbio es potencialmente grande, porgue en principio es continue. Sin embargo, hay
en la práctica maneras de cvita el cómputo imievesario. Los eventos de cambio deben ser ut
lizados solamente cuando sea artificial una forma más explicita de comunicación.

Observe la diferencia entre una condición de guarda y un evento de cambio. Una condición de
guarda se evalúa una vez cuando vcure el evento disparador en la transición y el receptor maneja
clevenio, Sies fala, la transición no se activa y a condición no se eva de nuevo, Un evento de
‘cambio se evalúa continuamente hasta que lega à ser vedad, en cuyo caso se dispara la transición.

Event de tiempo. Los eventos de tiempo representan el paso del tempo. Un evento de tiem
po se puede especificar de modo absoluto (hora) o de modo relativo (el tempo transcurrió des.
de un evento dado), En un modelo de alto nivel, los eventos de tiempo se pueden pensar como
eventos del universo; en un modelo de implementación, son causados por las señales de un

19 objeto específico, el sistema operativo 0 un objeto en a aplicación.

Estado

Un estado describe un período de tiempo durante I vida de un objeto de una clase. Puede sor ca-
racterizado de tres maneras complementarias: como un conjunto de valores de objeto cual
e similares en cena forma; como período de tiempo, durante el cual un objeto espera que
cura algún evento o eventos; o como período de tiempo, durante el cual un objeto rcaliza una
cierta actividad. Un estado puede tener un nombre, aungue a menudo es anónimo y viene des.
¿rito simplemente por sus acciones.
i de estados, un conjunto de estados está concctado mediante transiciones.
ciones conectan dos e contro), as
transiciones son procesadas por e estado del que salen, Cuando un objeto está en un estado, es
sensible a los eventos correspandientes las transiciones que salen del estado,

(conta rss )

Figura 2 Ess

Un estado se muestra como rectängulo con ls esquinas redondeadas (Fig

Transición

Una transición que deja un estado define a respuesta de un objeto en ese estado ala ocurrencia
de un evento, En general una transición tiene un evento que fa activa (evento disparador). una
condición de guarda, una acción, y un estado destino, La Tabla 6.2 muestra los tipos de ls tra
siciones y de las acciones implícita invocadas por transiciones.

Transición externa. Una transición externa es una transición que cambia el estado activo, Este
sel tipo más comin de transición. Se dibuja como una flech desde el estado rigen al estado des
Lino, con otras propiedades mostradas como una cadens de texto asociada 4 la flecha (Figura 6.3)

LA VISTA DE LA MAQUINA DEESTADOS 63

‘Tabla 62 Tipos de transiciones y acciones implctas

Tio de vans | Deep

acción de entrada | Una arcón que se ejecula cuendo so ona en eb
estado.

acide sa] A PT

transición externa | Una respuesta a un evento que causa un cambio de | dation cw
| estaco cuna rensición a st mismo, junto con a acción
especicada, También puedo provocar la ejecución de
la acción ce entrada o salda en el caso de que naya
estados en los que haya acciones asociadas a
| entrada ala salida

transición ntema | Una respuesta a un evento que causa la ejecución de | da TlogVacoón
una acción pero no causa cambio de estado ejecu"
ón de acciones de sala o entrada

Evento disparador. El disparador es un evento cuya ocurrencia permite la transición. El
evento puede (ener parámetros, que estarin disponibles para una acción en la transición. Si una
señal tiene descendientes, cualquier descendiente dela señal permite la transición. Por ejemplo,
Si una transición tiene BoténDeRatôn, como disparador, (véase la Figura 6.1), entonces Botón:
DeRatönPulsado accionará la transición

Un evento no es algo continuo; ocure en un punto en el tiempo. Cuando un objeto recibe un
event, guarda el eventos no es capaz de munejaro. Un objeto maneja un event ala vez. Debe.
activarse una transición cuando el objeto maneja el evento: el evento no es “recordado” hasta
más adelante (excepto en el caso especial de los eventos dilerids, que se guardan hasta

cionan una transición © hast

(| Eoperando
— —

|
y

a
Confirmer Credito }— —"""" procesar Pedido |

( eprepaactarge a cuenta

:
[Cancelar Pedido

Figara 63 Transiciones etes

6

1 LENGEAIE UNIFICADO DEMODELADO, MANUAL. DE REFERENCIA

dos exentos simultáncamente, se manejan a kx vez. Un evento que no acciona ninguno transición
lement ignorado y se pierde, Esto no es un errr. Es mucho máx fácil no hacer caso de
los eventos no deseadon que intentar especificar todos.

Condición de guarda, Una transición puede tenes una condición de guarda, que es una ox
presión booleana. Puede referise a los tributos del objeto que posee la máxima de estados así
Como a los parámetros del evento del disparador. Se evalúa la condición de

rre un evento disparador Si a expresión se evalia como verdadera, entonces se dispara la
sición. es decir ocurren sus cfectos, Si la expresión se ovalıla como fala, entonces la transición
ose dispara,

La condición de guarda se eva solamente una vez; cuando ocuro el evento disparador. Si
conics es ka y Hoga a ser más adelanto verdad, es demasiado trde para disparar a transición

LE mismo gvento puede ser un disparador para mis de una transición que parto de un estado
simple. Cada transición con cl mismo evento debe tenor una condición de guarda diferente, Si
‘cue el evento, un tramsición accionada por e evento pued xccionarso si su condición es ver
ders. À menudo, el conjunto de condiciones de guarda cubre todos las posibilidades, de tal
Forma que está garantizado que la ocurrencia de un evento dispara una ciema transición, Si nose
ren todas las posibilidades y no se pormite ninguna transición, entonces un evento simple
sora. Uns transición Únicament puede dispararse (dentro de un hilo de control) en
à una ocurrencia de un evento, Si un evento permito más de una transi
as. Una transición en un estado smidado tiene preferencia sabre
sición de uno de los estados que la incluyen. Si dos transiciones que están en conflict se
al mismo tiempo, alguna de ellas se dispara. poro queda indeterminada cuál, 12 opción puede ser
alcaoria o puedo depender de los detalles dela implementación, pero el modeldor no debe com
tar con un Festi predecible

“Transición de finalización. Una transición que crece de evento dispurador explícito esac
ioma pur la terminación de la actividad del estado del que sale (esto es una transición de te
minación), Una transición de torminución puede tener uno condición de guarda, que ve eva en
‘momento en que termina la actividad en ese estado (y no despuán)

Acción. Cuando se dipura una transición, su acción (il hay) es ejecutada. Una acción es un
cómputo stómico y normalmente breve, à merudo una declaración de astanación o un cómputo
ariimético simple, Otras ucciones incluyun enviar una señal a ro objeto. llamara una operación,
fir los valores de retorno. crea o destruir un objet, y las acciones indefinida de controles

ficada en un lenguaje extemo. Una aeción puede también ser una secuencia de acciones. es
(dei, uma lisa de acciones más simples. Una acción 0 una secuencia de acciones no se puedo ter
minar o ser afectada por ueciones simultaneas Concepusimente. su duración es insignificante

omparada con a sincronización exterior del evento: por la tano, un segundo exento no puede
¡curtir durante su ejecución. En a práticu. sin embargo, las acciones toman un cierto tiempo. y
Jos eventos entrantes se deben poner en una cola

Et sistema total puede realizar múltiples ciones simultáneamente, Cuando decimos acco
nes atómicas, mo implica que todo el sitema sea siómico. El sistema puedo procesar inerup-
ciones hardware y comparti el tiempo entre varias acciones, Una acción e stómica dentro de su
propio hilo de control. Una vez que ha comentado, debo terminar y no debe interactuar con arras
acciones simultáneamente activas, Poro las acciones no se deben utilizar como mecanismos de
¡ransición. Su duración dehe ser breve comparada con el tiempo de reacción necesario para los
eventos externos. De lo contrario, l siste puede no responder de manera oportuna

LA VISTA DELA MÁQUINA DF ESTADOS — 65

Tobla63 Tipos de acciones

Tipo de accion Deserpein T ‘Satan

asignación | Asigna a valor de una vanabie [Govino zone

creación | Crea un nuevo objeto T new NomireGiase(eraray

Gestuccign — | Destwye un objeto oo destroy)

Omar Crea una instancia de una sonal y la envia aumob- | Nambrestumart)
¡to destino o conjunto de objetos

| Lama una operación en un objeto dceum y espera. | nombre (age)
a terminación de la ejecución de la operación Pue-
de devolver un valor

no intrpretada | Acción espocica del lenguaje, ta como un bucle | feapecition del lenguaje]
ocondicn |

rome EEcpeciiea ls valores a devower a lamacor return var

terminación — | Autosestuccion del obleto [ terminate

Una acción puede utilizar los parámetros del evento disparador y los atributos del objeto por
seedor como parte de su expresión

Cambio de estado. Cuando se completa la ejecución de una scción. el estado destino de
sición pa er el estado ative, Esto puede activa acciones de salida y acciones de ental

Estados anidados. Los estados se puede anidar deso de oros estados compuesto (vase el
punto siguiente. Una transición que deja el estado más externo os aplicable todos los estados
anidados dentro de él. La transición es elgible ara ser disparada siempre que cualquier estado
anidado este activo, Si se dispara, el estado destino dela transición pasa a se el estado activo,
Los estados compuestos so ütles para expresa condiciones de o

transiciones en ello se aplican todos lose

¿ado maneje la excepción explícitamente

Acciones de entrada y valida. Una transición a través de uno 0
puede salir y entrar en estados, Un estudo puede tener acciones que se realicen siempr

ente o e salga del estado. Entrando al etado destino, e ejecuta una acción de entrada unida al
estado, Si la transición sale del estado original, entonces su accion de calida se ejecuta antes de
la acción, de latransición y de hs ucción de entrada en cl nueva estado,

Las acciones de entrada se wilizan. u menudo, para realizar la configuración necesaria den
tro de un estado. Debido a que una acción de entrada no puede ser evadida. cualquier acción que
cura dentro del estado, puede asumir que la configuración ha ocurido, sin importar cómo se

manera similar, una acción de salida es una acción que ocurre siempre que se salga del es:
na oportunidad de realizar una liepiova Es particularmente útil cuando hay transiciones

66

AL LENGUAIE UNIFICADO DT: MODELADO. MANUAL DE REFERENCIA

Introducir Clave

que eprenentan as condiciones de eror que abortan estados anidados. La acción de
salida puede limpiar tales casos de modo que el estado del ubjcto siga siendo consistent. Las
acciones de entrada y de salida se podrían, en principio. dar como transiciones entrantes y xa
Jientes, pero el declararlas como seciones especiales del estado. permite que el estado sea def
nido independientemente de us transiciones y por lo tanto este encapsulado.

Transición interna. Una tsusición interna iene un estado origen poro ningún estado destino
Las reglas de disparo para una transición interna son iguales que para una tranicion que cambie
el estado. Uno transición interna no tone ningún estado destino, asf que el estado activo no
cambia como resultado de su activación. Si una transición intema tiene una ación, se €

no ocurre ningún cambio de estado. y por lo tano no se eje

de entrada. La trasiciones internas son tiles para modelar ls ucciones de iterupción que no
cambian e estado (como recuento de jas de un evento o desplegar una pantalla de ayudo),

Las scciones de entrada y de salida utilizan la misma nosación que las transiciones itemas, pero
san ls palabras reservadas enty y exit entrada y salida) cn logar del nombre de evento dispar
rado, aunque ests ciones som activadas por las transiciones extermás que enran salen del es
tado,

Una transición 4 sí mismo invoca acciones de sida y de entrada en su estado (conce
mente, sale y entonces entra al estado de nuevo): por lo tato, no e equivalent a una transición
interna. La Figur 6.4 muestra acciones de entrada y salida así como transiciones internas.

Estados compuestos

Un estado simple no tine ninguna estructura. upenas tiens un conjunto de transiciones y posi
blemente acciones de entrada y sls. Un estado compuesto es un estado que se ha descom
puesto en subestados secuenciales o subestados concurrentes. La Tabla 64 enumera las distintas
clases de estados

Una descomposición en subestados dijuntos es un tipo de espocialicación de un estado.

stado extemo se refing on varos estados internos, cada uno de sc
siciones del estado mis externo, Unicamente puede ser tivo a la vez un subst secuencial
El estado externo representa lu condición de exar on cualquiera delos estados internos,

Las tramsiciones hacia dentro © hacia fuera de un estado compuesto, invocan Ins acciones de
entrada o de salida del estado, Si hay varios estados campuestos, una transición través de va
ros niveles puede invocar miles uccionos de entrada (primero las más exteriores) o de sal
da (primero las más internas).

LA VISTA DELA MÁQUINA DE ESTADOS 67

Tabla 6.4 Tipos de Estado

Tipo de estado Desenpoion notación

compuesto curries, todos los cuales están activos concurrente:
rente cuando el estado compuesto está acto

Estado secuencial | Un estado que contiene uno o más subestados santos,
compuesto | oxaclamente uno delos cuales esta activo en cada mo

mento cuando e estado compuesto está activa.

Estado Inicia Un pseudpestado que indica el estado inal cuando
| esinuecado el estado que o engloba

stade Ana Un estado especial cuya actvacion nica que el estado
que lo engloba ha completado su activa

estado de unión o | Un pseudoestado que encadena segmentos de
conjunción on una so. transición atómica

estado de historia | Un pseudoestado cuya actvaciéareslauta ef estado ac:
tvado previamente dentro de un estado compuesto

estado de Un estado querelerencia a una sum

do re | Un pesando, aro de un sao eme a ,

enemo SN (AT)

ay una acciôn en a transición a sf mismo, la noción se ejecuta después de cualquier ac
salida y antes de que So ejecute cualquier scción de era

Un estado compuesto también puede tener un estado inicial dent de él. Una transición li
tite del estado compuesto es implícitamente una traición a estado nical. Un nuevo objeto
comien7a en su estado inicial de su estado mis exterior, De la misma forma, un estado com.
puesto puede tener un estado final. Una transición al estado final acciona una transición de tr.
ción (ransición sin disparador) en el cxtido compuesto. Si un objeto alcanza e estado final
do més exterior, se destruye. Los estados iniciales, los estados files, lus ciones de
y las acciones de salida permiten que la definición de un estado sea cncupsulada inde=|

pendiente de las

tado
vna máquina de venta de entradas.

Una descomposición en subestados concurrentes represent cómputos independientes, Cuan:
do se entra en un superestado concurrente. el número de hilos de control aumenta. Cuando se

GR LLENGUA UNIFICADO DR MODEI ADO, MANUAL DF REFFRENCIA

Compra

re Identiicar

Seleccionando

Confirmando

sale, el número de hilos de control disminuye. A menudo, lu concurrencia ex implementada por
‘un abjotodistinto para cada subestado, poro los subestados concurrentes pueden también re
presentar concumencia lógica dentro de un objeto a Figura 6.6 muestra la descomposición com
Current de tomar una clase en la mie il.

A menudo, es convenionte semilizar un fragmenta de una máquina de estados en otras mi
quinas de estado, A una máquina de estados se le puede dar un nombre y hacer referencia cla
dese un estado de una 0 ás máquinas. La máquina de estados de destino es una submáquina,
y el estado que se refiere él. se llama subestado de referencia a subwniuina. plie la sust
Tución (concepua) de una copia de la máquina referida del estado en el lugar de la reterencia,
por una clase de subrutina de una mu e vez de una subniiquina, un esta
puede contener una actividad, ex dei, un cómputo o una ocurenca cominua que He

po para ferminarse y que pueda ser iterrumpida por eventos, La Figura 6.7 muestra
ferencia a subméquina,

Una transici
de a subn

LA VISIA DE LA MÁQUINA DE ESTADOS

Asistiendo a Clase

Incomplete

Labi =

[Periodo
~ de proyecto

(Prueba |
inal

Suspendida

Figura. Máquina de sados con un sado Compuesto concurrente

[ Esperapecomando incompleto

Figura 67 Sub

La vista de ac

special de máquina de estados, prevista para modelar
Sómputos y Majo de trabajos. Los estados del grafo de actividades representan lo etados de je
uciön del cómputo. no ls estados de un objeto ordinario. Normalinente un grato de activida
des asume que los cómputos proceden sin interrupciones extern por eventos (si ls hubiera
puede ser preleible una máquina de estados ordinaria)

Un grafo de actividades contiene estados de actividad. Un estado de actividad representa la
ejecución de una sentencia en un procedimiento, el funcionamiento de una actividad en un Tu
0 de trabajo. En vez de esperar un evento, como en un estado de espra normal. un estado de ac
tividad esper I terminación de su cómputo, Cuando la actividad termina, entonces a ejocución
procede al siguiente estado de «ctividad dentro del grafo. Una transición de terminación os ac

activi precedente, Los estados de
os explícitos, pero pueden sr auras

por transiciones en estados que I incluyen,

Un grato de actividades puede también contener ostados de acción, que son similares los
estados de activida, excepto en que son atómicos y mo pe
tivos. Los estados de acción se deben utilizar generalmente para lus operaciones cortas de

Un diagrama de actividades pues contener bifurcuciones, asf como divisiones de control en
hilos concurrentes. Los hilos concurrente representan actividades que so pueden realzar com
currentemente por los diversos objetos o personas en una organización. La concurrencia se
presenta con frecuencia a partir de la agregación, cn lacus cada objeto tiene u propio bilo con.
cumente. Las actividades concurents se pueden realizar simultáneamente en cualquier orden
Un grato de actividades es como un organigrama tradicional, excepto que permite control de
oncurreneia además de control secuencial: una gran diferencia,

Diagrama de actividades

Un diagrama de actividades esla notación para un grafo de actividades (Figura 7.1). Incluye al
¿gunos símbolos especiales abreviados por conveniencia. Estos símbolos pueden ae er
quier diagrama de estados, aunque mezclar la notación esta,

n

ELLENGLAJE UNIFICADO DE MODLI.ADO. MANUAL DE REFERENCIA

Taquilla:ProcesarPedido

Un estado de actividad se representa como una caja con Jos extremos redondeados que
ceomieve una descripción de activida, (Las cues normales del estado tienen Lados rectos y e
(guinas redondeadas.) Las transiciones simples de terminación se muestran como flechas.
Has ramas se muestran como condiciones de guarda en transiciones o como diamantes com
múltiples fechas de salida etiquetadas. Una división o unión de control se representa de la
misma manera que en un disgrama de estados, con möliples Nechas que entran © salen de una
barra gruesa de sincronización. La Figura 7-1 muestra un diagrams de actividades para pro

1 un pedido por a taquilla

Cuando es nocosario incluir eventos externos, la recepción de un evento se puede mostrar
como un disparador en ón, o como un simbolo especial que denota la espera de
Una señal. Una notación similar muestra el envío de una señal. Sin embargo si hay muchas
transiciones dirigidas por eventos. probablemente cs preferblo un disgrama de estados or
dinar.

Calles. À actividades en un modelo según su responsabilidad
por ejemplo, agrupa «actividades manejadas por ua organización del ne
ocio. Esta clan de asieición puedo mostrarse organizando lus actividades en regiones di

LA VISTA DEACTIVIDADES — 73

Cliente Ventas Almacén

|
DE

(Sapient (Corpora Pate)

Figura 72 calle» Mi

Linus separadas por líneas en el diagrama, Debido a su aspecto, cada región se llama calle, La
Figura 7.2 nuestra los calls.

Flujo de objetos, Un diagrauna de actividades puede mostrar el fluj de objetos como valo:
res, además del flujo de objeto. Se puede represcutar um objeto que se la entrada o le salida de
una actividad dibujando un objeto; también el estado del objeto, pura indicar su evolución o u
Jo dibujando un estado de Mujo de objeto, Para un valor de salida, e aa una Hecha con línea
«iscontinua desde una actividad al objeto, Para un valor de entrada, se dibuja una flecha con I
nea discontinua desde el objeto a uno activida, Si una actividad tiene más de un lujo de salida
© flujo de objeto sucesar, kis flechas se dibujan desde el símbolo de división. De

la misma for
ma, las entradas múltiplos se dibujan hacia wn símbolo de unión.

igura 7.2 muest un diagrama de setividados en el cual las actividades y las estados de

74 ELUENGUAJE UNIFICADO DE MODEI.ADO, MANUAL. DE REFERENCIA,

Actividades y otras vistas

Los grafo de actividades no muestran el detallo completo de un cómputo, Muestran of flujo de
actividades pero no los objetos que realizan las actividades. Los grato de actividades son un pun
Lo de parida para el diseño, Para torminar un diseño, cado actividad se dehe ampliar como una
0 más operaciones, cada una de las cuales para ser implementada à a una clase espec

al asignación ca lugar al diseño de una colaboración que implemente cl erafo de acu

AL

La vista de interacción

Descripción

Los objetos ubran recíprocamente para implementar comporsamiento. Esta interacción se pue
rib de dos manero complementan, una dle eas se centra en los objetos individuales
y la ou en una colección de objetos Coaperantes

Una máquina de estados es una vista estrecha y profunda del comportamiento, una vis
mia a cada objeto individualmente. Una especificación de la máquina de

puedo ser dificil entender et

Funcionamiento total de un sistema, de ¡quina de esos se cents en un solo.

objeto a la vez, y se deben combinar los efectos de muchas máquinas de estado para determinar

el comportamiento de todo el item. La vista de interacción proporciona una visión más in

tegral del comportamiento de un sistema de objetos, Esta vist es modelada por colaboraciones.

Colaboración

Un colaboración es una descripción de una colección de objetos que interactúan para imple
mentar un cierto comportent dent de un contesto, Describe una sociedad de objetos
cooperantes unidos para realizar un cierio propósito. Una colaboración contiene ranuras que son
rellenadas por los objetos y enlaces en tiempo de ejecución, Una ranura de colaboración se ll
ma rl. porque describe el propósito de un ubjeto v de un entace. dentro de la colaboración, Un
vol de clasificador represents una descripción de los objetos que pueden patcipar en una je
xción de I colaboración; un rol de asociación representa una descripción de los enlaces que
pueden participar en una ejecución de la colaboración. Un vol de clasificador es un clasificador
¿que está limitado por tomar parte ela colaboración: uns rol de asociaciin es un acc que
está limitada por tomas parte en la colaboración,

Las relaciones entre roles de clasificador y roles de asociación dentro de una colaboración so-
lamento son signilictivas en ese contesto. En general, no se aplican as mismas relaciones los
clasfieadoresyy à ls asociaciones subyacentes fuera de a colaboración

La vista estática describe las propiedades inherentes de una cle. Por ejemplo, un Vehioulo
viene un dueño, Una colaboración describo las propiedades que una instancia de una case ene
porque desempeña un rol particular en una colaboración

Por ejemplo, un VehleuloAlguiler cn wns colaboración CochieAlquilerlien un Conductora-
rrendatari, loque ao es relevante à un Vehículo cn general, pero es una parte esencial de la
colaboración

1

HL LENGUAJE UNIFICADO DI MODELADO, MANUAL. DE REFERENCIA

Un objeto en un sistema puede participar en más de una colaboración: Colaboraciones qu
parecen no estar relacionadas direcramente, pero cuy dá conectada través de un
‘objeto compartido. Por ejemplo, una persona puede ser un Conductorarrendatario y un Hues-
peaHotel como parte de un modelo Vacaciones, Mens recu

sempeñar más de un col en ka misma colaboración.

Una colaboración tiene un aspecto estructural y un aspecto de comportamiento, El aspecto
estructural es Similar a una vista estética: contene un conjunto de roles y de selaciones que de
Tinen el contexto pura su comportamiento.

Fl comportamiento e el conjunto de mensajes intercambiados por los objetos ligados alos
roles. Tal conju jes en una colaboración se Hama interacción. Una colaboración pu
de incluir 1 de las cualos describo una serie de mensajes inter
cambiades entre los objetos en la Colaboración para realiza un objetivo,

Micnt à quia de etados es estrecha profunds, una colaboración es amp

superficial, Captura una vita más integral del comportemiento en el inter
den de una red de objetos, Las colaboraciones muestran la unidad delas tres estruc
portes de computación subyacentes: la esructur de d

Interacción

Una interacción es un conjunto de mensajes dentro de una colaboración que son intercambicdos
por roles de elaslicador a través de solos de asociación, Cuando una colaboración exist en

in, los abjets Higados à roles de clasificador intercambian instanc
mensajes a través de lo enlaces ligados a os roles de asociación, Una intraccion modela la je
uen de una operación. caso de uso, u tra entidad de comportamiento.

o de objet

remitentes un receptor, Un mensaje puede tence parámetros que transporte
valores entre los actes. Un mensaje puedo se una sch una comunicación explícita coreo
jets, con nombre, y asuma) o una llamada (a invocación sincroma de una operación con un
Mecanismo para el control, que retorna posteriormente al remitente,

La creación de un muevo objeto se modela cam un evento cuusado p cto creador y
recibido por la propia clase, El evento de crcación esta disponible para la mueva instanci
como evento actual en la transición desde el estado inicial del objeto,

Los mensajes se pueden ordenar en hitos secuenciales de control. Los hilos separados re
presentan conjuntos de mensajes concurrentes. La sincronización entre los hilos se model
mediante restricciones entre mensajes en diversos hilos, Una construcción de sincronización
puede modelar divisiones del control, uniones del control, y hifurcaciones.

Fl orden de los mensajes se puede mostrar en dos tipos de diagramas: un diagrama de s
euencia (que se centra cn las secuencias de tempo de los mensajes) y un di
ración (que e centra en las relaciones entre os ohjetos que int

Diagrama de secuencia

Un diagrama de socuencia representa ua inerucción como un gráfico bidimensional. La dí

mensión vertical es el eje de tiempo, que avanza hacia abajo dela página. La dimensión horizon

LA VISTA DEINTERACCIÓN — 77

tal muestra los roles de clasificador que representan ubjctos individuales en la colaboración.
Cada rol de clslicador se representa mediante una column verticullinca de vida. Durante el
tiempo que existe un objeto el sl se muestra por uma ne inconnu Durante el Gempo que dura
na activación de un procedimiento en el objeto, la linea de vida se dibuja como una ines doble

Se muestra un mensaje como una lecha desde la ines do vi dun objeto la del xro, Las
Mechas se organizan en el diagrama en ordon cronológico hacia abajo.

La Figura 8.1 muestra un diagrama de secuencia típico con mensajes asíncronos.

Activación

Una uctivación esla ejecución de un procedimiento, incluyendo el tiempo que esper a los pro:
celimientes anidados para ejecutarse. Se represeta por una línea doble que sustiye la parto de
à lines de Vida en un diagrams de secuencia. Una llamada se represent por una Mecha que
apunta ala parte superior de I activación iniciada por la Tams, Ocurre una llamada recurs
va cuando el control vuelve a entrar en uns operación en un objeto, per la segunda llamada es
vna activación separada de a primera. La recurso uns llamada adidas otra operación en
mismo ojo, e representa en un diagrama de secuencia apilando as líneas de activación.

n diagrama de secuencia. con el Hujo de objeto de procedimientos, inclu

o una Hamada recursiva yla excación de un objeto durante el cómputo

Un objeto activo es un objets que contiene la raíz de una pila de activaciones. Cada objeto
sctivo tien su propio hilo de control dirigido por eventos que e ejecuta en parallo otros ob

78 FILLENGUAIF-UNIFICADO DE MODELADO. MANUAL. DE REFERENCIA.

jetos activos, Los objetos que son llamados por un objeto activa son objetos pasivos; reciben dl
‘onto solamente cuando son llamados. y lo ceden cuando retornan.

Si varios hilos de control concurrentes tienen sus propios lujos de procedimientos de con!
‘usando amadas anidados, los divers hilos deben disuinguine usando los nombres delos hilos,
colores, u oros medios para evitar la confusión cuando dos hilos se unen en ua único objeto
(para una sincronización, por ejemplo). Generalmente, es mejor no mezclar llama

dimientos con señales en un solo diagrama.

Diagrama de colaboración

sun di miene roles de clasificador y 10
les de asociación en lugar de sólo clasificador y wociaciones, Los role de clasificador y los
roles de asociación describe la conguración de los objet y de ls enlaces que pueden ocurrir
cundo se ejeo de la colaboración. Cuando se instancia la colaboración los ob
ets están ligados ls roles de clasificador y los enlaces esi ligados los res de asociación
Fi vol de asociación también puede ser desempeñado por varios ipos de enlaces temporales, ta
les como argumentos de procedimiento o variables locales del procedimiento, Ls símbolos de
enlace pueden levar exereutipon para indicar enlaces temporales («parameter 0 «locals ols
madas al mismo objeto (sell,

Solamente se representan lo oh «olboración. aunque puedo
haber otros enel sistema completo. Es decir, un dixgrama de colaboración modela los objets y
los enlaces implicados en a implementación de una interacción y no hace caso do ls otras. La
Figura 8.3 muestra un diagram de colboración

LA VISTA DEINTERACCIÓN — 79

vivent) Y | scaaacuenactntozador

Es útil marcar los objetos en custro grupos: los que existen con la interacción entra; los
ercados durante la interacción (restricción (new), los destruidos durante la interacción (res-
Irición (destroyea): y los que se crcan y se destruyen durunte la interacción (restricción
{transiont). Durante el dis se puede empezar mostrando los objetos y los enlaces disponi
bles al comienzo de una operación y después decidir cómo el control puede fuir a los objetos
correctos dentro del gráfico para implementar la operación

Aunque las colaboraciones muestran directamente la implementación de una operación
pueden también mostra la realización de una clase tora, En este uso, muestran el contexto ne:
Sesario para implementar todas las operaciones de una cise, Esto permito que el medelador vea
los roles múltiplos que los objetos pueden desempeñar en varias operaciones. Esta vista puede
ser construida tomando la unión de tods las colaboraciones necesarias para describir todas las
operaciones del objeto.

Mensajes. Los mensajes se restan como Mechas ctiquetadas unidas los enlaces. Cada
mensaje tiene un nünoro de secuencia, una iia opcional de mensajes precedentes, una condición
opcional de guards, un nombre y lista de argurnents, y un nombre de valor de retorno opcional
ncluye el nombro fapcional) de un hilo. Todos las mensajs del mismo hilo.
ilmente. Los mensajes de diversos hilos son concurrentes a menos que
dependencia secuencial explícita. Pueden alive varios dalles de implementación,

como por ejemplo una distinción entre los mensajes síncronos y asíncronos,

Flujos. Generalmente, un diagrama de colaboración contiene un símbolo para un objeto dur
rante una operación completa, Sin embargo. à veces. un abjeto tiene distintos estados quese de
ban hacer explícios. Por ejemplo. un objeto pudo cambiar de focalización, o sus asociaciones
pudicron diferencirse perceptiblement en ditintos momentos, Un objeto se puede mostrar con
Su clase y su estado — un objeto de una clase en un estado —. Ll mismo objeto se puede mostrar
útiles veces, cada uno con una localización v estado diferentes

Los diferentes símbolos de objeto que represen un wbjoto se pueden conectar usando Mujos

become» o «conversión». Un Mujo «become» ev ua trumsición, a parir de un etado de un a
eto a otro. Se dibuja como una lech de linea discontinua con el estercotipo «become» ©
conversión» y puede ser etiquetado con un número de sere para mostrar euundo ocure (Figu-
ea 8). Un Mujo de conversión también se utiliza para mostra a miación de un objeto a parir
¿le una localización a tra distinta

80 — EL LENGUAIE UNIMICADO DE MODELADO. MANUAL. DI REFERENCIA
Duo)

Menos frecuentemente. el estcrcotipo «eopy- 0 «copia» mest un valor de objeto prod
ido copiando otro var de objeto,

Tabla 8.1 muestra las tpos de rlaciones de Au de oto

Diagramas de colaboración y de secuencia. Los disersinas de colaboración y Ws dag
de secuencia muestran interacciones, pero acentian aspectos diferentes, Los diagramas dese
uencia muestran secución de tiempo claramente pero no muestran expliitamente relaciones
de objetos. Las diagramas de colaboración muestran las relaciones entre objetos claramente
pero ns socuencias de tiempo se deben obtener a parti de nómeros de secuencia. Los drames
de secuencia son a menudo más útiles para mostrar escenarios: los diagramas de colaboración
son a menudo mis ies para mostrar el diseño detallado de procedimientos

Tabla 8.1 Tipos de Relaciones de Fo

‘conversion | Transformación de un valor de un objeto a otro valor

| Ce en anne que par de orcos es inserte

Patrones

Un patrón es una colaboración parametric junto con las pautes sobre cuándo wilzaro. Un pa
metro se puede sustituir por diversos valores, para producir distintas colaboraciones, Los ps
metros señalan genoralmente las ranuras para las clases, Cuando se instancia un patrón. sus
parámetos stán ligados clases reales de un diagram de clase 0. os roles dentro de uns cola
Doración más am

El uso de un patrón se representa como una elipse de Isa discontinua conectada con cada
una de sus clases por una línea discontinua, que se etiqueta con cl nombre del rl, Por ejemplo,
Figura 8:5 muestral uso del parón Observer de |Gamma-95]. En ete uso del parón. Colade-
Llamadas sustituye el ro del Sujeto cleonoDeBarraDestizante sustituye e sole] manejador,

Los patrones pueden aparecer en Jos niveles de análisis, arquitectura, diseño detain e nt
plementacin, Son una manera de captar estructuras que ocurren Fechentemenke pura su cu
lización. La Figura 8.5 mtr un uso del patrón Observer (Obvervador)

ColaDeLlamadas
oat ence Observador

EA VISTA DE INTERACCIÓN

IconoDeBarraDeslizante

sr

, ©
L

Vistas fisicas

Descripciôn

Gran parte de un modelo de un sistema se piensa para mostrar los aspectos lógicos yde diseño
del sistema, independiente de su empayueñado Final en un medio de implementación. Sin em
bargo. los aspectos de implementación Son importantes para los propósitos de reutilización y del
rendimiento. UML incluye dos tipos de vistas para representar unidades de implementación: la
vista de implementación y la vista de despliegue

La vista de implementación muestra ol emipaguctade físico delas parts rewilizahles del ise
Lena en unidades sustimibles, Haus components. Uns vista ¿mentación muestra la
implementación de los elementos del diseño tales Como ches) spomentes, así
como sus interfaces y dependencias entre componente, Los components son las pieza rau
lables de alto nivel parir delas cuales se pueden construir los sistemas.

La vita de despliegue muestra la disposición sica delos recursos de ejecución computar
cional tales como computadores y sts inesconexiones. Se llaman nados. Durante la ejecución,
Tos nodos pueden contener componentes y objetos. La asignación de componentes y de objetos
los nodos puede ser estática, o pueden migrar entre nodos.

La vista de despliegue puede mostrar cucllos de botella paru el rendimiento sits inst
de lon componentes con dependencias se ponen en distintos nados.

Componente

Un componente es una unidad sca de implementación con interfaces bien definidas pens
para ser utilizada como pue reemplazable de un sistema, Cada componente incorpora la
plementación de ciortas clases del diseño del sistema. Los componentes bien diseñados no de
Penden directamente de otros componentes sino delas interfaces que ofrecen los compan
Fn ese caso, un componente en un sistema se puede sustituir por otro componente que offezea
las intetacos apropiadas.

Los componentes soportan más interfaces y requieren ciertas interfaces de otros componen-
tes, Una interfaz es una lista de las operaciones que una pieza de software o de hardware ofteco
y puede realiar. Fl uso de as llamadas interfaces permite evitar las dependencias directas entre
components, Fcilitando una susiución más Fácil de nuevos componentes, La vist de com
ponentes muestra la red de dependencias entre componentes. La vista de componentes puedo
“parecer de dos formas. Puede mostrar un conjunto de componente disponibles (una biblio
<a de componentes) con sus dependencias: st es el material parir del cual se puede e

AE UNIFICADO DEMODELADO. MANUAL. DE REFERENCIA

Diccionario

Figura 8 Canpononte om ner

ur un sistema, Puede también mostrar lo, con la selección de compore

tes usados para construirlo (a partir de la cada component

Se conecta a otros componentes cuyos servicios utiliza; etas conexiones deben ser consiente
las imentuces delos componentes

Un componente so dibuja como un rectángulo, con dos rectángulos pequeños a un lado. Pue
{de ser unido por líneas sólidas a los círculos que ropresentan sus interfaces ¿Figura 9.1

entre los componentes (Figura 92
Cada componente ftece Si las dependencias ene componentes
se hacen à través de interfaces, los componentes se pueden sustituir por otros componentes que
realicen las misma interfaces.

Nodo

Un nodo es un objeto físico de ejecución que representa un recurso e sl. que
netalmente tiene por lo menos memoria ya menudo Lambión capacidad de proceso. Los noden
pueden tener esercotipos para distinguir diferentes tipos de recurso, tales como UCP. dis

positivos. y memorias, Los nodos pueden contencr objetos, instancias, instancias del com

{Un nodo se representa mediame un cubo estilizado con el nombre del nado y. opcionalmente
su clasificación (Figura 9.3),

Las asociaciones entre los nodos representan líneas de comunicación. Las asociaciones
pueden tener estereotipos para distinguir diversos tipos de enlaces,

Cuenta”

Diccionario pont =

La presencia de un objeto en un modo se representa median
ola de ubjero dentro del símbolo del nodo. Si xv no ex conveni
ener la etiqueta location, cuyo valor sea el nombre

ración de objetos o de instancias de €

Véase conversin

anidemiemtofisico del sin-
1 símbalo de objeto pue
nel que reside el abeto ts
ves entro nados. puedo re

La vista de gestión del modelo

e

Descripción

Cualquier sistema grande se debe dividir en unidades mis pequeñas, de modo que las personas
nia con le información mit, avez y de modo que los equipos de
1 intefieran con sl trabajo de Jos ros, La gestin del modelo consiste en paquetes (in

do tipos especiales de paguctos) y relaciones de dependencia ente pacts

Paquete

Un paquete es una parte de un modelo, Cada parte de un mudelo debe pertenecer u un paquete
sotgnar el contenido de un modelo a un vonjun e paquetes. Per. pu er
ación debe seguir un cierto principio racional, al como Funcionalidad común,

inplementaciôn etrechament rolacionada, y um puto de vist común, UML no impone una re.
la pura componer los paquetes, pero uns buena descomposición en paquetes sealzará enor
memente la capacidad de mantenimiento del modelo,

Los paquetes contienen elementos del modelo al máx alto nivel, alos como clases y sus e
ciones, máquinas de estado, dingramas de casos de uso. intrucciones, y colaboraciones:
cualquier elemento que no esté contenido en otto, Las clomentos como sributos, operacion:
estados, lincas de vida, y mensajes están contenidos en otros elementos. y no aparecen como
contenido directo de los paquetes, Cad elemento de nivel superior Gene un paquete en el cual
se declara, Este cs su paquete de origen. Puede hacer referencia a & en otros paquetes, pero el
‘contenido del elctnento pertencee al paquete de origon, En un sistema de control de configura
«ión, un modelados debe tener suceso al puqueto de origen para modificar el contenido de un
ento. Esto proporcion: un mecanismo de control de acceso para trabajar en los modelos
rales. Los paquetes son también La unidades para cualquier mecanismo de versiones.

Lox quete pueden contener otros paquetes. Hay un paquete ríe, que contiene indirecta
mente el modelo completo de un sitema. Hay varias maneras posibles de organizar los pau
tes en un sistema. Pueden ser organizados por ka vit, por la dad. por cualquier otra
asc que el modeler eli. Los pagustes son unidades de organización jerárquica de uso ge
neral de los modelos de UML. Pueden ser mii para cl almucer
8080, la gestión de la configuración, y la construcción de bibliotecas que contengan fragmentos
reutilizables del modelo,

Si se eligen ben los paquets, reflejan lu arquitectura de alto nivel de un sistemaz su de
«composición en subsistemas y sus dependencias. Una dependencia entre paquetes resume las de
pondencias entre los contenidos del paquete

88 FI.LENGUAIE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA

Dependencias en los paquetes

Las dependencias que se presentan er elementos individuales. pero en un sistema de cualquier
tamaño, deben ser vista en un nivel más alto, Las dependencias eme los paquetes resumen de
pendencias etre los elementos internos a ellos, os decir, las dependencias del paquete son der
‘ables apart delas dependencias entre elementos individuales

La presencia de una dependencia ente paquetes implica que existe on un enfoque ascendente
(una declaración de existencia). o que se permite que exista mis adcianto en un enfoque des
endente (una resrición que limits cualquier otra relación), por lo menos un elemento de e
Tación com el tipo indicado de dependencia entre elementos individuales dentro de los pag
«respondents. Es una declaración de existencia y no implica que todos lo ciementos del pa
¿queso tenga la dependencia Es un indicador para el modelador de que existe información dí
ional, poro la dependencia. cuando se tata de paquetes, no contiene mación por sí
misma; s solamente un resumen

El enfoque descendente refleja la arquitectura del sistema tota, Ele
puedo generar automáticamente partir delos elementos individuals. Ambos enfoques ti
lo. incluso en un solo sister,

cias múltiples del mismo tipo entre elementos individuales se agregan a un
sola dependencia entre los paquetes que contienen los elementos. Si lus depend

elementos individuales cantionen ostercotipos (ales como diferentes tipos de 1so). el estore
‘tipo se puede om en la dependencia de paquete. para dar una sola dependencia de alo ni
vel

“eubsystem>
Entrados.

J Servicio
de Credito

Ea pores

Selección ni
de duiosco
L
1 Seisesin
ae Vendedor

Figura 104. Poquer y sus raciones

LA VISTA DE GESTION DEL MODELO 89

Lox paquetes se dibujan como zecingulos con lenges (iconos “eapeta) Las depen
cias se imucstran como tlochas com líneas discontinua

Las Figura 10.1 muestra la estructura del paguste para un subsistema de rexerva de entradas.
Tiene dependencias en los paquetes exteriores y dos variaciones del puquete de selección de
asientos. Cuslquicr implementación del subsistema incl

Dependencia de acceso e importación

Fe general, um pagucte 1 puede ter 1 ontenide de or paquete. Los paquetes som opt
os menos que seam lirios por na dependencia de ceso o de importación. La de
de accuse aplica directamente «len pales y a otros contenedores. En el nivel de paquet, la
cia de acceso indica que el contenido del paquete del provocador make aparecer en re
as efectuadas por los elementos del paquete lient od fos puquetes incluidos dentro del
lent ee pat
permitir un elie veto, Es mente los elementos de otros
Paquetes que tienen asiznada visibilidad pública en el paquete que los conti. Las cle
con visibilidad protegida son visibles solamente por los paquetes que son descendientes del pa
quete que contiene los clementos, Las elementos con visibilidad privada son visibles sola
mente por el paquete que los contiene. y por cualesquiera pater ates en el interior de ese
paquete. La visibilidad tambih se aplica al comtenido de class (arios y operaciones), Un
descendiente de una clise puede vor u miembros de su antecesor con visibilidad pública o
protegida: cualquier otra case puede ver solamente miembros con visibilidad pública. El per
miso de ucceso y la visibilidad apropiada son necesarios para hacer referencia a un elemento.
Asi que para que un elemento, en un paquets, ea a un elemento en un paquete sin relación. el
primer paquete debe toner eccso o importar al segundo paquete, y el clement destino debe te
her visibilidad pública dent del segundo payucte

Un paquete anidado dentro de owe paquete es parte del contenedor y tene acceso completo
st! contenido. sin necesidad de secesos, FI contenedo sin embargo. puede no ver el interior
¿o sus paquets anidacos in tine aso, Se encapout el contenido.

Observe que una dependencia de Acceso no modilica el espacio de nombres del cliente ni
res las referencias gutomáicament de ning oe Forma. Simplemente concede permise para
establece referencias. La dependencia de importación se utiliza para agregar nombres al esp
cio de nombres del pague del cliente como sinónimos de los caminos completos,

Modelo y subsistema

lo es un paquete que abren una descripción completa de una vista particular de un is
rion una deseripeiön cerda do um Sistema partir de un punto de vit, No tiene
1s fuertes en otros paquetes, tales como dependencias de implementación o depen-
denia de herencia. La relación de traza ex una forma débil de dependencia entre elementos, ea
ist modelos, que abservan la presencia de una cier concxión sin implicaciones semi
dicas especies,

Generalmente, un modelo se estructura con formas de bol, El paquet raíz contins anidados
ns mismo paquetes que comen e dele complet del site desde un punto de vists dado.

90 LL LENGUAIE UNH ICADO DE MODELADO. MANUAL DE REELRENCIA

Un subsistema es un puquete que tiene piezas separadas de especificación y de realize
ción. Representa una wnidad coherente del modelo. ca interfaces limpias al resto del sitema

Representa generalmente la partición del sistema. en un límite Funcional « de implementa
ción, Los modelos y los subsistemas se dibujan como paquetes con las palabrus clave de ese
‘eotipo (Figura 10.1),

e

Mecanismos de extensión

Descripción

UML proporciona varios miscanismos de extensión paa port que los dar la
unas extensiones comunes si tener que modificar el lenguaje de modelado suhyncente. Se han
discado esos mecanismos de extensión de modo que las era pues almucenge y mu
ripul as extensions sum sin entender su semántica completa. Por ex favs. las extensiones
se pueden almacenar y manipular como cadenas. Para una herramienta que no entienda la ex
tensión, os sólo una cadena. pero se puedo introducir almacenar como parte de nn modelo, y
ser pass otras hemmntan, Se espera que las hor y las módulos aici
ales sea oscrtos para procesar varios tipos de extensiones, Estas errant definir una
Sintanisy una somámica particulares para sus extensions que sólo ells necesitan entender.

ste scoreamiento a las extensiones no resolverá prohahlement todas las necesidades que se
presenten. pero pensanos que se ajustará una porción grande delas adaptaciones que neces
an la mayoría de los modeladores de una manera simple que es cil de implementa Los me
anis do extensión san retriccionoy, valores etiquetados. yestereutipon, Tenga presente que
una extensión, por definición, desvía la forma de estindar de UMI. y puedo, por lo tanto, con.
dcir a problema de ineropersvidad. El modelador dehe sopesar cuidadosamente ventajas y
costes anos de usar extensiones, especialmente cundo los mecanismos existentes trabajaran a
omablemente bien, Tipicam estin pens para los dominios de api
«iones particulares los entornos de u dan lugar un dialecto de UML. con
las ventajas y desventajas de todos los dilechn.

ción

Una restricción es una condición semántica representado como expresión textual. Cada expre:
ión tiene un lenguaje implícito ce interpretación, que puedo sor una notación matemática For
mal tal como notación de tcoría de conjuntos: un Ionzunje computarizado de restricción. tal
¿omo OCH un lenguaje de programación. con 90 of lenguaje natural

Formal. Por supuesto,» el lenguaje es informal entonces su interpretación x también ¿toral
y debe er hecha por una person, Incluso suma resiceicn se expresa en ene formal, no
Sigitica que se hard cumple sutomálicamente, Las técnicas de mantenimiento y comprobación.
«automática de verdades no pueden cubrir la mayoría delos casos, pero por lo menos la semi

Las restricciones pueden expresar Timitaciones y relaciones gue no se pueden expresar
usando la notación de UML. Son panticulenmente ies para indicar las condiciones glabales 0
i condiciones que afectan a ciertos elemente,

2

EL LENGUAJE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA

| _Transaceiön ATi

Lax resriciones se muestran como expresiones de endena entr Haves, Pueden se añadidas
“1 un elemento de una tit. ser acids una deperiencia 0 et una mota. LaF
ra 11.1 muets varios tips de restricciones.

Valor etiquetado

Un valoretiquetado ex un par de cadenas: una cadena de etiqueta y una cada de valor
macena un elemento de intormación sobre un elemento. Un valor cúguetado se puede
ualquier elemento individual, incluyendo los elementos del mac y los elemente de a
presentación

Laetiquota es un nombre de una cera propiedad que cl modetador desea registras, y el val
el valor de esa propiedad par el elemento dado, Por ejempfo. la etiqueta pudo sor autor,»
valor pudo ser el nombre de la persona sesponsabie del elemento, tl como Charles Babbage

Los valores etiquetados se pucden utilizar par almacenar cualquier información sobre los

10x. Son particularmente útil para almacen «tión del proyecto, tal
como la fecha de creación de un de su estado de desarollo. de fechas debidas, y del
sado de la prueba. Cualquier cena se puedo utiliza como un nombre de ciqueta excepto
aquellos nombres de atributos incorporados al metamodelo que deben evitarse ¡porque his te
ct y los atributos juntos pueden considerame propiedades de un elemente y accedene de
manera uniforme en una herramienta), y ciertos nombres de etiqueta eatin predefinidos (EIRE
ef capitulo 14, Elementos Estándar).

Los valores cígutados también proporcionan una manera de añadir información dep
diente de Ja implementación a tos elementos, Por ejemplo, un generador de código necesita la
informacion adiciona! sobre el ipa de código a generar a partir de un modelo. A mento. hay

MECANISMOS DEEXEENSION 93

Transacción
dequiosco el

‘bes de implementa cor cetamente un modelo; ef modelalor debe propor.

las direciices sobre qué lección tomar, Cierta eigen e pace liza como indi
adores para deci al generador de código qué implementación utiliza. Orras etiquetas se pueden
utilizar para otros tipos de hestumientas añadidas. alos com planificadores del proyecto y
nore de informes

Lan valores etiquetados también se pueden utilizar para almacenar información sobre el
ments extercotipados del modelo (discutidos abajo).

Lan yes eiquetados se muestran como cadenas con el nombre de fa etiqueta, un igual y
cl valor Se enfocan normale en st os Haves Figura 11.2). Sorin omitidos en los di
ramas pero mostrados a meme en fists y Formularios emergentes

Estereotipos

Muchos modoladoros descan adaptar un Tempus de modelado pace un dominio de aplicación
particular. Esto conlleva un cierto riesgo, poryue el lenge udaplad no será universalmente
comprensible, pero existe, sin embargo, ta tentación de hacer,

Un esterootipo es mv ipo de elemente del modelo detiuido cn el propio modo. Fl comen
¿lo de información y la Forma e un esercotino son gl que los de una else existente de

ento def model base, pero su significado y uso son diferents. Por ejemplo, los modeladores
ele de meule de negocio a menudo quieren distinguir objetos de negucio y process
del negocio como tipos especales de elementos de modelado cuyo uso es distinto dentro de un
proceso da del desarull, Estos se pueden tratar como Tios especiales de clases: tienen ar
binox y operaciones, pero tienen restricciones especiales en su relaciones con otra elementos.

Un estereoupo se bass en un elemento de modelado existente, FI contenido de información
del eme estrcorpado es igual que el elemento de avdelo existent, Esto permite que una
herramienta almacene y manipule el nuevo elemento de ka misma forma que lo age con el
elemento existent. LI elemento estereutipado puedo tener sus propios iconos: es ci que una
herramienta lo permita, Por ejemplo, una “organización de negocios” podría tener un icono.
ue parece un grupo de personas. HI estercotipe puede también tener uma Tita de las re

¿iones que se aplican a su uso. Por ejemplo, quizás una “organización de negocios” se puede
asociar solamente a tra “organización de negocios” y no x cualquier clas, No todas las ros
icciones se pueden verificar automáticamente por una herramienta de propósito general peo.

94 FLLLENGUASE UNIHCADO DE MODEL.ADO. MANUAL DE: REFERENCIA

Reservas
ProgramadorDeTareas.

Quiosco Servidor

rs Ud erat

1 hacerse cumplir manualmente 0 ser verificadas por una herramienta añadida queen
da el stereo
Los estereotipos pueden utilizar valores etiquetados pa

«almacenar las propiesados adic
nales que no se pure modelar con cl cleme

o hase
Los estereotipos ve muestran como caen

del sinholo moral el el 1 mocelador puede también creur un icono para
un estereotipo particular, que sustituye el símbolo normal del elemento (Figura 11.3)

de texte rodcedas por comillas (40) puestos den

Adaptación de UML

Los mecanismos de extensión

de restricciones, de valores etiquetados, y de estereotipos per
miem adapta los posites de UML para los dominios especials de uso. Se has realizado var
perles. que se deseviben en el apéndice C. Extensiones de Process, Otros han ido propuestos
por fos usarios. La capacidad de sulaptación del

lado significa que los do
minis de uso pueden adaptar el en,

ajo de modelado ss necesidades, i

embargo tocan
extensa prepunulerancia de lor conceptos genricos y comunes

El entorno de UML

2 e

Descripción

{Los modelos de UMT. se utilizan dent de un entorno La mayoría dela gente li el mode.
tado como medio para un fin —vamos a Hamar desarollo de bts sister — y no como fin
eu sí mismo. EI propósiv y ka interpretación del modela están afectados por el resto de entr.
mo, Otras facilidades eel entorno más amplio incluyen los metamodelos que abarcan muchos
lenguaje. hetramientas de lición del modelo, lenguajes de programación, sistemas operativos
y enmponentes importames del sistema, y el mundo de los negocios yla ingeniera dentro del
‘ual se utilizan los sistemas. La responsabilidad de dar significado a un modelo y de imple-
mentar st objetivo se resuelve con todas estas facilidados, incluyendo UML

Los mdclos existen en varios niveles de concreción, UMI. es un lenguaje de modelado, de
Propönito general ue incluye semántica y notación, pero es utilizable con diversas here
mientas y lenguajes de implementación. Cala nivel de uno introduce ciertas consideraciones de
redo, que aparecen en UML en diferentes grados.

Responsabilidades semánticas

Un metamodelo es la deseripeidn de un modelo, Un lenguaje le modelado describe mod
por lo tano, puede ser descrito por un metamodelo, Un metamodelo procura hacer un ler
exacto, delinicado su semántica, poro hay una tensión para permit las extensiones para mucvas
vituaciones, La forma ral del metamodelo es importante para la implementación de lus herr
mienta, y el intercambio de modelos, pero uo muy importante para la mayoría de los usuarios.
Por lo tanto no la hemos incluido en este libro. Los que estén interesados pueden consultar los
documentos originales del estándar [UMI-9] disponibles en el CD adjunto.

{Un metamodelo y un lengunije deben cubrir muchos campos y acomodar muchas interpreta
«iones. Los sistemas existenes tienen modelos de ejecución y de memoria diferentes, Es impo-
sible elegir uno de ellos como la interpretación correcta, De hecho. cs probublemente engañoso.
incluso considera tal opción. En su lugar, uno puede pensar en Ins diversas intepretaciones de
los modelos de ejecución como puntos de variación semántica. Un punto de variación sem

a es un punto de diferencia sobre la semántica detalla dela ejecución, pero que es ortogonal
otros aspectos de un sistema. Por ejemplo, un entoro puedo clegir o no ofrecer la clasificación
inne iempo de ejecución. Hoy, ka m

de os lenguajes de programa », principalmente por razones de

del lenguaje de programación, pero algunos si, La diferencia cs indistnguible en la semántica
estática, La opción de la clasificación etáicu o dela clasificación dinámica se puede idomificar

%

HLLENGUATE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA

como un punto de varia semántica con dos opciones clsilicación estática o clasificación
única. Curado exiten fales opciones, la gene discuto a mentado sobre cul s la interpreta
‘correcta En vez de exo, herve que est cs una lección y asígnelo un ombre para der ut
lizar

Un metammdelo describe el contenido de un mode bien formado, mens que
“oran describe un programa bigs formado, Solamente un mel hen Jon
alo y una semántica apropiadas no tene ent 1 sipriicao de un model m
Sin embargo, la mayoría del iempo. I jo desarollo no ein bien fon
dos. Son incompletos y posiblemente inconsistente Pero eto es lo que deben contemplar ks
herramientas de modelo: modelos incompletos. o sólo modelos acabados, FI meta
UML describe model correctos, ien forma, Un metamodelo separate puede describir po.
sible agment de uy snodelo, Dejamos los Fabricant de a herent decidir dónde sz
+ mio en los mentos del modelo aides, y qué tp de semántica dur a los modelos má
formados

UML incluye algunos mecanismos de cxtemsión incorpore para adapta su uso en dom
mios especializados, Los mecanismns incluyen la capaci de deli esercoipos y vale
|quetados, Estos scan se pueden utiliza par apt uma variante de UML. definiendo
Sistema de estereatpos y de criquetas. y adoptando la, convenciones para su uso a ora de
«onsiair un modelo. Por ejemplo, las Variantes desurolladas podrían centrar en la semántica
de a implementación de varios lenzuajes de programaciôn. La sdición de extensiones puede
poxirosa, pero conlleva algunos peligros inherentes. Dado que su Semi ne defi deta
de UML. UML no puede proveer su significado: la interpretación so delega al modelados
Además. si no sc tiene cuidado, algunos significados pueden sor sambiguos 0 incluso inci
tentes. Ls herramientas pueden proporcionar significados y Funciones automatizadas pra los
estereotipos y las ctiquetas definidas por las herrzmientis, pero no para las extensiones des
¿las por el usuario. Sin importar la ayuda para lis extensiones, cualquier extensión (ira e
Astro lejos del centro común que el estänkır del lenguaje proporciona y svat las incas de
capacidad de intercambio de modelos y de comprencibilidad delos modelos. Por supuesto, sico
pre que usted mili una biblioteca de chives particular, used diverge de La capaci de inter
cambio perfects de la muda. Así que, no se preocupo sobre lo abstracto. Urilico las extensiones
uly Scan de ayuda. poro eviela cuando no sean necesarias.

Responsabilidades de notación

La notación no agrega significado a un modelo, sino que ayuda al usuario a entender su iz
mificado, La notación no tiene semántica, ino que agrega a mensdo las connotaciones para
la afinidad percibida de dos conceptos basados en su proximidad en un di

Los documentos de UML [UMI-98] y este lib definen una notación canónica de UML
que podría llamare Format de publicación para modelo, o es Sir a muchos lenguajes de
mación en los cuales los programas dentro de anículos publicados se imprimen en un
orto atractivo con disposición cuidadosa, palabras reservadas en negrita. y separa fs igus
para cuda procedimiento, Los verdaderos compiladores tienen que aceptar una entrada más su
cia, Esperamos que esas herramientas de edición extiendan la notsción un formato de panal
incluyendo las coxa tales como el uso de ipografías y de color para resaltar lementos a
pacidad de suprimir y de Filta ficilment elementos que no son actualmente de interés, pan

LLUNTORNODEUML 97

amptia om diagrama. para most os elementos nda, para atravesr enlaces a tos modelos
visa y animación. Seti impede intentar estadoizar todas estas
tentarlo, porque no huy necesidad y Limitar la innovación il. Esta clase de extensiones de no.
tación es responsabilidad del constructor dela heramienta. Es a herramienta interet h
inenos peligro de ambigéedad, porque el usuario puedo podar siempre una aclaración. Fst e
rene más il que insistir en una notación que se totalement inequívoca en el primer
portant e mienta debe podes prodacir ka notación canónica cuan:
lo ésta sea solicitada, € en forma impresa. y que uns horamienta interactiva debo
Suite extensiones rizanables a este comportamiento minime,

1 as herramientas también peemítan gue los usuarios extienda a nació

vas limitado poro lex. Hemos espociicado que los estereotipos pucden tener sa pro
pios iconos. Podrían estar permitidas otras clases do eXtension de notación. pero los usuarios
¿hon uplica un buen criterio.

Observe que la nación ev algo más qu aye la información en forma do texto y
los hiporentaces invisibles entro clomentos de representación.

Responsabilidades del lenguaje de programación

UM. debe trubijar con varios lenguajes de implementación, sin incoxporarlos explícitamente,

Pensamos que UML debe permit el uso de cualquier (o por lo menos de muchos) lenguajes de

programación. para la expecilicación y la seneración del crise il. FI problem es que

«ada lenguaje de programación tiene muchos clcmentos semánticos, que no deseamos absorbe

fon LIME. porque se sine como elementos del eme de programación, y hay vt

Fiaciones considerables en la semántica de ejecución, Por ejemplo. la semántica de coneurrencit
maneja de maneras diferentes enre lo lenguajes (si esque se than nodos)

Lostipox de datos primitivos mo se describen detalladamente en UML. Esto es deliberado
pues no descábamos incorporar I semántica de un lenguaje de programación en preferencia a
todo los demás. Para la mayoría delos propósitos de modelado, esto nv es un problema, Utilice
el modelo semántico aplicable su lenguaje. Este es un ejemplo de un punto de variación se

La representación delos propicados detalladas del lensunje para la implementación suscita
ol problema de sapturar la información sobre propiedades de la implementación sin la cons
Inweiön de su semántica en UML. La decisión tomada tuo captura las propiedades del lenguaje
¿que van más all de capacidades incorporadas en UML por medio de estereotipos y de valores
<tiguetados. Estos se pueden ssignar las propiedades de lenguaje y las opciones de a ge
neracidn de código por una hcrsamienta à un generador de código, Un autor genérico nu ne
esta emenderios. Un sario podría, de hecho. crear un modelo usando una herramienta que mo.
contemple el lenguaje utilizar y temusteir el modelo final otra trait para cl proces
micnto final. Por supuesto, sla herramienta no ciendo ls estereotipos Y las etiquetas no pue
¿e comprobarlas para aber si ay consistencia. Pero esto no espeor que la práctica normal con
los ediores de textos y los compiladores, En aso de necesidad, se puede crear una herramien-
ta que utilice un conjunto particular de extensiones.

La generación de digo y la ingoniora inversa requerirán. al menos en el fuero próximo, la
micipaciön del discñador sem de un modo de UML, La directivas y ayuc al generador
(de código se pueden proveer como valores etiquetados y estereotipos. Por ejemplo, el modelador

os

I LENGUAIE UNIFICADO DE MODELADO, MANUAL Di: REFERENCIA

ox indicar qué pe de esse contencdora se debe uilizar pus implemeutar un soc, Pr
Supuesto, esto sea que los ajusis para generación de código on hs ersamicntas pueden e
incompatibles, poro no creemos que hava actcalmente vcionte acuerdo sobre a forma cons
(a de estandarizar los justes reales. En cualquier case, diversas herramientas utilizarán sts 2e
neradores de código come su ventaja competitiva. Event los ajustes por d

emerger y Negar estar maduros para la estandarización

Modelado con herramientas

estan herramientas, Las
», Proporcionan un nivel de 0

Hier del aleance del UML. por sí mismo. pero que permite entender al usuario y ayuda ene ae

‘exo al información Las herramientas ayudan à encontrar la ilormación en modelos ads

buscando y filtrando lo que se presenta.

Algunos aspectos sobre el uso de herramientas

Las herramientas se ocupan dela organización y del ulwenamiento iico de los modelos. De
hen dar soporte mies equipos de trabajo en un sólo proyecto, así como permitir a ei
zación entre proyectos, Los siguientes elementos están fuera del alcance del UML. canónico
pero se deben considerar para e uso real de la hernie

Ambigüedades e información sin especificar. Las tapas iniciales atan win muchas o
sas por decir. Las herramientas deben poder ajustar la precisión de un modelo y no Jorzar
aa valor pars ser específico. Véanse las siguientes secciones “Modelos iones paras
Trabajo en marcha’ y "Valores sin especificar y nulos

Opciones de presentación. Ls sucios no desean ver toda la información todo el tiempo
xrramientis deben permit fiar y ocultar la información no descada en un momento
asi como vinualizacionesaltemativs, usando las capacidades de visualización del hard

Ware disponible, Esto se a descrito ya en la sección "Responses de ia Notación

Gestión del mudelo. LA control de configuración, el control de acceso. y la gestión de ver
iones de as unidades del modelo está era dl alcance de UML, pero sam cruciales paru el pro
ceso de in del software y están en la cima del metamodct

Interfaces con otras herramientas. Los modelos ne

¿oros de código, lis calculadoras de métricas. los escrit

ción. y oles herramientas de buse. La información para otras herranientas nec

en los modelos, pero no ex información de UME, Los valores etiquetados son apropiados para

Modelos inconsistentes para el trabajo en marcha

La última meta del modelad es producir una descripción de un sistem en un costo nivel de de
le. El modelo final debe Saistacor varias reuiciomes de validación para ser significativo, Sin
embargo, como cu todo proceso ercativo, el resultado mo se produce necesariamente de forma
Los productos intermedios no satitarán todos las restriciones de validez en cada paso.

En la práctica. una herramienta debe manejar no sólo sománticamente los modeles válidos

HILENTORNO DEUML 99

“ s ones de validez, sino también los modos sintticamente válidos que
satisfacen ciertos reglas de construcción pero pueden vilar algunas restricciones de valide. Los
modele semánticamente inválidos ao son diectamente utilizables, En su lugar pueden consi
derarse core "tubajos en march”, que repeesentan las trayectorias hacia cl resultado Final

Valores sin especificar y nulos

Un modelo completo debe tener valores ara todos los atributos de sus elementos. En much ca

¡ón valor) es uno de los valores posibles. pero si un valor puede ser nulo o
ra. debe er part de la descripción del ipo del iba: muchos pas no tienen un valor nulo na
ura dentro de su gama de valores. Por ejemplo, nulo no tiene ningún sentido como límite su
poror cn el sao de un conjunto. O el coat tiene un tamaño superior fijo o mo hay limit
en cayo easo su tama minim es limitado, ast que la posibilidad de ser nulo es un aide al

ago de posibles valores de un tipo de datos.

Por ra part, orante las primers etal disc, un desarrollador puede no cuidar el vi
lor de una propiedad ew concreto, Puede ser que sea un valor que no cs significative en una
apa particular. por ejemplo, la visibilidad a acer un modelo del dominio. O el valor puedo ser
significativo pero el modelados pudo no haberlo expocifiado todavía, y el desarrollador necesita
recordar que akin es necesario elegir su valor. En este coso, el valo está sin especificar, Fst
dica que un valor ser eventualmente necesario. poro que todavía mo se ha especificado, No ex
igual que un valor malo, que puede sor un valor Ketan et el modelo final. En muchos casos,

ys eulenas, un valor mul es una buena manera de indicar un valor sin es
pocilicar pero no son lo misino. Un v pecificar no os significative en un modelo bi
formado. Ea definición de UML no maneja valores sin especificar. Son responsabilidad de
herramientas que soportan UML, y se consideran parte de us trabajo en marcha que. por m
sidad, mo tiene ningún significado semántico,

Parte 3: Referencia

> Rp

Enciclopedia de términos

abstracción

Acto de identificar aquellos exactes esenciales de una cosa que ladisinguen del reso
cosas. La abstracción implica buscar parecidos en conjuntos de cons. centrándose en las ca
Un alaracción sempre implica la perspectiva de quien la re

Iracciones para ki misma cosa según elpropósi
«ción, momo en dilerentes niveles para propósitos distintos.

lencia que rotaciona dos clomentos que representan e mismo consepto en
dincmtes niveles de abstracción

Véine derivación. realización. refinamiemo, taza

Semántica

Una dependench de abri es una rela los que se encuentran en
niveles distintos de abstracción, como lx representaciones en diferentes madelos, en niveles
lstinos de precisión, en nivels distintos de concreción o en niveles distintos de optimización
Generalmente la dos representaciones mo se wii amente, Normalmente un
lement es mis detallado que otro, donde el más detallado iento y el oro el proveedor.
Si no esti claro qué clemento es us detuliado, so puede modelar cualquiera de los dos
elementos como cliente

Lan estereotipos de dependencia de abstracción son la traza (palabra clave «traco»), el re
Fiat (palabra clave arefine»), La csización (palabra clave «realize» y la derivación (pa
labra clave derive).

Notación

Una dependencia de abstracción so ropresonta mediante una Hecha con linea discontinua que va
10 cliente al elemento prove etiquetada com alguna delas palabras clave «trace».
dencia de sealización tiene su propia notación, que consite en
continua cuyo extremo es un tingly cerrado que apunta al elemento
proveedor

La correspondencia entre clementos se puede adjuntar la relación como restricción.

104

FL.LENGUAIE UNIBICADO DE MODEL ADO MANUAL DE REFERENCIA

Elementos estandar

abstracto/a

Chase, caso de uso. señal, otro clasificador u oro elemente generalizable que no pued
instanciado directamente, Tambicn so utiliza para describir una operación que no tiene ny
mentación. Anónimo: concrotofa

Véase operación abstracta, elemento generalizable,

Semántica

a clase abstracta es una clase no instanciabl, es decir, que no puede tener instancias dire
bien porque su descripción cx incompleta (le ala el método de una o mis operaciones)
porque no ha sido pensada para ser invtanciada sum su descripción esté completa. Fl
bjetivo fundamental de las class absiractas e a especialización, Para ser Gil, una che
Abstracta debe tener descendientes que puedan tener instancias: un clas hoja bac no sine
para nada, (Pueden aparecer clases absiactas como hojas en un marco de trabajo. pero al ia
deben especializarse.)
{Una clase concreta no dehe tenor operaciones abi
Fiamente abstracts, poro a sí puede tener opera’
¿iones comers so aquellas que pueden implementar una vez y utilizarse tal cual en toda la
belasos, Fn su implementación, las operaciones concretas sólo pueden utiliza
< Jones) conocidas por la ease enla que so ecran, Uno del
propósitos de I herencia es sua estas operaciones en superclases abstractas pata que puedan
ser compartidas por todas las subctases. Una operación concreta puede ser polimórlca, es dest
puede ser sobrescrta por wn método de una clase descendiente, pero no es necesario quelo e
(puede ser una operación hoja). Una clae cuyas aperaciones están todas implementadas puede
ser abstracta, pero debe ser decturada explícitamente como al. Una clase con una à má
‘operaciones no implementadas es sutomáticameme abstract
misma somámica se aplica los casos de uso, Un ease de uso abstracto define un
fragmento de comportamiento que no puedo aparecer por sí mismo, pero que puedo «parecer ch
la definición de casos de wso concretos a través de relaciones de generalización, extensión 0
inclusión. Llevando el comportamiento comin un ano de uso abat. el modelo se «
ee y es más lil de comprender

xiste una relación similar en otros clusficudores y elementos pencrilizuble.

Notación

FI nombre de una clase u operación abstracta debe aparecer mbién se puede
iz la palabra abstract eo la ists de propiedaes que aparece después o debajo del nombre
por ejemplo, Cuenta (abstract

Vénse también nombre de clase

ENCICLOPEDIA DE TÉRMINOS — 105

Cuenta

ie: Dr =!

CuentaCorriente Cuentaahore

A Clases nimes y conos

Ejemplo

La Figura 13.1 muestra una clase abstracta Cuenta con una operación abstracta —calcularin
tereses— y una operacion concrots —Ingresar—, de la que sc han declatado dos subelases
«onercias. Debido a que las subclanes son coneretis, cada una de ella puede implementar L
operación caleularintereses, Los tributos son siempre comercios.

Discusión

La distinción entre modelar un chase como abstracta o como concreta no es an importante
‘com a primera vista podría pusecer pues ex más una deciión de diseno sobre un modelo que
una propiedad inherente al mismo, El estado de una che puede cambiar con la cvoteción de un
disco Una case vonereta puedo mare como abstracta si se aden suhelases que inclu-
yá todas sus posibilidades, Una clase abstracta puedo ser modelada como concreta si nos
encontramos con que ls dilerencis etre sus subelases son innecesaria y por tanto deben ser
climinadas, si dichas diferencias pueden represente utilizando diferentes valores de un
atributo en lugar de subelases distintas.

Una forma de simplificar la decisión es adopta el principio de diseño que afirma que todas
fa clases que no son hojas deben ser abstracts (y todas las elses hoja dehen ser necesun
mente concretas, excepto aquellas clases hoja poleas para gencralizaciones futures). Este

no pertenece a VME: ex un estilo que se puedo 0 no adoptar. La razón de ser de exa
“regla dela superclase abstract” son las diferencias entre un método herecuble de una super
¿lso y un método de una clase concreta, cuyts necesidades no siempre ¡ubiers con
lun único método, El método de la superclane debe hacer dos cons: 0
del var todos sus descendientes, e implementa el exo concreto para la clas

la que aparece. Fstos objetivos gencralmente entran en conflict. Por of

cualquier superclase no abstract puede separan
hoja concreta, La superclase abstracta contendrá todos los métodos que deben ser heredados por

106 FI. LENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA

cana

‘ior Entre

CartaCitrada

las subelases, mientas que la subclase concreta contendrá las métados necesarios para k
clase instaneiahle específica, La regla de la superclase abstracta proporciona también un
‘lara distinción entre una variable o parémetro que debe mantener el tipo concreto espec

nt que puede tener el tipo de cualquicra de los descendientes de la superclase

Considérese la declaración de la class Carta de lu Figur 13.2, la cual no sigue la segla dela
superciase abstracta. Dicha clase tens dos operaciones: inicalizarCursor que pone el cursor a
Principio, y leerSiguienteFrase que devuelve cl texto dela siguiente frase no leída. Sin eme

la subo CartaCifrada representa una cara cuyo texto ha sido cifrado y en la que la operación
IeerSiguientoFrase ha sido sabrecscrita debido a que el texto debe ser descifrado antes de poder
ser elevuelo, La implementación de la operación es completamente diferente. FI hecho de que
Carta sca una superclase concreta no permite disúnguir etre un parámetro que fuera una Cana
ordinaria (no sobrcescrbibl) y uno que pudiera sr tano una Carta como una CartaCkrada

Fl enfoque dela superclas abstracta permite distinguir lactase abstracta Carta (que puede
er tanto una cart cifrada como una no cifrada) y añadir la clase CartaNoCifrada para repr
sentir cala caso concreto, como so muestra en la Figura 133. En ete caso, eerSigulenteFrase
es una operación abstracta implemontada por ea una de los subclass mientas que Incl
zarCursor es una operación concreta, igual para las dos subelases, El modelo es simétrico.

Si se sigue la regla de la supercluse abstracta, la declaración de class abstracts puede
determinarse automáticamente a partir de la jerarquía de clases, por lo que representarto es

Hay una excepcion a alim de que una cave hoja aburscta no sirve para nada: ura
clase abstracta declarada como espacio de nombres común de un conjunto de atributos y
operaciones de ámbito global a a clase. Esta utilización es muy poco Frecuente pero a veces es
necesaria cuando so programa con lenguajes no orientados a jets, Exo ví deb exiane siem
pre que sea posible. ya que las variables globales vulneran el espiritu del diseño orientado
¿hjetos introduciendo dependos es. Una cla ria a menudo proporciona la
misma funcionalidod de una man

Vie ¡Cumana 95]. Parrón Unitario (Singleton),

ENCICLOPEDIA DETERMINOS — 107

Carta

Restore cana | <

Cuenteahorro

]
|

leesSquetarave + Cadena

Figura 133 Unas

acceso

Dependencia de permiso que posibilca a un paquete hacer referencia a clementos de otro
paquete

Véase amigola, importar visibilidad

Semántica

Un paquete (cliente) que hace referencia a un clement de otro paquete (proveedor) debe
importa el paquete que contiene el elemento wlizando una dependencia «access» o «Import»
del paquete cliente hacia el paquete proveedor. Un paquete consigue implícitamente acceso &
todos los paquetes importados por un paquete dentro del cual está andado (esto 8, los paquetes
anidados pueden ver todo aquello que ven sus paquetes contenedores)

Un elemento de un paquete tiene acceso a todos los elementos que son visibles dentro del
paquet. Las reglas de visibilidad se pueden resumir dela siguiente forma

+ Todo clement definido en un paquete es visible dentro del mismo paquete

+ Si un clemento es visible dentro de un paquete, e visible en todos los paquetes anidados

“dentro del mismo,

+ Sun paquete accede o import otro paquete, todos los elementos definidos con visiili
lad pública enel paquete accedido o importudo son visibles dentro del paquete que los
impor.

Si un paquete es hijo de otr, los elementos definidos con visibilidad pública o privada en
el paquete padre son visibles dentr del paquete hijo.

108 HL-LENGUAIE UNIFICADO DI: MODELADO, MANUAL DE REFFIRENCIA,

+ Las dependencias de acceso e importación no son trmsitivss. SÍ A ve à B y B ve a a
necesariamente A verá a.C.

Una consecuencia de esto es que un paquete no puede ver el interior de sus propios pays
tes anidados a meno que acceda a ellos y que los contenidos que hoya dentro de dict,
paquetes sean públicos. Algunas seglas mis sobre visibilidad:

+ Los comenidos de un clasificador, es dect, atributos, operaciones y clases ania, se
visibles deniro del paquete si nen visibilidad pública en el clasificador. Observe
que Tos contenidos no estructurados de un suhsistema están gobernados por las regla

‘operaciones se gobiernan por esta regla

Las contenidos de un clsificador son visibles dentro de un claviicador descendiente
tienen visibilidad público protegida en el clasificador

+ Todo lo que contione un clasificador ex visible para los elementos internes del
incluyendo métodos internos o máquinas de estados del clasificador

TI caso normal sencillo concierne 4 los elementos de paquetes que está al mismo nivel E
ste caso, un clement puede ver todos los clementos de su propio paquete y todos
elementos que tengan visibilidad pública de squcilos paquetes importados por su paquete. Una
clase puede verlas curactoísticas públicas de las clases que ve y también las caracteres
protegidas de sus ascendientes.

Notación

ima dependencia de weveso se representa mediante una fecha con línea discomtinoa que ale dé
paquete cliente y apunta al paquete proveedor, La fecha está ctiquetada con Ta palabra cle

Discusión

La Figura 13.4 muestra un ejemplo de acceso entre dos paquetes que ran al miss

vel. El paquete P pmede acceder al paquete Q. pero el paquete Q no puede acceder à P Las
clases K y L del paquete P pueden verla clase pública M del paquete Q. pero no la chs
rival N. Las clases M y N na pueden ver ninguna clase del paquet Pe auque la visibiidal
de la clase K es pública, debido a que Q no tiene acceso a P Para que una clase de un pee
Q sca visible en un pa P que está al misimo nivel que Q, la lise debe tener visibilidad
Pública, y Q debe ser accedido o importado porel paquete P.

La Figura 13.5 muestra un caso de visibilidad y declaraciones de acceso algo más comp
jo. El simbolo que precede al nombre del element represent la visibilidad del mismo fuera de
su propio contenedor: + para visibilidad pública, pura protegid (visible sólo en descendien
les) y = para visibilidad privada (no es visible fuera del contenedor)

La clase A puede ver las ses C y E porque está dentro de los paquetes X € Y

ENCICLOPEDIA DE TÉRMINOS 109

Lan clases € y A pueden ver la clase D porque el puquete Y importa el paquete 7. La
clase A está unidada dentro del paquete Y. por lo que puede ver todo aquello que ve Y.

Las clases A, C y E pueden ver a B porque están anidadıs en el paquete X. que implemen
el paquete V el cul contiene x B. Sin embargo, no pueden ver a porque tiene visibilidad
Privada dentro de su propio paquete V. La clase F no es visible era de Y

La clase E no ve à D porque D está en el paquete Z, que no ha sido importado por el
paquete X

Ni la clase C nila clase E pueden ver la clase A, debido a que A están el paquete Us que
mo ha sido importado por ningún exo paquet

Las clases B y F ven las class D y F que están en paquetes que contienen al paquete V
que esti en el paquete Y. pues dicho.

ba à Yo EL hecho de que F sea pr

a ver otras clases, pero evita que vts class la vean a ll

Las clases B y F se ven mutuamente porque están en el mismo paquete. La clas

privada par las casos de otros paquetes. poro mo para las que est

uo

EL LENGUAIE UNIFICADO DE MODELADO. MANUAL. DF REEERENCIA,

acción

Computación asómica ejecutable que produce un cambio en el estado del modelo o gs
devuelve un valor, Coatastar con: actividad.

Véase también ucción de entrada, acción de sida transición.

Semántica

Una acción es una computación atómica, es devir, no puedo sor finalizada por una orden de
terminación externa. Puede sociuse una temsición en una máquina de estados (entre dos es
‘oben den de un esto simple) 0 un puso en una interacción. Generale es un
Primitivo pseudo-primitiva sobre el estado de un sitema, aa

Simple. Las accioncs típicas son: asignación de un valor a un at información de
sribuos enlaces, creación de nuevos objetos o enlaces, operacion anemias sencillas y md
de señales a os objetos. Las acciones son os pasos discretos can que se constmye o comport
miento, Se supone que las acciones linen que ser computaciones “rapidas” para mo perjudicar
‘iempe de repuesta del sistema El tem puedo ejecutar varias acciones simulincamente y us
que compartan cl tempo entre clas, pero su ejecución debe ser independiente

Lan ucciones pueden estar asociadas a una transición, ejecutándose cuando la transiciónse
dispara. También pueden aparecer como acciones de entrada o de salida de los estados, Hay
acciones disparadas por transiciones que entran 0 dsj um estado, Todas fas acciones su
atómicas, eso es, se ejecutan completamente y sin intermupción de otrus opcraciones,

Una actividad es también una computación, poro puede ten una estructura interna y re
bir una orden determinación externa de una transición de un evento externo, y puede asociar
se a un estado pero no à una tranición, A diferencia de las acciones, las actividades pueden
persistir ndefinidamente hasta ser finalizadas extornamonto, sumque imbién pueden termirar
por sí mismas. Una acción no puede sor finalizada externamente y debo estar asociada a una
transición o la entrada o Salida de un tado. nunc un estado en sí miso,

Estructura

Una acción tiene un conjunto de objetos destino, una referencia a la señal a enviar o ala
voperación a realizar (alos que colectivamente se conoce como sulicitud). una lista de valores
para los argumentos y una expuesión opcional de recurrencia que especifica la posible tración

Conjunto de objetos destino. Expresión de conjunto de objetos destino que produce un
conjunto de objetos. En muchos casos. el conjunto contiene un objeto simple io. À todos lon
objetos del conjunto se les envía concurrentemente una copia del mensaje con la ista de
¡mentos correspondiente (es deci, se Le comunica mediante difusión). Cada uno de ellos
ula independientemente una instancia distinta del mensaje, Si el conjunto esté

Solicitud. Denota la declaración de una operación o una señal, O bien se envi la señal los ob-
jetos o bien se llama a la operación (en el caso de que la operación devuelva un valor. el
«conjunto debe contener un único objeto),

ENCICLOPEDIA DE TÉRMINOS 111

Lista de argumentos, Una ita de argumentos. Cuando se eva, los valores de alista de ar
gumentos deben corresponderse con los parámetros de la señal 6 de ta operación. Los arg
mentos se proporcionan como parte de La llamada o del envio de la señal

Recurrencia. Expresión de una iteración, que especitica cuántas veces hay que realizar la ac
ción, y que opcionalmente puede incluir variables de iteración. Esta expresión también puedo
¿escribir una acción condicional (una iteración con una o ninguna repetición)

Tipos de acciones

Acción de asignación. Una asignación es una ucción que da a un aibuto de un objeto un valor
determinado. La acción tiene una expresión para el objeto destino (el nombre de un tributo del
objeto), y una expresión para el valor a asignar al atibuto del objeto.

Acción de llamada. Una acciôn de Mamada provoca una invocación de una operación sobre un
objeto una invocación a una operación de un objeto, La acción iene un nombre de mensaje
na expresión para lu isa de argumentos, y una expresión de conjunto de objetos destino, El
destino puede ser un conjunto de objeto, en cuy co I llamada se produce concurrentemente
y ln operación no deberá por tanto devolver ningún valor. S la aperación devuelve un valor el
eine debe ser un único objeto,

Las acciones de Hamada son asíncronas. El que realiza la Mamada debe esperar u que sc
complete la operación invocada antes de recibir de muevo el contol. Sila operación se imp

menta como un evento de Hamada l que ealiza lo llamada espera hasta que el receptor ejecu

la camsición disparada por ls amada para retomar cl control. Sila ejecución de la operación
devuelve valores, el que realiza la Hamada los recibe cuando retoma el control,

Acción de ereación, Una acción de creación produce la instanciación y creación de un objeto
(véase creación). La una referencia a una clase, y pcionalmente una operación.
presente en la clase con una ita de argumentos, La ejecución de la acción crea una nueva ins
lancia de la clase, cuyos tributos obtienen los valores correspond cvallución de las
expresiones de valor iniciales. Si existe una operación de creación explícita se ejecuta. La ope
ración puede sobrescribir la inicialización de los valores de os arihuros, normalmente ul
zando valores como argumentos de la acción de crcación.

Acción de destrucción. Una acción de destrucción produce la destrucción de un objeto destino,
No existen ouos argumentos. El resultado de ejecutarla acción esla destrucción dol objeto, jun
to con todos sus enlaces y can todas las partes de I que estuviera compuesto (véase compo.

Acción de retorno. Una acción de retorno provoes la transerencia del flujo de objeto aquél
que Ham à la operación. Esta acción sólo está permitida dentro de una operación invocada por
Una llamada. La acción tiene una lista opcional de valores devueltos quese pone a disposición
de quien realizó a amada cuundo se le devuelve el control Si la acción adjunta fue invocada
de forma asincrona, el que llamó la operación debe escoger explícitamente entre recibi el
mensaje de retorno (como una señal), o perder,

“Acción de envio, Una acción de envio rca una instancia de una señal yla inicializa con los ar-
gumnentos obtenidos al evaluar las expresiones de argumento dela acción. La señal se envfa u
los objetos del conjunto de objetos destino obtenido evaluando la expresión destino de la

1

F1. ENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA,

acción, Cad ohjete del conjumo recihe su propia copia dela señal. EI que envi la sch
Su propio hilo de contro y contin ejccutándose, ya que el envío de una señal es ferons La
acexón tiene un nombre de señal, una lista de expresiones para los argumomos de la señal y ua
Expresión de conjunto de objetos destino para los objetos destin,

Si se omite el conjunto de objets destino, la señal se envía uno 6 más objetos dete
ados por la señal y por la contieuración del siem, Por ejemplo, una excepción se envi as
mino cerrado que viene determine por ls políticas del sistema

Acción de terminación. Una scción de terminación provoca la destrucción del obje
propictrio de la miguina de estados que contiene acción (est es se suicido) La destrucción
de un objeto ex un evento al que pueden responder ros objetos,

Acción mo interpretada. Una acción no iwterpretsds es una estricta de control à cta
estructura no definida en UML

Notación

{UML no tiene un Ienzuaje fijo de acciones, Se espera que los que relizm los modelos elegir

tum lenguaje de program seal para escribirlas acc tación de OC.
élu en este libro para escribir pscudocódigo, pero no es part del estándar

Acción de Hamada
Acción de creación

new nombre-lase (orgument,
Acción de destrucción

objeto. destroy)
Acción de returno

return exoresión
Acción de envío

njunio-objetos estro nombre-señal (argumento

Acción de terminación

terminate
Acción no interpretada

I (exptesin) then (acción) else (accion

ENCICLOPEDIA DETÉRMINOS 113

Si es necesario distinguir explícitamente entre Hamad y envio, se pueden anteponer las
palabras clave callo send a lu expresión de form opcional

Discusión

La espocificación de UMI. define un conjunto de aceioncs con la esperanza de que se añadir

ras cn la implementación seal de las herramientas que wrabıjen con UML. Esta decisión ue el

resultado del compromiso entre el deseo de preciión y la necesidad de que los desarrolladores

trabajaran con varios Tenwuajes, lo cual abarca un amplio espectro de conce] ánticos

Listen muchas más variaciones ca la semántica de ejecución entre mación.
la que exist en las estructuras de datos v en el conjunto de estructuras de co
1 diferencias sutiles entre lenguajes son dificiles de plasmar de forma p

le hacerlo tedricamente, La selección guaje de programación

come base para un lengua de xcciones podía. sin embargo te <nimar alos

jes. lo cual nv querfamos hacer. La Semántica de acciones ha quedado
pue algo incomplt y ambigua demo del propio UML. Paca precisa a

gramación) que se est stilizando. Algunos crias se an ja
dehido a su libertad, per lo es sólo sta el grado de imprecisión el lenguaje de acción e
ido, EI auténtico doeeto es que UML no inpone ais lena funca de wcchmes y olas ex
presiones, lo cual es posible sólo a duras penas en el políglota mundo actual de la informática
posar delas emotivas peticiones al respeto.

acción asíncrona

Solicitud en la cual ol objeto emisor no hace una pausa para esperar los resultados, Envío,

Véase enviar. acción sinero

acción de entrada
Una ción realizada cundo so entra en un estado,

ión acción de salia, ation máquina de estados, transición.

Semántica

do puede tener una acción de entra opcional midi a Öl. Siempre que se entr en e es
taco se ejecuta la acción de entrada, después de las acciones asociadas a fan transiciones en
antes 0 a la salida de los estados previos y antes de cualquier acción asociada a estados
internos La acción de entrada mo so puede evadir por wing medio, Est garamizado que se ha
ejecutado siempre que el estado que la pases un estado andado dentro de esté activo.

Orden de ejecución. En una transición entre dks estados con ciones de entra y sada e
fas cuales la transición tambión tiene una acción. el orden de la ejecución es: Cualquier acción.

114 ELLENGUAJE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA

de salida se ejecta en el estado origen y los estados a los que engloba hacia fuera, pero noir
luye los estados que engloban toto al estado de origen como al

la acción en la rannición, después de lo cual e ejecutan las acciones de à mé
externas primero) en los estados englobados dentro del tu, hacia abajo incluyendo
stado destino, La Figura 13.96 muestra algunas traiciones con acciones mültples

Notación

Una acción de entrada se codifica usando la sintaxis pars una à con el nome
dela entrada del evento simulado (que es por lo u a dev
Tizae como nombre weal del exento)

Sólo se puede unir ni acciôn de entrada a un estado, pero la ción puede ser una secu
ia. de modo que no se pierde generalidad.

Discusión

Las acciones de entrado y salida wo som esenciales semännicamente (a acción de entradas
podria unir a todas las transiciones entrantes) pero tacita La encapsulación de un estado par
poder separar el uso externo de él de su construcción imerna. Permiten definir acciones dein
ialización y de finalización. sin la preocupación de que puedan evitarse, Son particularmente
les con excepciones, porque definen las acciones que dchen ser realizadas incluso si cure
una excepción

Una acción de entrada es il para realizar una inicalizaciôn que deba hacerse cuando x
entra al estado por primera ver, Un uso es inicializar las variables que capturan información
durante un estado,

Por ejemplo, una interfaz de usuario para permit a entrada, por un teclado numérico, de un

número de teléfono o de un número de cuenta, impr el mimero de la entrada. El reajuste de

un contador de errr. al como el número de fallos en la onteasoña, es otro ejemplo. Le asp

ación de almacenamiento temporal, rune el estado, es tr uno par una acción de
rad,

A menudo se milan jas uma acción de entra y una acciôn de salida. La acción de
entrada asigna recursos, y la acción de salida los era. Incluso si ocurre una transición ext
ia, so liberan los recursos. Esto es una buona manera de manejar emores de usuario y exce
«ciones, Los erores de usuario secionan transiciones de ato nivel que abortan estados anid,
pero los estados anidados tienen una oportunidad de Timpiae antes de perder el Majo de cont

acción de salida

Una acción que se realiza cuando se sale de un estado.

Vene también acción de entrada, stómicol, máquina de estados, transición.

ENCICLOPEDIA DE TÉRMINOS 115.

Semántica

Un estado puede tener asociada una acción de salida. Se ejecua siempre quese alga de estado
de cualquier manera, después de cualquier otra acción asociado a estados o transieciones más
nero y ances de cualquier acciön unida estados mix externos. La acción de salida no se
puede evadir por ninpün meo, Está garantizado que ve «jocutaá antes de que el Majo de otr
Jeu abandone el estado que la posee.

Lan seciones de entrada y de salida no son esenciales seminticamente (a acción de salida se
podia uni todas las transiciones salient), per facilitan La encapsulackin de un estado para
poder separar el uso extermo de él de su construcción interna. Permiten definir wciones de ini
cialización y de terminación, sin la preocupación de que puedan ser evitudas. Son particular»
mente ities con ex + porque definen las aceionen realizar incluso si ocurre una
excepción

Notación

Una sesión de sid se codifica usando a sintanis para una transición interna com el evento si
mulado llamado salida (que es. por o anto. una palabra reservada y no se puedo uilizar como
nombre eel del evento»

salida / secuencia acción exi secuencia acción

A un estado solamente se puedo asociar una acciön de salida, pero la seción puede ser una
secuencia de acciones, así que mo se pierde ninguna generalidad.

Discusión
Una acción de salida os Wil para realizar una limpieza general cuando se site de un estado, El
uso más sigiticativ de las acciones de salida es bert el almacenamiento temporal y oo e

cursos asignados durant la ejecución del estado (generalmente. un estado con el detalle un
dado).

A menudo so ilizan juntas una acción de entrada y wa acción de salida, Ta acción de
entra asigna recursos, y la ueción de salida ls libera, Los recursos son liberados incluso si
cure una excepción.

acción síncrona

Solicitud en a cual el obje à esperar una respuestas también es una llama
da. Contrastar com:

activaciön

Ejecución de una operación, Una activación ttambién conocida como foco de contre) repre
senta el período durante el cual un objeto realiza una operación, bien directament o bien a

116

EL LENGUAIE UNILICADO DE MODELADO, MANUAL. DE REFERENCIA

través de una operación subordinada, Model tanto la duración dela ejecución como I eae

de contzo entre a ejecución y os que hick la Mamada a la misma. En un computador yla

guaje de programación comvencionales. un sctivación se comespondería con un bloque de
wa en la pi

Véase Mamada, disgrsma de es

Semántica

Una activación es una instanch de ejocución de um operación, que incluyo el período dure:
el cual la operación llama a otras operaciones subordinadas (véase llamada). Su conte
comprende un conjunto de variables locales accesibles Únicamente por la activación un
posición actual dentro del método (a eta descripción de comportamiento. y una referencia

rencia de retorno) ula activación que representa el contexto de llamada. que retoma
control cuando termina la activación actual. Una activación sn referencia de retorne debe e

sul de una transición sobre a máquina de estas de I cine de un jet ei ee
¿lo se completa la activación, la máquina de estados simplemente espera el próximo even

Obsersose que sta definición describe un proces ordinario, tal y como se implement
en una típica mäguina de von Neumann. Pero expresarlo de form sent i

también a un entom distribuido, cn el cual na hay memoria comparada y et el que cl

pila est formado por uma lit enlazala de activaciones en diferentes espacios de memos

Notación

Uns activación se representa cu un diagrama de secuencia utilizando un rectingulo alo y
dado (una barra vertical hueca) cuya parte superior está afincada con el momento de se
iniciación y cuya parte inferior lo eto de su finalización. La operación a
realizarse represents mediante una etiqueta de texto al lado del sinbolo de activación 0 en
margen irquierdo. dependiendo del estilo

De forma alteenativa, también es posible que el símbolo de mensaje entrant indique li
operación, en cuyo caso se puede omitir a ciqueta en la propia activación. Si el ajo de obje
es de procedimientos, entonces el extremo superior del simbolo de auvación estará en la puma
de la Mecha del mensaje entre que inicia acc, y del extreme inferior ld la Mecha de
mensaje de retorno,

Si hay actividad concurrente ente varios objetos, la activación muexra la ejecución de un
10 concurrente, A menos que los objetos se comuniquen, las activites concurrentes
son independiente, y no es relevant reflejar sus tiempos relativos de ejecución

‘Cuando se rata de código de procedimientos, un activación muestra o bien la duración du
rante la cual un procedimiento está activo en el objeto v bien el tiempo durame el que ests
setivo un procedimiento subordinado llamado por el procedimiento original. posiblemente cn
alain otro objeto, En otras palabras, se muesran simultäncamente todas las zetivaciones d
procedimientos ands. Este conjunto de activaciones anidadas simultáneas forma cl marco
¿e pila de la computación en un computador convencional. En caso de una segunda Hamad
2 un objeto con una activación existente, el sogundo símbolo de activación se dibuja

a derecha del primero. de den la sensación de estr apilados. Las llamadas

ENCICLOPEDIA DE TÉRMINOS 117

apilados pueden tener evalquiee nivel de anidamicte. Las llamados pueden ser a a ais

‘peracid recursiva) es operaciones del mismo objet,

Ejemplo
La Figura 15.6 muestra ls sctivaciones producidas a par e las corespondicnts lamas,

idad

Ejecución no atómica en curso dentro de una máquina de estados. Contrastar con: ación

Véase tambien transición de finlización, esta

Semántica

Una actividad es la ejecución de una subestractura dentro de una máquina de estados, pero de
na subestructura que hene una duración y posibles puntos de interrupción, Cualquier
transición que Tueree la salida de la regiön de control abort la actividad. Una actividad no
termina por el hecho de que e dispure una transición interna, porque no hay cambio de
pero la acción asociada a la Iramsición interna sí podría terminarla explícitamente

Una actividad se puede model mediante estados anios. utilizando una referer
subrmáquina o omplesnde una expresión de actividad

118 EL LENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA

donc den nono tara apra | Sonando

[ vigtianao | ai

y iad
Ejemplo

La Figura 13.7 muestra un sistema de alarma que ilustra la diferencia entre una acción y una
actividad. Cuando se produce el evento detección de un intruso, el sistema dispara na tan
sición: Como parte de la transición, se eva x cabo la acción llamar a a policía, que cs una a
ción puesto que es algo atómico (Y normalmente rápido). Mientras se ejecuta la acción rose
acepta ningún evento. Después de realizar a acción el sistema pasa al estado Sonando, y mit.
tras est en este estado realiza la actividad sonar alarma, Una actividad tarda un tiempo en te
alizars, tiempo durante el cual la actividad puede ser interrumpida por algún evento. En ee
caso. la actividad sonar alarma no termina por s solo, ya que cantina ejecutándose mientra
cl sistema e encuentre en el estado Sonando. Cuando se produce cl evento roinilar xe dispar
la transición que devuelve al sistema al estado Vigllando.

‘Cuando el estado Sonando deja de estar activo, su actividad sonar alarma termina.

activo

Estado en el que se ha entrado y del que aún no se ha salido: estado que mantiene un objeto

Véase también clase activa, objeto active:

Semántica

Un estado pasa a estar activo cuando se dispara una transición de entrada, y deja de serlo cua
do se dispara una transición de salida. Si un objeto tiene un hilo de control, tonces al menos
hay un estado activo (en un caso extremo, una clase puede tener sólo un estado, lo que supone
que la respuesta ante un evento es siempre Ia misma). Si un estado está activo dentro de Ja
máquina de estados de la clase de un objeto, se dice que el objeto mantiene el estado, que está
en ese estado,

Un objeto puede tener ms de un estado simultáneamente, El conjunto de estados activos se
denomina configuración del estado activo, Si un estado anidado está activo, todos los estados
que lo contienen están también activos. Si el objeto permite concurrencia, puede haber mis de
un subestado activo al mismo tiempo. Cada transición afecta, al menos, a unos pocos estados de
la configuración del estado activo, Ante una transición, ls estados activos no afectados por Ja
misma permanecen aetivos.

Un estado compuesto puede ser secuencial o concurrente. Si es secuencial y está activo,
entonces habrá exactamente uno de sus subestados activo, Si es concurrente y está active, en

ENCICLOPEDIA DETERMINOS 119

tonces todos los subestados que contiene estarán activos, En otras palabras, un estado
compuesto se expande en un árbol Y-O de subestados actives, de forma que en cada nivel hay
Siempre estados activos

Una transición que atraviesa en la Frontera de un estado compuesto debe estructurarse de
forma que mantenga las restricciones de concurrencia. Una transición en un estado secuencial
compuesto normalmente tiene un estado origen y oro destino, y disparar una transición de este
tipo no cambia el número de estados activos, Sin embargo, una transición en un estado con
<urrente compuesto tendrá un estado origen y uno destino pura cada una de las regiones en que
Se divide el estado concurrente compuesto, y una transición de este tipo se denomina división,
Si se omiten una o más regiones como destino, el estado inicial de cada región omilida está pre
sente de forma implícita como destino, pero si una de las regiones carece de estado inicial,
emonces se dice que el modelo está mal modelado. El disparar una transición de este tipo
incrementa el número de estados activos, situación que se invierte a la salida del estado
concurrente compuesto,

Véase méquina de estados, donde se lleva cabo una completa discusión sobre la semánti-
ca delos estados concurrentes y las Iraniciones complejas.

Ejemplo

La parte superior de la Figura 13.8 muestra un ejemplo de máquina de estados que tiene
estas compuestos, tato secuenciales como concurrentes, Se han omitido las transiciones par

Figura 138 Estados activos concunentemente

m

HI LÉNGUAIE UNIFICADO Dk MODELADO, MANUAL DI REELRENCIA

entrar la atención en los estados, La parte inferir de a igura ¡muestra as livers con
Faciones de estados que pueden estar activas concorrentemente.

En este ejemplo hay cuatro posibles contiguraciones de estados activos, Sólo los esas
hoja son concretos, ya que ls estados de más ato nivel son abstractos, es deci un objet
puedo estar en lo sn estar también en uno dest estas hoja uan. Por eg
un objeto no puede estar en el estado Q sin estar alguno de los subestados ce O, Camada
concurrente. tanto © como D tene que estar activos iO lo está. Ca estado hoja secu
ponde con un hilo de conte. Es un ejemplo más ampli, el número de posibles cont

ex crecería exponencialmente y sera imposible mosirarl todas. de aque la ventaja del
notacién

Abstrucción de extern a un sistema, sübsistemas o eases que interactúan d
rectamente con el sistema. Un actor participa en un Caso de uso 0 conjunto colerente de caos
de uso para levar cabo un propósito global

Vene también coso de uso,

Semántica

Un actor abstr y caracteriza a un usuario externo o un conjunto de usuario externos re

ciomados que interet cow el sistema o clasificador. Ex una idalización con un propóstioy
Signiticado coneretos, que puede no corresponderse con objetos fic. Un objeto io
puede combinar propósitos dispares y por tan ser modclado por varios actores y vicevera,

diferentes objetos líicos podran incluir cl mismo propónito, y por tanto ser modelados com
el mismo actor, El objeto usuario puede sor una persons, Sistema informático. otto subs
ema 1 010 tipo de objeto. Por ejemplo, el conjunto de actores de un sistema de sudes de com.
putadores podría inclu los actores Operador. Administrador del Sistema, Administrador de
Bases de Datos y Usuario sin más También podría haber actores no humanos como por
ejemplo Cliente Remoto, Reloj Maestro « Impresora de Red

Cada actor define un conjunto de roles que los usuarios de wn sistema asumen cuando
ieractdan con el mismo, conjunto completo de actores describe in las diferentes forme
comunicación enre los usuarios cxtemos y el sitema, Cuando se implementa sistema, lor
actores se implementan como objetos físicos, Un objeto fico puede implementar más de un
actor si puede Uevar a cabo tos sus rules, Por ejemplo, una persona puedo ser tanto vendedor
‘com cliente de una misma tienda; estos actores no están inherentemente relacionados. pero
ambos pueden ser implementados por una persona. Cuando se dica um sistema. ls diferents
actores se realizan mediante clases de diseño (véase realización)

trscciones de los actores con un sistema se cuantifica en casos de uso, Un

ne de Funcionalidad que implica a un sema y a sus actores
para llevara cabo algo que tiene sentido para los actores, Un caso de uso puede implicar a uno
6 más actores, dela misına forma que un mismo actor puede panticipar en más de un aso de
uso. Los actores vienen determinados por los casos de uso que realizan ¥ por los roles que

ENCICLOPEDIA DE TÉRMINOS 121

¿desempeñan en os diferentes casos de uso, Un actor que no participa en ningún caso de uso
se de sentido,

Un modelo de casos de uso caracteriza los tipos de comportamiento que proporciona una
entidad, como por ejemplo un Sistema. un subsistema v uns. clase, eh st Interacciones con
fem externas. En el caso de un sistema los actores pueden ser realizados tanto por usu
Fios humanos como por otros subsistemas. Cuando se tat de un suhsitema o de una class los
<lementos extermos pueden ser actores del sistema plobal o pueden sr iros elementos intemos
el sistema, como otros subsistemas u otras eases.

las instancias de actores se comunicun con el sistema mediante cl envio y recepción de
instancias de mensajes señales y llamadas) desde y hacis instancias de cason de uso. y en el
nivel de realización, dese y hacia los objetos que implementan el caso de uso. Todo lo anterior
se express mediante asociaciones entre ef actor y el caso de uso.

Un actor puedo listar el conjunto de señales que envía y que recibe, y mantener una ista de
las inertaces que olrece y que requiere, Las interfaces de un actor deben ser compatibles con
las de Jos aux de uso con los que se comunica, En otras palabras, un actos debe recibi odas

señales que un caso de asi sea capaz de envialo y no debe marlarte al cono de uso señales
que Este no sea capaz de recibir. Las interfaces de un actor restringen las eases con las que
pueda coresponderse (que puedan implementar su comportamiento). Un actor puede también
tener un list de aributos que Caractorico su estado,

Generalizaciôn

Pueden existir semejanzas ent doy o más actores; esto es, pueden Comunicarse con el mismo
onunto de cane de uso de a misma manera, Esta semejanza se expresa mediante la pencra
lización en otro actor. posiblemente abstract. que modele los aspectos comunes. Los actores
descendientes heredarán los roles y relaciones con casos de uso del actor untecesor. Una
astancia de un actor descendiente siempre se puede utilizar en aquellos casos en los que se
Espora una instancia del ceesor (principio de capacidad de sustitución). Un descen
diente incluye los atributos y operaciones de sus antecesores

Notación

Un actor se puede representar mediante un símbolo de clase (rectángulo) con el estercotipo
«actor». El icono estándar de un actor es el “monigote”. con el nombre del actor debajo. El
ctor puede tener compartimentos que muextren los tribus y eventos que recibe, y también
«lepondencias que muestren los eventos que envía, como cualquier elasficador normal (Fi
gara 139)

Cliente

gua 139 Símbolo deactor

12

ELLENGUAJE UNIFICADO DE MODELADO, MANUAL. DE REFERENCIA.

agregación

Forma de asociación que específica una relación todo-pante entre un agregado {el odo) yl
partes que Io componer

Véase también composición.

Semántica

Una asociación hinaria puede declararse como agregación. o lo que es lo mismo, como rl
ción todo-parte. Un extremo de la asociación se designa como agregado mientras que el tora
se marca de forma especial. No pueden ser agregados (o compuestos) ambas extremos, peros
‘que pueden estar los dos sin marcar en cuyo caso no se trataría de una agregación

Los enlaces instanciados de las asociaciones de agregación obedecen ciertas reglas. La
relación de agsegación es transtiva y antisimeéica a través de los enlaces de La ag
incluso a través de aqueos que pertenecen diferentes relaciones de agregación. La propiedad
que tiene sentido decir que "B es parte de A” si existe una ruta de enlaces de
las partes acia el todo}. La
‘stan bucles en las rutas dirigidas de los enlaces de agregación.
Esto es, no es posible que ningún objeto sea parte de sf mismo directa o indirectamente
Uniendo los dos roles el ralo de enlaces de agregación de tods las asociaciones de
gación es un grafo parcialmente ordenado, un grafo sin hucles (el caso ris común de onen
parcial sería un äebob. En la Figura 13.10 se muestra un ejemplo
{Una ruta dirigida de enlaces desde el objet 1 hasta el objeto A implica que exist una ru
dirigida de asweiuciones de agregación de la clase B ala clase A, pero la ruta de asociacion
puede implicar bucles en los que la misma clase aparezca más de una vez. Una ata digi de
iaviones de agregación de una clave a sí misma es una recursividad.
Existe una relación más fuerte de agregación llamada composición. Un compuesto es un
gado con las restricciones adicionales de que un objeto puede ser parte sólo de un
compuesto, y de que el objeto compuesto tiene la responsabilidad de la disponibilidad de sus
parts ala hora de crcurlas y destruir,

Véase composición pura máx detalles,

En la agregación Simple, una pan puede pertenecer a más de un agregado. y lo que es más
puede existir independicmemense del ugregado. A mento el agregado “necesita las pares, enel
sentido de que puedo ser considerado como una Colección de partes, pero las purten pueden ens
Ai por sf mismas, sin tener que ser vists como partes únicamente. Por ejemplo, una rta es peo
mé que un conjunto de segmentos, poro un segmento puedo existe independienemento de x
pertenece » no à una ruta y además el mismo segmento puede pertenecer a más de una rut

Véase asociación y extremo de asociación para más información sobre las propiedades dela

Notación

Una agregación se representa mediante un rombo o diamante hueco en el extremo dela

La asociación que se conecta ala clase agrogadh (véase Figura 13.11). Sila u
«composición, representación es un rombo relleno (véase Figura 13.54), No pueden tener in
dicadores de apregación ambos extremos.

ENCICLOPEDIA DE PÉRMINOS 123

Elemento

Contenedor

‘cone » Corned

Figura 13.10

Una clase agregada tiene miültiples partes, pero cada relación entre la clase ag
vana de ls partes es una asociación distinta (véase Figura 13.12)

sgada y cada

Si bay dos © más asociaciones de agregación para In misma cluse agregada. se pueden

representar como un árbol combinando los extremos de fa agregación en un único segmento

FLLLENGUAH UNIFICADO DE MODEL ADO, MANUAL DE REFERINCIA
| Camino

> segment | ornate

Segmento

ra 13.13), poro esto requiro que todos lx anos de os extremos dela agregación
Sean consistentes: por ejemplo. deben tener ka misma moluplicidad. Dibujarlo mediante w
bol es una mera Cuestón de presentación que no aporta ninguna semdntica adicional

Discusión

La distinción entre asociación y agregación es muy a menudo un asunto de gustos má q
diferencia semántica real. Hay que recorda que la agregación es una asociación, La
¿conlleva la idea de que el agregado es la suma de s

caicional que aporta a In succión s a restricción que impide queen los

ción existan hueles, que ex importa conocer. Otras restricciones, como la existencia d
dependencia, las expresa la multiplicidad, no E agregación. À posar del paco significado qu

| Dirección | | Cuerpo

MensajeCorteo|

Dirección | Cuerpo

Figura 13.13. Representación ceo para md sde ias clas

ENCICLOPEDIA DETERMINOS 1

a tao el mundo está convencido de que es necesaria (pur diferentes razones). Piense en
ello como en un placebo de modelado.

Hay algunas propiedades secundarias conectadas con la agregación, pero no som sufi
para requerir formar parte de la definición, Algumas de ellas son la propuzación de operaciones
desde el agregado a las partes (por ejemplo una operación mover) a asignación de memoria
(de forma que el agregado y sus partes puedan cagarse eficientemente con una única
transferencia de memoria), Algunos zutores distinguen varios tipos de agregación, pero dichas
distinciones son tun sutiles que probablemente scan innecesarias para un modelado común.

«cación es una propiedad que trasciende una asociación particular Se pueden com
ciones sobre diferentes pares de clases. y el resul rogación. La
ón impone la restricción sobre las instancias de todas las asociaciones de agregación
(incluyendo la ones de composición) de que no pucden exit hucles entre los enlaces
de auregación, incluyendo Tos enlaces de asociaciones diferentes, En cierto somo, la ar
«ión es una expocie de generalización de la asociación en la cul las restricciones y algunas
‘operaciones Sea «iones de muchos tipos especiticas,

La composición tiene una semántica más especifica, como el contenido Físico y algunas
mociones de propiedad. La composición resulta apropiada cuando cada pase es propiedad d
jeta y cuado las parts u tienen vida indopondicino separadas de su propietario, Es wx
edo as partes tienen que ser asignadas © incislizadas eh el momento en que se rea su
propictario y no sobreviven ala destrucción del mismo, Los atributos de uno else tienen estas
propiedades y pueden por llo ser considerados un Forma de composición, aunque mo se
modean explicitamente como tales, Uiizando la componición. so puedo evitar la sobrecarga
del gestor de memoria yl peligro de los punteros suelos objetos huérfanos, También resul
“apropiado para situaciones en as cuales se in asad una gran cantidad de

clase ditita por motivos de encapsulamicnto y manipulación. poro los atributos reulmente
pertenecen a la clase principal. Las clases comtenedoras utilizadas para impleme
ssociaciones son también candidatos obvios parı parte, compuestas, aunque por lo
Adeberian ser general por un generador de código y no modeiadas explicitamente. Obscrvese
ue una une compuesta, como por ejemplo una clase contencdora, puede contener te
(punteros) partes no compuestas, pero los mbjetos referenciados ao se destruyen cuand
¿lestruye el objeto que los referencia

agregación compuesta

agregado

Chase que representa el todo en una asociación de ión ndo-pare),

alcance

Extensis ese. tal como un atributo, ope
+. representa un valor en cada insancia o bien um valor que co

126

FA. LENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA,

¿e un clasificador, Cuando se utiliza en so
propietario,

rio sin calificación sign, indica

Véase cecación, alcance de propietario, ulcance de destino,

Semántica
Et alcance puedo ser» hie de propietario o bien de destino,

Alcance de propietario. indicación de si existe 0 no una ranura de atiboto para cada instancia

de uma clase, o de si hy una sol ranura con el nombre dado para toda la clase

instancia Cada instancia del casi
¿e an ranura de
cados, La valores

:ador pose su propia copia independ
¡boto o bien su propio conjunto de objetos aso

ma ranura son independientes de los valores
¡que haya en las otra ranuras, Esta es la situación por defect.

Para una operación la operación se le apica u un objeto individual (en
una operación normal)

ease El clasificador en sf posee una copia de la ranura de aributo o dl
«conjunto de objetos asaciados. Todas las instancias del clasificador
onsen el acceso a una sola ranura

Para una operación, la operación es aplicable a toda la clas, ui
«omo una operación de creación una operación que proporcione es
tacticas relativas todo un conjunto de instancias, Esta operación

ose le puede aplicar: una instancia.

“Alcance de destino. Una opción que indica s ls valores de un aributo los valores del destin
¿e una asociación son 6 no instancias por defecto) clasificadores

instancia Cada ranura de atributo 0 cuda enlace de la asociación contiene ura
referencia de una instancia del chasficador destino EI número de en
aces se ve limitado por la multiplicidad. Ésa es la situación por de

clase Ton ranura de atributo todo enlace de la asociación contiene.
referencia de a clase destino en sí. La información de la asoc
«queda por tanto determinada en tiempo de modelado y mo cambia du
rante el tiempo de ejecución: de hecho no es o almacenarla
ten todos los objetes. Los enlaces implican ala clase en sí, mo a sus
instancias, Esto puede ser dti para cierta información de implemen
tación. pero para la mayoría de los propósitos de modelado esta
capaci se puede ignorar

Discusión

Los tributos 0 asociaciones de clase proporcionan valores globales para toda uns
lue y por tanto deberían utilizarse con cuidado v evitarse por completo, aunque los propor
cionan cusi todos los lenguajes de programación orientados a objetos. Ll problema es que
implican una información global, lo cual viola el espiri del diseño orientado a objetos
Además. la información global se vuelve problemática en sistemas distribuidos, porque

ENCICLOPEDIA DE TÉRMINOS — 127

ne unos accesos centrales en una situación en que los objetos de la clase pueden estar dit
buidos en muchas máquinas. En lugar de utiliza las clases como si fuesen objetos con estado,
es mejor introducir objetos explícitos para almacenar en ells cuslquie información compartida
que pudiera precisarse. Tanto el modelo como Io costes se vuelven más evidentes.

Los constructores (operaciön de creación, operaciones de fábrica) tienen necesariamente un
alcance de código del nivel de clase, porque (todavía) no hay ninguna instancia sobre la que
puedan operat. Esto es una plicación correcta y necesaria del alcance de case. Las otras clases
de operaciones cuyo alcance originales del nivel de clase tienen las mismas dificultades que los
arios, à plican una información global centralizada relativa a as instancias de las

ses, lo cual mo resulta práctico cn sistemas distribuidos.

El alcance de destino tiene una utilidad limitada y sólo debería utilizarse en circunstancias
especiales generalmente, sólo para propósitos detallados de programación.

alcance de destino

Especificación de si un valores una instancia o un clasificador.

Véase alcance

Discusión

El alcance de destino se usa sobre todo para almacenar lives como valores de striputos 0 como
destinos de asociaciones, Tiene una utilidad limitada. La palabra alcance sin aditamentos
significa alcance de propietario,

alcance de propietario

Se rata de una indicación de s la característica es aplicable un objeto individual 0 si es com-
parida por toda una clase,

Véase también alcance, alcance de destino.

Semántica

Ll alcance de propictaro india si existe no una ranura de atributo distinta para cada instan
cia de una clase, si existe una única ranura para toda la clase. Para un operador, el alcance de
Propietario indica si una operación se aplica una operación o bien la else en sf (al como
sucede en un operador de creación). En algunas ocasiones se denomina simplemente alcance,
Los valores posibles son

instancia Cada instancia de clasificador posee su propia copia exclusiva de una

ranura de atributo, Los valores de una ranura son independientes de
los valores de otras ranuras, Ésta es la situación normal.

Para un operador, el operador es aplicable a un objeto individual,

128 ELLENGUNS UNIFICADO DE MODELADO, MANUAL DE REERENCIA

aso Fl clasificador en sí poses uns opi de la runura de ariba, Ta
las instancias del elastic comparten el acceso la única ann
Sil Lenguaje permito clases como objetos reales entonces eto
tibuto de a clase en si como objeto.
Para un operador, el operador se aplica toda a clase, como
en un operador de creación o en un operador que proporcione
¿sica relativas a todo un conjunto de instancias.

Notación

Los tributos u operadores con aleunco de elase so subrayan (gta 13.14), Los atributos
‘operadores con alcance de iniancia no e sur

iur 13.14 Anibuto y operación con ac
Discusión
Para una asociación, se diría si la posición de origen de

ero eta información se puede especificar como el alcance de destino en la

1 el alcance de propietario es innecesario y, por tama. no se usa pi

alcance original

Indicador de si una ranura es propiedad de una instancia o de una clase

Véase alcance

amigo/a

Una dependencia de uso que concede permiso al cliente pra tenor seceso al proveedor, incl
o aunque el cliente no tem la suficiente visibilidad para tenor acceso al proveedor.

Véase también weceso, importar, visibilidad,

Semántica

ENCICLOPEDIA DETERMINOS 129

reglas normales de permiso entre fos elementos afectados. Esta capacidad se debe utilizar
cuidadosa y económicamente.

Notación

La dependencia amigo se represonta como una Mecha de línea discontina desde E operación:
la clase que adquiere el permiso la clase cuyo contenido se have disponible: la palabra clave
de exteroutipo «friend» se une à la cc

análisis
apa de un sh 0 u ins
en lo que hay que hacer, mic en cómo hacerlo. En un proc
rativo eta tapas mo een por qué realizarse de forma secuencial, FI eva de esta etapa
se representa mediante modelos del nivel de análisis, especialmente la vita de casos de uso y
la vista estática, Contestar andlish con dis, implememación y desplicgue

Véase ases de modolado, proceso de desarrollo,

antecesor

Véase genoraización. padre.

argumento

Valor específico de un parámetro,

Véase también ligadura, parámetro. pr ida de sustitución.

Semántica

Una instancia de un mensaje en tempo de ejecución tiene un fit de valores de los
mentos, cda uno de los cuales es un valor cuyo tipo dele ser consistente on el tipo declarado.
por el parimetv correspondiente en la declaración de la uperación © señal, Un valor es
consistente si su case tipo de dato es la mn mn descendiente de la declarada como tipo
del pars principio de sustitución. se puede wilizar el valor de un descendie
en cual rule se haya declarado un antecesor como tipo del parámetro. La imple
mentación de un valor depende del sinukalor o entorno de ejecución en el que aparece

Ls una colaboración o en una máquina de estados pueden aparecer expresiones que impli:
ques acciones. Dentro de estas expresiones, y los envios de mensajes requicren
espe argumentos, que son también expresiones. Cuando se evalian esas

1ón, deben evaluarse wilisando valores consistentes con los

parámetros declarados con los que se corresponden.

130

{EL LENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA,

Sin embargo, realizar ligadura de una plant los argumentos aparecen dentro de ur
¿elo UMI. durante el propio modelado. En estos casos, ls argumentos se representa medi
texpresiones en algún Tenguajo, normalmente un lenguaje de restricciones o de programación Lo
Argument de las plantillas puede incluir no sólo valores dato ordinarios u objets, sino amb
Clasificadores En este último caso, el tipo de parimetco correspondiente deberá er Class
(clasificador) o cualquier otro mettipo. El valor de un argumento de plantilla debe fas
tiempo de modelado, y no es posible utilizarlo para representar un argument en iempo rel o
utilice plantas sino se han fijado los parámetros en tiempo de modelado,

argumento formal

Véase parame,

arquitectura

Estructura organizativa de un sistema que incluye su descomposición en
mecanismos de interacción y principios de guía que proporcionan informa
del mismo.

Véase paquete

Semántica

La arquitectura cx el conjunto de dec sativa mganieaciin de un sistema
software. Incluye a selec e les y faces mediante las quese
conectan, la ación gran escala d a ructurales y la topología de su
conexión, su ‘en ls colaboraciones entre dichos elementos, os mecanismos
importantes de que se dispone en el sistema y el esto arquitectónico que guia sw organización
Por ejemplo, la decisión de constr un sistema en dos capas, cada u ‘ules comer
‘un pequeño número de subsistemas que se comunican de una forma particular es una deciió
arquitectónica. La arquitectura de un sol à relacionada sólo con la estructura y el
‘comportamients, sino también con cl uso, la funcionalidad, e rendimiento, la flexibilid L
reutiliación, la ucilidad de comprensión. las restricciones y compromisos económicos y
tecnológicos y con la estética.

Discusión

Las decisiones arquitectónicas sobre la descomposición de à en partes se pueden

¡zando modelos, subsistemas, paquetes, y componentes, Las dependencias entre
estos elementos son indicadores clavo dela lenbilidad de la arquitectura y de la dificultad de
modifica el sistema en el futuro.

Ctra parte importante de una arquitectura son los mecanismos que proporciona para
«construir sobre ell, que deben ser capturados mediante paurone y colaboraciones,

ENCICLOPEDIA DE TÉRMINOS — 131

Las decisiones no estructurales se pueden capturar utilizando valores etiquetados.

artefacto

Pieza de información utilizada o producida por un proceso de desarollo de software, como un
o 0 el producto de un trabajo, Un artefacto puede ser un modelo, una
¡excripción o un software

asociación

elación semántica entre dos 6 más cssficadores que implica la conexión entr sus instancias

Vere también asociación binaria, asociación maria, clase asociación, extremo de
noeineiön, generalización de sowciaciones.

Semántica

Una anociación es una relación ee des o más claiicaoros que describe conexiones entre sus
instancias. Los claificadores que participan tienen posiciones ordenadas dentro de la sor

ación. La misma clase puede aparecer en más de una posición dentro de la asociación. Cada

ancla de una asociación (denominada, enc) es una top (lista ordenada) de referencias a
«jets. ya que a asociación es un conjunto de enlaces. Un objet dado puede aparecer min de
na ver en el conjunto de enlaces, incluso más de una vez ten diferentes posiciones) en el
mio enlace slo permito la deinición de fa ain. Las asoxiaciones son el “pegamento”
{que mantiene unido un sistema, pues sin alla sólo sería un conjunto de elses incomes

Estructura

{Una asociación tiene un nombre opcion. pero la mayoría de sus descripciones se cocventran
cum ista de extremen de asociación, cada uno de los cuales deserihe cómo pasticipan los
Öbjetos de una determinada clase en la ssociación. Téngase en cuema que un extremo de una
nweiscien es simplemente una parte de I descripción de una succión, y no un concepto
semántico de notación separado,

Nombre. Una asociación puede tener opcionalmente un nombre: una cadena única con
respect a as clases y asociaciones del paquete que la conticne, Una clase asociación e tanto
una asoxiación como una lso, poro sin embargo. las clases y lus asociaciones comparten un
único espacio de nombres, No 6 necesario que una asociación tenga un nombro, pues los nom.
bre de roles de sus extremos proporcionan una forma alternativa de distinguir las asociaciones
miliples catre las mismas clases. Por convención, el nombre s¢ lee en el orden en que las
¿ases participantes aparecen en a lista: una Persona trabaja para una Empresa un Vendedor
vende un Coche a un Cliente.

Extremos de asociación. Vas xsociación comtiene una lista ordenada de dos o mis extremos
de asociación. Por ordenado se entiende que los extremos pueden distinguirse y no son

ables. Cada extremo de una asociación define la participación de una clase en una
posición dada (ol) en la asociación. La misma clase puede aparecer en más de una posición.

132

HILLENGUAIL UNITICADO DE MODELADO. MANUAL BE REFERENCIA,

pero las posiciones no son intercambiables, en general, Cada extremo de asociación e
propiedades que se apican los objetos que punicipan. como cuántas veces puedo aparecera
la asociación un objeto simple (multiplicidad). Ciertas propiodades, como la posibilidad de
havegci6n, se aplican sólo las asociaciones binaris, pero la muyoríe se aplicas ant as

Véase extremo de asociación para máx detalles,

Instanciación

Un enlace es una instancia de na asociación, que contiene uns ranura para cada extremo de à
asociación. Cada ranura contiene una referencia à un objeto que es una instancia (direct
indirecta) dela clase especificada como clase del correspondiente extremo de I asociación U
culace mo tiene deidad apart dela lista de objetos que contiene. Los entaces que forman u
asociación forman wn conjunto dende no pueden existir duplicados. El méme de veces que
aparece un ohjeto en un conjunto de enlaces debe ser compatible con kt mullplicidad de cae
exiremo de la asociación, Por ciemplo.s la asociación EntradasVendidas conecta muchas
entradas con un espectículo, entonces cada entrada puede aparecer sólo una vez en un ele
pero cda especticulo puede uparocer muchas veces, cals una con una entrada diferente

Se pueden crear y destruir enlaces según avance la ejecución de un sistema, steniéndosea.
las restricciones de intercambio de los extremos de asociación. En algunos can se puede ee
© cambiar un enlace de un objeto de uno de los extremos de la asociación pero no del vta
extremo. Un enlace se crea a partir de una lista de referencias, No tene identidad por sm
por lo que carece de sentido hablar de modificar su valo. aunque puede destruleso y creme
tro en su lug: Un enlace de una clase asociación tiene uno © més valoes de «tributos sum
de alista de objetos que define su identidad, y las operaciones pueden modificarlos valores se
los atributos mientas preserven las referencia alos objetos participantes

Notación

Una anociación binaria se representa mediante una ruta continua que conecta
clases (véase Figura 13.15), Una asociación maria se representa mediomo

Reparto

Concierto |

Orquesta >
rs —-- Suplente.

Intérprote

sus clases parlicpantes mediante rutas (véase Figura 13.191. En la sociación binaria, el rom
bo se suprime por ser superfluo, Puede haber más de un Final de ruta conectada a una misma
chase,

Una ruta está formada por uno o más sogmentos dibujados con línea cont
normalmente segmentos de recta aungue estin permitidos los arcos y otras e

mente a a hora de mostrar una auto-asociaciön (una asociación en la que una case aparece mis
de una ver). Los scgmentos individuales no tienen semántica significativa. EY usuario puede
escogerel estilo de línea a utiliza

Véase muta

Los extremos de las ras tienen sdormos que deseriben la participación de una case

asociación, Algunos adornos se representan en el extrem de la rua, entre el segmento de

y la caja de a clic, S pes adornos. se sin secuencialmente comenzando porel ex

Iren dela luca hasta el símbolo de la case según el orden: Mecha de navegación. rombo de
-gaciónícomporición y calificador (véase Figura 13.16).

tes adornos, como las etiquetas de nombre. se stan cerca del elemento al que i
an, Los nombre de rol se sin cerca del final dela ruta

Véuse extremo de asociación para máx detalles sobre ta notación de os adornos

Figura 13.16. Orden del adornos en un extremo de cac

Nombre de asociación

El nombre de una asociación se sin cere de la linea de la rua, pero lo suficientemente lejos
del extremo com para que no haya peligro de confusión. El peligro de confusión es meramente
visual para las personas, ya que dentro de una herramienta urifica no existe peligro de
ambigúcdad en la representación inter. por lo que la herramiena se encarga de determinar la
distancia óptima. El nombre de la asociación se puedo arrastrar de unos segmentos a wies de
tuna ayociaeisn con múltiplos segmentos sin que esto tenga ningún significado especia. El
ombre de la ssociución puedo tener al lado un pequeño tstángulo relleno que muestre el orden
¿e ls clases en la lista, Intutivamente, la Mecha del nombre muestra cómo leer el nombre, En
la Figura 13.17, a asociación TrabajaPara entre la clase Persona yla clase Empresa debería
ener el triángulo apuntando de Persona 3 Empresa y leeis "Persona trabaja para Empresa
Obsérvese que poner el triángulo en el nombre es un aspocto únicamente de notación que indica
Loxton en que finaliza la asociación. En el propio modelo. los extremos están inherentemen-
de ordern, por lo que el nombre del modelo no tiene ni novesita una propiedad de orden

134

EL LENGUAJE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA.

Un estereotipo en la asociación se indica mostrando el nombre del estereotipo entre comi
{a ») enfrente o en gar del nombre de la asociación. Se puede situar una lista de propiedad
después o debajo del nombre de la asociación.

Ejemplo

+"! persona

Clase asociación

Una clase asociación se representa asociando un símbolo de clase a la ruta de asocino
‘mediante una línea discontinua. En asociaciones n-aras, la lines discontinua se conecta cm
el rombo de la asociación, Las propiedades "de clase” de la asociación se muestran en
símbolo de clase, mientras que las propiedados "de asociación” de La misma se m

1a ruta. Observe sin embargo, que la estructura de modelado subyacente cs un único ele
mento, incluso aunque pars representarla se utilicen dos estructuras diferentes.

Véase clase asociación para más detalles

Restricción Xor

La restricción (xor) conccta dos o mis asociaciones que están conectadas à una misma los
simple (la clase base) en un extremo, Una instancia de la clase base puede participar solamente
en una de ls asociaciones conectadas por la restricción. Debe respetarse la smulilicidad delo
asociación elegida. Sila muliiplicidad de alguna asociación incluye la candinalidad 0, una is
tancia de la clase base podría no tener enlaces desde la asociución: simo. debería tener uno,

{Una restricción xor se representa mediante una línea discontinua ciquetada con a cadena de
restricción [xor) que conecta dos o mis asociaciones que tienen uns clase en común (Fig
ra 13.18). Los nombres de roles de los extremos dela asociación mis lejanos a la ease común
deben ser diferentes, lo cual no cs más que una utilización predefinida de la notación de
restricción que emplea larestrición estándar de solapamiento.

o ea

Cuenta | pon

e aora, Coronación

Figura 1318. Asociación Nor

ENCICLOPEDIA DETERMINOS 138

Discusión

No cs necesario ponerle nombre a una asociación. Normalmente, los nombres de rol resultan
Nils camvanientes, ya que proporcionan nombres para Ia navegación y a generación de códi
go ala ver que cvitan el problema de saber en qué sentido Teer el nombre, Si tiene nombre,
ser izo dentro desu paquete, poro sino lo tieno y hay más de una asociación entre un
gar Le conan) de clases, tench que existir nombres de ol para disngui las asociaciones Si
Fre dns chases sólo hay uns asociación, son suficientes los nombres de as clases para iden
ica

Se puedo argumentar que los nombres de asociación son más útiles cuand el concepto en
un nome ee] mundo rel, tales como Trabajo © Matrimonio, Criando um nombre de aso.
chin ent “dirige” para ser lid en uns determinada dirección. es generulmente mis sen
itl utilizar nombres de fa. que nunca son ambiguos se Lean en bn dirección que se lcn.

Véase eniace tcusitorio, donde se discute sobre el mudado de relaciones de instancia que

existen silo durante fa ejecución de un procedimicto.

Véase también composición, donde se muestra un ejemplo de generalización en que
vicnon dos asociacion:

Elementos estándar

asociación binaria

Arociación que se proce exactamente entre dos clases

Véase también asuctación. asociación mar

Semántica

Una asociación binaria es una wociación come

ción más común de esas. Come un exer de una asociación Binaria

Sie, as asaciaciones binarias son particularmente als para cspeciicar nu

hue icon. Une asociación es navegable en un determinado sentido sí puedo atravexane en
sonido, Otras propiedades, como la malicia, están definidas pura awociaciones ais,
ero som más itulivas iles cn las achacones binario,

Notación

Una asociación binaria se represent mediante una rut continu que conecta dos símbolos de
Mines Se pucden asociar adoos a cada extremo y sitar el nombre de a asociación corea dela
‘iia pur sufiientememe je de los extremos como para que no haya confusiones con os

hotación de una asociación binaria cx x misma que la de una asociación

136. EL.LENGUAIE UNIFICADO DE MODELADO. MANUAL. DE REFERENCIA.

a excepto en que se suprime el rombo central. Sin embargo, las asociaciones bins
tener adornos que mo son aplicables alas asociaciones maria. como la posibilidad

asociación de comunicación

Asociación que describe una relación de comunicación entre instancias de los
conectados. En una vista de despliegue. es una asociación entre nodos que Implica un
«comunicación. Fa un modelo de casos de uso, una asociación ente un caso de uso y à
constituye una axvciación de comuni

Véave actor. caso de uno

asociación n-aria

Denota una asociución entr 1 ses. Por contratar con: asociación hina

Semántica

Toda instancia de La asociación es una tupla de valores pertonecientes ls respectivas clases
Una clase puede aparecer en mis de una posición de la asociación. Una mn binarias
aso especial que posee su propia notación simplificada y ciertas propiedades adicionales.
ales como la navegabilidad) que carecen de sentido (o son initilmente complicadas) para un

‘wuliplicidad de las asociaclones mati se puede especificar pero resulla menos cv
la multiplicidad binaria. La multiplicidad del extremo de una anociación repro
mémero potencial de valores que puede haber en esc extremo, cuando est fijos los valores
los tros 11 extremo. Obsérvese que esa definición es compatible ca ka mulóplicdad tan

ene significado pura las asociaciones
simbolo de agregación ni cl de comps

a binaria y una asociación rasa con des
Una asociación can dos extremos se
‘considera una asociación binaria y una que tenga más de dos extremos se considera ac

Notación

Una asociación ais e representa mediante un rornbo grande
ción con el terminador de una us) existiendo una ruta desde
clases participantes. FI nombre dela asociación (si exist) se muses junto al tambo. Pueden

ENCICLOPEDIA DETÉRMINOS 137

aparecer adomos junto al extremo de cals ruta, tal como sucedería con una asociación
binaria, Se puede indicar la multiplicidad. pero no se permiten los calificadores ni las agre-

Se puede asociar un simbolo clase de sociación al rombo modiame una línea discontima,
Esto indica una asociación n-ari que posee atributos, operaciones yo wsociaciones,

Ejemplo

La Figura 13.19 muestra ol registro de un equipo en ls distintas temporadas de un determinar

wardameta, Se supone que el portero pued ser traspasado durante la temporada y por tanto
puede tener un registro con distintos equipos. En vn libro de registros, eada enlace sería una
iin

Año

Jugador

[Registro

Reglas de estilo

Normatmente, las Finca se dibujan sale de os véxticos del rombo o desde el punto medio

Discusión

En una asociación aa, la multiplicidad se define con respecto a os tos nel extremos, Por
empl. dada ma asociación temas cure eases (A, BC). la mltipbicidad del extremo Cin
¿ica el timer de objetos C que pueden aparecer asociados à una pareja particular de objctos
A y B. Sila multiplicidad de esta asociación es (mucios, muchos, uno) emonees para cada.
posible pareja (A. B) existe un finico valor de C. Para wns pareja dada (B, C) puedo haber

138. EL LENGUAIE UNIFICADO DF MODELADO. MANUAL DE REFERENCIA

muchos valores de A, sin embargo; de modo individual muchos valores de A. B y C pia
paricipar en la ssociacién, En una asociación binaria eta regla se reduce a a multiplicidad
“ada extremo, que se defino con respecto al ao extremo,

Notice sentido defini a muttiplicidad con respect x un solo extrem (tal como han po
puesto algunos autores) porque a multiplicidad sería muchos para cualquier asociación pan
Sipnilicaiva. De mo ser as. la asociación se podría fragmentar en una asociación binaria ete
la clase única y una clase asociación que incluyera todas la chines restantes, mejorando an
10 la precisión como la eficiencia de la implementación. En general, lo mejores evita las te
ciacionos w-arias porque las asociaciones binarias son más fáciles de implementar y hac
posible la navegación. En general, las asociaciones nariss sólo son útiles cuando se neces
todos los valores para determinar un enlace de lormua única. Una wociación near se ves
implementar en casi todas his ocisionos como una clase entre cuyos atributos se Cuers
punteros de los objetos participamos. La ventaja de moxelarla como una asociación esla
restricción de que no puede haber enlives duplicados dentro de una asociación.

Considere el ejemplo de un alumno que asiste a un curso de un profesor a lo largo de

curso (Figura 1320). Fl alumno no va a seguir cl mismo curso de més de un profesor p

“alumno puede air más de un curso de un único profeso. y el profesor puede impart

de un curso. Las multiplicidades se muestran en el diagrama. La multiplicidad del Profesor
cie som muchas (0.4

Too valor de mulúplicida s relativo a una pareja de objetos de otros extremos, Para tds
pareja (eur, alumno) existe cero 0 un profesor, Para toda pareja (alumno. profesor) eisen
muchos cursos. Para toda pareja (curso, profesor) existe muchos alumnos.

Obsérvese que si esta asociación se materializa en una cluse entonces sería posible text
rs de una copia dela misma combinación (alumno, curso, profesor) lo cual no resulta de.

seable

Registro

Figura 1320. Mulipiidc en un ocación sin

atómico/a

Acción u operación cuya ejecución debe completarse como un todo. por lo que no puede
ejecutarse parcialmente ni ser finaliza por un evento externo. Normalncate. las operaciones

ENCICLOPEDIA DE TÉRMINOS — 139

asómicas son pequeñas y sencillas, como asignaciones, cálculos ariméticos sencillos u opera
ones de Gp cadena. Un cómputo atómico ocurre en un punto definido de la secuencia de

Vene también acción. actividad, ejecución completar

Semántica

Giobaimente el sitema puedo realizar mus à camente. Cuando decimos que
una acct atómica, exo no implica que el sistema completo ses atómico. El sistema puede
proces interrupciones del hardware y compartir el tempo entre diversas ciones. ya que UL
in sóc nodo «entro de su hilo de control. Una vez iniciads, debo compl
ción sin Interactuar con otras acciones que estén activas al mismo tiempo. El sistema
shade procesar Inomupciames y eventos. poro so mo debe actr à la operación atómica, ya
rie dis aeciones no deberian usarse Como un mecanismo para transacciones largas. Su
ración debería ser breve comparad con el tempo de respuesta necesario para responder a
nos externos porque. si mo. el sistema podía ser incapaz de responder tiempo.

atributo

Un anibato esta descripción de wos ranura con nombre de un tipo especificado en una case
Cada objeto dela clase tienes valor independiente para el ati.

Semántica

‘puto es una ranura con nombre dentro de un clasificador que describe los valores que

Ione las instancias del clasificados. Todas las instancias del taificador o de uno de sus
Tensendientes tienen una ranura que guardo un valor del tipo dado. Todas las ranuras son
ae halependientes de ls demas (excepto en el caso de los aríbutos con alcance de
ne. que se dencribon más adelante). Cuando se leva a cabo una ejecución, el valor de una
Cra ents de nz wstancha puce remplazarse por oo del mismo tipo. ya que los tribut
son modificables.

Un ctasticadar forma un espacio de nombres para sus atributos. sungue también Forman
pate del eapacia de nombres los pseadosributos. los nombres de ol de las ocaciones que
a cador y lov discriminadores de generalizaciones en las que participe el eos

Estructura

Un atibuto tiene los siguientes components principales, que se describen con más detalle en
us propias entradas;

alcance de propictario Ln una clase, el valor deserio por un atibuto puede ser distinto en
Cada objeto 6 comparido por todos los objetos. En el primer caso.

EL LENGUAIR UNIFICADO DE MODELADO, MANUAL, DE REFERENCIA

se trata de un atributo cow alcance de instancia, mientras qu
ino xe trata de un «tributo con alcance de clas, La ma

los suiburos regen alcance de instancia, esto es, mam

mación de estado ucorca de un ohjet cn concreto. Los

alcance de chas euardan información sobre una clive emer. ya q

thay un único valor de k rama para toda

Mientras que un atributo con aeance de instancia cs una descrip
de un valor sin existencia hasta que mo se instancia el objeto,
«tributo con alcance de clase representa la declaración de un vake
inereto individual que existe o largo de toda la vida de un se

alcance destino E valor de un atributo puedo ser una instancia à una clase. End
primer caso sera un alcance de instancia valor por defecto). mic
jue en el segundo es un alcance de clase, caso raro que

"normalmente implica alguna forma de metamodelado.

nultiplicidad El posible número de valores del atrihoto que pueden exis
simultáneamente. El valor más común, “exactamente uno" dene
FI valor "coro uno” denota un arbuto con un
mo existencia de valor es distin de cualquier a
o del tipo del atributo (en oras palabras, la ausenc

de valor ex ditita del valor cero. pues signiica conjunto va
(tras multilicidados denotan tributos que pueden tener múltiplo
ores. Si la multiplicidad no es un enters simple. es porque e
número de valores del arvibute puede variar: La multiplicidad

"muchos" denota un conjunto ilimitado de valores

nombre Fl nombre de un atibuto, una cadena que debe ser única dentro de
la clase y sus antecesores. También debe ser única entre los nombres
de los soles de asociación aleanvables desde la cline

Design una case o po de dato del que son instancias los alors
de a ranura, Un valor puede ser una instancia de
la clase o pa de dato dado,

valor inicial Expresión que indica ol valor de un atribato

ospués de haber sido inicilizudo. La expresión es una cada de

texto, junto con el nombre del lenguisje utiliza para evaluar
expresión. La expresión se evall en el contexto de lenguaje cn
do se instancia of joto, Véase expresión para mis detalles. E
valor inicial es opcional; si no lo ha. el modelo estático no espoe
Fica el valor para los objetos nuevos, aunque atra pare del modelo
tslobal puede proporcionar dicha información.

Obsérvese que un procedimiento de inicialización explícito, como
a constructor, puede reemplazar una expresión de valor inicial

El valor inicial de un atibuto con alcance de clave se wiliza para
iciaizuro una ver al principio de la ejecución. UML no espec

NCICLOPEDIA DE TÉRMINOS HI

a el orden reltivo de inicialización de os diferentes atributos con

a si el valor de a ranura puede cxiar ts la inicialización.
+ utiliza una enumeración cuyo valor por defecto es changeable,
Los poxibles valores son:

enangeabie (modificable: no hay restricciones para modificarlo. Valo
defecto,

adéony (sso añadir: para tributos con multiplicidad mayor que uno, se
pueden añadir valores adicionales al conjunto de valores del
“tributo, pero una vez creado, un valor no puede ser modificado
i eliminado.

frozen, (congelado): el valor no se puede modificar una vez inicilizado
cL objeto, No se pueden añadir valores adicionales a un conjun-
ode valores.

visibilidad Indica si el rues visible desde otras clases, Se representa me-
¿lante una enumeraciin donde pueden upurecer las palubras el
publi. private » protected. Sc pueden añadir valores a
para modelar ciertos lenguajes de programación,

Notación

Un atributo se representa mediunte una cadens de texto que puede dividir en varias prope

Visibilidad. La visivilidad se representa meine une también
se puede represent utilizando una palubra chive de © propiedades, que se
tila sobre tdo para incluir opciones definidas por el uso 0 dependiente del lengua
Las opciones predelamidas son:

+ «publico Cualquier clase que veu a clase ve también sus atributos.
# (prete Sólo a propi cave es sus descendientes pueden ver los tribut.

(private) Sólo la propia clase puede vor Jos atributos.

Nombre. El nombre se represent mediante un idomificador de tipo eens

Tipo. Fl tipo se representa mediante una expres de cade que denota un clasificador. El
nombre do una else o tipo de datos es una expresión legítima de tipo cadena que indica que los
Valores de un atributo deben ser de un tipo dado, La sintaxis adicional del tipo depende del

EL LENGUAJE UNIFICADO DI: MODELADO, MANUAL DE REFERENCIA.

€ lu expresión. Cada enga

ari de los datos existetes. Por ejemplo, € ı tien sintaxis para los punteros, puros
aa y para las funciones. Ada también tien sintaxis para los subranges, El Jenpuaje d
expresión es pane del modelo interno, pero normalmente no se indica en un diagrama. ya que
se supone conocida en todo el diagrama u obvio a partir de su sitanis

La caera de tipo se puede suprimir (pero sigue presente en el modelo).

Multilicidad. La wulúplicidad se representa mediante una expresión de multiplicidad
encerrada entre corchetes y situada después del nombre del atributo. Sila multiplicidad e
exactamente uno”, so puede omitir ka expresión, incluyendo los corchetes. Esto indica que
¿ada objeto tiene exactamente una ranura para guardar un Valor del tipo especificado. Sines
ast, debe mostrarse La multiplicidad. Véase multiplicidad, donde hay una completa discusie
sobre la sintaxis. Par ejemplo:

colores [SISaturación Un array de À saturn

puntes|2.*FPunio Un any de doso mis

Obsérvese que una mulipicidad de 0.1 abre la posbildad de valores mats (la ausencia de
valor como oposición a un valor concreto dentro del rango). Un valor nulo no es un valor
dominio de la mayoría de los tips de datos: extiende el dominio con un valor extra que se
encuentra fuera del mismo. Sin embargo, en sl caso de los punteros el valor nulo es a menudo
parte de la implementación (aunque, incloso entonces. se usa normalmente por convenio: por
ejemplo el valor en Co C++ es un convenio de dircccionamiento de memoria), La siguien
decraciôn permite distinguir ente el valora y la cadena vacío,

Car y en oros lenguayes:

nombre (0.1Sung Si abre. ex un valor nue,

Valor inicia. A valor inicial se representa mediunte una cadena. El lenguaje de evaluación
normalmente no se indica explícitamente, aunque ess presente en el modelo. Sino hay valer
inicial, se omiten tanto la cadena como el Signo igual Si Ta multiplicidad del atributo incluye el
valor O (es decir, opcional) y nose Le ha dado explícitamente ningón valor el atributo comienza
teniendo un valor nulo (cero repeticiones),

Variabilidad. 1 valor de modificación se representa mediante una palabra clave que re
esenta el valor elegido, Si no se eige ningún valor, se toma por de

cualquier elemen
¿onde etiqueta e ol nombre de una etiqueta y valor es un val Tite
incluyen con las palabras clave de las propiedades como una lista.
separadas por cu

“Alcance. El aleance de clase de un atribuko se representa subrayando la cadena que expre
sa cl ipo y nombre. Sino está subrayado, e atributo tien alcance de instanc

de la notación es que un atributo con alcance de case ex un valoren el siste

igual que un objeto es un valor de instancia, por lo que ambos deben subrayarse

La Figura 13.21 muest la declaración de algunos atributos

ENCICLOPEDIA DE TÉRMINOS 143

aran Renovo
ras dont rg = A}

Figura 1821. vee

Opciones de presentación

Sintaxis del lenguaje de programación. a sintaxis de la cadena de un atributo puede ser la de
un lenguaje de programación, como C++ o Smalltalk. Se pueden incluir en la cadena propie-
dados etiquetadas espec

Reglas de estilo

Los nombres de atrihuto se representan con un tipo de Ter normal.

Discusión

Se utiliza una sintars similar para
metros de operaciones, y ot1oS, aunque

Oinérvese que un atributo es equivalent se € una asociación de composición,
aunque el uso y a intención son oralmente diferents, Utilice los atributos para tipos de datos,
EISEN para valores sin identidad. Utilice las asociaciones para clases, lo que es lo mismo,
para valores con identidad. Ta razón es qu
Felación en ambos direcciones, mientras que en los tipos de datos. el tipo normalmente está
subordinado al objeto y no sabe que existe

Elementos estándar

persistence

autotransicion

Transición on a cual el estado origen y el estado des onsiders un cambio
¿e estado. Cuando se dispara, se sale del estado origen y se vuelve a entrar cn él. de tal modo
Que se invocan las acciones de entrada y lus de salida, No es equivalente a una transición in
tem en la cual no se produce un cambio de estado,

become (se convierte en)

Tipo de dependencia de flujo, utilizada en una interacción, en a cual el objeto destino repre

senta una mueva versión del objeto origen y partir de entomces lo reemplaza.

Véase también clase en un estado, copia localización.

1

HL LENGUAN UNIFICADO DE MODELADO. MANUAL. DE REEERENCIA,
Semäntica

Una dependencia became es un tipo de depend presenta la derivación en
‘objeto a partir de otro dentro de una inte x ejecutarse un I
(em cómputo. Normalmente nies nce
ta relación para representa únicamente un cambio cn el valor de un objet, Por tru
cesta relación e útil para representar un cambio cualitativo en un objeto, como un eased
estado. un cambio de sabio de localización. En estas simaciones, © mad
comtiene dos versiones: 1 la relación become muestra que son realmente cl iy
objeto, esto es. que tien

Una transición become dentro de wis interacción puede tenor un námero de seus
para indicar cuándo sucede con respecto otras acciones,

Notación

Un Ajo Become se representa mediante una Mecha discontinoa con el estereotipo «become:
ue sale de la primera versión del objeto y apunta a la última. En una intereción. la Ti
puede tener un ime de secuencia cuando el cambio se produce con relación a tr aci.
Las transiciones become pueden aparecer en disgranas de colaboración, en diserama
secuencia y en diagramas de activados.

Tin un diagrama de actividades, la ramsición become se puede representar medi

fecha discontinua desde hacia el símbolo de Mujo de objetos Se puede camila palahre
become,

Ejemplo

La Figura 13.22 muestra

rector cerrado en un scr
seguido por otra que

La Figura 13.142 muestra un diagrama de des

ENCICLOPEDIA DETERMINOS HS

bien formado

Dent un modelo que está constuido correctamente, que saisfce todos Tas reglas prodefini
des y establecidas por cl modelo. Este modelo tiene una semántica signiicaiva, Un modelo que
no Sea bien formado recibo el nombre de mal Formado,

bifurcación

Elemento de wna miquina de estados on el que un único disparador tiene más de un posible
resultado, cada uno con su propia condición de guarda,

Véase también división, estado de unión o conjunción, unión

Semántica

mo evento pued tener diferentes efectos dopendicado de las distinas condiciones de
rade modelarse entonces como transiciones separas cun el msm evento disp
mango, en la prücic ex conveniente permitir que un disparador sim
Siciones. Esto ex especialmente cierto en el co tan común en que las condiciones de guarda
ren tvs las posibilidades, caso en el quese garuniza que una vcurrench del evento dispar
rá una de las transiciones, Una Diercución cs una pate de la transición que divide la uta de la
Amina en dos o mis segmentos. cada uno de ellos con una condición de guarda. I evento disp
rador se it en el segment comin de la transición el primer
‘mento de una Bilurcación puede conectarse con la entrada de cra bifurcación formando un bol,
de forma que cada ruta staves del árbol represente una transición diferente. La conjunción do to
¿ls Tas condiciones de una ruta de una transición es cquivaleme a una condición simple que se eva
Te antes de que se dispare la trmsición. Una transición se dispara cn un nico paso, à per de su
paciencia de conjunto de ilurcaciones. ya que el árbol no es més que un convenio de notación,
fo de uctividades, las actividades que salen de un esto de actividad son.
aiment ransicione de finalización, esto es, crecen de eventos disparadores explícitos, y se
disparan implícitamente cuando finaliza la actividad del estado. Si existen condiciones de
bifurcaciones. es importante que cubran todas las posibilidades para que se dispare
agua transición, fa la ejecución del pralo de actividades, ya que las
ransiciones de ali nunca volverían a estar disponibles.

Notación

Una bifurcación se puede representa ropiticndo un evento disparador en los arcos de much
transiciones com diferentes condiciones de guarda, También con transiciones de finalización,
como en los diagramas de actividades

Sin embargo, es más conveniente representar las bifurcaciones wilizande un rombo a que
se conet la punta de Mecha de una transición. la Mocha de la transición se ciqueta con el
evento disparador, slo hay, pero no debería llevar acciones asociadas, Las acciones iran en el
Segment Final de a transición

De un rombo pueden salir dos o más fechas, cada una de las cuales so etigueta con
condición de guarda, Se puede utilizarla palabra reservas else como condición de guarda,
Será verdadera cuando as demás condiciones explícitas de guarda Sean falsas. El final de una

M611, LENGUAIE UNIFICADO DE MODELADO. MANUAL DE REFERENCIA

Figura 18.23 Dos tormasd

fecha se pued
estado, podrá

conectar con otra bi

El efecto de

bo de bifurcaciones ex el mismo que el que se produce expandiendo el bo
un arco de ransichin separado para cada puta del árbol, donde todos comparten el mismo eve

clsparadex, pero cada uno de lo cuales tinc su propia conjunciön de condiciones de guard
«iones y stades Finales, La F

3 nuestra dos formas de representar la misma situación

Obsérveso que se puede utiliza también cl símbolo del rombo para a reunificación ope
ión inversa de la piturcación), donde dos rats se
la Figura 13.24, En el caso de la eu

salida, No son necesarias hs condiciones de guarda

Ye tte
yi.
y

ENCICLOPEDIA DETERMINOS — 147

bind (ligar)

Véase ligadura,

booleano/a

Frumeraciön cuyos valores son true y false

cadena
Secuencia de caracteres de texto. Los detalles dela representación de cadenas dependen de la

implementación y pueden incluir conjumos de caracteres que aia gráficos y caracteres i
termacionales,

Semántica

Hay muchas propiedades semúmicas, especialmente los nombres, que tienen una cadena
como valor, Una cadena es una secucncia de caracteres pertenecientes a

racteres adecuado, que se emplea para visualizar información relativa ul mo

gos de curscteres se pueden incluir alfabetos y caracteres no latinos. UME. no
codificación de cadenas pero supone que la codificación es suficienteme

permitir cualquier wilizaciön razonable. En principi, ts Tones de las cadens debería ser il
mit: toda Timitaciôn práctica debs € que no resulte
restriuiv, Las cadenas deberían incluirla posibilidad de admitir mostrar caracteres de dife
rentes idiomas humanos, Los idemiicudores (los nombres) deberían estar formados nica
to por caracteres de un conjunto finito de caracter. Los comentarios y clases similares de
cadenas descriptivas sin contenido semántico puedo contener otras clases de medios de
elementos, tales como di ‘9 sezmemtes de vídeo y otros tipos de
¿documentos incrustados.

Notación

Una cadena gráfica es un elemento primitive de notación con cierta flexibilidad de imple

mentación. Se supone que se tata de un secuencia lineal de caracteres escrita en algún idioma,

con la posible inclusión de documentos incrasiados de distintas clases. Result descable admi

a utilización de diferentes idiomas humanos, pero se dejan los detalles a as herramientas de

edición para que sean ésta las que los implementen, Las cadenas gráficas pueden i en líneas
'vidualos, en lists bien pueden ser etiquetas asociadas à oros símbolos.

Las cadenas se ilizan para mostrar propiedades semánticas que tienen cadonas como va
lores y también so emplean para codificar los valores de otras propiodades semánticas para su
visualización. La correspondencia entre cadenas semánticas y cadenas de notación es directa

EL LENGUAIE UNIFICADO DE MODHADO, MANUAL DE REFERENCIA.

La correspondencia de otras propiedades com las cadenas de notación está controlada pc
gramdticas. que se describen en los astículos correspondientes a los distintos elements Pe

ejemplo, a notación de visualización para os atributos codifica el nombre. valor Vie
aleance en una única cadena de visualiación.

Es posible realizar extensiones no canónicas de Is codificuciones — por.

pl, so pal
visualiza un aributo empleando la notación de

as de ests codilicaciones pe
entas deberían amis con
‘opciones seleceionables por el ususrio, munteniendo ciertamente la notación can

UML

‘den perder informaciôn del modelo. sin embargo, ls her

EE estilo y tamaño del tipo de let son marcadores gráficos, que normalmente serán ie
pendientes de la cadena en si. Se pueden codificar para distintas propiedades del modela

ales se sugieren cn este documento; otras e dejan al abrí de la heranian
del usuario, Por ejemplo, la cursiva muestra clases y operaciones abs

Las herramientas pueden tratar de distinas maneras lus cadenas más

#2
hasta

smaño dado, se puede hacer un alto de Inen automätico y se pucden Inca
ras de desplazamiento. Se Supone que existe algara manera de ener la cadena cun
sise desen

calificador

Denots una ranura de un <uibuto o lista de atributos en una asociación binaria, enla cul
valores de Tos atributos seleccionan un único objeto relacionado o un conjunto de objetos
Iseionades dentro de todo el conjunto de objetos relacionados con un objeto por ex zu
ciación, Se tata de un indice pars recorrer una asociación

Véase clase asociación. estremo de asociación

Semántica

Toda asociación biaria hace corresponder à un objeto un conjunto de vbjetos relacionados Ex
ulta deseable seleccionar un objeto del conjunto. proporcionando un
atibuto de la cl
nera, in embargo, el valor selector podría ser parte de In asociación en si un
atributo dela asociación cuyo valor es proporcionado por el creador cuando se añade un ue
vo enlace a la clave asociación. Un atríbuto como éste, en una asociación hina, reihe
nombre de calticador. Un objeto, jento con un valor de calificador, determina un objeto nie
relacionado con & bien (con menos frecuencia) un subconjunto de objetos
valor califica la asociación, En un contexto de implementación, a estos
nombre de valores de índice

Los calificadores se utilizan para selcecionar un objeto objetos del conjunto de objetos
relacionados con un objeto (que se denomina objeto calficudo) mediame una asociación
ura 13.25) El objeto seleccionado por el valor del calificador se denomina objet destina

ENCICLOPEDIA DE TÉRMINOS 149

| Tbironarez]

EK}

¡Cuadrado!

Un calificador siempre actéa sobre una asociación cuya multiplicidad es muchos en la dire
del destino. En el em más sencillo, caca valor del calificador selecciona un único objeto del
conjunto destino de objetos relacionados, En otas palabras, un objet calificado y un valor de
calificador producen un único objeto destino relacionado. Dado un objeto calificado, cada var
Tor de calificador se corresponda con un único objeto destino,

Hay muchas clases de nombres que son calicadores. Estos nombres dentro de un contexto
ss corresponden con un Único valor: E objeto caliicado proporciona el contexto y el objeto d
tino es e resultado. Toda ID u tro código único es un calificador: su propósito es seleccionar
un valor de modo tnico. Las matrices se pueden modolar como ivociaciones cuiicadas, La
matriz es ol objet calificado, el índice de la matiz es cl calificador y el elemento de la matric
ex el objelo destino. Para una matriz, sl ipo calificadores un intervalo de enteros.

Se puede emplear un calificador en una expresión de navegación para seleccionar un
subconjunto de objetos relacionados con un objeto a Is de una asociación, saber, aquellos
que tengan un valor concreto paru el valor del atributo calificador o lista de valores. El cali
dor hace las veces de selector dentro del conjunto de objetos relacionadas por la asociación.
Descompone el conjunto en subconjuntos por valores del calilicador. En la mayoría de los
casas, el propósito del clificador es seleccionar un objeto único dentro del conjunto de objetos
relacionados de tal modo que una asociación calificada se comporta como una tabla de
búsqueda,

Estructura

icador es una parte opcional del extremo de una asociación
binaria, El calificador ca ‘clase asociada al extremo de la asociación. Un objeto de
clase y un valor del calificador seleccionan un objeto conjunto de objetos dela clase situada
al tra extremo de la asociación binaria. ES posible que los dos extremos de la asociación
binaria tenga calificadores, pero no sucle sucede:

Un calificador es un atributo © list de atributos de uns sociación. Cada arribo posee
ombre y tipo pero no valor inicial, porque los ealiieadores no son objetos independientes: el
valor de cada calificador debe ser explicite siempre que se añade un enlace a la asociación.

Los calificadores no se utilizan en asociaciones arias,

150

EL LENGUAIE UNILICADO DE MODELADO, MANUAL DE REFERENCIA

Multiptcidad, La muliplicidal de la relación calificad se sia cn ele
“asociación binaria respecte al calificador. (La regla mnemotécnica es que la cla

el calificador, juntos, forman un valor compuesto que est relacionado con I clase destino.) E
trs palabras, el calificador se asocia al extremo “próximo” dela asociación y a mul

y cl nombre de rl season al extremo “lejano”

La multiplicidad asociada al extremo destino de la asociación denota el número de obje
destino que podrían ser seleccionados por una pareja (objet origen, valor de calificador). E
tre los valores comunes de mulüplicidad se cuentan 0.1 (so puede seleccionar un único vale
pero no todo penible valor del calificador selecciona un valor necesariamente), Y todo posi
valor del ¡dor selecciona un único objeto destino, lucgo el dominio de valores del a
Ficador debe sor finito) y * el var del calificadores un índice que descompone el objeto d
tino en subconjuntos).

En la mayoría de os casos, la multiplicidad es cero-o-uno. Esta opción significa que
objeto y un calificador pueden producir, como máximo, un único objeto relacionado, Un
nultiplicidad de uno significa que todo posible valor del ca

‘objeto. Evidentemente, esto requiero que el po del caliticadorsca un dominio nio

en la implementación pura un computador). Esta multiplicidad puede ser útil para hacer
corresponder tipos finitos enumerados: por ejemplo. un Pixel calificado por un ColorPrimario
(cnumeraciin de rojo, verde y azul) producir el tp ete de valores rojo-verde-azul para todo
los píxeles de una imager

La muliplicidad de una asociación no calificuda no se enuncia explcitamente, Pero suele
suponene que es muchos, v por lo menos mayor que uno. En caso contrario, no habría nese
sidad de tener un calificado

Una mulúplicida de muchos en wna asociación calificada no tiene un impacto semis
significativo, porque el calificador no reduce la multiplicidad del conjunto destino, Ha mu
Viplicidad representa una sentencia de diseño consistente en que debe proporcionarse un índice
para recorrer la asociación. En tal caso, el cliicados descompone el conjunto de objtos
‘destino cu subconjumos. Semänticamente, esto no añado nada más all de tener un atributo de
asociación, que también descompone fimplictamente) los enlaces. La connotación de diseño de
un calificador en un modelo de discho es que el recorrido debería ser eficiente, sto es, que no
debe requerir una búsqueda lineal entre todos los valore» destino, Normalmente se implemer
ta mediante algún tipo de abla de búsqueda. Un índice de una base deditos o de una estructura
de datos se modela correctamente como un calificador

Lin la dirección inversa a través de una asociación calificada (oso es, yendo desde la clase
destino hacia el objeto caíticado), la multiplicidad indica el número de parejas (objeto cali

o, calificador) que se pueden relucionar con wn objeto destino. no el número de objetos
calificados. En oras palabras, si varias parejas (objeto calificado, calificador) se corresponden
con ol mismo objeto destino, tons la mulilicida inversa será muchos, Una multiplicidad
inversa de uno ente destino y calificador significa que existe exactamente un emparejamiento
de objeto calificado y valor calificador que está relacionado con el objeto destino,

Notación

Los calificadores se representan mediante un pequeño rectángulo asoci
uta de asociación emo el segmento final de la ruta y el símbolo de la

lo caliticador forma parte de la ruta de asociación. no de la clase. Fl calificador est
asociado a In clase que califica, eto es, un objeto de la case calificada junto con un valor del
calificador selecciona de modo único un conjunto de objetos de la clase destino situada en cl
tro extremo de la asociación.

Los atributos de calificador se enumeran dentro del cuadro calificador. Puede haber uno o
más atributos en a lista. Los atributos de calificador tienen la misma notación de los atributos
de clase, salvo que las expresiones de valor inicial no tienen sentido,

Opciones de presentación

Los calificadores no se pueden suprimir (proporcionan dalles esenciales cuya deteeto
modificaría el caráctorinhosone dela relación),

Las herramientas pueden utiliza una línea más fina para los rectángulos de alificudor que
para los rectángulos de clas, con objeto de distinguilos claramente

Preferiblemente. el rectángulo calificador debería ser más pequeño que el rectángulo de
clase al que ese anociulo, sumue esto no siempre es posible en la práctica,

Discusión

wliplicidades de una asociación eulifieuda se tratan como si el abjeto calificado y el
ador fueran una solu entidad, una clave compuesta, Eu la dirección hacia de
multiplicidad del extremo destino representa el número de objctos relacionados con el valor
‘compuesto (objeto calticado + valor de cuificador. En la dirección inversa, la multiplicidad
describe el número de valores compuestos (objeto calificado + calificador) que están relacio-
mudos con cad objeto destino, no el número de objetos calificados relacionados con cada ob
jet destino. Éxta esla razón por la ul se pone el calificador en el mismo extremo de
de ssociación, junto al símbolo de la case, Se puede pensar que la ruta de la asociación conocta
el valor compuesto con a clase dest

No se ha provisto especlicar ka my relaciones no calificadas. Sin embargo,
en la práctica suclen sor mucho en la dirección hacia delante, No tiene sentido tener una
asociación calificada salvo que haya muchos objetos relacionados con un único objeto call
«ado. Para cl modelado lógico, ol propósito del caificalur es reducie la mulüplicidad a uno
mediante la adición de un calificador, de tal modo que se asegure que una consulta pueda.
proporcionar un único valor en lugar de un conjunto de valores. La unicidad del valor del
calificador suelo ser Frecuentemente una condición semántica crucial que es dificil de capturar
sin calificadones. Casi tods las asociaciones poscen muchas asociaciones calificadıs. Hay
muchos nombres que son realmente calificadores. Si un nombre es nico cn un determinado.
comext. se trata de un calificador y el contexts debería ser identificado y modelado udecus-

te. No todos los nombres son calificadores. Los nombres de personas. por ejemplo, no

cos. Dado que los nombres personales son ambiguos. kx mayor parte de las aplicaciones
de procestiniento de datos hace uso de agin tipo de número de idemificación, tal como un
número de client, un número de Seguridad Social o un número de empleulo. Si una aplicación
Fequict la búsqueda de informución o la recuperación de datos basada en claves de búsqueda,
en general el modelo debería wilizur asociuciones calificadas. Todo contexto en el

FILEENGUAIE UMFICADO DI: MODELADO, MANUAL DE REFERENCIA

efinan nombres o códigos de identificación para seleccionar cosas denta de un conjunto
deberé modelar. norwmalmente, como una asociación calificada

Observe que el valor del cuificador ex una propiedad del enlace, no del objeto destino, Com
dere un sistema de archivos Unix. en el cual cado dictorio s una lista de entradas cuyos
ombres son únicos dentro del directorio, aun cuando se pueden utilizar los mismos nombres
¿entro de ros directorios. Cada entrada denota un archivo. que puedo sor un archivo de datos
WORD direcion, Ls posible tener más de una entrada que apunte a un mismo archivo. Si sce
esto el archivo tiene varios alias, El sitema de directorios de Unix está modelado como una
asc muchos-a-uno en la cual el directorio calificado por un nombre de archive pro
lun archivo. Observe que el nombre de archivo no forma pare del archivo forma parte dela
lación existente ento un directorio y un archivo, Un archivo no posee un ánico nombre.
Puede tener múltiples nombres en otros tantos directorios £o incluso varios nombres en un
mismo directorio). El nombre de archivo no cs un «tributo del archivo

{Una de la motivuciones más importantes par la existencia de asociaciones calificadas es
"necesidad de modelur una importante situación Semántica que poses una estructura de datos de
implementación natural e importame, En a dirocción hacia delante. una asociación calificada
ex una tabla de búsqueda: para un objeto calificado, cada valor del calificador produce un único
‘objeto destino (o un valor nulo si el valor del calificador está ausente en e on

Lan tablas de búsqueda se pueden implementar mediano estructuras de datos tales coro tablas
usb, bles D y listas ordenadas que proporcionan una eficiencia mucho mayor que las listas
desordenados. En casi todos los casos, son malos los diseños que utilizan un lista ent o
lama ora estructura desordenada para huscar nombres o códigos, aunque lamentablemente
ay muchos programadores que las usan. FI modelado de situaciones sulecuadas emples
“asociaciones calificados y estmerras de datos eticienes para implementaras result crucial
para una huena programaciôn.

Para un modelo lógico, tiene poco sentido tenor una asociación elificada com una multi
plicidad de muchos en la dirección hacia adelante, porque cl calificador no ande ningun
información semántica que no pudiera mostrar un ssibuto de asociación. Sin embargo. en un
modelo destinado al diseño de algoritmos y estructuras de datos, un calificador apor una
connotación adicional, saber la intención de que la selección sea ecient, En otras palabras,
una asociación calificada denota un ura de datos indizada y optimizada para la bisa
por valores del calificador. En este cuso, puede ser útil una muliplicidad de muchos pa

representar un conjunto de valores al que deba poderse acceder on bloque a través de un valor
de indice común, sin tener que buscar otros valores,

En general, no debe incluirse un atributo calficado como stibuto de la clase destino, porque
es suficiente su presencia en la asociación. En el caso de un valor indice, sin embargo, puede
+ necesario tomar un valor que sea inherentemente un atributo de La clase destino y hacer que
ea un valor de calificador redundante, Los valores de fadice son inherentemente redundantes.

Directorio

[Archivo

Figura 13.26 Caliicador sencillo

ENCICLOPEDIA DETERMINOS 15

Restricciones

Algunas situaciones complicadas no son Fáciles de modelar con cualquier conjunto de rela

jor es modelurlas empleando asociaciones calificadas
apurar las rutas básicas de acceso y enunciar explícitamente las restricciones adicionales.
Dado que estas situuciones son poco Frecuentes, estimamos que intentar ncluilas en una
notación que capture ir todas ls posibles restricciones de multiplicidad no merecía
la complejidad adicional.

ciones no redundantes. Lo

Por ejemplo. considere un directorio en el que cuda nombre de archivo identifica a un
archivo único. Un archivo puedo corresponder a múltiples parejas director nombre de archivo.
Éste es el modelo básico que se ha visto anto, El modelo se muestra cala Figura 1326.

Ahora, sin embargo, deseamos añadir resticciones adicionales, Suponga que todo archivo
debe estar en un nico directorio, pero dento de ese directorio puede tener múltiples nom-
bres, eto es. que hay más de una forma de dar nombre al wismo archivo. Esto se podr
ar con una asociación redundante entre Archivo y Directorlo. con wns multiplicidad de
13.27). La redundancia de las dos asociaciones se indica mediante La
restricción (Igual), que implica que los dos clementos son el mismo pero con distintos nive
les de detalle. Dado que estas asociaciones son redundantes, sólo se implementaría lu
sociación calificada; la ara se tatari como uns restricción aplicada a sus componentes en
tiempo de ejecución.

Directorio

Archivo

gua 1327. Un archivo con miles ombres

Una reurcción similar es que todo archivo puede aparecer en múliples directorios pero
siempre tiene el mismo nombre dondequiera que aparezca, Otros archives podrán tener el
mismo nombre pero tienen que estar en otro directorio, Esto se puedo modelar haciendo que
nombrearchivo sea un arihut de Archivo poro restringiendo cl atibuto de clase y el califica
¿or para que sean iguales (Figura 13.28). Este patrón aparece con teecuencia como índice de

Directorio.

Figura 1828 Un archi cm el miso nr todos x iconos

154 ELLENGEAIE UNIFICADO DE MODE ADO, MANUAL DE REFFRENCIA,

búsqueda, sun cuando cn un índice general la multiplicidad del destin caliticado seria muchos
Por tanto, esta situación tiene más contenido sintáctico que un Face, que es un dispositive de
implementación,

Un tercer caso permitiría que un archivo aparecio en múltiples directorios con diferentes
ombres, pero ci archivo sólo podría «parecer una sola vez en cada director individus
Esto e podría modolar con una asociación calificada y una clase de asociación redundantes que
‘compartieran el mismo atributo nombroarchivo (Figura 13.29),

Directorio.

Se han mostrado estos ejemplos con relaciones redundantes para ilustrar a naturaleza delas
restricciones, Sin embargo. en la práctica suelo rosatar saitactorio enunciar en forma de tex
to la restricción, mostrando grficamente la asociación calificada.

calle’

Pantición de os gralos de actividades que se emplea pars organizar las responsaiidades de las
actividades. Las cales no tienen un significado fijo, pero suelen corresponder alas unidados ue
ganizativas en los modelos de negocios

Véase también grafo de actividades.

Semántica

Los estados de actividad dentro de un grafo de actividades se pueden organizar en paticiones
Aamadas calles como consecuencia de su notación. Las calles son agrupamientos de estados
para organizar los grafos de actividades. Cada elle representa alguna partición significativa de
les sesponsabiidados delos estados. -por ejemplo, la organización de

un paso en un Majo de wabajo- Se pueden utilizar cn la Forma que prefien el creador del mo
delo, Las calles, Si existen. reparten entre ells los tados del galo de actividades.

Cada calle posee un nombre distinto del de la oras calles, No posee ninguna semántica ai
cional dentro de UML pero puede tener algunas implicaciones propias del mundo real

Notacion

Se puss divide visualment el diagrama de actividades en elles, cada una de las cuales es
de las cols contiguas mediante una linea vertical continu (Figura 13.30). Cada ca
resenta alguna responsabilidad de alto nivel para una parte de la actividad global, q
puedo ser implementada eventualmente por uno o más objetos, El orden relativo de calles no
posee significación sománsica poro puede indicar alguna stimidad en e mundo real. Cada estado
¿e actividad se asigna a un calle y se sita visugimente en su interior, Las traniciones pueden
‘racat ls calls: hu ruta de una transición no tiene significado especial

Cliente Ventas
.

A
O

Figura 130. Calls de vn serum de vidades

186 ELLENGUAIE UNIEICADO DF MODELADO. MANUAL DE REFERENCIA

Come las cales no son ota cosa que particiones en cutegorís arbitrarias, pueden indicas
por otros medios simo resulta práctico agtuparlas en regiones. Ente as posibilidades se cuen
la el uso del color o utiliza simplemente valores etiquetados para mostrar I partición

capa
Dícese de un patrón de arquitectura propio de lo pales de un modelo, que
poseen tados el mismo nivel de abstracción, Cada vn mund viralen unde

característica

Uns propiedad tl como una operación o aibuto, que s como parte de una list
dentro de un clasticador, al como una interfa, un case, o un ipo de dato

característica de comportamiento

Elemento del modelo que expresa comportamiento dinámico, como una operación o método. y
1 de un clasificador, La des de que un clasificador trata um

Elementos estándar

característica estructural

Caractorísica estática de un elemento del modelo, tal como un atributo una operación.

cardinalidad

Niimero de clement de un conjunto. Fs un número específico. Contcastar con multiplicidad,
que es el rango de posibles curdinalidados que puedo tener un conjunto,

Discusión
Obsérvese que muchos autores emplean el término continalidad de forms incorrecta queriendo
hacer referencia a la multiplicidad, aunque el término cardinal tiene una definición
matemática desde hace such tiempo como mimerd, no como rango de números. Ésta esla
definición que utilizamos aquí.

ENCICLOPEDIA DETERMINOS 167

caso de uso

Especiicación de las secuencias de acciones, incluyendo socuencias variantes y secuencias de
error, que pueden ser efectuadas por un sistema subsistema o close por interacción con amores

Véose también actor, clasificador

Semántica

Un caso de uso es una unidad coherente de funcionalidad que proporciona un clasificador
sistema, subsistema o clase kl como lo manifiestan las socucnctas de mensajes que se inter
cambian entre el sistema y uno o más usuarios externes (que se representan cono actores).
junto con acciones que realiza el sistema

EI propósito de un caso de uso es definir un cierto comportamiento de un clasificador
(incluyendo un subsistema 0 odo el sistema) sin revelar I estructura interna del clasificador,
Cada easo de uso especifica un servicio que proporciona el clasificador sus usuarios, 10€,
una form específica de utilizar el claiicador que es visible desde el exterior. Describe una
secuencia completa que es iniciada por un usuario (modelado por un actor) en términos de
interacción entre las isuarios y el clasificador asf como ls respuextas ofrecidas por el cls
ado. La interacción sólo incluye las comunicaciones hubidas etre el tema y los actores. El
Somportamienio o implementación internos se ocultan. El conjunto completo de casos de uso.
de un clasificador o de un sistema particiona y abarca su comportamiento. Cada caso de uso.
representa un 1020 cuantificado y signiticalivo de funcionalidad que está disponible para los
usuarios, Observe que entre os usuarios se cuentan los acres humanos así como los compu
tadores y otros objetos, Un actor es la idealización del propósito de un usuario, no una
representación de un usuario físico, Un usuario físico puedo corresponderse con muchos
actores y un tor puede represcatar cl mismo aspecto do múltiples usuarios Fsieos

Véase acto

Los casos de uso incluyen cl comportamicnto normal y Babia! que Se tien como respuesta
2 ua solicitud del usuario, así como posibles variants de la secuencia normal, tales como.
secuencias alternativas. comportamiento Frente a oxccpciones y manejo de enores, El abjctivo
es describir un trozo de funcionalidad coherente en todks sus variaciones, incluyendo las
condiciones de err, El conjumo completo de casas de uso de un clasificador especifi tod
las formas distintas que hay de utilizar ese clasificador. 1.05 casos de uso se pueden aesupar ea
paquetes por comodidad,

Un so de uso s un descriptor: describe un comportamiento potencial. La ejecución de un
¿aso de Uso cs una instancia de cuso de uso. El comportamiento de un caso de uso se puedo
especilicar mediante una máquina de estados asociada x él 0 bien por un código en forma de
texto (que es equivalen a un máquina de estado), También se puede describir mediante una
¿descripción informal en forma de texto, El comporlamienta se puede ilustra. pero no espec
ficar formalmente, mediante un conjunto de escenarios, Esto puede resultar sulicente en as
primeras fases del desarrollo,

Una instancia de caso de uso es una ejecución de un caso de uso, que será iniciada por un
mensaje proveniente de una instancia de actor. Como respuesta al mensaje, la instancia de caso.

158

HL-LENGUAJE UNIFICADO DI: MODELADO. MANUAL DL REFERENCIA

de uso ejecuta una secuencia de ueciones especificadas por el caso de uo, ales como e

mensajes a instancias de actor. no necesariamente desinulas sólo al actor iniciador. La

instancias de actor pueden enviar mensujs a la instancia de caso de uso y la imeraci

prosigue hasta que Ea instancia ba respondido à todas las entradas. Cuando ya no espera mis
uds concluye

Un caso de uso es um especilicción del comportamiento de un sistema (u oto clas

como un todo en sts interacciones con actores exteriores. Las interacciones intern

«jets internos del sistema que implementa el comportamiento se describen med
sboración que realiza un caso de uso,

Estructura

Un caso de uso puede tenor cractorísticas y relaciones

Características Un caso de uso es un clasificador y por tanto tiene abus y operacion:
Lon uributos se empleun pura representar el estado del caso de uno. estos, el progreso de
ejecución —. Una operación representa un bloque de trabajo que puede realiza el caso de uo,
No se puede invocar directamente desde el exterior, pero se puede emp

efecto del caso de uso sobre el sistema, La ejecución de una operación se

recepción de un mensaje procedente de un tor. Las operaciones acti sole los aribuos del
aso de uso e indirectamente sobre el sistema 0 clase al que esté asociado el caso de uso,

Asociaciones con actores. Una asociación entre un actor y un caso de uso indica
instancia de actor se comunica con la instancia de sistema o de elaificaor para

tado que seu de interés para el actor, Los actores modelan usuarios externas del clasificador
De este modo, sel claiicador es un sistema entonces sus actores son os usuarios externos dl
Sistema. Los actores de subsistemas de nivel inferior pueden ser otras clases pertenecientes a
sistema global

Un actor se puedo comunicar con varios casos de uso —est es el actor puede solicitar va
rios servicios diferentes del sistema y un caso de uso puede comunicarse con umo.o más as
tores cuando les proporciona sus servicios, Observe que dos casos de uso que especiiquen un
mismo sistema mo pueden comunicarse etre sí, porque cada uno de silos describe individual
Incite un uso completo del sistema. Pueden interactuar indirectamente a través de scores
«compartidos.

La interacción entre actores y casos de uso se puedo definir mediante interfaces. Una in
faz define las operaciones que puede admitir o utilizar un actor o caso de uso, Las distintos
interfaces que olrecen un mismo caso de uso no tienen necesidad de ser disjuntas,

Los casos de uso están relscionados con otros casos de uso mediante relaciones de gencra
lización, extensión ¢ inclusión.

Generalzacién. Una relción de gonoralización relaciona un caso de uso especializado con
otro caso de uso mis general, LI hijo hereda los atributos, operaciones y secuc
«omportamiento del pudre y puede agro

jade comportamiento al caso de uso padre ins
secuencia del padre 1osarbirarin. También puedo
secuencias heredadas, pero esto tiene que hicerse con igual cuidado que en una redefinición

ENCICLOPEDIA DETÉRMINOS 180

para que la intención del padre se mantenga. Tous las relaciones de inclusión o extensión con
leas de uso hijo modifican también efectivamente el comportamiento heredado del caso de
aso pude,

Extensión. Una relación de extensión es una especie de dependencia. FI caso de uso ol
te añade un comportamicato incremental al caso de uso base mediante la inserción de yecuen
cas de acción adieionales a la socuencia base, El caso de uso cliente contiene uno o n
Segmenten separados de secuencia de comportamiento, La relación de extensión contiene una
Vista de nombres de puntos del easo de uso base, en mime igual ul número de segmentos que
haya en el caso de uso cliente, Un punto de cxtcasión representa uma localización 0 conjumo de
localizaciones dentro del caso de uso base en los cuales se podría insertar la extensión, Uns
relación de extensión también puede tener asociada una condición, que puede ha
tributes del so padre. Cuando una instancia del caso de uso padre Heya a una loca
lización la que hace referencia un panto de extensión de larolación de extensión. se eval la
condición: sila condición es verdadera, entonces se ejecuta el correspondiente segmento de
comportamiento del caso de uso hijo. Si no hay condición. xe estima que es siempre ci

ón de extensión poses mis de un punta de extensión, entonces la condición se evalúa

nente en el primer punto de extemión antes de ejecutar el primer segmento.

¡ciones de extensión no crean un nuevo caso de uso instanciuble. Lo que hacen es
ento al caso de uso base original, Fl caso de uso base incluye:

À comportamiento extendido. El caso de uso base original no extendido no e

ble en su forma mo modificada. En otras palabras, si se extiende un caso de uso enton

puede instanciar explícitamente el ciso de uso hase sin la posiblidad de que haya
extensiones, Un caso de uso puedo tener múltiplos extensiones que se uplicar todas al mismo

¿aso de uso base y se pueden insertar cn una instancia de caso de uso si so satisfacen sus
distintas condiciones. Por otra part, un caso de uso de extensión puede extender varios casos
¿e uo hase (ol mismo en diferentes puntos de extensión), cada cual en su propio punto de
extensión (o lista de puntos de extensión). S ay varias extensiones en el mismo punto,
tensión, su orden relativo de ejecución no es determinista,

Observe que el caso de uso de cxtensión no debe instancias; hay que istanciar l caso de
uso base para obtener el comportamiento combinado de base más extensiones, FI ews de uso
de extensión puede ser o no instanciable pero en todo caso no incluyo cl comportamiento del
caso de uso band

Inclusión. Una relación de inclusión denota la inclusión de la sceuencia de comporta

del easo de uso proveedor cn la secuencia de interacción de un caso de uso cliente, bajo
el control del caso de uso cliente en una localización que especiique el elite en su descrip
ción. Se tata de una dependencia, no de una generalización. porque el caso de uso proveedor
o puede ser reemplazado en aquellos casos en que aparece el ease de uso cliente. El cliente
puede acceder a los atributos del caso de uso base para obtener valores y comunicar resultados
Ta mstuncia de caso de uo es ejecutando ol caso de uso cliente, Cuando llega al punto de
inclusion, comienza a ejecutar el caso de uso del proveedor hast que te Imaliza. Después
sigue ejecutando el caso de uso cliente más all de la localización dela inclusión. Los tributos
el caso de uso proveedor mo tienen valores que persistan entre ejecuciones,

Un caso de uso puede sor abstracto, lo cual significa que se puede instanciardirectamene en
tna ejecución de extensión. Define un Trento de comportamiento que e expecaliza se in
<luye en casos de uso concretos o quizá sen una extensión de un caso de uso ase, Tambié
puede ser concreto si puede instanciarse por sí mismo.

160

FI LENGUAIE UNIPICADO Dk: MODELADO, MANUAL. DE REFERENCIA.

Comportamiento. La secuencia de comportamiento de un caso de uso se puede describir
mediante una máquina de estados, un grafo de actividades o un código de texto esco en à
lenguaje ejecutable, Las acciones de la méquina de estados 0 as semencias del código puedes

a las operaciones internas del caso de uso para especificar los electos de la ejecución
Las acciones también pueden indicar el envío de mensajes actores.

Un caso de uso se puede describir informalmente empleando escenarios o un texto normal,
pero estas descripciones son imprecias y sólo están destinadas a su interpretación por pate de
Seres humanos.

Las acciones de un caso de uso se pueden especificar en términos de amas operaciones
del clasificador que describo el caso de uso. Una operación puedo ser invocada por más de un
case de uso,

Realización, La relizsciôn de un caso de uso se puede espec un conjunto de

boraciones. Una colaboración describe ka implementación del caso de uno por pare de ob
jetos del clasificador que describe ese caso de uso, Cada colaboración describo el contexto en
{re constituyentes del sistema dentro del cual se produce una o más secuencias de interacción
Las colaboraciones y sus interacciones definen la forma en que interactúan los ubjetos dels
tema paraJograr el comportamiento extemo especificado en el caso de uso.

Un sistema se puede especificur con casos de uso en diferente niveles de absracción. Un
caso de uso que especica un sistema. por ejemplo se puede refinar para formar un Conjunto Ge
Sasos de uso subordinados. cada uno de los cuales especifica un servicio de un sistema, La
Funcionalidad especificada por el caso de uso de rango superior Se puedo seguir por completo
hasta lu funcionalidad delos casos de uso subordinados (de rango interior. Un caso de uso de

fango superior y un conjunto de casas de uso de rung inferior especifican el mismo compote
tamiento en dos nivles distintos de abstracción Los caos de uso “abordinados coope

proporcionar el significado del caso de uso de rango superior. La cooperación de los canes de

uso subordinados queda especificada por ls colaboraciones del caso de uso de rango superior y
se pueden representar mediante diagramas de colaboración. Los actores de un cano de uso de ra
¿o superior aparecen como ustores delos casos de uso subordinado». Además, os casos de uso
subordinados son actores entre sí. Esta reulización por capas da lugar a un conjunto anida de
casos de uso y colaboraciones que implementan todo el sistema.

Notación

Los casos de uso se representan mediante comiene el nombre del cuso de uso, Si
5 preciso mostrar atributos o operaciones del caso de u, el caso de uso pued dibujar como
un rectingulo clasiicador com ls palabra reservada «use casos. La Figura 13.31 muestra un
diagram de caso de us.

Un punto de extensión es una cidad con nombre perteneciente u un caso de uso que
describe localizaciones en las cuales se pueden insertar secuencias de otros casos de

Proporciona un nivel de indirecciön entre las extensiones y el texto de secuencia de compor
tamiento. Un punto de texto hace referencia a una localización o conjunto de localizaciones
¿entro dela secuencia de comportamiento del caso de uso. Se puede cambiar la refrenda
independientemente de las relaciones de extensión que hagan uso del punto de exterior
Cada punto de extensión debe poscer un nombre único dentro dl caso de uso. Los puntos de

ENCICLOPEDIA DETÉRMINOS 161

1 Catálogo Telefónico

Comprobar"
estado

hacer
pedido

pedido ) AN
Cliente Encargado Envíos.

establecer
Ceréaito

= À
Supervisor

extensión se pueden enumerar en un compartiment del caso de uso, con el encabezado puntos
de extensión (Figura 13.32),

Uns relación de comunicación entre un caso de uso y un actor se muestra empleando un
simbolo de asociación —una linea continua entre los símbolos del cuso de uso y del actor—
Normalmente se puede omici la palabra reservada «communication» porque te es el único

Hacer Podido \ ins aient) Soler y

scie N Catálogo )

#

Proporcionar», (“Pedi ¿Organizar
Datos producto, (Page)

cliente.

Pago
Metaitco_)

Figura 1332. Relaciones de cas

162. EL LENGUAJE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA

Lipo de asexación que hay entro actores y casos de uso. Generalmente no ponen nombres ni
ombres de rol enla Finca, porque el actor y el cuso de uno deinen de modo único a relación

{Una rolación de generalización se muestra mediante wna Mecha de gencralización: mul
mea continu que va del caso de uso hijo a cano de uso pare, con una cabeza de flecha cero
da tiamgular en el so de uso padre

Una relación de extensión o de inclusión se muestran mediante uns Mecha de dependencia
(con la palabra reservada «extend» o «include» —un línea discontinua con cabeza de flecha
hueca en el caso de uso cliente —, Lis relaciones de extensión también tienen una ita de nom
Dres de puntos de extension (se pueden climinar en el diagram,

La Figura 13.32 muestra distintas clases de relaciones de casos de uso,

Especificación de comportamiento. La rotación entre un caso de uso y sus secuencias ex
termas de interacción suelo representarse mediante un hipervínculo que llega a un diagrama de
secuencias. FL hipervinculo es invisible pero se puede recorrer mediante un editor El cor

portamiento también se puede especificar mediante una máguina de esta o mediante un ton
10 en algún lenguaje de programación asociado al caso de uo. Se puede emplear un texto en
lenguaje natural como especificación informal

Véase extensión para un ejemplo de secuencias de comportamiento,

La relación ento un caso de uso y su implementación se puedo mostrar como uns relación
de realización que va del aso de uso la colaboración. Pero dado que éstos suelen esta ete
¿elos separados, suelo representarse como un hipervínculo invisible, Se supone que una le
rramienta admitirá la posibilidad de “acercarse” a los casos de uso para contemplar sus
escamas 3/0 su implementación como una colaboración

clase

Descriptor de un conjunto de ubjetos que comparten los mismos arribuos, operaciones, méto-
dos. relaciones y comportamiento. Una clase represents un concepto dentro del sistema que se
está modelando. Dopendiendo del tipo de modelo, el concepto puede ser del mondo ral en un

nilisi), o contener conceptos algoríímicos o de implementación en un computador
(en un modelo de diseño), Un clasificador ox una generalización del concepto de clase que in
cluye ones elementos similares las clases como lio de dito. uetor y componente

Semántica

Una clase os la descripción con nombre tanto de la estructura de datos come del compen
miento de un conjunto de objetos. Una clase se utiliza para declara variables. Un objeto que es
el valor de una variahl

10 que es lo mismo, debe ser de la misma clase que la declarada o un descend

Una clase también se utiliza para instanci objetos: mediante operaciones de creación, se ern
nuevas instancias de una clase

Un objeto instanciado a partir de una clase es una instancia directa de I clase y una is
tancia indirecta de sus antecesores. Fl objeto contiene una ranura que mantiene un Valo para

ENCICLOPEDIA DE TERMUNOS 163

cda arto: acepta tds las operaciones y señales de la clas, y puede aparecer en enlaces de
asociuciones en los que participo In clase o un antecesor dela chase.

nas clases no pueden sr instances directamente, yu que se emplean únicamente para
escribir estructuras compartidas por todos sus descendientes: a estas clase se las denomina
clases abstractas. Una clase que puede sor instancia directamente es una clase conc

Una clase también puede verse como un objet global, siendo todos los artes de la cine
«on alcance de clase los atributos de este objeto implícito. Estos atributos tienen un alcance
global y cada uno de ellos tiene un único valor para todo el sistema. Una operación con
“alcance de clase se upliea a la clase, no al objeto, siendo las operaciones de ee

Ln UML una clase es un tipo de clasificador, Los clasficuadares son cl
las clases, pero sw expresión más lara s la elane

Estructura

Una clase consta de un nombre y listas de operaciones, atrbutos y métodos, Una clase puede
participar en una asociación, en una generalización, en dependencias y en relaciones de
restricción. Se declara dentro de un espacio de nombres. como un paquete u tra clase, yet
varias propiedades dentro de dicho espacio de nombres. como la multiplicidad la visibilidad.
Una clase tiene otras propiedades, como si os o no abtracta © si es activa. Puede tener una
mácuina de estados que especifique su comportamiento reactivo, es dcir que especifique cómo
responde: os eventos que rocibe. Una clase puede decharu into de eventos incluyen.
da exscpeiones) que es capuz de tata. Puede proporcionar la realización del comportamiento
espocificado por cero » más interfaces tipos proporcionando uns implementeción para dicho
comportamiento, Una inert it el conjamo de o cs que ofroce una clase que promete
realizar iter

Uma clase contiene una lista de atributos y una lista de operaciones, cada una de las cuales
forma un espacio de nombres dentr de la clase, Los arributos y las operaciones heredadas
también aparecen dentro de sus respectivos espacio de nombres. Los espacio de nombres pur
atributos incluyen también los pseudoatributos, como los nombres de rol de las asociaciones
que salen de a lise o los discriminadores de as relaciones de generalización en que participa
la clase alguno de sus antecesores. Un nombre debe déchirure sólo una vez dentro dela clase
y sus antecesores, pues de otro modo habría un confice y el modelo estaría mal Formado. Los
nombres de las operaciones se pueden repetir siempre que representen la misma operación
pues sino se produciría un conflicto de nombres.

Una clase también es un espacio de nombres y establece el alcance de las declaraciones de
etusificadores anidados, Los claciicadores no son partes estructurales delas instancias dela
le. No existe relación entre los objetos de uns clase y las objetos de clases andadas. Una
clase anidada es una declaración de una clase que puede ser utilizada por los métodos de la
luxe extern, Las clases declaradas dentro de otr clase som privadas a dicha case, y por tan
to no pueden ser accedidas desde fuera do I clase a menos que solas haga visibles explícita
mente. No hay una notación para representar las declaraciones de clases anid, aunque es de
esperar que en las herramientas pueda accederse a ellas mediante hipervínculos. Los nombres
amidados dehen ser referenciados wilizand la ruta del nombre,

EL LENGUAJE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA

Ventana

Notacion

Una eluse se represents mediante un rectángulo con tes partes o compartimentos separados por
líneas horizontales. La parte superior contiene el nombre de la clase ¥ otras propiedades que se
aplican a la totalidad de La clase. La parte central contiene una lists de tribut, mientras que
la pare inferior contiene una lista de operaciones, Estas dos últimas partes se pueden suprimir
en un símbolo declive

ón. Las clases se declaran en diagramas de clases y se wilizan cn muchos a

porcion una notación grálica para lu declaración y uso de clases, y una
úpotación textual para hacer referencia a lus clases dentro de las descripciones de otros
clementos. La declaración de uma clase en un diagrama de clases define el contenido de la
misma: atributos. operaciones y otras propiedades, Otros diagramas definen relaciones
“adicionales y otros elementos asociados a hy clase

La Figura 13.33 muestra una declaración básica de clase con atributos y operaciones.

La Figura 13.34 muestra ha misma declaración de clase com detalles adicional, sobre
ormación sobre la naturileza de su implementación, como visibilidad, operaciones
Fuente de ereación de alcance de case y operaciones depenuicntes dela implementación.

mato: Wea (10000) <
pao cardo

Figura 13.8 Declaración asalta de clas com vida de cratricas

ENCICLOPEDIA DETÉRMINOS 168

Ventana

Figura 1335. Símbolo de ch contados osas suprimidos

Opciones de representación

Supresión de compartimentos. Se puede suprimir cualquiera de los dos compartimentos ya
«tados atributos y operaciones) o ambos, al y como se muestra en la Figura 13.36. Cuando no
e mucsta un compartimento no se dibuja que lo separa, En xo caso, no se puede inferir
mada acerca dela presencia o auseneia de elementos en dl. Ténguse en cuenta que un compar
mento vacío. es decir, uno con separulor poro sin contenido, indica que no hay elementos en la
lisa vormespondiene. Si se lleva a cabo algun tipo de Fito, significa que no exite nimgún ele
ment que stisfaga la condición de filtro. Por ejemplo, sólo se desea mostrar las operaciones
públicas. la presencia de un compartimento de operaciones vucío significa que no hay opera:
ciones públicas. pero ao se pueden sacar conclusiones acerca de la operaciones privadas.

Ventana

Compartimentos adicionales. Se pueden añadir otros compartimentos para mostrar oras pro-
iedudes dot modelo definidas por cl usuario o predefinidas —por ejemplo. para mostrar reglas
de negocio, variaciones, responsabilidados tratamiento de soiles, excepciones que genera, et
étera— Un compartimento adicional se representa utilizando un nombre de compartimento en
la parte superior que identifique de form clara el contenido del mismo (Figura 13.37). Los
«compartimentos estándar {aributos y operaciones) no requieren nombre de compartimento.
aunque pueden llevarlo para entatizur o pura mayor lsridad cundo sólo hay un compartimento,
sible. La mayoría de los compartimentos son únicumente Tias de cadenas. donde cada ca
den represent uma propiedad, Obsérvese que “cadena” puede ser también un icono o docu:
mentos empotrados, por ejemplo hojas de cálculo 0 gráficos. Es pasible incluir formatos ain
más complejos, pero UML no los especifica, ya que son responsabilidad del usuario y de hs
herramientas. Si a naturaleza del compartimento viene determinada por la forma de sus con
¡cuidos, se puede omit el nombre del compartimento.

Véuse uso de la tipograli cadena

Estercoripo. Un estereotipo se representa mediano un texto ere comillas») encina del
ombre de la clase, como se muestra en la Figura 13.38. Se puede miliga también un icono en
la esquina superior derecha del compartimento con nombre en lugar de la cadena do texto. Un
simbolo de elase con un icono de etercolipo puedo ser "comprimide” para mostrar sólo ico
no de estereotipo, con el nombre de la clase como (Figura 13.100), Se su
primen los demás comenidos de la e

166

[EL LENGUAJE UNIFICADO DE MODI ADO, MANUAL DE REFERENCIA

Ventana

unten

Figura 1337. Compsrimeno
Véase esterctipo.

Reglas de estilo

+ Fl nombre del etercotipo debe ir entre comíllas, en letra normal y centrado sobre el nombre
de lace,

El nombre de la clase debe ir en negrita, bien centrado o bien justificado la izquie

Los atributos y operaciones irán en letra normal jusiicados a a izquierda.

El nombre de cases abstractas la signatura de operaciones abwinictas debe apurecer
Muestre los compar y operaciones cuando sex necesario (al menos
una vez en todo el conjunto de diagramas). lo em tros contextos o referencias, Ex
Atl detini un lugar “base” para una clase donde se muestre su descripción completa, mos
rando la forma minima en los demás silos

Discusión

El concepto de clase se uplica u un amplio espectro de diferentes wilizuciones en el modelado
lógico y enla implementación, ya que incluye tanto el concepto de tipo como el concepto de
clase de implementación. En UML, y bajo ciertos puntos de variación semántica, un objeto
puede tener múltples clases, a como ver capaz de cambiar de clase en tiempo de ejecución
(tras noviones mis restrictivas de clase que aparecen en la mayoría de lenguajes de progra
mación pueden asimilarse como tipos especiales de clases

Elementos estándar

Cancelar signa
Cancelar

Figura 1338 Cle con stereo

NCICLOPEDIA PE TÉRMINOS 167

clase abstracta

Case que no puede ser instead,

Véase abstractola.
Semántica
Una clase abstracta no puede tener instancias directas, Tiene que tener instancias indirects a

Para una discusión sobre el tema, véase abstractos

clase activa

Clase enyas instancias son objetos ac

Véase objeto activo para más detalles,

Semántica

Una elase setiva es una clase cuyas instancias son objetos activos. Algunos estereotipos de
clase activa som los procesos y los hilos

Notación

Ejemplo

La Figura 13.39 muestra un diagram de clases con una clase activa y sus patos pasivas,

Gestor Fábrica

1 1

TrabajoTranstorido][PlanificadorFábrica||GestorTrabajosFábrica]

Figura 1339 Claw activa y pres asis

168

FILL ENCUAIE UNIFICADO DE MODELADO, MANUAL DE REFBRENCIA.

La Figura 13.138 muestra una colaboración que contiene los objetos activos correspon
dientes a este modelo,

asociación

Una clase asociación es una asociación que tumibión es una el
propiedades tanto de las clases como de las asociaciones, Sus intanciss son

Valores delos atributos la oz que referencias a otros objetos, Aunque su notación

por os dos símbolos, e de la asociación y el de a clase, es un inca elemento del modelo.

Véase también asociación. chase

Semántica

Una clase asociación tiene las propiedades de lis anociaciones, pues conecta dos on
y también tiene atributos y operaciones, Una clase asociación es rl cuando cada enlace
‘ence sus propios valores par los ariburos. operaciones propias, sus propias referencias à
objetos, Puede verse como uns clase con una referencia de che extra por cada extremo de la
ssociación. que es la lora obvi y normal de implementarlo, Ca instancia de una clase au
«lución tic referencias a objetos. así como los valores para los atibutes especificados por la
pare de clase

Una clase asociación C que conecta dos clases A y B no es lo mismo que una clase D con
vna asociación binaria a cada una de las clase A y 8 (véase la sección de discusión). Como
todos los enlace», un enlace de una clase asociación como C toma su identidad de las refer
cias a objets que contiene. Les valores de Jos atributos no intervienen para proporcionarle su
identidad, por lo que nunca dos enlaces de C podrán tener el mismo par de objetos (a, b aun
que lo valores e sus stibutos sean diferentes, pues tendrían entoncos la misma identidad. Esto
dado un arribo no está permitido que das instaneias de C tengan los valores (a, b.
(6.2) porque comparten a misma identi (a,b) Sin embargo. los objetos tienen identidad
inberent, por lo que dos objetor pueden toner idénticos valores de sus tribus 0 enlaces alos
miss objetos, En otras palabras. una asociación, incluyendo una ease asociación como Ces
vn conjunto de tuplas y no tien duplicados entre sus referencias a objctos; mientras que un

ción implícita como D es mis como una bola, que puedo tener duplicados, Para más
‘etais, véase a sección de discusión.

Las clases asociación pueden tener operaciones que modiliguen los ributos dol enlace
€ añadan climinco enlaces al propio enlace. Como la clase asociación os una clase. puede
participar en asociaciones como tal clase
Una clase asociación mo puede tenerse a sí misma como una de sus clases participantes
(aunque sin duda se podría encontar un significado para una estructura recursiva de ete tipo.

Notación

Una clase asociación e representa medianie un símbolo de clase (un rectángulo) unido por ul
new discontinnn a la uta de una asociación (vdase Figura 13.40). El nombre del símbolo.

ENCICLOPEDIA DE TÉRMINOS — 169

2 person |

Empleo | 444 > Geuscme wochen,

<Gostiona

Figura 1340 Cave ocación

4 del nombre que scompaña a la ruta de a asociación yon redundantes. La ru
de asociación puedo tenerlos habituales adornos en los extremos. El simbolo de la clase puede
tener aribatos y operaciones, y panicipar en tras asociaciones como case. No hay adornos e

la linea discontinua. ya que no es uma relación. sino simplemente parte del Símbolo global de a

Reglas de estilo

Fl punto de unión no debería estar tan cerca de uno de w de la asociación
Pudiera dar lugar a pensar que está unido inl de I ua à alguno de os adornos delos roles

"Obsérvese que la muta de asociación y la cla asociación son un único elemento del modelo,
por lo que tienen un único nombre. El nombre puedo aparece sobre la uta, en el nombre de a la
se cn ambos Sila cle asociación sólo tiens arts pero no operaciones u tras asociacioncs
+! nombre puedo mostrarse en a rua dela asociación y omitirse en el simbolo de la case ano
ciación para enfatizar su “naturaleza de asociación”. mientras que si tiene operaciones u oras
asociaciones. es mejor no mostra el nombre en a tay si lode la clase para
poner de relieve su “nsturaleza de clase” En ninguno de : la semántica,

Discusión

La Figura 13.40 muestea una clase asociación que represouta el empleo. La asociación de
empleo entre uma empresa y una persona es muchos muchos. Una persona puedo tener varios

[ Empresa [1 “| persona |

Participación]

Figura 1341. Clas asociación con atributo

EL LENGUAJE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA.

ñ ‘ + Adquisición | + 1
e ore cams —

Figura 1342. Asociación matelas

0%. pero sólo uno en una empresa determinada, El sueldo no es un atibuto ni de L
empresa ni de la persona puesto que la relación es muchos a muchos. por lo que debe verun
uribato de a relación

La relación trabajadora mo es sólo una relación entre dos personas, Es una relación em
tuna person en un abo y oxra persons en otro trabajo. Es una asociación (Dirge) entr
ase asociación y cla misma

El siguiente ejemplo encia entre una ease asociación y una relación mate
afízada modelada como clase. En la Figura 13,41, la propiedad de la empresa se modela con
‘una relación entre Persona y Empress. E atributo eantidad dela clase asociación represent
número de accioncs dela cinpresa que ona. La reación se modela como una se
asociación porque sólo debería haber una entrada paru cada par Persona-Empresa,

Para modelar a adquisición de acciones, como se muestra en la Figura 13:42, no utiliza
una clase asociación, ya que puede haber más de uma compra de acciones de u

pare de a misma persona. as compras deben distinguirse porque cada una es dista y ten
Su propia fecha y precio, además obviamente de la cantidad. La relación debe pues materia
ane, esta es, dividirse en distintos objetos con identi propie. La forma correcta de mude
Jarl es utilizar una clase ordinaria, ya que cada compr tine su propia identidad, inde

de las clases Persona y Empresa que relaciona. Éstas a rana de modelar una lie

es una bolsa en lugar de un conjunto,

compuesta

Una clase que está relacionada con una o más clases por ma relación de composición.

Véase composición.

de implementación

En inglés, Implementation Class. Fs un esterctipo de una clase que proporciona una imple
mentación física, incluyendo los atibutos, asociaciones u otras clases y métodos para las
‘operaciones. La clase de implementación está orientada a lenguajes orientados, a objet
tradicionales con lasiicación et e. Un objeto de un sistema de estas características
debe tener exactamente una clase de implementación como clase directa. Compirese con
tipo, un stercotipo de una clase que permite clasificación múltiple. En un lenguaje conven
cional, tal como Java, un objeto puede tener una sola clase de implementación y muchos ios.
{La clave de implementación debe ser consistente con os tipos.

ENCICLOPEDIA DETERMINOS 17

Véase tipo. donde se compas ses de implementación

clase directa

La clase que describe lo más completamente posible un objeto.

Vene también clase, generalización, herencia, clasificación ile, herencia müliple

Semántica

Un objeto puede ser una instancia de muchas clases: si es una instancia de una caso, enton-
«es también es una instancia de los antecesores de la lise, La clase directa es la descripción
md específica de un objeto, la quelo describo lo más completamente posible, Un objeto es una
instancia directa de su clase direct y una instancia indirecta de los antecesores de la clase
directa, Un objeto no cs una instancia de ningún descendiente de la clase directa (por defini

Si lu clasficución múltiple está permitida en el sistema, ninguna clase directa puedo
«escribir totalmente a un objet. Fl objeto puede ser lu instancia directa combinada de más de
una clase, Un objeto es una instancia directa de cada clase que contonga parte de su desc
ción, con tal que ningún descendiente describa también al objeto

Fo otras palabras, ninguna de las clases directas de un objeto tiene una relación ancestral
com las otras

Si se instancia una clase pars producir un objeto, el objeto ox una instancia directa de ta

en-un-estado

Una élue junto com tn estach en que los objetos de la clase pueden

Véuse también rato de uctividades,

Semántica

Una clas con una máquina de estados ene muchos estados, cna uno de los cuales earacteriza
el comportamiento, valores y restricciones de ns instancias que se encuentran en dicho estado.
En algunos casos, ciertos atributos. ssaciaciones u operaciones sólo son válidos cuando un
objeto esta en un determin estado: en otros casos, un urgumento de una operación debe ser
m objeto en un determinado estado. À menudo estas distinciones son simplemente parte de los
modelos de comportamiento, pero veces es útil modelarlas directamente en vistas estáticas o

172 EILLENGUAIE UNIICADO DF MODELADO. MANUAL. DE RLITERENCIA,

ArticuloRemitido ‘AnticuloRemitido|

=

SesiónDeConterencias ‚ArtieuloRemitido| |ArtieuloRemitido|
i [aceptado] [rechazado]

1
SosiónDeConterencias

Figura 1343. Classe restado

Una class en un estado es una clase, junto con uno de os estados válidos en fo ame los
objets de a clase pucden exar. Sila clase tone subosicos concumenes, la especificación de o
tado puede ser un conjunto de subestados en los que la clase puede estar simuliámcamonte. Un.
¿ase en un estado puede wilizanse como clasificador: ve comporta como una subis de

pla clase: puede utilizarse como la case de una variable de un parámetro: y puede participan
asociaciones que sólo son vil para objetos que estén en el estado dudo. Considere Ta ase
ciación Asignación de la Figura 13.13 entre lis clases SosiónDeConterencios y Articulo.
emitido, Esta asociación es válida para un ArticuloRemitide en e) estado aceptado.
(multiplicidad destino igual a uno) pero no en el tudo rechazado. Para cualquice ArtculoRo:
Mid. la multiplicidad destino es cer 0 uno, puesto que Ta liso incluye anículos tanto seep
tados como rechazados. Sin embargo, s se modela la asuciación entre ArieuloRemitko en ol
‘estado aceptado y SesiónDeConterencis, la multiplicidad destino tene que ser cxactamente un.

e una clase-en-un-estado son también útiles para mostrar os valores de
da y salida de operaciones en ratos de activi:

Notación

Una elase-en-un-estilo se representa mediante un símbolo de clase cn el cual el nombre de a
clase va seguido del nombre del estado entre corchetes (NombreCiacelnombretstadol. Los
corehetx mia pueden contener una lista de nombres de estados concrete separados pay
omas pare indicar que un objeto est cu vario estados.

Discusión

Las clases.en-n-estado y la clvificación dinámica son dos formas de dar complimiento al

mismo objetivo de permitir as clases cambios en I estracura de os objetos dae st vd
Se utilizará el más conveniente de Tox dos dependiendo del entorno de implevnentacion,

ENCICLOPEDIA DICTERMINOS — 173

clase unitaria

Clase que poses (por declaración) una Única instancia. Una clase unitaria es la forma de
representar cl conocimiento global en una aplicación, mane en um marco de trabajo.
¿riendo a objios

Semántica

"Td aplicación debo poser al menos una clase unitaria (Frecuontemente, de foma implícita para
sable el contesto dela aplicación. Con frecuencia la clase unit equivale fa aplicación en
»plementada por la pila de control y el espacio de direcciones del computador

Notación
Las chavos unitarias se representan mediante un símbolo de clase con un pequeño “I

Esquina superior derecha tT igura 13.44). Este valor representa la mulplicidad de la clase
¿entro del sistema

| Colsimpresora Impresora

Figura 13:44 Cine untar

clasificación dinámica
Una variación semántica de la generalización en la que un objeto puede cambiar el tipo 0

Véase también clasilicación mip

Semántica

En muchos lens ón, un ubjeto no puede cambiar la clase de la cual
instanciado. Esta r tica de la cisiicación simplifica la implementación y la
«optimización de compiladores. pero no es una necevidid lógica. Por ejemplo. asumiendo
«lusilicución estático, un objeto instanciado como un círculo dehe seguir siendo un círculo; no
Se pale cambiar su tamaño en a dimensiön X, por ejemplo, Suponiendo que hay clasificación
dinámica. un círculo del que se cambia dimensión se convierte en una elipse. Esto no se
fms un problem

Cualquier asunción puede utilizarse en un modelo de UML. ste es un ejemplo de un
punto de variación semántica. Sorprendentemente, la elección afecta poco al modelo, aunque

174 FL.LENGUAIE UNIFICADO DF MODELADO, MANUAL DE REFERENCIA.

las diferencias som importantes para la ejccución. En ambos casos so definen as mismas clave
pero sus operaciones pueden diferir

clasificación estática

Variante semántica de la generaizacion en la cual un objeto no puede cambiar de tipo on
puede cambiar de rol. La selección de la clase estática frente la clasificación dinámica es un
punto de variación semántica

clasificación múltiple

Se trata de una variación semántica de generalización en a cual un objeto puede pertenecer
directamente a más de una elise,

Semántica

Le cs el punto de variación semántica cn c objeto puedo ser instancia directa de mis
de una clase. Cando so usa con claifine ca, Ins objetos pueden adquiri y pene
clases durante el tiempo de ejecución. Ft wilizar clases para representar role
temporales que puede desempeñar un objeto,

Aun cuando la clasificación múliple se adapta bien u la
‘complica ta implementación de un le
{es populares de programución.

clasificación simple

Régimen de ejecución en que cado objeto posee exactamente uno chive direct
ejecución de la mayoría de los lenguajes de programación orientados à
Jusificación sim ip es un punto de variación semántica.

clasificador

Elemento del modelo que describe características estructurales y de comportamiento. Las
clases, setores, componentes tipos de datos, interfaces. nodos, señales, subsistemas y casos de
uso son tipos de clsificadores. El tipo más general de lasiicador es la clio. Otros tipos
pueden tener un cierto parecido intuitivo con las clases, con ciertas restricciones sobre el
contenido y la lización, zunque cada tipo de clasificador sá representado por su propi clase
en el metamodelo. En general, la muyoría de las propiedades de lis clases se aplican a los
elasificadoren. con ciertas in el tipo de clastic

Véase también elemento generalicable. vist estática

Elementos estandar

cliente

lemento que solicita un servicio a ro elemento, El término se utiliza para deseribi un rol
dentro de uns dependencia, En la notación, el cliente aparece en el origen de una fecha de
dependencia. Anónimo: proveedor,

Véase depende

colaboración

Descripción de una disposición general de obj ha interactan dentro de un
contexte para implementar un comportamiento, + uso o une operación. Un
à parte etica y una parto vática describe los roles
a desempeñar los objetos y enlaces e la colaboración. La part
nica está forma por uma o más interacciones dinámicas que muestran Mujos de mensajes

en a colaboración através del tiempo para realizar cómputos.

Véase también mensaje imracción. rol de asociación, rol de clasificador.

Semántica

El comportamiento lo implementan grupos de objetos que intercumbian mensajes en un
contexto determinado para llevar a cabo un cierto propósito. Para comprender el mecanismo.
wiizad en un diseño. es importante fijarse en lor objctos y mensajes implicados en La real
Zación del propósito del conjunto de propósitos relacionados, proyectados desde el sistema
más amplio denwo del cual realizan también otros propósitos. Una disposición de ubjetos y
enlaces que trabajan juntos para llevar a cubo un objetivo se denomina colaboración; una
secuencia de mensajes que implementan un comportamiento dentro de una colaboración se
denomina inoracción. Una colaboración os una descripción de una “sociedad de ob

Un fragmento de un modelo més amplio y más completo, dentro del cual la colaboración es un
propósito.

Por ejemplo, una venta representa una disposición de objetos que tienen cies reluciones

entre els dentro de la transacción. Las relaciones no tienen sentido fuera de la asacción. Los
es en una venta son el comprador. el vendedor y un intermediario. Para realizar una
n específica. como la venta ce una casa, os participantes intercambian ua determinada.

«cuencia de mensajes como la presentación de una otero la Firma de un contrato,

Aujos de mensajes de una colaboración pueden especilicars de forma opcional url
“zando uma máquina de estados que muestre las secuencias vilidas de comportamiento, Los
vents de la máguina de estados representan los mensajes que los roles intercambian dentro de
la colaboración.

176

EL-LENGUAIEUNITICADO DE MODELADO. MANUAL DE REVERENCIA.

Uns colaboración est formada por roles, Un rol es una parte que desempeña un clasifica
1 una asociación dentro de la colaboración. Un rol es uns fuera que puedo Comos y
instancia de un clasificador o de una asociación. FI mismo clasificador o la misana mar
pueden desempeñar diferentes roles, cada uno de fos cuales podra er cupado pr un oy
te. Por ejemplo, dentro de una transacción comercial. una parte puede será
or y ota el comprador inclaso aunque ambos scan compresas. El comprador y e ven.
¡dor son incancias de a class Empresa dentro de I colaboración Venta, Los roles lo tone
Significado dentro de una colaboración: fuera de ella carecen de sentido. Además, en oma
«colaboraciones so pueden intercambiar los roles: un objeto puede ser comprador en um
instancia dela colaboración y vendedor en vta. Fl mismo objeto puede desempeñar mii
roles en colaboraciones diferentes. Contraste cl restringido alcance de un tol con ula In.
ciación. Una asocineiôn describe una relación con significado completo para una cle to
los contextos, participe © no realmente un objeto en la wsuciación, Una colaboración dem
felaciones que se encuentran restringidas a un contexto y que por tanto no tenen centile un.
dol mismo,

Realización, Una colaboración reaiza una operación 0 un cono de wo. Describe un conteo
en el quese ejecuta a implementación de una operación o ca de uso estos, la dispara
de objetos y ente en cl momento de nico dela ejecución, y las instancia que ne
Crean y se n especificar las secuencias de comporta
miento en interacciones, representándolas como diagramas de secuencia 0 como dm de
colaboración.

Una cotaboración también puede resizar la implementación de una clase, Una colaboración
para una clase e la unión de las colaboraciones para sus operaciones. Se pueden conechi
¡iferents colaboraciones para la misma clase, sistema o subsistema, de fora que cada cae
oración msi el subconjunto de aributos, operadores y objetos relacionados relevant an
tuna determina vista dela entidad. como a implementación de una operación concrers

Patrones. Una colaboración paramotrizada representa una construcción de diseño que
puede ser reuttizada en varios diseños. Generalmente los claiicadures base son Pa
tros. Una colaboración paramctrzada de este tipo Captura la estructura de un pn

Véase ph

Un parón de diseño se nstancia proporcionando elasficadoros reales para los pardinetros de
elasiticadores bave.

Cada instanciación produce una colaborsción entre un conjunto específico de clasiicadores
del modelo. Un patrón puedo ser ligado una 0 más veces con diferenes conjuntos de cla

iro de un modelo. evitando así a necesidad de definir una colaboración para cata

Por ej na vist del modeto define una relación general entre
Slements del modelo, poro que puede ligase con muchas parejas de clase pura representa
parejas de visas del modelo. Cada pareja de class visa del modelo representará pues ug
Higadura del patrón, Una pareja como ésta podría ser una cana y uns fotografia de la oa ole
Pareja podría ser un stock y una grifica que mostrara el precio actual del tock,

(Obsérvese que un patrón implica también la existencia de unas directrices pra su uso
ventajas y desventajas. Estas directrices pueden por notas 6 en documentos de texto.
independie

ENCICLOPEDIA DE TÉRMINOS 177

Capas de colaboraciones, Una colaboración se puede expresar en diferentes niveles de
dad, Una colaboración de grano grueso puede refinans para producir ota colaboración.
ana más fino, expandiendo una o más operaciones de uns colaboración de alto nivel en

diferentes colaboraciones de más bajo nivel, una por ua operación,

Una colahoración se puede implementar wilizando colaboraciones subordinadas, de forma
que cada colaboración subordinada implemente una parte de la Funcionalidad global y tenga su
propio comjumto de rales. Cada rl de la colaboración global puede ligan. a uno o más roles de
Tas composiciones unidadas. Si um rol de nivel externe se liga a más de un rol de nivel interno,
entonces implícitamente conecta el comportamiento delas colaboraciones de mis bajo nivel
Ft ev laica forma de interacción entre casos de uso. Un enfoque de dise

de dentro hacia fuera: primero construir los roles más internos y reducidos, y luego iros
Sombinando para producir soles más amplios y externos que tengan múltiples respomabilidades

Ligadura en tiempo de ejecución, Fa tiempo de ciocución, los objetos y enlaces están
dos a los rales de la colaboración, Un objeto puede estar izado a uno o más roles,
mente en dierentes colaboraciones. Si un ahjeio está sado a múltiplos roles, entonces

representa una interacción “accidental” entre los roles —oxto es, una interacciön

ex inherente los propios roles, sino un efecto lateral de su uso en un contento más
arplio—. A menudo, un objeto desempeña roles en más de vu calahorsción como parte de
tuna colaboración más amplia. Este solspumiento entre colaboraciones proporcion un flujo
implcito de control y de información entre ells

Estructura

Roles, Una colaboración contiene un conjunto de roles, cu uno delos cuales es una rofrenci
4 uno o mis chsifieudones de elsiticador) asociaciones base (ol de asociación), U

rol es una ranura en la colaboración que deseribe un uso de un clasificador una asociación
¿estro dela colaboración. Un rol s también an clasificador, pues un objeto ligado al ol en u

instancia de la colaboración es una instancia trunstoch del sol. Dentro de una instancia de

colaboración. se ga un objeto a cad vol de clssiicador y un enlace a eada rol de anociación. Se
puede Tiga un objeto mán de un ol de clasificador de una misma instancia de un colaboración,
sunque no es lo normal. incluso puedo ser descahle evitarlo modiante un restricción. Los
‘jets de la misma cise pueden apanecor on múltiples roles de la misma instancia de colabora
ción. Cada clasificador pued mantener una ta do las características de clasificador utiles en
Ta colaboración. Las vo caractersticas son ivelevintes en a colaboración, si bien puedon sor
utilizadas en oras colaboraciones, Si un mismo clasificador hase está implicado en múltiples
roles, Éstos deberían tener un nombro que permitiera disco», mientas que ss lo bay un uso.
¿el clasificador en una colaboración. el rol puede ser aónimo ya que basta el clasificador para
identificarlo, Los roles defines la estructura de la colaboración

Si hay clasificación múltiple, el ol puede tener múltiplos claíficadores base, de Forma que
un objeto bado al rol de clasificador será una instancia de cada uno de ellos.

Generalicaciones. Una colboración también puedo incluir goneralizaciones y restricciones,
‘que se aden ales rotaciones que puedan toner los clasificadores participantes fuera de la
colaboración. Una generalización es necesaria en una colaboración sólo cuando los clasifica
dores dela colaboración sean parámetros; si no, su estructura de goneralización se especficará
«omo parte de su deinición como clsifiadores y uo podrá se allerad por la colaboración, En

¡oración parametre mos de los solos de clusiicador pueden ser

EL LENGUAIE UNIFICADO DE MODELADO, MANUAL DE REFERENCIA.

parámetros. Uns generalización entre dos roles de

tasificador parametrizados indica gh
los elsifiendores ligados a los roles d

ben satitacor la de generalización (el la
cador ligado al rol padre dehe ser un antecesor del clasiticador ligado al ol hijo, pero nos
necesario que sean pudre hijo).

Por ejeplo, el parón Composite (Compuesto) de [Gamma-95] repreve

un árbol desd:
jetos recursivo en el que l line Componente es un elemento

ico del árbol. Compuestos
un elemento recursivo y Hoja cs un elemento hoja (Figura 13.45). Componente es el pudre &

Hoja y Compuesto. cl time delos cuales es un agregado de clomentos Componente (he aquí
recurividad). Componente, Compuesto y Hoja son parámetros del parón que son sustividos pa
clases reales cuando se utiliza el mismo. Cualquier conjunto de cases reales liado al parón dto
‘observa la lución antecesor sucesor entre Componente y sus hijos Compuesto y Hoja. Als

nos ejemplos de sustitución podrian ser Gráfico, Dibujo y Rectámgulo: EntradaDeDirector,
Directorio y Archivo; y oiras clases recursivas. Si una ligudura no cumple la restricción de

Restricciones. Las restricciones so pueden definir sobre roles paramctrizados y

metrizados. Estas reticciones se añadirán u ls que puedan existir sobre los clasifica

ligados a os roles. Las restricciones se aplicun todas las instancias dela colaboración.

‘Componente, Compuesto, Hoja

‘Componente’

Hoja | ‘Compuesto >

Comporente | Gráfico

“Componente

Recumgu| | Due +

Figura 1348 Pain uns colaboración pure

ENCICLOPEDIA DE TÉRMINOS 179

Mensajes. Una colaboración puede tener un conjunto de mensajes para describir su
comportamiento dinámico. Una colaboración con mensajes es una interacción, Puede haber
Dies interacciones. cada una de las cuales describe parte de una misma colaboración. Una
interac puede describir la implementación de una operación mientras otra describe ota
"peración,por ejemplo. Cada mensaje contiene información que india el orden del mismo en
o de memes, dicha información equivale a la especificación de una máquina de
sados disparada por mensajes,

Origen. Una colaboración puedo repreventar una clase. caso de o © método (una colabo-
ach ae 1a implementación de una operación. no su especificación) La colaboración describe
«A comportamiento del objeto origen

Notación

Un diagrama de colaboración es un grato de símbolos de case (ectängulos) que representan

olor de clasticador y rutas de asociación (líneas continuas) que representan roles de

ssa om simbolos de mensaje asociados a sus caminos de roles de asociación, Un

des muestra el contesto en el que pueden acute inter

ción. Puede wilizarıe para mostrar el contexto de un evento

4 operación. simple para 10 jones de una clase o grupo de clases. Si existen

a asociados à las lucas de annciacion, el diagrama muestra una interacción, Típica.
theme, una ineracei6n representa la implomentución de una operación o caso de 10,

Un diagrama de eolaboracidn muestra ranuras para los objetos implicados en la misma,
mediunte roles de clnifieador. Un sol de clasificador ve distingue de un clasificador porque
a nibs y una clase, con la sintaxis nombrefle : nombreCiase. Se puedo omiür el
hombre de la clase o el del Clasificados, pero los dos puntos son necesarios. Un diagrama
"in ¡muestra los enlaces entre lo, objetos como roles de asociación, incluyendo los enlaces
un itori0s que representa argumentos de procedimiento, variable locals y autor places
Varios roles de asociación pueden tenor el mismo nombre de asociación. suponiendo que
Conectar diferentes roles de clasificador, Las Mechas situadas en fas líneas de os enlaces indi
Cn la dlrección de mavegación, de manera que una punta de flecha sobre una líaca que une
jos de objetos indica un flujo de mensajes que aye en la dirección dada, no pudiendo fir
ko memes en sentido contrarios especificado en un enlace de un solo sentido, por o que los
Mo de mensajes deben ser compatibles con las [lechas de navega

Gencraimente, no se muestran de forma explícita los valores de atibutos individuales en os
colon de claifcadon Si hay que enviar mensajes a valores de los atributos, dichos atributos
{cherfan modelarse como objetos que utilizan asociaciones.

Se pueden emplear herramientas u otras aplicaciones gráficas para sust
tar tas palabras clave. Por ejemplo, cuda tipo de vida podría mostrarse con
EN nd. 1a herramienta podría incluso utilizarla animación para mostrar la creación y des
anexión de elementos y el estado del sistema en diferentes momentos

Implementación de una operación

Una colaboración que muesra la implementación de uns operación incluye símbolos para el ol
ep orion y para los role de oros objetos que ste liza, dice 0 indirectamente, para

150

EL LENGUA UNIFICADO DE MODELADO, MANUAL DE REEERENCIA

levar a cabo la operación. Las mensajes que aparecen sobre los roles de asociación rep
tan el Majo de objeto de uns interacción

Una colaboración que describo uns operación también incluye símbolos de rol quer
sentan los argumentos de la operación, y variables locales creadas durante su ejecución. La
objetos creados durante la ejecución pueden designarso mediante (new). os objotos dei:
¿durant la misma se pueden designar mediante (destroyed), y los creados durante la eich
y destrvidos durante su transcurso se pueden designar utilizando (transient) Los objetos
palabra clave existen ya al iniciase la operación y siguen existiendo tas su terminación

Los mensajes internos que implementan un método están numerados comenzando a par
del número 1. En un flujo de objeto procedimental, los múmeros asoxiacos à los mens
emplean una socuencia de múmeros anidada utilizando la notación de puntos en concert
¿on los niveles de anidamicnto de llamad, Por ejemplo. el segundo paso del nivel supeña
lesará asociado el número 2: el primer puso subordinado dentro de ste ser ol mensaj 21,
los mensajes asíncronos intercambiados entre objetos concurrentes, todos los números d
secuencia están al mismo nivel (es decir, no están anidados)

Véase mensaje, donde se incluye una completa descripción de la sintanis de los mensa
que incluye los números de secuencia,

Un diagrama de colaboración completo muestra los roles de todos los objetos y enlace
lies por la operación. S no se muss u objeto, se asume que no se utiliza, Si en
noes nr que una operación utiliza todos los objetos que aparecen en un dis
colaboración.

Ejemplo

(0 se invoca la operación actualzarVisuatización sobre un objeto Controlador
invocarse la operación. éta ya tiene un enlace al ibjeto Ventana donde e à

Tumbién tiene un enlace a un objeto Cable, el objeto cuya imagen sei

imp: mentación de más alto nivel de le operación actualizarVisualización iene un wo
paso —la invocación a la aperación mostrarPosiciones del objeto cable —. Esta operación o
he el número de secuencia | puesto que se teta del primer método de nivel superior, Este men
saje Muye a través de una referencia al objeto Ventana que se necesitará mis adelanıe

La operación mostrarPosicionos lin xl operación dibujarSegmento dei propio objets
cable. La llamada, etiquetada con cl número de secuencia 1,1, se trata a través del enlace
implícito se. El asterisco indica una Hamada iteativa ala operación cuyos detalles se mues
tran entre corchcts,

Cada operación dibujarSegmento accede a dos objetos SegmentoCable, uno indexado por
el valor y otro porel valor, Aunque sólo hay una asociación entre Cable y SegmentoCabk,
en el contexto de esta operación son necesarios do enlaces dos objetos Cable, Los objets ev
etiquetados como izquierdo y derecho, que son los roles de claificador en la colaboración.
aye por cada uno de los enlaces, etiquetándose como mensaje 11.1 y 1.1.1

indica que son pasos de la operación 1.1 Las letras del final indican que los dos men

sales pueden sor tratados coneurrentemente. En una implementación normal. probablemente no

ENCICLOPEDIA DETÉRMINOS 181

mans À so
|

ons sn

RE ET

o Segment] ate Cable inane)

| Ai apoco)

yo À KR
mero | Segmano

Figura 19.46. Dinan de colon

scurarin en paraleo, pero como se han declarado como concurrentes pueden ejecutane en
‘cualquier orden de secuencia.

Cuando ambos valores 40 y 1) han sido devueltos, puede continuar el siguiente paso de la
vperación 1-1. El mensaje 1.1.2 es un mensaje de ereuchön que se envía a un objeto Línea.
Realmente se envía a fa propia clase Linea tal mesos en principio). que crea un nuevo objeto
Linea enlazado al objeto que envió el mensaje, LI nuevo objeto tine la ctiqueta (new) para
indicar que ha sido creado durante la operación pero que sigue viviendo después. El nuevo
¿place tiene la etiqueta «local» para indicar que se trata de una variable local al procedimiento.
Las variables locales son inherentemente transitorias por lo que desaparecen cuando finaliza el
procedimiento y por tanto na es necesario ctiquetalas con a palabra clave (transient)

Fl paso 1.3 utiliza el enlace eción creado para enviar un mensaje mostrar al reign creado ob»
jeto Linea. El punteo al objeto ventana se pasa como argumento, de forma que el objeto Linea
pasa tener acceso al misme a través de un enlace „parameter. Obsérvese que el objeto Linea.
tiene um enlace al mismo objeto ventana que está asociado con el objeto origina! Controlador;
sto es important pura la operación y por ello se muestra en el diagrama, En e paso final, 1.3.1
¿solicita al objeto Ventana la ercación de un enlice al objeto Linea. se enlace es una aso
lación, por lo que lleva el nombre de rol contenido. y ev etiquetado como (new),

El estado Final del sistema puede observarse eliminando mentalmente todos los enlaces
temporales, Existe um enlace desde Controlador hasta cable y desde cable hasta sus Segmen-
toCable. un enlace de Controladora ventana y otro desde ventana hasta su contenido, Una vez
termina la operación, una Linea no tiono acceso a la Ventana que a contiene, por lo que el
en exa dirección es transitorio y desaparece al fnalizar La operación. De Forma similar
sto Cable no tiene por qué seguir teniendo acceso a los uhjetos Linea utilizados para
mostrarlo,

182 ELLENGUAIE UNIFICADO Dk MODELADO, MANUAL DE REFERENCIA

colaboración entre instancias

Las colaboraciones se pueden expresar como descriptores y como instunias. al igual qu
muchos tros clementos del modelo. Una colaboración ente descripiores muestra una relació
jal entre objetos, pudiendo instanciarse muchas veces la Colaboración para prodos
das de colaboración. Cada instancia de colaboración muestra una relación entre obje
específicos: es un colaboración entre instancias

Pero, ¿qué forma debería utilizarse pura modelar un determinada situación? Si el diga
muestra Contingencia earse un diagrams de descripores, ya que los din
objetos no tienen contingencia, ex deci, no tienen estructuras condicionales ni bucles. ya q
estos elementos forman part de las descripciones genéricas, Una instancia no tiene un rango de
valores ni un posible conjunto de caminos de control: tien un valor concret y una historia de
control

muestra valores específicos de atributos o argumentos, si muestra un número

le objetos 0 enlaces de entre los muchos posibles en una mulúplicidad de lama
variable, o si muestra una clección particular de ifurcaciones y bucles durante una ejecución
debe ser un diagrams de instancias.

En muchos casos es posible utilizar las dos formas, generalmente cuando la ejecución m

tiene bucles, En estos casos cualquier ejecución es protoípia, y no hay mucha dilerencia e
la forma de descriptor y la forma de instanc

combinación

Tipo de relación que relaciona dos parts de e combindándolas
para producir el descriptor completo del elemento,

Véase oxsender, incluir

Semántica

Una de la potemes capacitados de ta oientación a objetos es la posibilidad de combine
descripciones de elementos del modelo a partir de piezas incrementales, La herencia combine
clasificadores relacionados por la generalización para producir el descriptor efectivo comple
to de una clase

tras formas de combinación de descriptores son les retuciones de extensión e inclusión.
Estas relaciones se modelan como variaciones de a relación de combinación. a gencralizción
también pour englobarse en esta misma categoría, aunque debido a su importancia e ta

Notación

Una relación de combinación se represe
palabra clave de estereotipo ssocizda. Véase extendor e incluir para verlos detalles específicos
pala ?

ENCICLOPEDIA DITÉRMINOS 183
Discusión

Son ponies tros pos de relación de combinación. Algunos lenguajes de programación, como
CLOS. implementan algunas potentes variantes de combinación de métodos,

comentario

Anotación asociada a un elemento colección de elementos, Un comentario no tiene signi
ado directo. pero puede mostrar información semámica otr información significativa para
e ue rec mod. para heat propo un eon cupo de un

Véase también nota

Semántica

{Un comentario está formado por una cadens de texto pero también puede incluir documentos
embebidos si lo permite la hetramient de modelado utilizada. Un comentario puede asociarse
«on un element del modelo. con un elemento de presentación v con un conjunto de elementos.
Proporciona una descripción textual de información arbitra, poro no tien impacto semé
«o. Los comentaros proporcionan información a quienes realizan el modelo y pueden utilizarse
paru uses mod

simbolos de not, que se veprese
la esquina superior derecha doblada en forma de “oreja de pero” anociudos mediante un
¿líneas discontinuasal elemento o element al que se aplica el comentario (Figura 13:47) Las

| ga om pus oj)
inn. |

Elementos estandar

ment. esponsibility

184 EILLENGUAIK UNIFICADO DE: MODELADO, MANUAL. DE REFERISNCIA

comillas

Los corchetes angulares pequeños (« ») se emplean para denotar cita en Frames, Haan

oly otros idiomas. En a notación UML se emplean para denotar palabras reservada
nombres de eserecsipos. Por ejemplo: «bind», «instaneeO Las comillas ci Upon
casi todas las tipografías asf que realmente no hay excusa para no utilizarlas. pero quie
tengan problemas ipográficos pueden roemplazaria por don cı

Véase también uso de latipografía

compartimento

División grifica de un símbolo cerrado: por ejemplo un símbolo de clase se divide veria
mente cn rectángulos más pequeños, Cada compartimento muestra las propiedades de
rento que representa. Los compartimientos pueden ser de re tipo: fijos. tas 3 region

Véase también clase, clasificador

Notación

Un compartimento fijo tiene un formato Fijo de partes gráficas y de texto para epresentar un
conjunto fijo de propiedades. El formato depende del tipo de elemento Un ejemplo set
un compartimento de nombre de clase, que contiene un símbolo de estereatipa y/o nombro. un
ombre de clase, y una cadena de propiedidos que muestra varias propicdadles de la cane
Dependicalo del elemento. puede suprimir algana información.

Un compartimento lista conticue una lista de cadenas que codifican las partes que const
tuyon el elemento, Un ejemplo sera una lista de atributos. Loy elementos de In lista se pueden
mostrar en su orden ranura dentro del modelo u ordenados por una © más propiedades (en cuyo
caso, el orden natural no sería visible). Por ejemplo, una lista de suributos podría ordenar
primero por visibilidad y cn segundo lugar por nombre. Las entradas de la lista pueden
mostrarse o suprimirse e en las propiedades de los elementos del modelo. Un
‘ompartimento de atributos por ejemplo, podría mostrar únicamente atributos públicos. Se
puedan a tips y palabras clave a los constituyentes individuals colgándolos de la
‘correspondiente entrada de ha lista. Se pueden aplicar estereotipos y palabras clave atodos los
constituents que siguen a uno dado suándolos sobre la list de entradas, de forma que ate
‘todas la entrados subsiguientes de la isa hasta ef final de a misma hasta que se encuentre
ox declaración simi a La cadena «constructor» situada en una lines separada en una Inte de
Operaciones provocaría que se aplicara el estercotipo de constructor à todas

subsiguientes, pero si apurechera la cadena «query» más adelante en la ist,

mera declaración y la remplazaría porel estereotipo «query,

Una región es un área que contiene una subimagen gráfica que muestra una subestructra
del elemento, a menudo potencialmente recursivo, Un ejemplo seria una cezión de estado
anidado, La naturaleza de la subimagen es característica de cada elemento del modelo. Se
pueden incluir en un misme simbolo regiones y compartimentos de texto, pero puedo resaltar

ENCICLOPEDIA DE TÉRMINOS 188

ReguladorDeComercio

Figura 1348. Comparto con nomen uns cl

desontenado. Las regiones se utilizan frecuentemente en elementos recursivos, mientras que el
texto se emplea en elementos hoja sin subestructura recursiva,

Una clase tiene tres compartimentos predefinidos: nombre, que es un compartimento fijo:
atvibatos, que e un compartimento lst: y operaciones, que cs oto compartimento ista, El que
fealizael modelo puede añadir ct rectángulo y situar su nombre en la parte superior del come
partimento con un tipo de letra distimivo (por ejemplo en pequeño y em

La sintaxis gráfica depende del elemento y del tipo de compartimento, La Figura 1348
muse un compartimento para señales, La Figura 13.166 muestra un compartimento para
resporsabilidados,

compendio

Resultado de filtrar combina y absruer ls propiedades de un conjunto de elementos dentro de
su contenedor para dar una visión más abstract, de más alto nivel, de un sistema,

Véne paquete.

Semántica

Los contenedores, tales como los paquetes y Hs clases, pueden tener propiedades y relaciones
ads que resuman las propiedades y relaciones de su contenido, Esto permito al creador de
modelos tene or comprensión del i ‘un vel más slo y con menos deal.
(que resulta más facil de comprender. Por ejemplo, una dependencia entre dos paquetes indica
e elementos de los dos paguctes. El
ompendio tiene menos detalle que la informaci ber una pareja de depen
¿lencia individuales o muchas pares, que estin representadas por dependencias del nivel de
paquetes, En todo iso, el cre lo sabe que un cambio efectuado en un paquete
"puede alsctar al otro. Si se neces alle, siempre se puede examinar detalla
€ comtenido una vez que se la observado el compendio de alo nivel,

Anélogamente una dependencia de uso entre dos clases suelo indicar una dependencia entre
sus operaciones, tal como el aso de un método de una clase que llama a una operación (No a
Un métadot} de otra cese. Muchas dependencias del nivel de class ve derivan de dependencias
tine operaciones o «tributos

186. EL LENGUAJE UNIFICADO DE MODELADO, MANUAL DE RFFFRENCIA
ln general. las relaciones que se resumen en un contenedor indican la existencia de à

monos ina aparición de la relación entre contenidos. Normalmente. no indican que todos los
os contenidos participen en la relación.

componente

|
|
|
|

Semäntica

Un componente representa una pieza Fisica de la implementación incluyendo
código del sofiware (fuente, Dinar. o ejeculables) o equivalentes tales como guiones 0

¡vos de comandos. Algunos componentes tienen identidad y pueden poscer entidades
fisicas, que incluyen objetor en tiempo de ejecución, documentos, bases de datos etcétera. Los
componentes existen en el dominio de la implementación son unidades Físicas en los
computadores que se pueden conectar con otros componentes, sustituir por Componentes equ
valentes, trasluda, archivar etcétera, Los modelos pueden representar dependencias entre
componentes, tales como dependencias del compilador y de tiempo de ejecución o depen
dencias de ta información en una organización humana. Una instancia de un componente se pue
de utilizar para representar las unidades de implementación que eaisten en tempo de ejecución
incluyendo su localización en instancias de un nun,

Los componentes tienen dos características, Empaquetan el código que implementa la
funcionalidad de un sistema, y algunas de Sus propias instancias de objetos que constituyen el
estado del sistema Los llamamos Últimos componentes de la identidad, porque sus instancias
seen identidad y estado.

Código. Un componente contiene el código para las clases de implementación y otros
elementos. (La palabra código se interpreta de forma amplia incluye los guiones. as estruc.
turas de hipertexto, y otras formas de descripciones ejocuables.) Un component de código
fuente es un paquete para el código fuente de las clases de implementación. Algunos lenguajes
de programación (ales como C++) distinguen archivos de declaración de los archivos de
método, pero todos son componentes. Un componente de código binario es un paquete para el
código compilado. Una biblioteca del código binario es un componente

Un componente ejecutable contiene código ejecutable. Cada tipo de componente contiene el
código para las clases de implementación que realizan algunas clases + interfaces lógicas. La
relación de realización asocia un componente con las clases y las interfaces lógicas que
implementan sus clases de implementación, Las inerfuces de un componente deseriben la
funcionalidad que aporta. Cada operación en la interfaz debe hacer referencia eventualmente à
in elemento de la implementación disponible en el componente.

La estructura estática, ejecutable de una implementación de un sistema se puede representar
como un conjunto interconectado de componentes. Las dependencias entre componentes
significan que los elementos de ta implementación en un componente requieren los servicios de
los elementos de la implementación en otros componentes, Tal uso requiere que los elementos
del proveedor sean públicamente visibles en sus componentes. Un componente puede también

ENCICLOPEDIA DE TÉRMINOS — 187

ner elementos privados, pero éstos no pueden ser proveedores diretos de servicios pura otros
componentes.

Los componentes pueden ser contenidos por tros componentes. Un componente contenido
5 sôlo otro elemento de la implementación entr de su contenedor

Una instancia de componente es una instancia de un componente en una instancia del
modo. Las instancias de componentes de código fuente y de código binario pueden residir en
instancias particule de un nodo, pero las instancias de componentes ejecutables son las más.
iles. Sí una instancia de componente ejecutable está silo en una instancia de un nodo, los
objetos de las clases de implementación presentes en cl componente pueden ejecutar oper
ones cuando estén situados en la instancia del modo. Si mo, un objet situado cn tna insta

€ un nodo no puedo ejecutar operaciones y se debe mover o copia otra instancia del modo
para ejecutar dichus operaciones.

Si un componente carece de identidad, todas sus instancias son iguals, No importa cuál de
jecutando un objeto, Todos se comportan ua. Como nu lienen ninguna identidad,
+ componentes no tienen valores o estado por sí mismas.

Identidad. Un componente de wld tiene identidad y estado. Posee los objeton ficos,
que están silos en & (7. por lo tanto, en la instancia del nodo que contiene la instancia del
componente). Puedo tener atributos, relacione de composición cow los objetos poseídos. y
ociaciones astros componentes, Desde este punto de vista, es una clase Sin embargo. la
votalidad de su estado debe hacer referencia las instancias que contiene: 130 e lo que le hace
un componente, en lugar de una clase ordinaria. Una claso de implementación se ubliza a
menudo para representar el componente en su ttalidad. Esto se llama clase dominante ÿ se
«compara a menudo con el componente mismo, anque mo son a mista cosa

Un objeto que solicita servicios de un componente de identidad debe seleccionar una
instancia específica del componente, generalmente teniendo una asociación u uno de os
‘bjetos poseídos por cl componente. Debido a que cid instancia de componente de identidad.
tiene estado, las distintas peticiones a instancias pueden producir resultados dilerentes

Ejemplo

Por ejemplo, un corrector ortográfico puede ser un componente. St tiene un diccionario
fijo, puede ser modchulo como un componente sin identidad, Todas lus instancias de 61
producen fos mismos resultados y no hay memoria de peticiones anteriores. Sie diccionario
puede ser actualizado. entonces debe ser modelado como un componente de identidad.

© Deletrear-choquear
Diccionario
Sinónimos

Figura 1349. Componente