Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Versión 1.2
2008/06/18
Adaptado de:
Learning UML, Sinan Si Alhir, O'Reilly & Associates.
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 2/195
Cimat © Guía Metodológica de UML – v. 1.2
1.1
1H Propósito....................................................................................................... 10
26H
1.2
2H Alcance ......................................................................................................... 10
267H
1.3
3H Acrónimos..................................................................................................... 10
268H
1.4
4H Referencias................................................................................................... 10
269H
1.5
5H Definiciones .................................................................................................. 10
270H
2.1.3 Historia....................................................................................................... 15
1H 276H
3.2.1 Alfabeto...................................................................................................... 21
19H 284H
3.2.2 Palabras..................................................................................................... 21
20H 285H
3.3.1 Conceptos.................................................................................................. 24
23H 28H
3.6 Documentos.................................................................................................. 49
30H 295H
4.1.1 Clases........................................................................................................ 52
34H 29H
4.2.1 Asociaciones.............................................................................................. 67
37H 302H
2008/06/18 3/195
Cimat © Guía Metodológica de UML – v. 1.2
4.4.4 Dependencias............................................................................................ 97
51H 316H
4.5.1 Paquetes.................................................................................................... 99
53H 318H
2008/06/18 4/195
Cimat © Guía Metodológica de UML – v. 1.2
Índice de Figuras
Figura 2-1. Administradores, proyectos y equipos. ............................................... 12
18H 38H
2008/06/18 5/195
Cimat © Guía Metodológica de UML – v. 1.2
Figura 3-6. Juan Maneja el proyecto Águila y dirige un equipo anónimo .............. 25
125H 390H
2008/06/18 6/195
Cimat © Guía Metodológica de UML – v. 1.2
implementación .............................................................................................. 96 4H
Figura 6-14. Componentes del sistema de administración del proyecto ............. 128
20H 465H
Figura 6-16. Nodos usados por el sistema de administración de proyectos ....... 131
20H 467H
2008/06/18 7/195
Cimat © Guía Metodológica de UML – v. 1.2
Figura 7-16. Diagrama de Secuencia que usa una condición guardián en la forma
28H
interacción.................................................................................................... 158
49H
interacción.................................................................................................... 159
495H
interacción.................................................................................................... 160
496H
interacción.................................................................................................... 165
504H
interacción.................................................................................................... 166
50H
interacción.................................................................................................... 167
506H
2008/06/18 8/195
Cimat © Guía Metodológica de UML – v. 1.2
Índice de Tablas
Ninguna.
2008/06/18 9/195
Cimat © Guía Metodológica de UML – v. 1.2
1 Introducción
1.1 Propósito
Describir los diagramas que conforman la notación de UML.
1.2 Alcance
Este documento aplica a todos los proyectos generados en la licenciatura en
Sistemas Computacionales plan 04, y en la licenciatura de Ingeniería en
Computación plan 03, a partir de la liberación de la línea base.
1.3 Acrónimos
Acrónimo Descripción
UML Unified Modeling Language
OMG Object Managment Group
OCL Object Constraint Language
PAS Publicly Available Specification
ISO International Organization for Standardization
XML Extensible Markup Language
SQL Structured Query Language
OMT Object Modeling Technique
OOSE Object-Oriented Software Engineering
1.4 Referencias
Núm. Descripción
[1] Sinan Si Alhir, Learning UML, O'Reilly, ISBN : 0-596-00344-7, 2003
1.5 Definiciones
Palabra Definición
UML UML es un lenguaje para el modelado y
comunicación de diversos sistemas, para el cual se
usan diagramas y texto.
Lenguaje Es el que nos permite la comunicación acerca de un
determinado tema.
2008/06/18 10/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 11/195
Cimat © Guía Metodológica de UML – v. 1.2
comunica lo siguiente:
• Cada proyecto tiene un nombre, una fecha de inicio y una fecha de fin.
• Cada equipo tiene una descripción, y eso es todo lo que nos interesa con
respecto al equipo.
Administrador
Nombre
Telefono
IniciarProyecto() Administra
TerminarProyecto()
Dirige
Equipo Proyecto
Ejecuta
Descripcion Nombre
FerchaDeInicio
FichaDeFin
2008/06/18 12/195
Cimat © Guía Metodológica de UML – v. 1.2
Ahora considere estos dos lenguajes para comunicar algún número en específico
o días que dura un proyecto. Para representar el número cinco, un lenguaje de
conteo utiliza cinco objetos, mientras que un lenguaje aritmético se utiliza la
cadena "5".
2.1.1.2 Modelo
Un modelo es una representación de un tema, éste captura un conjunto de ideas
conocidas como abstracciones. Sin un modelo, es muy difícil para los miembros
del equipo tener un entendimiento común de los requerimientos del sistema, así
como del impacto de los cambios mientras se desarrolla el sistema.
2008/06/18 13/195
Cimat © Guía Metodológica de UML – v. 1.2
2.1.1.3 Unificado
Este término se refiere al hecho de que el Grupo de Administración de Objetos
(Object Management Group - OMG) y el Rational Software Corporation, crearon
UML para traer las mejores prácticas de ingeniería a la industria de tecnología y
de los sistemas de información. Sin un lenguaje en común, es difícil para los
nuevos miembros de un equipo volverse productivos rápidamente y contribuir en el
desarrollo de un sistema.
• Expresivo
• Simple
• Preciso
• Extensible
• Independiente de la implementación
Estando listo para usarse, siendo expresivo, simple y preciso, UML puede
inmediatamente ser aplicado para el desarrollo de proyectos. Para habilitar el
desarrollo de modelos precisos, la OMG presenta el Lenguaje de Restricciones de
Objetos (Object Constraint Language - OCL), un sublenguaje para adherir
condiciones que los elementos del modelo deben satisfacer para que el mismo
modelo sea considerado correcto.
2008/06/18 14/195
Cimat © Guía Metodológica de UML – v. 1.2
2.1.3 Historia
La historia de UML consiste de cinco Períodos distintos. Al entender esos
Períodos se puede entender como surgió UML y como esta evolucionando en
estos momentos.
2008/06/18 15/195
Cimat © Guía Metodológica de UML – v. 1.2
Corporación Rational Software para unificar sus métodos. Por sus esfuerzos de
unión, se les empezo a llamar “Los Tres Amigos”. Conforme las organizaciones
comenzaron a ver el valor de UML, el grupo de trabajo de Diseño y Análisis de
Objetos de la OMG elaboro una Solicitud para una Propuesta (Request for
Proposal - RFP) para establecer un estándar que definiera el significado de los
conceptos de la tecnología orientada a objetos para las herramientas que
soportarían el diseño y el análisis orientado a objetos. En conjunto con varias
organizaciones, la Corporación Rational Software forma un Consorcio de Socios
de UML, y estos socios son los que envían la versión 1.0 de UML a la OMG en
respuesta a uno de los varios RFPs iniciales.
2008/06/18 16/195
Cimat © Guía Metodológica de UML – v. 1.2
• Requerimientos.
2.2.2.2 Arquitectura
La arquitectura abarca los elementos que se necesitan para elaborar un sistema y
la manera en que estos trabajan juntos para proveer de funcionabilidad del
sistema. Los elementos y sus relaciones son conocidos como la estructura del
2008/06/18 17/195
Cimat © Guía Metodológica de UML – v. 1.2
2.2.2.3 Riesgo
Un riesgo es cualquier obstáculo o incógnita que puede impedir nuestro éxito.
Para determinar que casos de uso deben ser tomados en cuenta para la
realización de una iteración y en que partes de la arquitectura nos tenemos que
concentrar en una iteración en particular, lo primero que se tiene que hacer es
identificar los riesgos del proyecto. Una vez hecho esto se relacionan los riesgos
más importantes con los casos de uso y los elementos de arquitectura que
resolverían dichos riesgos.
2008/06/18 18/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 19/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 20/195
Cimat © Guía Metodológica de UML – v. 1.2
3.2.1 Alfabeto
Un alfabeto define las partes más simples de un lenguaje: letras, caracteres,
signos y etiquetas. El alfabeto de UML esta conformado por fragmentos de
símbolos (rectángulos, líneas y otros elementos gráficos) y cadenas de caracteres.
Estos no tienen significado por si mismos, las unidades mas pequeñas que tienen
un significado en un lenguaje son las “Palabras”.
3.2.2 Palabras
Una palabra es una agrupación de elementos del alfabeto del lenguaje que
definen una unidad con significado. En UML las palabras se agrupan en dos
categorías o tipos:
• Conceptos:
o Son mostrados en rectángulos cuyas líneas externas son continuas o
símbolos etiquetados con un nombre.
2008/06/18 21/195
Cimat © Guía Metodológica de UML – v. 1.2
ProductoDeTrabajo
Requerimiento Sistema
Proyecto
Equipo Administrador
Así mismo la Figura 3-2 muestra varias de las relaciones que fueron identificadas
529H
3.2.3 Sentencias
Una sentencia es una agrupación de palabras del vocabulario del lenguaje que
define una unidad gramatical que contiene significado y una expresión sobre el
2008/06/18 22/195
Cimat © Guía Metodológica de UML – v. 1.2
tema. La gramática de un lenguaje especifica las reglas para poder combinar las
palabras y formar sentencias. Las sentencias en UML son fragmentos de
diagramas o diagramas muy simples.
La Figura 3-3 muestra una sentencia de UML que comunica que un equipo
530H
Equipo
Ejecuta
Proyecto
Administrador
Dirige Administra
Equipo Proyecto
2008/06/18 23/195
Cimat © Guía Metodológica de UML – v. 1.2
3.3.1 Conceptos
El paradigma Orientado a Objetos se basa en algunos conceptos que nos
permiten observar el mundo a nuestro alrededor, en las siguientes secciones se
detallan esos conceptos.
Una clase define el tipo de objeto y las características de dicho objeto, y un objeto
es la instancia de una clase. La Figura 3-4 y la Figura 3-5 muestran tres clases,
534H 53H
cada uno de los objetos que fueron mostrados en la Figura 3-4 y la Figura 3-5. 537H 538H
2008/06/18 24/195
Cimat © Guía Metodológica de UML – v. 1.2
Juan : Administrador
Dirige Administra
3.3.1.2 Atributos
Aquello que un objeto conoce es llamado Atributo, que esencialmente
representada datos. Una clase define los atributos y los objetos tienen valores
para estos atributos, aún si dos objetos tienen los mismos valores para sus
atributos estos son únicos y tienen su propia identidad. Las asociaciones y los
atributos son conocidos como características estructurales.
Administrador
Nombre
Dirige Administra
Proyecto
Equipo Nombre
Descripción FechaDeInicio
FechaDeFin
La Figura 3-8 elaborada a partir de la Figura 3-6, muestra varios objetos con
54H 54H
2008/06/18 25/195
Cimat © Guía Metodológica de UML – v. 1.2
Juan : Administrador
- Nombre = "Juan Castillo Salómon"
Dirige Administra
2008/06/18 26/195
Cimat © Guía Metodológica de UML – v. 1.2
Administrador
IniciarProyecto()
TerminarProyecto()
Dirige Administra
Equipo Proyecto
diagrama.
Administrador
Nombre
IniciarProyecto()
TerminarProyecto()
Dirige Administra
Proyecto
Equipo Nombre
Descripción FechaDeInicio
FechaDeFin
2008/06/18 27/195
Cimat © Guía Metodológica de UML – v. 1.2
Administrador
2: asignarActividades 1: obtenerRequerimientos
3: asignarTareas
Equipo Proyecto
Juan : Administrador
2: asignarActividades
1: obtenerRequerimientos
3: asignarTareas
2008/06/18 28/195
Cimat © Guía Metodológica de UML – v. 1.2
3.3.2 Principios
El paradigma Orientado a Objetos se basa en cuatro principios que nos permiten
un mejor manejo del cambio y la complejidad. En las siguientes secciones se
hablan de ellos.
3.3.2.1 Abstracciones
Los conceptos y las relaciones son conocidos como abstracciones. Las clases y
las asociaciones son abstracciones generales, mientras que los objetos y las ligas
son abstracciones especificas. Una buena abstracción esta bien definida e incluye
información esencial para entenderla, pero excluye cualquier información
irrelevante o eventual. Al utilizar abstracciones bien definidas, se puede manejar
mejor la complejidad al enfocarse sobre lo que es esencial y no distraerse con lo
que es irrelevante.
3.3.2.2 Encapsulación
Combinar los atributos y operaciones para formar clases y objetos escondiendo
los métodos detrás de las operaciones es conocido como encapsulación.
Combinar los atributos y las operaciones para formar clases y objetos también es
conocido como localización. Al combinar atributos y operaciones en unidades
independientes, se puede administrar mucho mejor el cambio y la complejidad al
reducir el número de lugares que se tienen que considerar cuando un cambio
ocurre.
3.3.2.3 Generalización
2008/06/18 29/195
Cimat © Guía Metodológica de UML – v. 1.2
La Figura 3-13 muestra las clases que representan los requerimientos y los
50H
Requerimiento Sistema
PorcentajeCompletado PorcentajeCompletado
Descripción Descripción
Media Plataforma
Validar() Validar()
Publicar() Deploy()
La Figura 3-14 muestra como se utiliza una generalización para comunicar que
51H
tanto los requerimientos como los sistemas son productos de trabajo, que tienen
una descripción, un porcentaje de avance y que pueden ser validados.
2008/06/18 30/195
Cimat © Guía Metodológica de UML – v. 1.2
ProductoDeTrabajo
PorcentajeCompletado
Descripción
Validar()
Requerimiento Sistema
PorcentajeCompletado PorcentajeCompletado
Descripción Descripción
Media Plataforma
Validar() Validar()
Publicar() Deploy()
3.3.2.4 Polimorfismo
En la Figura 3-14 se muestra la operación Validación, ésta aparece en todas las
52H
3.4 Párrafos
Un párrafo es un grupo de sentencias con un tema en común, los párrafos de UML
son los diagramas, un diagrama es una colección de sentencias de UML. Los
elementos que conforman un diagrama son conocidos como elementos de
diagrama.
2008/06/18 31/195
Cimat © Guía Metodológica de UML – v. 1.2
sistema incluye a todos los elementos que conforman dicho sistema y la manera
en que estos trabajan juntos para proveer la funcionalidad. Los elementos más
importantes que componen un sistema son conocidos como elementos de
arquitectura. Los elementos de un sistema y sus relaciones definen la estructura
del sistema, la manera en que interactúan y colaboran define el comportamiento
del sistema.
• Una clase
o Esta representado a través de un rectángulo cuyas líneas externas
son continuas, etiquetado con un nombre, éste representa un
concepto general.
• Una asociación
o Esta representada por una línea continua, etiquetada con un nombre,
ésta representa una relación entre las clases.
• Un atributo
o Esta representado como una cadena de texto en el segundo
compartimiento de una clase, éste representa los que los objetos de
una clase conocen.
• Una operación
2008/06/18 32/195
Cimat © Guía Metodológica de UML – v. 1.2
Estos párrafos (ver sección 3.1), describen algunas de las clases que conforman
5H
2008/06/18 33/195
Cimat © Guía Metodológica de UML – v. 1.2
ProductoDeTrabajo
PorcentajeCompletado
Descripción
Validar()
Sistema
Requerimiento
PorcentajeCompletado
PorcentajeCompletado
Descripción
Descripción
Plataforma
Media
Validar()
Validar()
Deploy()
Publicar()
Administrador Equipo
Nombre Dirige Descripción
Telefono
IniciarProyecto()
TerminarProyecto()
• Un objeto:
o Está representado por un rectángulo cuyas líneas externas son
continuas, etiquetado con un nombre seguido por dos puntos, que a
su vez son seguidos por el nombre de su clase, todo lo anterior
subrayado, éste representa un concepto específico. Ambos nombres
son opcionales, y los dos puntos están presentes sólo si la clase es
especificada.
2008/06/18 34/195
Cimat © Guía Metodológica de UML – v. 1.2
• Una liga:
o Esta representada por una línea continua, etiquetada con un nombre
de su asociación subrayado, ésta representa una relación específica
entre los objetos.
• Un valor de atributo:
o Esta representado por una cadena de texto seguida por un símbolo
de igual y su valor en el segundo compartimiento de un objeto, esto
representa lo que un objeto sabe.
requerimientos que fue proporcionado al inicio de este capítulo (ver sección 3.1): 58H
2008/06/18 35/195
Cimat © Guía Metodológica de UML – v. 1.2
:Equipo
RequerimientosEnComun:
Maneja Requerimiento
:Equipo
Maneja
Ejecuta Entrada
Solución
Administra Halcon:Proyecto Java:Sistema
Salida
Maneja
Juan:Administrador :Equipo
Nombre = “Juan Castillo Salomón ” Descripción = “Este es el equipo del proyecto Águila”
Ejecuta
Maneja Proyecto:Águila
Nombre = “Águila”
FechaDeInicio = Enero 1, 2002
Entrada FechaDeFin = Enero 1, 2003
:Requerimientos Salida
Porcentaje Completado = 50
Descripción = “Este es el requerimiento :Sistema
Para el proyecto de administración de sistema”
Media = “Paper” Porcentaje Completado = 50
Descripción = “Este es el proyecto
de administración de sistema”
Fuente: O`Reilly 2003
• Un Actor
o Esta representado por un icono de una figura de madera, éste
representa usuarios y a los sistemas externos con que los que el
sistema que se va a desarrollar va a interactuar.
• Un caso de uso
o Esta representado por una elipse, este representa un requerimiento
funcional que es descrito desde la perspectiva de los usuarios de un
sistema.
2008/06/18 36/195
Cimat © Guía Metodológica de UML – v. 1.2
los requerimientos que fue proporcionado al inicio de este capítulo (ver sección
3.1):
560H
AdministradorDel AdministrarProyecto
Proyecto
• Un componente
o Esta representado como rectángulo con dos rectángulos pequeños
que resalen de uno de sus lados, éste representa una parte del
sistema que existe mientras que el sistema se está ejecutando.
los requerimientos que fue proporcionado al inicio de este capítulo (ver sección
3.1):
562H
2008/06/18 37/195
Cimat © Guía Metodológica de UML – v. 1.2
Sistema
DeAdministración
DeProyectos
BaseDeDatos
• Un nodo
o Esta representado por rectángulo tridimensional, éste representa un
recurso que se encuentra disponible durante tiempo de ejecución. Un
componente que reside en un nodo es anidado dentro de dicho
nodo.
los requerimientos que fue proporcionado al inicio de este capítulo (ver sección
3.1):
564H
2008/06/18 38/195
Cimat © Guía Metodológica de UML – v. 1.2
• Clases y objetos
o Las clases son mostradas de manera muy similar a la que son
presentadas en los diagramas de clase. Los objetos también pueden
ser presentados de igual manera en la que son presentados en los
diagramas de objetos.
2008/06/18 39/195
Cimat © Guía Metodológica de UML – v. 1.2
• Una comunicación
o Esta representada como una flecha continua que se dibuja desde la
línea de vida del emisor hacia la línea de vida del receptor, se
etiqueta con el nombre de la operación que es invocada, ésta que el
mensaje o estímulo que envía el emisor hacia el receptor.
los requerimientos que fue proporcionado al inicio de este capítulo (ver sección
3.1):
56H
El párrafo anterior describe un escenario específico de las clases y los objetos que
conforman el sistema de administración de proyectos y que a su vez debe ser
capaz de manejar.
2008/06/18 40/195
Cimat © Guía Metodológica de UML – v. 1.2
• Clases y objetos
o Las clases son mostradas de manera muy similar a la que son
presentadas en los diagramas de clase. Los objetos también pueden
ser presentados de igual manera en la que son presentados en los
diagramas de objetos.
• Asociaciones
2008/06/18 41/195
Cimat © Guía Metodológica de UML – v. 1.2
• Una Comunicación
o Esta es representada por una flecha que se dibuja cerca de la
relación apuntando del emisor hacia el receptor. Se etiqueta con un
número secuencial que muestra el orden en el cual la comunicación
se realiza, seguido de dos puntos, que a su vez son seguidos por el
nombre de la operación que se invoca. Ésta representa el mensaje
que es enviado del emisor hacia el receptor.
requerimientos que fue proporcionado al inicio de este capítulo (ver sección 3.1) 568H
InterfazDe
Usuario Equipo
1: IngresarNombre
Administrador 2: IngresarTelefono
DelProyecto 3: IngresarNomAdministrador
4: IngresarFechaInicio 10: PeticiónDel
5: IngresarFechaFin Proceso
6: IngresaDscReq 18: asignar
7: IngresarDscSistema DscEquipo
8: IngresarDscEquipo
9: Enviar 19: Confirmar
ParaTerminar
Manejador
AdministradorDelProyecto 17: asignar
DscSistema
Sistema
2008/06/18 42/195
Cimat © Guía Metodológica de UML – v. 1.2
• Un estado
o Esta representado por un rectángulo con esquinas redondeadas,
éste representa una condición o situación de un elemento.
• Un evento
o Es un acontecimiento al recibir un mensaje.
• Una transición
o Esta representada por una línea sólida que se dibuja desde el estado
fuente hacia el estado destino etiquetado con un evento, ésta
representa que si un elemento que se encuentra en el estado fuente
y ocurre el evento, dicho estado pasara al estado destino.
• Un estado inicial
o Es cuando un elemento es creado, este ingresa en su estado inicial,
es representado por un círculo pequeño y sólido. La transición que
se origina desde el estado inicial puede ser etiquetada con el evento
que crea el elemento.
• Un estado final
o Es cuando un elemento ingresa a su estado final y es destruido, es
representado por un círculo que rodea a otro círculo pequeño y
sólido. La transición hacia el estado final puede ser etiquetada con el
evento que destruye al elemento.
los requerimientos que fue proporcionado al inicio de este capítulo (ver sección
3.1):
571H
2008/06/18 43/195
Cimat © Guía Metodológica de UML – v. 1.2
AsignarRecursos
DesasignarRecursos
• Una estado
o Esta representado por una figura de líneas rectas arriba y abajo, y
dos arcos a los lados, éste representa procesamiento.
• Un flujo de objeto
o Esta representado por una flecha punteada entre un estado y un
objeto, ésta representa que estado es el que recibe o envía dicho
objeto. Un flujo de objeto de entrada, el cual apunta hacia un estado
y representa lo que dicho estado esta recibiendo un objeto. Un flujo
2008/06/18 44/195
Cimat © Guía Metodológica de UML – v. 1.2
• A swimlane
o Esta representada por una línea vertical continua a cada lado con
una etiqueta en la parte superior del elemento responsable de los
estados que se muestran dentro de dicho swimlane, lo anterior
delimita una región que separa este swimlane de sus vecinos, ésta
representa responsabilidad.
requerimientos que fue proporcionado al inicio de este capítulo (ver sección 3.1) 573H
que la Figura 3-20 y la Figura 3-21, pero enfatiza las actividades y las
574H 57H
2008/06/18 45/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 46/195
Cimat © Guía Metodológica de UML – v. 1.2
3.4.3.1 Notas
Están representadas por un rectángulo con un doblez en su esquina superior
derecha y pueden ser ligadas a otros elementos utilizando una línea punteada,
éstas representan un comentario muy similar a los comentarios usados en
lenguajes de programación.
<<Tabla>>
Proyecto {Versión = 1.5
FechaInicio <= FechaFin}
Nombre
FechaInicio
FechaFin Usa la Versión 1.5 de la
tabla del Proyecto y
aplica una regla del
negocio a las fechas
3.4.3.2 Estereotipos
Están representado por una cadena de texto acotada por signos de mayor que y
menor que dobles(<< >>), que se muestra en la parte superior o inferior del
nombre de un elemento, éstos representan un significado especial asociado con el
elemento.
3.4.3.3 Propiedades
Están representadas por cadenas de texto delimitadas por comas dentro de llaves
({ }), que se muestran antes o después del nombre del elemento, y expresadas en
cualquier lenguaje ya sea natural o de computadora, éstas representan las
características de un elemento. Las cadenas de texto que representan a las
propiedades pueden agruparse en dos categorías o tipos:
2008/06/18 47/195
Cimat © Guía Metodológica de UML – v. 1.2
• Una cadena de texto que puede tener un valor asignado (Tagged Value),
se muestra como un par palabra-valor (una palabra seguida por un signo
de igual y seguido a su vez por su valor), éstos representan una
característica de un elemento y su valor.
• Una cadena de texto que puede ser una constante, se muestra como una
cadena de texto que puede ser expresada en el Lenguaje de Restricciones
de Objetos (Object Constraint Language - OCL), éstos representan una
condición que el elemento debe satisfacer.
versión que se esta utilizando, así como una regla del negocio concerniente a las
fechas de inicio y fin del proyecto.
3.5 Secciones
Una sección es un grupo de párrafos con un tema en común. Las secciones de
UML son las vistas de arquitectura, éstas son categorías de diagramas que
agrupan un conjunto específico de conceptos. Las diferentes vistas de arquitectura
determinan las diferentes maneras en las que uno puede entender un sistema. Por
ejemplo los diagramas mostrados en esta sección se pueden agrupar en
diferentes vistas, vistas para agrupar la funcionalidad, la estructura y el
comportamiento. Los elementos que componen una vista son conocidos como
elementos de la vista.
• Estructural o Estática
o Se enfoca a la estructura del sistema, usando diagramas de clase y
objeto para comunicar que elementos y relaciones conforman el
sistema
• De Comportamiento o Dinámica
o Se enfoca al comportamiento del sistema, utilizando diagramas de
secuencia, colaboración, estado y actividad, para comunicar las
interacciones y colaboraciones de los elementos que conforman el
sistema
2008/06/18 48/195
Cimat © Guía Metodológica de UML – v. 1.2
• De Componentes o Implementación
o Se enfoca en la implementación del sistema, utilizando diagramas de
componentes para comunicar como es implementado el sistema
3.6 Documentos
Un documento de UML es un grupo de secciones sobre un tema común,
incluyendo cualquier diagrama que no sea de UML, documentos textuales, y
cualquier información de soporte. Los documentos de UML son modelos. Por
ejemplo, en el lenguaje Español se agrupan secciones en documentos, tales como
un libro. Un modelo es una representación de un sistema. Por ejemplo, todas las
figuras en esta sección y su documentación textual de soporte son un modelo del
sistema de administración de proyectos. Los elementos que componen un modelo
se conocen como elementos del modelo. Por ejemplo, cualquier elemento usado
en los diagramas en esta sección, con cualquier documentación de soporte
necesario para comunicarse sobre ese elemento, forman un elemento del modelo.
Las relaciones entre los modelos, las vistas de arquitectura, y diagramas es similar
a las relaciones entre las bases de datos, las vistas, y las consultas. Una base de
datos contiene datos, las vistas organizan subconjuntos de datos dentro de
unidades significativas de información, y las consultas extraen subconjuntos de
esa información. Un elemento modelo es similar a un elemento de datos en la
base de datos, los elementos de las vistas son similares a los elementos de datos
usados utilizados en las vistas, y los elementos de los diagramas son similares a
los elementos de datos usados dentro de las consultas. Esto establece un
esquema general o aproximación a la manera en que se organiza UML y cómo
éste nos permite comunicarnos.
2008/06/18 49/195
Cimat © Guía Metodológica de UML – v. 1.2
vida de desarrollo del sistema. No solamente nos ayudan con la administración del
cambio y la complejidad, también evalúan nuestra comprensión antes de invertir
recursos en la producción de un sistema que es inaceptable o no satisface a
cabalidad los requerimientos. Los modelos capturan todos los detalles al cruzar el
abismo entre los requerimientos y los sistemas; seguramente no se capturan los
detalles del diseño y de la implementación en los requerimientos, y seguramente
no se capturan detalladamente los requerimientos en la implementación del
sistema. Sin embargo, se capturan tal detalle en un modelo que madura durante
un proceso como nuestra comprensión de los requerimientos además de la
madurez del sistema.
2008/06/18 50/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 51/195
Cimat © Guía Metodológica de UML – v. 1.2
4.1.1 Clases
Según lo planteado en el Capítulo 3, una clase es un concepto general. Por
ejemplo, el sistema de administración de proyectos envuelve varios conceptos
generales, incluyendo proyectos, administradores, equipos, productos de trabajo,
requerimientos, y sistemas.
El aspecto más crucial de una clase es que tiene semántica: un cierto significado
convenido entre quien se intenta comunicar con él. Por ejemplo, cuando se
discute un proyecto, ¿qué significa un proyecto para mi audiencia? ¿Es un
esfuerzo que dura una semana o un año? ¿Es un esfuerzo que requiere un
administrador y otros recursos humanos? Y así sucesivamente. Tal significado es
muy específico para la audiencia y el dominio en los cuales la clase se emplea.
2008/06/18 52/195
Cimat © Guía Metodológica de UML – v. 1.2
humanos, y administradores de sistema. Una unidad del trabajo es una unidad del
esfuerzo, que incluye asignar y analizar requerimientos, así como diseñar,
implementar, probar o destacar un sistema. Un producto de trabajo es cualquier
cosa producida y usada dentro de un proyecto, incluyendo los requerimientos y el
sistema. Se observa que una clase se debe nombrar usando una oración nominal.
Las clases, como se debe recordar del Capítulo 3, representan conceptos que se
descubren centrándose en los sustantivos.
4.1.1.1 Atributos
Un atributo es lo que un objeto conoce de una clase. Es un elemento de los datos
mantenidos por el objeto. Por ejemplo, cada objeto de la clase trabajador del
sistema de administración de proyecto puede tener un nombre, descripción, y así
sucesivamente. Todos estos son atributos.
EmailAddress
EmailAddress [1..5]
Se puede decidir preguntar qué tipo de dato se necesita para mantener el atributo
de email. Se descubre que un email es una cadena de caracteres, y se actualiza la
definición de atributo para indicar esto:
2008/06/18 53/195
Cimat © Guía Metodológica de UML – v. 1.2
Finalmente, se puede preguntar si otros objetos pueden tener acceso al e-mail del
objeto del trabajador. Asumiendo la respuesta es que el email del objeto
trabajador no es accesible por otros objetos, se puede poner al día la definición de
atributo una última vez precediéndola con el signo de menos (-), como sigue:
• El símbolo -
o Indica que el atributo del email es privado para el objeto y así
inaccesible por otros objetos.
• 1..5
o Indica que el atributo del email puede tener a partir de uno a cinco
valores.
• desordenado
o Indica que los valores del atributo del email no están ordenados
basados en un criterio específico.
• String
o Indica que las direcciones del email son cadenas de caracteres.
La Figura 4-2 muestra la clase Trabajador de la Figura 4-1 con sus atributos. Un
580H 581H
2008/06/18 54/195
Cimat © Guía Metodológica de UML – v. 1.2
Trabajador
- SiguienteId : Integer = 1
-Id : Integer
-Nombre : String
+Direcciondecorreoelectronico(1..5Desordenado) : String = SinEmail
- NumeroTelefonico(1..*ordenado) : String
# Contraseña : String
UnidadDeTrabajo
- Nombre : String
- Descripcion : String
Fuente: Sinan Si Alhir, 2003
ProductoDeTrabajo
- Nombre : String
- PorcentajeCompleto : Real = 0
- Descripcion : String
2008/06/18 55/195
Cimat © Guía Metodológica de UML – v. 1.2
En la cuál:
• visibilidad
o Es opcional, no tiene ningún valor fijo, e indica si el atributo es
accesible fuera de la clase. Puede ser de la siguiente manera:
+
• Visibilidad pública; el atributo es accesible fuera de su
clase.
-
• Visibilidad privada; el atributo es inaccesible fuera de
su clase.
#
• Visibilidad protegida; el atributo es accesible por las
clases que tienen una relación de la generalización
(según lo visto en capítulo 3) a su clase, pero es de
otra manera inaccesible fuera de su clase.
• nombre
o Es el nombre del atributo que se está describiendo.
• multiplicidad
o Es opcional, tiene un valor fijo de 1, e indica el número de valores
que un atributo puede llevar a cabo. Si un atributo tiene solamente
un valor, la multiplicidad, el ordenamiento, y los corchetes no se
muestran. De otro modo, la multiplicidad es mostrada como una
cadena límite-inferior .. límite-superior, en la cual un
asterisco indica un rango ilimitado; por ejemplo 0..* permite a partir
del cero hasta un número infinito de valores. Figura 4-2 a través de la
590H
• ordenamiento
2008/06/18 56/195
Cimat © Guía Metodológica de UML – v. 1.2
desordenado
• Indica que los valores están desordenados.
ordenado
• Indica que los valores están ordenados.
• tipo
o Es opcional, no tiene ningún valor fijo, e indica el tipo de dato que un
atributo puede llevar a cabo. Si no se muestra un tipo para un
atributo, se deben omitir los dos puntos. El tipo de un atributo puede
ser otra clase. Además, UML proporciona los tipos de datos
siguientes:
Boolean
• Un valor verdadero o falso
Entero
• Un número entero
Real
• Un número real
Cadena
• Una cadena de caracteres
• valor_inicial
o Es opcional, e indica el valor inicial de un atributo. Por defecto, un
atributo no tiene ningún valor inicial. Si no se muestra un valor
inicial, se debe omitir el símbolo de igual (=). Figura 4-2 basada de la
59H
2008/06/18 57/195
Cimat © Guía Metodológica de UML – v. 1.2
todos los atributos son objeto scoped, a excepción del número de identificación
siguiente del trabajador (SiguienteId), que es clase scoped.
4.1.1.3 Operaciones
Recordemos del Capítulo 3 que una operación es lo que un objeto de una clase
puede hacer. Es una especificación de un servicio proporcionado por el objeto.
Recordemos también que un método es cómo un objeto de una clase realiza su
proceso. Es una implementación de un servicio proporcionado por el objeto. Por
ejemplo, cada clase del proyecto del sistema de administración puede
proporcionar las operaciones de obtener y asignar para sus atributos. Estas
operaciones de obtener y asignar, recuperan y fijan los valores para los atributos
de un trabajador, unidad de trabajo, producto de trabajo, y así sucesivamente.
agregarEmailAddress
agregarEmailAddress (EmailAddress)
2008/06/18 58/195
Cimat © Guía Metodológica de UML – v. 1.2
Después, se puede preguntar si hay un valor fijo para el email. Presumiendo que
el email tiene un valor fijo de una cadena vacía, o ningún carácter, se puede
actualizar la definición de la operación como sigue:
• El símbolo +
o Indica que la operación de AgregarEmailAddress es pública y es
accesible por otros objetos. La expresión dentro de paréntesis indica
los parámetros que llevan a cabo los valores pasados a la operación.
• La palabra clave
o Indica que el parámetro entra y no se puede modificar por la
operación.
2008/06/18 59/195
Cimat © Guía Metodológica de UML – v. 1.2
La Figura 4-5 muestra la clase trabajador de la Figura 4-1 y la Figura 4-2 con sus
59H 60H 601H
distintas operaciones de obtener y asignar para fijar y para recuperar valores del
atributo, y con operaciones para crear y para destruir los objetos de
UnidadDeTrabajo.
2008/06/18 60/195
Cimat © Guía Metodológica de UML – v. 1.2
UnidadDeTrabajo
+ crear() : trabajo
+ obtenerNombre() : String
+ asignarNombre(Elnombre : String)
+ obtenerDescripcion() : String
+ asignarDescripcion(LaDescripcion : String)
+ destruir()
+ obtenerNombreyDescripcion(Elnombre : String, Ladescripcion : String)
+ asignarNombreyDescripcion(Elnombre : String, Ladescripcion : String)
+ nombre()
con sus varias operaciones de obtener y asignar para sus atributos y las
operaciones para crear y para destruir objetos de trabajo. Notar que la Figura 4-7 607H
ProductoDeTrabajo
- Nombre : String
- PorcentajeCompleto : Real = 0
- Descripcion : String
+ crear() : ProductoDeTrabajo
+ crear(Elnombre : String, ElPorcentajeCompleto : Real = 0, Ladescripcion : String)
+ obtenerNombre() : String
+ asignarNombre(Elnombre : String)
+ obtenerPorcentajeCompleto() : Real
+ asignarPorcentajeCompleto(ElporcentajeCompleto : Real)
+ obtenerDescripcion() : String
+ asignarDescripcion(LaDescripcion : String)
+ destruir()
En la cuál:
• visibilidad
2008/06/18 61/195
Cimat © Guía Metodológica de UML – v. 1.2
+
• Visibilidad pública; la operación es accesible fuera de
su clase.
-
• Visibilidad privada; la operación es inaccesible fuera
de su clase.
#
• Visibilidad protegida; la operación es accesible por las
clases que tienen una relación de la generalización
(según lo discutido en capítulo 3) a su clase, pero es de
otra manera inaccesible fuera de su clase.
En la Figura 4-5, Figura 4-6, y la Figura 4-7 se muestra que todas las
608H 609H 610H
• nombre _ de_la_operación
o Es el nombre de la operación que se está describiendo.
• lista _ de _ parámetros
o Es opcional, no tiene ningún valor fijo, y es una lista separada que
indica los parámetros a los cuales lleva a cabo los valores pasados o
recibidos de la operación. Cada parámetro se muestra como cadena
de texto que tiene siguiente sintaxis :
tipo
• Es opcional, tiene un valor fijo adentro, y puede ser uno
de los siguientes:
o in
Indica que el parámetro es solamente
entrada y que no se puede modificar por
la operación.
o out
2008/06/18 62/195
Cimat © Guía Metodológica de UML – v. 1.2
o inout
Indica que el parámetro está dentro y se
puede alternadamente modificar por la
operación para comunicar la información
al cliente que invocó la operación.
tipo
• Es opcional, no tiene ningún valor fijo, e indica el tipo
de dato que un parámetro puede llevar a cabo. Si no
se muestra un tipo para un parámetro, se deben omitir
los dos puntos. El tipo de un parámetro puede ser otra
clase. Además, UML proporciona los siguientes tipos
de datos:
o Boolean
Un valor verdadero o falso.
o Integer
En número entero
o Real
Un número real
o String
Una cadena de caracteres
Tipo de retorno
• Es opcional, no tiene ningún valor fijo, e indica el tipo
de datos que la operación devuelve a su llamador. Si
2008/06/18 63/195
Cimat © Guía Metodológica de UML – v. 1.2
UML también permite que se muestre una operación usando seudo código u otra
lengua. Por ejemplo, se puede utilizar la sintaxis de Java, de C++, de C #, o de un
otro lenguaje de programación.
muestra que la mayoría de las operaciones son objeto scoped. Las excepciones
son las operaciones de crear, que son de la clase scoped. Las operaciones de
crear se utilizan para crear objetos de una clase y se conocen como constructores.
Las operaciones de destruir se utilizan para destruir objetos de una clase y se
conocen como destructores. Las operaciones de crear son clase scoped, porque
una clase se utiliza para crear los objetos de la clase; si se creara una instancia
scoped, se necesitaría crear de alguna manera un objeto antes de invocar su
operación para crearla, que no tiene ningún sentido. La operación de destruir, por
otra parte, es objeto scoped, porque se aplica a un objeto específico que seria
destruido.
Podemos combinar la Figura 4-2 y la Figura 4-5 o la Figura 4-3 y la Figura 4-6 de
61H 617H 618H 619H
manera que la Figura 4-7 combina los atributos que se muestran en la Figura 4-4
620H 621H
4.1.2 Objetos
Según lo discutido en el Capítulo 3, un objeto es un concepto específico, o
instancia de una clase, teniendo las características definidas por su clase,
incluyendo características estructurales y características del comportamiento. Por
ejemplo, el sistema de administración de proyectos implica varios conceptos
específicos, incluyendo proyectos específicos, administradores, equipos,
productos de trabajo, requerimientos, sistemas, y así sucesivamente. Recuerde
que las características estructurales definen lo que conoce el objeto, y que las
características del comportamiento definen lo que puede hacer el objeto. Las
características estructurales incluyen valores para los atributos y vínculos. Las
características del comportamiento incluyen las operaciones y los métodos, que
2008/06/18 64/195
Cimat © Guía Metodológica de UML – v. 1.2
son compartidos por todos los objetos de una clase. El aspecto más crucial de un
objeto es que tiene su propia identidad. No hay dos objetos iguales, incluso si
tienen los mismos valores para sus características estructurales. Por ejemplo, si
dos objetos del trabajador tienen los mismos valores para sus atributos, los
objetos son únicos y tienen sus propias identidades.
tienen ningún nombre y otros no tienen ninguna clase especificada. Los Objetos
en un diagrama de UML que no tienen nombres se refieren como objetos
anónimos. Los Objetos para los cuales una clase no se ha especificado se refieren
como objetos sin especificar. Se puede encontrar tal notación dependiendo de la
metodología específica que es utilizada para un proyecto.
Observar que los nombres del objeto en la Figura 4-8 son todos subrayados
624H
2008/06/18 65/195
Cimat © Guía Metodológica de UML – v. 1.2
Felipe: Trabajador
:UnidadDeTrabajo
Nora:Trabajador ID = 2
Nombre : String Nombre = "Fel ipe"
Descripcion : String Email [1] = "Phi @myorg.org"
Email [2] = ""
Prueba:Uni dadDeTrabaj o Email [3] = "p.h@m yorg.org"
Descri pcion = "verificar que el sistema satisfaga los requerimi entos" Email [4] = ""
Email [5] = "Feli pe@myorg.org"
:ProductoDeT rabajo
XYZ
nombre = "Sistema"
Porcentaj eCompl eto : Real = 80
Prueba:ProductoDeT rabaj o
name : String = prueba 0015*
Descri pcion = probar que el usuari o pueda accesar con el nombre de usuari o y contraseña correctos
• El símbolo -
o Indica que el atributo de email es privado y accesible solamente por
el objeto.
• [1]
o Indica que éste es el primer valor de email, porque hay valores
múltiples del email.
• String
o Indica que el email es una cadena de caracteres.
• "ph@myorg.org"
o Indica el valor del atributo de email.
Lo que sigue es la sintaxis general a utilizar para definir valores de los atributos:
2008/06/18 66/195
Cimat © Guía Metodológica de UML – v. 1.2
Los elementos de la sintaxis son iguales que para los atributos de una clase.
4.1.2.2 Operaciones
Puesto que las operaciones y los métodos de una clase son compartidos por todos
los objetos de la clase, las operaciones no se muestran en cada objeto. Por
ejemplo, en la Figura 4-8 se muestra que Nora y Felipe son trabajadores, y por lo
625H
tanto comparten las operaciones y los métodos del trabajador. No hay necesidad
de demostrar las operaciones en cada objeto, pues las operaciones serán
repetidas innecesariamente cada vez. Para determinar las operaciones de un
objeto, se hace referencia a la clase de ese objeto.
4.2.1 Asociaciones
Según lo discutido en el Capítulo 3, una asociación define un tipo de vínculo y es
una relación general entre las clases. Por ejemplo, el proyecto de administración
del sistema implica varias relaciones generales, incluyendo administrar, dirigir,
ejecutar, entrada y salida entre los proyectos, los administradores, los equipos, los
productos de trabajo, los requerimientos, y los sistemas. Considerando, por
ejemplo, cómo un administrador de proyecto conduce a equipo.
2008/06/18 67/195
Cimat © Guía Metodológica de UML – v. 1.2
Observe que una asociación binaria se debe nombrar usando una frase del verbo.
Recuerde del Capítulo 3 que se describen asociaciones centrándose en los
verbos.
ResponsableDe
ProductoDeTrabajo
Trabajador
ConsumoDeEntrada ProductoDeSalida
UnidadDeTrabajo
Realizar
2008/06/18 68/195
Cimat © Guía Metodológica de UML – v. 1.2
binarias en la Figura 4-9 usando la notación más básica para la asociación binaria
630H
2008/06/18 69/195
Cimat © Guía Metodológica de UML – v. 1.2
ResponsableDe ProductoDeTrabajo
ResponsableDe
-----------
+Razon : String
ConsumodeEntrada ProductodeSalida
Trabajador
UnidadDeTrabajo
Realizar
en la Figura 4-10 se utiliza la notación más básica para las asociaciones de clase
632H
2008/06/18 70/195
Cimat © Guía Metodológica de UML – v. 1.2
• Flecha de navegación
• Especificación de la multiplicidad
• Calificador
Por ejemplo, un producto de trabajo es visto como entrada por una unidad de
trabajo, donde la unidad de trabajo es considerada como consumidor por el
producto de trabajo; un producto de trabajo es visto como salida por una unidad
del trabajo donde la unidad de trabajo es considerada como productor por el
producto de trabajo, según lo mostrado en la Figura 4-13 Se continuará
63H
ReaponsableDe 0..n
ProductoDeTrabajo
elProductoDeTrabajo
0..n 0..n
1 Entrada Salida
Trabajador
1
Consumidor Productor
0..n 0..n
Realizar 0..n
UnidadDeTrabajo
elTrabajo
4.2.3.2 Navegación
2008/06/18 71/195
Cimat © Guía Metodológica de UML – v. 1.2
4.2.3.3 Multiplicidad
La multiplicidad (que es opcional) indica cuántos objetos de una clase pueden
relacionarse con otras clases en una asociación. La multiplicidad se muestra
como secuencia coma-separada como el siguiente:
2008/06/18 72/195
Cimat © Guía Metodológica de UML – v. 1.2
asterisco, el rango es cerrado. Por ejemplo, 1 significa un, 1..5 significa de uno a
5, 1, 4 significa uno o cuatro, 0.. * y * significan cero o más (o muchos), y 0..1 y 0,
1 significan cero o uno. No hay multiplicidad por defecto para los extremos de la
asociación. La multiplicidad simplemente no está definida, a menos que se la
especifique. Por ejemplo:
• Una unidad del trabajo puede tener cero o mas productos de trabajo como
entrada y salida.
• Un producto del trabajo puede ser consumido como entrada por cero o más
unidad de trabajo y ser producido como hecho salir por cero o más unidad
de trabajo.
puede determinar para un solo trabajador que deba tener de tres a cinco unidades
de trabajo y cero o más productos de trabajo, según lo demostrado en la Figura
638H
4-14.
tiene un solo objeto del trabajador, ¿de cuántos productos de trabajo puede ser
responsable un solo objeto del trabajador? La respuesta es cero o más, y ésa es
la multiplicidad mostrada en el diagrama al lado de la clase ProductoDeTrabajo.
Usando la Figura 4-14 si se tiene un solo trabajador, ¿con cuántos productos de
640H
2008/06/18 73/195
Cimat © Guía Metodológica de UML – v. 1.2
productos de trabajo se relacionan con solo trabajador y una sola unidad detrabajo
para determinar la utilización del trabajador? La respuesta es cero o más; ésa es
la multiplicidad mostrada en el diagrama al lado de la clase de producto de trabajo.
4.2.3.4 Agregación
La agregación es la relación conjunto-parte entre un agregado, el conjunto, y sus
partes. Esta relación frecuentemente conocida como tiene-una relación, porque el
conjunto tiene sus piezas. Por ejemplo, cuando se piensa en los trabajadores que
integran un equipo, se puede decir que un equipo tiene trabajadores. Se muestra
la agregación usando un diamante hueco unido a la clase que representa el
conjunto. Esta relación que se acaba de mencionar entre un equipo y sus
trabajadores se muestra en la Figura 4-15. Busque el diamante hueco a la derecha
643H
1 1
Organizacion
Note en la Figura 4-15 que se ha hecho algo diferente con el equipo. Se ha creado
64H
una relación circular para tener en cuenta subequipos. Una relación circular se
conoce como relación reflexiva, porque relaciona dos objetos de la misma clase.
4.2.3.5 Composición
La composición, también conocida como agregación compuesta, es una relación
conjunto-parte entre un compuesto (el conjunto) y sus partes, en las cuales las
partes deben pertenecer solamente a una parte entera y al conjunto que son
responsables de crear y de destruir sus partes cuando son creadas y destruidas.
Esta relación es frecuentemente conocida como contiene-una relación, porque el
conjunto contiene sus partes. Por ejemplo, una organización contiene a los
equipos y a trabajadores, y si la organización deja de existir, sus equipos y
trabajadores también dejan de existir. Los individuos específicos que representan
a los trabajadores existirán aún, solamente que no serán más trabajadores de la
2008/06/18 74/195
Cimat © Guía Metodológica de UML – v. 1.2
la Figura 4-15 indica que los equipos contienen sus subequipos. Como una regla
64H
muestra que los trabajadores son parte de un equipo y de una organización, los
equipos son parte de una organización, y los subequipos son parte de los equipos.
Finalmente, si la parte debe pertenecer a una parte entera solamente, y el
conjunto es responsable de crear y de destruir sus piezas, use una composición; si
no, utilice simplemente la agregación. Por ejemplo, en la Figura 4-15 se muestra
649H
2008/06/18 75/195
Cimat © Guía Metodológica de UML – v. 1.2
Organizacion
1 0..2 2..5
elEquipo:Equipo elTrabajador:Trabajador
0..20 miembro 0..1000
0..3 subequipo
Organizacion
subEquipo:Equipo
0..3
4.2.3.6 Calificadores
Un calificador es un atributo de una clase de la asociación que reduzca la
multiplicidad a través de una asociación. Por ejemplo, en la Figura 4-13 se 65H
muestra que la multiplicidad entre los productos del trabajo y las unidades del
trabajo es cero o más para ambas asociaciones; es decir, puede haber muchos
productos del trabajo asociados a una sola unidad del trabajo y puede haber
muchas unidades del trabajo asociadas a un solo producto del trabajo. En lugar de
decir simplemente que hay "muchos" objetos implicados en la relación, se puede
comunicar un número más finito.
2008/06/18 76/195
Cimat © Guía Metodológica de UML – v. 1.2
Se puede reducir la multiplicidad entre los productos del trabajo y las unidades del
trabajo si se pregunta qué se necesita saber sobre una unidad del trabajo de modo
que se pueda definir una multiplicidad más específica - una que no sea ilimitado.
Asimismo, se puede hacer la misma pregunta acerca de la asociación entre el
producto de trabajo y las unidades de trabajo. Si se tiene un producto del trabajo y
el nombre de una unidad del trabajo, se puede determinarse si existe una relación
entre los dos; asimismo, si se tiene una unidad del trabajo y del nombre de un
producto del trabajo, se puede determinarse si una relación existe entre esos dos.
El truco es documentar exactamente la información necesaria que necesita el
objeto al final de la relación. Aquí es a donde el calificador entra en juego.
Las relaciones entre los productos del trabajo, las unidades del trabajo y sus
calificadores se muestran en la Figura 4-18. Los calificadores indican que un
65H
producto del trabajo con el nombre de una unidad del trabajo puede identificar una
unidad del trabajo, y que una unidad del trabajo con el nombre de un producto del
trabajo puede identificar un producto del trabajo. Note que se ha reducido la
multiplicidad de 0.. * mostrada en la Figura 4-13 a 0..1 en Figura 4-18. El
657H 658H
calificador permite hacer esto. Como una regla de UML, calificadores se utiliza
solamente con asociaciones binarias.
2008/06/18 77/195
Cimat © Guía Metodológica de UML – v. 1.2
4.2.4 Vínculos
Según lo discutido en el Capítulo 3, un vínculo es una relación específica entre los
objetos. Por ejemplo, el sistema de administración de proyectos implica varias
relaciones específicas, incluyendo maneja, conduce, ejecuta, entrada, salida, y
otras relaciones entre los proyectos, encargados, equipos, productos de trabajo,
requerimientos, sistemas, y así sucesivamente. Un vínculo instancia de una
asociación, y UML soporta diversos tipos de vínculos que correspondan a los
diversos tipos de asociaciones.
Las reglas generales para representar vínculos en un diagrama de UML son como
sigue:
• Etiquete los vínculos con sus nombres de la asociación, y subraye los
nombres para demostrar que son casos específicos de sus asociaciones
respectivas.
• Asegúrese de que los extremos del vínculo sean constantes con sus
extremos correspondientes de la asociación.
En las siguientes secciones se muestra cómo aplicar estas reglas a los varios
tipos del vínculo.
En la Figura 4-19 se muestra los varios objetos asociados a las clases mostradas
659H
2008/06/18 78/195
Cimat © Guía Metodológica de UML – v. 1.2
:ResponsableDe
DeclaraciondelProblema: ProductodeTrabajo
ResponsableDe
Entrada
:Realizar
Consumidor
--------------------------------- :ConsumodeEntrada
Proyecto:UnidadDeTrabajo
:Trabajador
Realizar
Productor :ProductodeSalida
---------------------------------
Salida
ResponsableDe Systema: ProductodeTrabajo
|
|
|
:ResponsableDe
2008/06/18 79/195
Cimat © Guía Metodológica de UML – v. 1.2
-el
Tr *
-elTrabajo
jo
ab
ba
aja
* eTra
do
r
toD
uc
rod
P
-el
-elProductoDeTrabajo
*
En la Figura 4-19 se muestran los objetos vinculo para las asociaciones binarias
670H
2008/06/18 80/195
Cimat © Guía Metodológica de UML – v. 1.2
4.2.6.2 Navegación
Asimismo, la navegación de un extremo del vínculo debe coincidir con la
navegación de su extremo de la asociación. Por ejemplo, las flechas en los dos
vínculos de ResponsableDe en la Figura 4-19 ambos apuntan a la instancia
67H
4.2.6.3 Multiplicidad
La multiplicidad se muestra solamente en los extremos de la asociación. Esto es,
debido a que una asociación describe la multiplicidad entre dos o más clases de
objetos. Un vínculo sin embargo, está entre objetos específicos. Así, en un
diagrama del objeto, la multiplicidad se manifiesta en términos de un número
específico de vínculos que señalan a un número específico de objetos discretos.
Por ejemplo, la multiplicidad mostrada en el Figura 4-13 indica que un objeto
678H
este caso son dos: el objeto específico Trabajador es responsable de dos objetos
específicos ProductoDeTrabajo.
4.2.6.4 Agregación
La agregación usando un diamante hueco, según lo mostrado en la Figura 4-21 a 681H
través de la Figura 4-23. La Figura 4-21 muestra a tres equipos nombrados Águila,
682H 683H
2008/06/18 81/195
Cimat © Guía Metodológica de UML – v. 1.2
Organizacion
Halcon:Equipo
Aguila:Equipo miembro
Juan:Trabajador
miembro
Nora:Trabajador
subequipo
miembro
Condor:Equipo
miembro
Felipe:Trabajador
4.2.6.5 Composición
La composición se puede mostrar usando un diamante llenado o un anidamiento
gráfico, como en la Figura 4-21. La Figura 4-21 muestra que los dos equipos,
684H 685H
Halcón y Cóndor, son subequipos del equipo del Águila. Además, llenar el
diamante al lado de la clase de la Organización indica que todos los individuos en
estos equipos pertenecen a la misma organización, y que el equipo Águila así
mismo pertenece a la organización.
2008/06/18 82/195
Cimat © Guía Metodológica de UML – v. 1.2
:Organización
Halcon:Equipo
subequipo
miembro Jonathan:Trabajador
Aguila:Equipo miembro
Juan:Trabajador
miembro
subequipo Nora:Trabajador
miembro
Condor:Equipo
miembro
Felipe:Trabajador
miembro
2008/06/18 83/195
Cimat © Guía Metodológica de UML – v. 1.2
:Organización
miembro
Jonathan:Trabajador
Halcon:Equipo
miembro
Juan:Trabajador
Aguila:Equipo
miembro
Nora:Trabajador
miembro
Condor:Equipo
miembro
Felipe:Trabajador
miembro
4.2.6.6 Calificador
Los valores para los calificadores del vínculo tienen la misma notación que para
los valores del atributo del objeto. En la Figura 4-24 se muestra cómo los valores
691H
2008/06/18 84/195
Cimat © Guía Metodológica de UML – v. 1.2
• Tipos
• Clases de Implementación
• Interfaces
4.3.1 Tipos
Un tipo es una clase que puede tener atributos, asociaciones, y operaciones, pero
no tiene ningún método. Un tipo define el rol que un objeto puede jugar con
respecto a otros objetos, de igual manera que el nombre de un rol indica el rol que
una clase juega con respecto a otras clases en una asociación. Por ejemplo, un
objeto Trabajador puede desempeñar el rol de un administrador del proyecto, de
un administrador de recursos, de un recurso humano, o de un administrador de
sistema. Un tipo se muestra como una clase marcada con la palabra clave del tipo.
Estos tipos de trabajadores se muestran en la Figura 4-25.
692H
<<type>>
TAdministradorDelProyecto
<<type>> <<type>>
TRecursoHumano TAdministradorDelSistema
<<type>>
TAdministradorDeRecursos
2008/06/18 85/195
Cimat © Guía Metodológica de UML – v. 1.2
Los tipos pueden ser utilizados junto con asociaciones binarias, asociaciones n-
aria y vínculos. Una lista separada por comas de uno o más tipos se pueden
colocar después del nombre de rol, para indicar el rol que juega una clase u objeto
dentro de la relación. Se separa el nombre del rol de la lista, usando dos puntos.
Si no es utilizado ningún nombre de rol, los tipos se colocan después de los dos
puntos.
La Figura 4-26 utiliza los tipos de la Figura 4-25 para actualizar la Figura 4-13.
693H 694H 695H
Esta figura muestra los diferentes roles que puede desempeñar un trabajador con
respecto a los productos de trabajo y las unidades de trabajo. Un trabajador
puede ser el administrador del proyecto, el administrador de recursos, un recurso
humano, o el administrador del sistema.
ResponsableDe 0..*
ProductoDeTrabajo
:TAdministradorDelProyecto,
elProductoDeTrabajo
TAdministradorDeRecursos, 0..* 0..*
TRecursoHumano,
Entrada Salida
TAdministradorDelSistema 1
Trabajador
:TAdministradorDelProyecto, 1
Consumidor Productor
TAdministradorDeRecursos,
0..* 0..*
TRecursoHumano, 0..*
TAdministradorDelSistema UnidadDeTrabajo
Desempeña elTrabajo
2008/06/18 86/195
Cimat © Guía Metodológica de UML – v. 1.2
<<ImplementationClass>>
Empleado
<<ImplementationClass>>
OrdenDeTrabajo
<<ImplementationClass>>
Arifact
4.3.3 Interfaces
Una interfaz es una clase que puede tener operaciones pero no puede tener
atributos, asociaciones o métodos. Una interfaz define un servicio o contrato
como un conjunto de operaciones públicas. Por ejemplo, un administrador del
proyecto debe poder iniciar y terminar un proyecto, planear y administrar un
proyecto mientras que maneja un equipo, etc. Un administrador de recursos debe
poder asignar o no asignar recursos humanos a un equipo y desde un equipo. Un
producto de trabajo debe ser producido y consumido; es producido cuando es
creado o escrito, y es consumido cuando es leído o destruido. Las interfaces se
pueden utilizar para definir éstos conjuntos de operaciones.
Una interfaz se representa como una clase marcada con la palabra clave
“interface”, y debido a que las interfaces no tienen atributos, el segundo
compartimiento se encuentra siempre vacío, y por lo tanto, no se muestra. Una
interfaz también se puede representar con un círculo pequeño con el nombre del
interfaz puesto cerca del símbolo y las operaciones de la interfaz no se muestran.
Los ejemplos de ambas representaciones de la interfaz se muestran en la Figura
697H
4-28.
2008/06/18 87/195
Cimat © Guía Metodológica de UML – v. 1.2
IRecursoHumano IAdministradorDelSistema
Las interfaces se pueden utilizar junto con asociaciones binarias, n-aria y vínculos
para indicar los servicios (o interfaces) que una clase proporciona en la relación.
Se comienza con un nombre de rol seguido por dos puntos, después se agrega
una lista separada por comas de uno o más nombres de la interfaz, según se
muestra en la Figura 4-29.
698H
La Figura 4-29 utiliza las interfaces de la Figura 4-28 para actualizar la Figura
69H 70H 701H
4-26. Muestra como un producto del trabajo proporciona varios servicios a las
unidades de trabajo, incluyendo una interfaz para el consumo del producto de
trabajo y una interfaz para la producción del producto de trabajo. También
muestra las diversas interfaces, que un trabajador proporciona en la asociación
con los productos de trabajo y las unidades de trabajo. Las interfaces y los tipos
se pueden listar juntos, pero los tipos se utilizan comúnmente durante actividades
de análisis, mientras que las interfaces se utilizan comúnmente durante
actividades de análisis y de diseño. Las interfaces y los tipos se pueden utilizar
durante análisis y diseño, es muy importante tener una convención estándar de
nomenclatura. Por ejemplo, una convención es que las interfaces tengan el prefijo
‘I’ y los tipos el prefijo ‘T’.
2008/06/18 88/195
Cimat © Guía Metodológica de UML – v. 1.2
:TAdministradorDelProyecto,
TAdministradorDeRecursos, 0..*
ResponsableDe ProductoDeTrabajo
TRecursoHumano,
TAdministradorDelSistema elProductoDeTrabajo
IAdministradorDelProyecto 0..* 0..*
IAdministradorDeRecursos Entrada : IConsumible Salida : IProducible
IRecursoHumano
IAdministradorDelSistema 1
Trabajador
1
:TAdministradorDelProyecto,
TAdministradorDeRecursos,
TRecursoHumano, Consumidor Productor
TAdministradorDelSistema 0..* 0..*
IAdministradorDelProyecto 0..* UnidadDeTrabajo
IAdministradorDeRecursos
Desempeña elTrabajo
IRecursoHumano
IAdministradorDelSistema
4.4.1 Generalizaciones
Una generalización entre un elemento más general y un elemento más específico
de la misma clase, indica que el elemento más específico recibe los atributos,
asociaciones y otras relaciones, operaciones, y métodos del elemento más
general. Los dos elementos deben ser de la misma clase. Por ejemplo, una
relación de generalización puede estar entre dos tipos pero no entre un tipo y una
interfaz. Pueden existir relaciones de generalización para las siguientes clases de
elementos:
• Tipos
• Clases no diferenciadas
• Clases de implementación
• Interfaces
2008/06/18 89/195
Cimat © Guía Metodológica de UML – v. 1.2
Una generalización se representa con una línea del elemento más específico al
elemento más general, con un triángulo hueco grande en el extremo de la
trayectoria conectada con el elemento más general. Se verán ejemplos de esto,
como cuando se discuta cada tipo específico de una generalización en las
siguientes secciones.
4.4.1.1 Tipos
El administrador del proyecto, el recurso humano, y los tipos de administrador del
sistema mostrados anteriormente en la Figura 4-25 son tipos específicos de
702H
<<type>>
TAdministradorDelProyecto
<<type>> <<type>>
TRecursoHumano TAdministradorDelSistema
<<type>>
TAdministradorDeRecursos
Debido a que una generalización entre un tipo más general y un tipo más
específico, indica que el tipo más específico es una forma especializada del tipo
más general, estas clases pueden desempeñar los roles del tipo más específico,
así como también pueden desempeñar los roles del tipo más general. Por lo
tanto, la Figura 4-30 muestra esos objetos que desempeñan los roles específicos
704H
2008/06/18 90/195
Cimat © Guía Metodológica de UML – v. 1.2
Trabajador
RecursoHumano
Trabajo ProductoDeTrabajo
2008/06/18 91/195
Cimat © Guía Metodológica de UML – v. 1.2
se llaman clases hijo o subclases. Las clases generales que no son padres (es
decir, no inmediatamente la más general) se llaman clases primitivas. Las clases
más específicas que no son hijos (es decir, no inmediatamente la más específica)
se llaman clases descendientes. Por lo tanto, la Figura 4-31 muestra que la clase
709H
Debido a que una generalización entre dos clases no diferenciadas, indica que los
objetos de una clase más específica no diferenciada son los objetos
especializados de una clase más general no diferenciada, los objetos más
específicos de la clase no diferenciada se pueden sustituir por objetos de una
clase no diferenciada. Por lo tanto, la Figura 4-31 muestra que los objetos
710H
de una tabla de la base de datos. La Figura 4-32 muestra esto haciendo las
713H
<<ImplementationClass>>
Empleado
<<ImplementationClass>> <<ImplementationClass>>
TablaBaseDeDatos OrdenDeTrabajo
<<ImplementationClass>>
Arifact
2008/06/18 92/195
Cimat © Guía Metodológica de UML – v. 1.2
Debido a que una generalización entre una clase más general de implementación
y una clase más específica de implementación, indica que los objetos de la clase
más específica son objetos especializados de la clase general, los objetos de la
clase específica de implementación se pueden sustituir por los objetos de la clase
general de implementación. Por lo tanto, la Figura 4-32 muestra que el empleado,
714H
la orden de trabajo, y los objetos artifact pueden ser sustituidos por los objetos de
la tabla de la base de datos.
4.4.2.2 Interfaces
El administrador del proyecto, el recurso humano, y las interfaces del
administrador del sistema mostrados en la Figura 4-28 son versiones más
715H
Debido a que una generalización entre una interfaz más general y una interfaz
más específica, indica que la interfaz más específica es una forma especializada
de la interfaz más general, esas clases que proporcionan el servicio definido por la
interfaz más específica, pueden también proporcionar el servicio definido por la
interfaz más general. Por lo tanto, la Figura 4-33 muestra que esos objetos que
71H
4.4.3 Realizaciones
Una realización de un elemento fuente (llamado el elemento de realización) a un
elemento destino (llamado el elemento de especificación) indica que el elemento
fuente respalda todas las operaciones del elemento destino, sin tener que
2008/06/18 93/195
Cimat © Guía Metodológica de UML – v. 1.2
respaldar ningún atributo o asociación del elemento destino. Por ejemplo, la clase
no diferenciada o la clase de implementación, pueden desempeñar el rol definido
por un tipo y puede proporcionar el servicio definido por una interfaz, si la clase
respalda las operaciones definidas el tipo e interfaz. Una realización permite que
reutilicemos las operaciones de tipos y de las interfaces donde un elemento de la
realización se dice realiza sus elementos de especificación.
Una realización se muestra como una línea punteada que va desde el elemento
fuente al elemento destino, con un triángulo hueco en el extremo de la trayectoria
conectada con el elemento destino. Cuando el elemento destino es una interfaz
representada como un círculo pequeño, la realización se muestra como una línea
que conecta al elemento fuente con la interfaz.
Trabajador. De acuerdo con la Figura 4-29, la Figura 4-34 muestra que la clase
719H 720H
las interfaces y los tipos se utilizan con varias asociaciones entre la clase
Trabajador y otras clases, mientras que la Figura 4-34 muestra que la clase
72H
<<type>>
IRecursoHumano
TRecursoHumano
IAdministradorDelSistema
2008/06/18 94/195
Cimat © Guía Metodológica de UML – v. 1.2
ProductoDeTrabajo
Debido a que la realización de una clase fuente a un elemento destino, indica que
los objetos de la clase fuente respaldan todas las operaciones del elemento
destino, los objetos de la clase fuente se pueden sustituir por objetos de otras
clases, que también respaldan al mismo elemento destino. Por lo tanto, la Figura 725H
4-34 muestra que un objeto trabajador se puede sustituir por objetos de otras
clases que realicen los mismos tipos e interfaces que el objeto trabajador, y los
objetos de otras clases que realizan los mismos tipos e interfaces que el objeto
trabajador, se pueden sustituir por los objetos trabajador. Es decir, si dos objetos
realizan el mismo tipo o interfaz, pueden ser sustituidos por otro. La Figura 4-35
726H
ilustra esto.
2008/06/18 95/195
Cimat © Guía Metodológica de UML – v. 1.2
<<ImplementationClass>> Trabajador
Empleado
<<ImplementationClass>> UnidadDeTrabajo
Arifact
De acuerdo con la Figura 4-36 y la Figura 4-34, la Figura 4-37 muestra los tipos e
729H 730H 731H
IRecursoHumano
<<type>>
TRecursoHumano
<<type>>
TAdministradorDeRecursos
IAdministradorDelSistema
De acuerdo con la Figura 4-36 y la Figura 4-35, la Figura 4-38 muestra las
732H 73H 734H
2008/06/18 96/195
Cimat © Guía Metodológica de UML – v. 1.2
<<ImplementationClass>>
Arifact
Debido a que una realización de una clase fuente a un elemento destino, indica
que los objetos de la clase fuente respaldan todas las operaciones del elemento
destino, los objetos de la clase fuente se pueden sustituir por los objetos de otras
clases que también tomen en cuenta el mismo elemento destino. Por lo tanto, la
Figura 4-37 muestra que un objeto empleado se puede sustituir por los objetos de
735H
otras clases que tomen en cuenta los mismos tipos e interfaces que el objeto
empleado, y los objetos de otras clases que tomen en cuenta los mismos tipos e
interfaces que el objeto del empleado se puede sustituir por los objetos del
empleado. La Figura 4-38 muestra lo mismo para un objeto artifact.
736H
4.4.4 Dependencias
Una dependencia de un elemento fuente (llamado cliente) a un elemento destino
(llamado proveedor) indica que las aplicaciones del elemento fuente usa o
depende del elemento destino; si el elemento destino cambia, el elemento fuente
puede requerir un cambio. Por ejemplo, una UnidadDeTrabajo utiliza la interfaz de
IConsumible como consumidor y utiliza la interfaz de IProducible como productor;
si cualquier interfaz cambia, la UnidadDeTrabajo puede requerir un cambio. La
Figura 4-39 muestra las interfaces usadas por UnidadDeTrabajo.
73H
Una dependencia se representa como una línea discontinua del elemento fuente al
elemento destino. La dependencia se puede resaltar con el uso de una palabra
clave; sin embargo, la palabra clave se omite a menudo porque el significado es
evidente de cómo se utiliza la dependencia. También, se nota que una
dependencia no tiene un triángulo hueco grande en el extremo de la trayectoria,
pero tiene una flecha abierta.
2008/06/18 97/195
Cimat © Guía Metodológica de UML – v. 1.2
De acuerdo con la Figura 4-29, la Figura 4-39 muestra las dependencias entre las
738H 739H
unidades del trabajo y de los productos del trabajo. Note que una realización se
puede mostrar como dependencia marcada con la palabra clave realiza, según lo
mostrado en la Figura 4-39 entre la clase de ProductoDeTrabajo y el interfaz de
740H
IProducible.
ProductoDeTrabajo <<realiza>>
0..* 0..*
Entrada : IConsumible Salida : IProducible
Consumidor Productor
0..* 0..*
UnidadDeTrabajo
<<usa>>
La Figura 4-40 muestra las dependencias entre las interfaces discutidas en este
741H
2008/06/18 98/195
Cimat © Guía Metodológica de UML – v. 1.2
Resultado RecursoHumano
4.5.1 Paquetes
• Utilidades
o Fecha, tiempo y otras clases de utilidad.
• Trabajadores
2008/06/18 99/195
Cimat © Guía Metodológica de UML – v. 1.2
• Genérico
o Las clases genéricas tales como la clase Trabajador y cualquier otra
clase relacionada con el trabajador.
• Unidad de Trabajo
o La clase UnidadDeTrabajo y cualquier otra clase relacionada con el
trabajador.
• Producto de Trabajo
o La clase de ProductoDeTrabajo y cualquier otra clase relacionada
con el producto de trabajo.
• Interfaz de Usuario
o Un paquete que contiene las clases responsables para proveer una
interfaz de usuario a través de la cual, los usuarios pueden
interactuar con el sistema.
• Datos
o Un paquete que contiene las clases responsables para
implementación del almacenamiento de los datos.
2008/06/18 100/195
Cimat © Guía Metodológica de UML – v. 1.2
Datos
Productos de Trabajo::
ProductoDeTrabajo
Trabajadores::Genérico::
Trabajador
Unidades de Trabajo::
UnidadDeTrabajo
Trabajadores
Unidades de Prodcutos de
+ Genérico Trabajo Trabajo
+ Trabajador
+ UnidadDeTrabajo + ProductoDeTrabajo
4-41 muestra que el paquete de Datos utiliza los paquetes Trabajadores, Unidades
de Trabajo y Productos del Trabajo. También muestra que los paquetes de
2008/06/18 101/195
Cimat © Guía Metodológica de UML – v. 1.2
Trabajadores::Genérico:Trabajador
La clase del trabajador situada dentro del paquete Genérico, que se jerarquiza
dentro del paquete Trabajadores.
4.5.2 Subsistemas
Recuerde que un sistema es una colección organizada de los elementos que se
pueden descomponer recursivamente en subsistemas más pequeños y
eventualmente en elementos primitivos, que no pueden descomponerse en más
elementos. Por ejemplo, el sistema de administración del proyecto se puede
descomponer como sigue:
• Un subsistema de interfaz de usuario responsable de proporcionar una
interfaz de usuario a través de la cual, los usuarios pueden interactuar con
el sistema.
2008/06/18 102/195
Cimat © Guía Metodológica de UML – v. 1.2
Los elementos primitivos son las diversas clases que se utilizan en estos
subsistemas y a fin de cuentas en el sistema entero. Mientras que un paquete
agrupa simplemente elementos, los elementos agrupados en un subsistema
proporcionan en conjunto, servicios para que otros elementos puedan tener
acceso solo a estos servicios y ningún otro elemento más. Y mientras que los
paquetes permiten descomponer el sistema en grupos lógicos y relacionar estos
grupos lógicos, los subsistemas permiten considerar qué servicios proporcionan
estos grupos lógicos a otro.
Trabajadores::Genérico:
:Trabajador
Especificación de Elementos
Unidades de Trabajo::
UnidadDeTrabajo
Administrador del Administrador del Proyecto
Proyecto Negociador
2008/06/18 103/195
Cimat © Guía Metodológica de UML – v. 1.2
La Figura 4-43 utiliza subsistemas para refinar la Figura 4-41. Los paquetes del
749H 750H
subsistema del Procesos del Negocio proporciona una interfaz que es utilizada por
el paquete Interfaz de Usuario. El subsistema Procesos del Negocio utiliza el
subsistema Datos y la interfaz IProducible proporcionada por el subsistema Datos.
El subsistema Datos toma en cuenta la interfaz IProducible que se encuentra fuera
del subsistema, diferentes operaciones y un caso de uso Administrador del
Proyecto que se discutió en el Capítulo 2. El caso del uso es el óvalo en el
compartimiento del elemento de la especificación. Los elementos de la realización
del subsistema Datos realizan las operaciones leer, destruir, y hacerTrabajo, el
caso del uso, y las operaciones de la interfaz IProducible.
2008/06/18 104/195
Cimat © Guía Metodológica de UML – v. 1.2
paquete del Procesos del Negocio según lo mostrado en la Figura 4-41, por el
753H
2008/06/18 105/195
Cimat © Guía Metodológica de UML – v. 1.2
de administración del proyecto y las relaciones entre ellos. Usando los paquetes,
subsistemas, interfaces, y sus relaciones, se puede considerar más fácilmente qué
elementos se pueden desarrollar en paralelo, qué elementos pueden ser
comprados y cuáles tienen que ser construidos, y cuáles pueden ser reutilizados.
Es posible tratar a estos elementos como clases y sus relaciones, pero debido a
que un sistema puede tener muchas clases, puede llegar a ser fácilmente
abrumador trabajar con tanta diversidad. Se puede también tratar a estos
elementos usando los paquetes y sus dependencias, pero los paquetes no ofrecen
servicios. Los paquetes capturan simplemente los elementos principales que
integran el sistema y no los servicios que se utilizan dentro del paquete. Así que
se debe de centrar en todo el contenido de un paquete, o más bien, en los
servicios usados por los elementos que dependen del paquete. Sin embargo,
usando los paquetes, los subsistemas, las interfaces, y sus relaciones, se puede
tratar más fácilmente los elementos mencionados anteriormente, debido a que se
puede capturar los elementos principales que integran el sistema, así como
también los servicios que se proporcionan y se requieren para que estos
elementos puedan trabajar en conjunto, para proporcionar la funcionalidad del
sistema.
2008/06/18 106/195
Cimat © Guía Metodológica de UML – v. 1.2
Así como un caso de uso dirige las aplicaciones de proceso que usa casos para
planear y para realizar las iteraciones, es importante entender cómo los casos de
uso se relacionan el uno con el otro, incluyendo los casos de uso que tienen en
común, los cuales sean opciones de otros casos de uso, y cada caso de uso son
similares el uno al otro. Dado que cada proyecto ha limitado recursos, se puede
usar esta información acerca de casos de uso para determinar cómo mejorar la
ejecución del proyecto. Los casos de uso que son comunes a dos o más de otros
casos de uso necesitan solo ser implementados una sola vez, y entonces pueden
ser reutilizados. Casos de uso que son opciones de otros casos de uso se pueden
poner en ejecución después, y casos de uso son similares y nos permite
implementar un caso de uso que puede que sea rehusado. Una comprensión de
cómo casos de uso son relacionados permite que los usuarios y los analistas
negocien y que alcancen el acuerdo referente al alcance y los requisitos de un
sistema.
2008/06/18 107/195
Cimat © Guía Metodológica de UML – v. 1.2
5.1 Actores
Según lo discutido en el capítulo 3, un actor es un usuario o un sistema externo
con el cual un sistema modelado interactúa. Por ejemplo, nuestro sistema de
administración de proyecto implica varios tipos de usuarios, incluyendo
administradores de proyecto, administradores de recurso, recursos humanos, y
administradores de sistema. Estos usuarios son todos los actores.
administración:
• Administrador de proyecto
o Responsable de asegurarse de que un proyecto entregue un
producto de calidad dentro de un tiempo y costo especificado, y
adentrado a una limitación de recursos específicos.
• Administrador de recursos
o Responsable de asegurar que se entrene y especialice a los
recursos humanos para que estos estén disponibles para los
proyectos
• Recursos humanos
o Responsable de asegurarse de que las habilidades del trabajador
estén mantenidas, y de que el trabajo de la calidad sea completado
para un proyecto
• Administrador de sistema
2008/06/18 108/195
Cimat © Guía Metodológica de UML – v. 1.2
• Sistema de reserva
o Responsable de la cubierta de datos de reserva para el proyecto de
sistema administrativo
: Administrador de Sistemas
: Administrador de Proyecto
: Recursoso Humanos
<<Actor>>
Sistema de
: Administrador de Recursos Respaldo
La Figura 5-2 muestra los variados casos de actor de las clases de actor en la
758H
Figura 5-1, incluyendo a Jonathan y Juan que son los administradores del
759H
2008/06/18 109/195
Cimat © Guía Metodológica de UML – v. 1.2
: Juan: Administrador de
: Recursos Humanos
Proyecto
El porque de que los actores son externos a un sistema e interactúan con este
sistema, es porque definen el límite o el alcance del sistema. Por ejemplo, dado
los actores demostrados en la Figura 5-1 , sabemos exactamente quién y qué
760H
2008/06/18 110/195
Cimat © Guía Metodológica de UML – v. 1.2
hablar de clases de casos de uso, y se puede utilizar UML para hablar de casos
específicos de uso de una clase. Al hablar de una clase de casos de uso, se
acostumbra utilizar el termino de casos de uso o clase de casos de uso. Así,
mientras que puede ser que se piense en un caso de uso como una cosa
específica, en UML, un caso de uso realmente representa una clase de cosas. Al
hablar de un caso específico de uso de una clase, se usa el termino de clase de
casos de uso.
En UML, un caso de uso se muestra como una elipse y se etiqueta con el nombre
de la clase de caso-uso. Los casos de uso se pueden incluir por un rectángulo que
represente el límite del sistema que proporciona la funcionalidad. La Figura 5-3
761H
Administrador de proyecto
2008/06/18 111/195
Cimat © Guía Metodológica de UML – v. 1.2
de cómo los casos del actor interactúan específicamente con un sistema y de qué
acciones específicas realiza el sistema en vuelta. Las instancias de caso-uso no
se muestran comúnmente en diagramas de caso de uso sino se discuten
simplemente con los usuarios para entender mejor sus requisitos.
El porque de que los casos de uso son realizados por un sistema, es porque
definen los requisitos funcionales del sistema. Por ejemplo, dado casos de uso
demostrados en la Figura 5-3 , sabemos generalmente qué tipo de funcionalidad
762H
Pasos 1, 4, y 5 son las acciones que el sistema realiza, y los pasos 2 y 3 son
interacciones entre el sistema y el usuario. Es bastante simple ver que el paso 4
es una acción, pero se puede preguntarse porqué los pasos 1 y 5 son acciones
más bien que interacciones, cuando el sistema está interactuando con el usuario
por la presentación de la interfaz de usuario o respondiendo apropiadamente con
una ventana de mensaje o algo similar. Los pasos 1 y 5 son acciones más bien
que interacciones porque el sistema simplemente está llevando a acción la
demostración de la interfaz de usuario o una ventana de mensaje que el usuario
pueda elegir fácilmente para ignorar. Sin embargo, si éste no fuera un usuario
humano sino otro sistema que recibiría una cierta comunicación a la cual debe
contestar, éstas serían interacciones más bien que acciones. Absolutamente a
menudo, no es necesario el intentar clasificar cada paso como una acción o
2008/06/18 112/195
Cimat © Guía Metodológica de UML – v. 1.2
Una instancia de caso de uso del proyecto de manejo implica casos del actor y
encontrar un proyecto y el manejo de él que usa una de las tres secuencias
disponibles del comportamiento basadas sobre el tipo de proyecto seleccionado.
Las secuencias del comportamiento, tales como la que esta demostrada
anteriormente para el caso de uso de la conexión, se capturan comúnmente en
forma textual, pero se pueden también capturar usando técnicas que modelan del
comportamiento, según lo discutido en la parte III. Sin embargo, UML no
proporciona ninguna dirección explícita en cómo capturar secuencias del
comportamiento.
2008/06/18 113/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 114/195
Cimat © Guía Metodológica de UML – v. 1.2
Administrador de Sistema
<<Actor>>
Sistema de Respaldo
Administracion_de_Recursos
Administrador de Recursos
Una flecha de navegación en una asociación que señala hacia un caso de uso
indica que el actor inicia la interacción con el sistema. La Figura 5-4 muestra que
768H
Una flecha de la navegación en una asociación que señala hacia un caso de uso
indica que el actor inicia la interacción con el sistema. La Figura 5-4 muestra que
769H
Más bien se usaran dos flechas cuando el sistema o el actor pueda iniciar una
interacción, las flechas de navegación en ambos finales de dicha asociación se
caen. La Figura 5-4 muestra que un administrador de sistema o el sistema puede
70H
Esté enterado, sin embargo, que una carencia de las flechas de la navegación
puede resultar simplemente de un modelador que elige no especificar cualquier
cosa sobre la iniciación de una interacción. Así, con respecto a la Figura 5-4, no se 71H
puede estar absolutamente seguro que cualquier actor puede iniciar una
interacción de la administración del sistema. Podría ser que el administrador de
2008/06/18 115/195
Cimat © Guía Metodológica de UML – v. 1.2
5.4 Dependencias
Un modelo puede tener muchos casos de uso, así que ¿cómo organizamos casos
de uso que definen lo que debe hacer un sistema? Y cómo utilizamos esta
información sobre casos de uso para determinarnos cómo lo más mejor posible
ejecutar un proyecto mientras que consideran cómo casos de uso se relacionan
uno con otro, incluyendo ¿qué algunos casos de uso pudieron tener en campo
común, y también consideran casos de uso que son opciones de otros casos de
uso? Los tipos especializados de dependencias, llamados dependencias incluidas
y extendidas, tratan estas preguntas; las dependencias se discuten en el capítulo
4. Las próximas secciones discuten estos tipos especializados de dependencias.
de uso, en la Figura 5-4 para demostrar que las actividades del administrador de
73H
<<Actor>>
Sistema de Respaldo
2008/06/18 116/195
Cimat © Guía Metodológica de UML – v. 1.2
La Figura 5-6 refina la Figura 5-5 que usa dependencias incluidas. La actividad del
74H 75H
Administracion de Proyecto
Administrador de Projecto
Administrador de Sistemas
<<include>>
<<include>>
<<include>> <<Actor>>
Sistema de
Respaldo
Administracion de Recursos
Administrador de Recursos
Se puede utilizar una dependencia del incluido cuando un caso de uso puede ser
común al múltiplo otros casos de uso y por lo tanto se descompone en factores
fuera de los diversos casos de uso para poderlo reutilizar. El caso de uso de la
actividad del registro en la Figura 5-6 se incluye en el proyecto del manejo, maneja
76H
el recurso, y administra casos de uso del sistema. Por lo tanto, se debe analizar y
2008/06/18 117/195
Cimat © Guía Metodológica de UML – v. 1.2
convertirse que caso de uso antes de que se desarrolle los tres casos de uso que
dependen de él.
Administrar Proyecto
por Tarea
Una dependencia del extender a partir de un caso de uso (llamado el caso de uso
de la extensión) a otro caso de uso (llamado la base de casos de uso) indica que
el caso de uso de la extensión extenderá (o ser insertado en) y aumentará la base
de casos de uso. Un caso de uso puede extender casos múltiples de uso, y un
caso de uso se puede ampliar por los casos múltiples de uso. Una dependencia
del extender se muestra como flecha rayada de caso de uso de la extensión a la
base de casos de uso marcado con la palabra clave del extender. La base de
casos de uso es responsable de identificar en qué pasos en su secuencia del
comportamiento pueden ser insertados casos de uso que extienden.
La Figura 5-8 refina la Figura 5-7 que usa amplía dependencias. El proyecto del
79H 780H
2008/06/18 118/195
Cimat © Guía Metodológica de UML – v. 1.2
Mantener Proyecto
<<extender>>
<<extender>>
<<extender>>
Administacion de Proyecto Mantener Actividad
Administrador de Proyecto
Mantener Tarea
2008/06/18 119/195
Cimat © Guía Metodológica de UML – v. 1.2
La Figura 5-9 elabora en el caso de uso del sistema del administrar en la Figura
781H 782H
Puntos de Extencion:
Funciones de
Administracion:
Menu de Administracion
<<extend>> <<extend>>
[Opcion de Respaldo]
[Opcion Restaurar]
(Despues)
(Antes)
• El caso de lanzamiento de uso del sistema está disponible pues una opción
en el punto de la extensión de las funciones de la administración de caso de
uso del sistema del administrar. El caso de lanzamiento de uso del sistema
tiene dos puntos de la extensión nombrados antes y después. Antes de
que el punto de la extensión se describa como ocurriendo antes de que la
funcionalidad de lanzamiento sea realizada por el sistema, y después de
que el punto de la extensión se describa como ocurriendo después de que
la funcionalidad de lanzamiento sea realizada por el sistema. Se utilizan
estos puntos de la extensión como a continuación se dice:
2008/06/18 120/195
Cimat © Guía Metodológica de UML – v. 1.2
• El caso de uso del sistema de parada está disponible pues una opción en el
punto de la extensión de las funciones de la administración de caso de uso
del sistema del administrar. El caso de uso del sistema de parada tiene dos
puntos de la extensión, nombrados antes y después. Antes de que el punto
de la extensión se describa como ocurriendo antes de que la funcionalidad
de la parada sea realizada por el sistema, y después de que el punto de la
extensión se describa como ocurriendo después de que la funcionalidad de
la parada sea realizada por el sistema. Se utilizan estos puntos de la
extensión como sigue:
Utilice una dependencia del extender cuando un caso de uso es opcional a otro
caso de uso. Porque el proyecto del mantener, mantiene actividad, y mantiene
casos de uso de la tarea extiende el caso de uso del proyecto del manejo, el caso
de uso del proyecto del manejo se debe desarrollar antes de los otros; si no, los
otros casos de uso no tendrán un caso de uso a extender. Asimismo, el caso de
uso del sistema del administrar se debe desarrollar antes de los casos de
lanzamiento de uso del sistema y del sistema de parada, el sistema de
lanzamiento se debe desarrollar antes de datos del restore, y el sistema de parada
2008/06/18 121/195
Cimat © Guía Metodológica de UML – v. 1.2
se debe desarrollar antes de datos de reserva. Sin embargo, administre una vez
el sistema se convierte, el sistema de lanzamiento y el sistema de parada se
pueden desarrollar en paralelo o concurrentemente, porque no se relacionan
directamente.
5.5 Generalizaciones
Los actores pueden ser similares en cómo utilizan un sistema; por ejemplo, los
administradores de proyecto, los administradores de recurso, y los
administradores de sistema pueden abrirse una sesión y fuera de nuestro proyecto
de sistema administrativo. Casos de uso pueden ser similares en la funcionalidad
proporcionada a los usuarios; por ejemplo, un administrador de proyecto puede
publicar el estado de un proyecto de dos maneras: generando un informe a una
impresora o generando un Web site en un Web Server del proyecto.
Dado que puede haber semejanzas entre los actores y casos de uso, ¿cómo
organizamos a los casos de uso que definen lo que debe hacer un sistema? ¿Y
cómo utilizamos la información sobre semejanzas entre los actores y utilizamos
casos para determinarnos cómo lo más mejor posible ejecutar un proyecto? Los
tipos especializados de generalizaciones, llamados actor y las generalizaciones de
caso de uso, tratan estas preguntas. Las generalizaciones se introducen y se
discuten en el capítulo 4. Las dos secciones siguientes discuten estos tipos
especializados de generalizaciones.
2008/06/18 122/195
Cimat © Guía Metodológica de UML – v. 1.2
Log In
Log out
La Figura 5-11 refina la Figura 5-10 usando generalizaciones del actor entre los
785H 786H
2008/06/18 123/195
Cimat © Guía Metodológica de UML – v. 1.2
Administrador Log in
de Proyecto
Administrador
de Recursos
Log Out
Utilice una generalización del actor entre los actores cuando un actor es similar a
otro, pero tiene interacciones específicas en las cuales participe o inicie. Por
ejemplo, cualquier recurso humano puede abrirse una sesión y hacia fuera, pero
los administradores de proyecto, los administradores de recursos, y los
administradores de sistema hacen el uso especializado del proyecto de sistema
administrativo. Porque el administrador de proyecto, el administrador de recurso,
y los actores del administrador de sistema son actores especializados del recurso
humano, benefician de casos de uso en los cuales el actor del recurso humano
está implicado. Por lo tanto, desarrollando casos de uso de la conexión y del
registro de estado de la máquina, proporcionamos la funcionalidad descrita por
esos casos de uso para todos los actores de nuestro sistema.
2008/06/18 124/195
Cimat © Guía Metodológica de UML – v. 1.2
Administrador de Proyecto
2008/06/18 125/195
Cimat © Guía Metodológica de UML – v. 1.2
Generar Reporte
Impresora
Publicar Estado
Administrador de Proyecto
Servidor del
Generar Sitio Web
proyecto web
casos de uso que la extienden, así que no se pueden implicar a los actores de la
base de casos de uso en sus secuencias del comportamiento. Por ejemplo, la
actividad de registro de casos de uso en la Figura 5-6 no tiene ningún
791H
2008/06/18 126/195
Cimat © Guía Metodológica de UML – v. 1.2
6.1 Componentes
Como se menciono en el Capitulo 3, un componente es una parte del sistema que
existe cuando este se esta ejecutando. Por ejemplo, el sistema de administración
de proyectos puede ser descompuesto en los siguientes componentes:
2008/06/18 127/195
Cimat © Guía Metodológica de UML – v. 1.2
• Un componente de datos
o Para implementar funcionalidad del almacenamiento de los datos.
• Un componente de seguridad
o Provee varias formas de funciones de seguridad para los procesos
de negocio y componentes de los datos, incluyendo autentificación
de usuario y verificación de privilegios a la hora de acceder los
datos.
Datos Seguridad
2008/06/18 128/195
Cimat © Guía Metodológica de UML – v. 1.2
ClienteServidor:
Interfaz de Usuario
DatosEmpresariales:
Datos
: Seguridad
DatosLocales : Datos
2008/06/18 129/195
Cimat © Guía Metodológica de UML – v. 1.2
6.2 Nodos
Un nodo es un recurso que esta disponible durante el tiempo de ejecución. (Los
nodos fueron mencionados en el Capitulo 3). Tradicionalmente, los nodos se
refieren a las computadoras en una red, pero en UML un nodo puede ser una
computadora, impresora, servidor, Internet u otro tipo de recurso disponible. Por
ejemplo, el sistema de administración de proyectos puede desplegar los siguientes
nodos:
• Una impresora
o La cual usa el sistema de administración de proyectos para imprimir
reportes
2008/06/18 130/195
Cimat © Guía Metodológica de UML – v. 1.2
Una instancia de nodo es similar una clase de nodo pero esta etiquetada con el
nombre de la instancia seguido de dos puntos seguidos por el nombre de la clase
del nodo y completamente subrayadas. Ambos nombres son opcionales, y los dos
puntos se colocan solo si el nombre de la clase esta especificado.
La Figura 6-17 muestra varias instancias de nodos de las clases del nodo en la
79H
Figura 6-16, incluyendo dos instancias del nodo de una computadora personal,
798H
2008/06/18 131/195
Cimat © Guía Metodológica de UML – v. 1.2
6.3 Dependencias
La Figura 6-14 muestra componentes asociados con el sistema de administración
79H
Una dependencia residente se muestra como una flecha punteada desde el cliente
hasta el elemento proveedor marcado con la palabra clave reside. La Figura 6-18
801H
2008/06/18 132/195
Cimat © Guía Metodológica de UML – v. 1.2
«reside»
«reside»
2008/06/18 133/195
Cimat © Guía Metodológica de UML – v. 1.2
Datos
Note que el paquete de Utilidades reside en todos los componentes en las Figura 806H
6-18, Figura 6-19, y Figura 6-20, porque cada componente descrito en esas
807H 80H
figuras tiene un paquete que usa el paquete de Utilidades. Los detalles del
paquete de Utilidades son discutidos en el Capitulo 3.
2008/06/18 134/195
Cimat © Guía Metodológica de UML – v. 1.2
«deploy»
Computadora
Interfaz de Usuario
Personal
2008/06/18 135/195
Cimat © Guía Metodológica de UML – v. 1.2
IProducible
IConsumible
del Negocio tiene una asociación de la comunicación con los nodos de una
Computadora Personal, Impresora, y del servidor de Base de Datos.
2008/06/18 136/195
Cimat © Guía Metodológica de UML – v. 1.2
La Figura 6-26 combina la Figura 6-21 y la Figura 6-25 para mostrar como los
815H 816H 817H
componentes están relacionados a los nodos. Note que si dos componentes están
relacionados y residen en nodos distintos, los nodos deben tener una asociación
de comunicación entre ellos para permitir la comunicación de los componentes, de
otra forma, los componentes no están habilitados para comunicar y estar
relacionado con otros. Por ejemplo, si la asociación de comunicación entre el nodo
de la Computadora Personal y los nodos del servidor Procesos del Negocio
fuesen removidos, el componente de Interfaz de Usuario podría no estar
relacionada con la interfaz IProcesosDelNegocio y el componente de Seguridad.
Si la asociación de comunicación entre los nodos del servidor Procesos del
Negocio y del servidor Base de Datos fuesen removidos, el componente Datos no
podría estar relacionado al componente de Seguridad, y el componente Procesos
del Negocio no podría estar relacionado con las interfaces IProducible e
IConsumible.
2008/06/18 137/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 138/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 139/195
Cimat © Guía Metodológica de UML – v. 1.2
7.1 Roles
Según lo discutido en el Capítulo 3, el paradigma orientado a objetos ve el mundo
como una colección única de elementos (objetos, clases, subsistemas, etc.),
frecuentemente se refiere a ellos como una sociedad de objetos, que se
comunican el uno con el otro. La comunicación de un elemento emisor a un
elemento receptor es utilizada para trasmitir información o para solicitar un
proceso. La palabra “objetos” es utilizada en la frase “sociedad de objetos”, en
lugar de “clases”, “subsistemas” o cualquier otra palabra, porque los objetos son
las partes más fundamentales o primitivas del paradigma orientado a objetos. Es
también común usar la frase “sociedad de elementos”.
Note como todos los actores y el sistema están se ven envueltos en esta
descripción. La descripción indica que el sistema generará un reporte, pero no
menciona cómo.
2008/06/18 140/195
Cimat © Guía Metodológica de UML – v. 1.2
Figura 7-2 muestra que una organización puede ejecutar varios proyectos. Un
820H
Organización Proyecto
1 Ejecutar *
Fuente: Sinan Si Alhir, 2003
Como las clases en la Figura 7-2 pueden interactuar y colaborar con otras clases
821H
• Iniciador
o Interpretado por un administrador del proyecto; responsable de
iniciar el caso de uso.
• Dispositivo de Salida
o Interpretado por la impresora; responsable de imprimir el reporte
generado.
• El Proyecto
o Interpretado por un objeto de la clase Proyecto, tema del reporte.
2008/06/18 141/195
Cimat © Guía Metodológica de UML – v. 1.2
1. El rol del iniciador ingresa el nombre del proyecto para que el reporte sea
generado y envía esta información al sistema.
2008/06/18 142/195
Cimat © Guía Metodológica de UML – v. 1.2
Note como todos los roles y otros elementos se involucran en esta descripción. La
descripción elabora un caso de uso Generar el Reporte del Estado del Proyecto e
indica como el sistema genera el reporte:
2008/06/18 143/195
Cimat © Guía Metodológica de UML – v. 1.2
Para mostrar que los objetos de una clase conforman un rol de la clase, una línea
punteada se dibuja desde el símbolo de la interacción y la colaboración hacia la
clase, etiquetada con el nombre del rol del objeto de la clase que juega dentro de
la interacción y la colaboración. Por ejemplo, Figura 7-4 un diagrama que usa los 824H
Figura 7-3 para mostrar los roles de las clases iniciador, dispositivo de Salida y
826H
/ Iniciador: Administrador del Proyecto Generar el Reporte del Estado del / Dispositivo de salida : Impresora
Proyecto
Además, la Figura 7-4 muestra dos métodos para identificar un rol. El primer
827H
método involucra etiquetar la línea punteada para indicar que los objetos de la
clase conforman un rol. También se muestra una clase usando la notación para
las clases definida en el Capítulo 4, pero con el nombre de la clase es precedida
2008/06/18 144/195
Cimat © Guía Metodológica de UML – v. 1.2
por una diagonal inversa seguida del nombre del rol separados por dos puntos por
ejemplo, / Organización del proyecto : Organización. La diagonal inversa indica
que el nombre es el nombre de un rol. Que va seguido de dos puntos y,
finalmente, el nombre de la clase, que en este caso es Organización. Usualmente,
se usa alguno de estos métodos.
Para mostrar que un objeto específico de una clase conforma el rol de la clase,
una línea punteada es dibujada desde el símbolo de interacción y colaboración
hacia el objeto, etiquetado con el rol del objeto específico de la clase que participa
dentro de la interacción y colaboración. Como con una clase, más que etiquetar la
línea punteada, se puede denotar a un objeto usando la notación definida en el
Capítulo 4, pero el nombre del objeto es seguido de una diagonal inversa y del
nombre del rol, posteriormente se escriben dos puntos seguidos del nombre de la
clase y todo lo anterior subrayado.
Por ejemplo, la Figura 7-5, un diagrama que usa los elementos de los diagramas
82H
de caso de uso y objeto, puesta que Juan interpreta el rol del iniciador, la
impresora de Juan interpreta el rol de dispositivo de salida y la organización de
Juan interpreta el rol de una organización que contiene el proyecto que es el tema
para el reporte.
Figura 7-5. Interacción y colaboración usan objetos
Juan / Iniciador: Generar el Reporte del Estado del Impresora de Juan / Dispositivo
Administrador del Proyecto Proyecto de salida : Impresora
2008/06/18 145/195
Cimat © Guía Metodológica de UML – v. 1.2
inversa seguida del nombre del role y separados por dos puntos.
Por ejemplo, la Figura 7-6 actualiza la Figura 7-4 y muestra que la Referencia del
830H 831H
inversa seguida del rol separados por dos puntos. Recuerde del Capítulo 4, que un
vínculo puede tener el nombre de su asociación mostrada cerca de la trayectoria y
subrayada, pero el vínculo no tiene el nombre de la instancia.
Por ejemplo, la Figura 7-7 actualiza la Figura 7-5 y muestra el rol del vínculo
83H 834H
2008/06/18 146/195
Cimat © Guía Metodológica de UML – v. 1.2
7-4 y la Figura 7-6 muestran que los roles de las clases intercambian mensajes
840H
por medio de un rol de asociación, la Figura 7-5 y la Figura 7-7 muestra que los
841H 842H
objetos juegan los roles de las clases que intercambian estímulos por medio de
vínculos que juegan roles de asociación. Según lo discutido en el Capítulo 3, en el
paradigma orientado a objetos, la comunicación de un emisor a un receptor es se
usa para trasportar información o solicitar un proceso.
2008/06/18 147/195
Cimat © Guía Metodológica de UML – v. 1.2
Se puede representar una interacción usando alguna de las dos formas siguientes:
Repetición
• Involucra repetir de una serie de mensajes o estímulos,
por ejemplo repetir el conjunto de mensajes o estímulos
en los pasos 6a y 6b en la descripción de la interacción
y colaboración que genera un reporte del estado del
proyecto.
Condicionar
• Involucra realizar la comunicación de una serie de
mensajes o estímulos en lugar de otros mensajes o
estímulos, por ejemplo condicionar la ejecución de los
pasos 5 o 6 en la descripción de la interacción y
colaboración que genera un reporte del estado del
proyecto.
Se puede representar una colaboración usando uno de los dos niveles siguientes:
2008/06/18 148/195
Cimat © Guía Metodológica de UML – v. 1.2
7.4.1 Elementos
Los diagramas de secuencia están constituidos por un numero de elementos,
incluyendo los roles de las clases, los objetos, las líneas de vida y las
activaciones. Todos ellos se describen a continuación en los apartados siguientes.
Los roles de clase y otras clases son usadas para expresar el nivel de
especificación de la colaboración usando diagramas de secuencia. La Figura 7-8 843H
muestra el rol de la clase Organización del proyecto así como también las clases
Proyecto e Reporte.
Figura 7-8. Un rol de clase y dos clases
/ Organización del proyecto : Proyecto Reporte
Organización
2008/06/18 149/195
Cimat © Guía Metodológica de UML – v. 1.2
Los objetos específicos que conforman los roles de clase y otras objetos son
usados para expresar un nivel de instancia de colaboración usando diagramas de
secuencia. La Figura 7-9 muestra que la organización de Juan interpreta el rol de
84H
una organización que contiene el proyecto que es el tema del reporte. La Figura 845H
muestra las líneas de vida para los roles de clase (Organización del proyecto) y las
clases (Proyecto e Reporte) en la Figura 7-8. Las líneas de vida también se
847H
7.4.1.4 Activaciones
Una activación opcional, representada por un rectángulo delgado y alargado sobre
la línea de vida, representa el periodo en el que un elemento ejecuta una
operación. El borde superior se alinea con el tiempo de inicialización y el borde
superior con el tiempo de culminación. La Figura 7-11 muestra las activaciones
849H
2008/06/18 150/195
Cimat © Guía Metodológica de UML – v. 1.2
para los roles de clase de la Figura 7-8, donde todos los elementos están
850H
7.4.2 Comunicación
En un diagrama de secuencia, una comunicación, mensaje o estímulo es
representada por una flecha que va desde la línea de vida o activación de un
emisor a la línea de vida o activación de un receptor. En UML, la comunicación se
describe usando la siguiente sintaxis:
En donde:
guardián
• Es opcional e indica una condición que se debe satisfacer para la
comunicación sea enviada u ocurra. Se también se omiten los
corchetes cuando no se específica un guardián.
iteración
• Es opcional e indica el número de veces que la comunicación ocurre
o es enviada. También se omiten el asterisco y los corchetes cuando
no se específica una iteración.
número_de_secuencias
• Es un número entero opcional, que indica el orden de la
comunicación. También se omiten los dos puntos cuando no se
específica un número de secuencia. Debido a que el eje vertical
2008/06/18 151/195
Cimat © Guía Metodológica de UML – v. 1.2
variable_devuelta
• Es opcional e indica el nombre del valor regresado por la operación.
Si se elije no mostrar la variable de retorno, o la operación no
regresa ningún valor, también se deben omitir los dos puntos y el
signo de igual.
nombre_de_la_operación
• Es el nombre de la operación que será invocada.
lista_de_argumentos
• Es opcional y es una lista separada por comas que indica los
argumentos pasados a la operación. Cada parámetro puede ser
explícitamente un valor o una variable devuelta de una comunicación
previa. Si una comunicación no requiere de argumentos, los
paréntesis van vacíos.
Generar el Reporte del Estado del Proyecto, que es una clase (quien es
responsable de manejar la generación total del reporte del estado del proyecto) y
el rol de clase Organización del proyecto.
DarFormatoInfoTrabajador
2008/06/18 152/195
Cimat © Guía Metodológica de UML – v. 1.2
Esta operación requiere de las unidades de trabajo y los productos de trabajo, así
que actualizaremos la comunicación como sigue:
Finalmente, esta operación ocurre solo si el proyecto esta activo y se indica esto
con una notación de una condición guardián:
2008/06/18 153/195
Cimat © Guía Metodológica de UML – v. 1.2
GenerarProyecto-Manejador
DelEstadoDelReporte
2008/06/18 154/195
Cimat © Guía Metodológica de UML – v. 1.2
GenerarProyecto-Manejador
DelEstadoDelReporte
1: Crear() Reporte
2: Destruir()
7.4.3 Repetición
En un diagrama de secuencia, una repetición (que involucra repetir una serie de
mensajes o estímulos) en la forma general de una interacción es mostrada como
una serie de comunicaciones encerradas en un rectángulo.
Una iteración puede estar en la parte superior o inferior dentro del rectángulo
indicando el número de veces que las comunicaciones dentro del rectángulo
deben ocurrir. La Figura 7-15 muestra el paso 6b de la descripción para la
856H
interacción y colaboración Generar el Reporte del Estado del Proyecto usando una
iteración en la que el la clase encargada de generar el reporte, recupera la
información de la unidades de trabajo y los productos de trabajo, da formato a esta
información y la información formateada es enviada al elemento reporte. Note el
uso de *[Para cada trabajador] en la parte superior izquierda, que indica que la
comunicación ocurrirá por cada trabajador involucrado dentro del proyecto.
2008/06/18 155/195
Cimat © Guía Metodológica de UML – v. 1.2
2: ProductosDeTrabajo : =
ObtenerProductosDeTrabajo()
usando una condición guardián para expresar la misma iteración que en la Figura 859H
7-15. Más que especificar una repetición de una serie de comunicaciones para
cada trabajador, la condición guardián específica que las comunicaciones serán
repetidas mientras no haya más trabajadores para procesar.
Figura 7-16. Diagrama de Secuencia que usa una condición guardián en la forma
general de una interacción.
1: UnidadesDeTrabajo : =
ObtenerUnidadesDeTrabajo()
2: ProductoDeTrabajo : =
ObtenerProductosDeTrabajo()
4: Salida(DatoDeSalida)
2008/06/18 156/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 157/195
Cimat © Guía Metodológica de UML – v. 1.2
1: UnidadesDeTrabajo : =
ObtenerUnidadesDeTrabajo()
Manejador Primer
Trabajador 2: UnidadesDeTrabajo : =
ObtenerUnidadesDeTrabajo()
3: ProductoDeTrabajo : =
ObtenerProductosDeTrabajo()
5: Salida(DatoDeSalida)
6: UnidadesDeTrabajo : =
ObtenerUnidadesDeTrabajo()
Manejador Segundo
Trabajador 7: UnidadesDeTrabajo : =
ObtenerUnidadesDeTrabajo()
8: ProductoDeTrabajo : =
ObtenerProductosDeTrabajo()
10: Salida(DatoDeSalida)
11: UnidadesDeTrabajo : =
ObtenerUnidadesDeTrabajo()
Manejador Tercer 12: UnidadesDeTrabajo : =
Trabajador ObtenerUnidadesDeTrabajo()
13: ProductoDeTrabajo : =
ObtenerProductosDeTrabajo()
15: Salida(DatoDeSalida)
2008/06/18 158/195
Cimat © Guía Metodológica de UML – v. 1.2
7.4.4 Condicionamientos
En un diagrama de secuencia, el condicionar (involucra repetir de una serie de
mensajes o estímulos en lugar de otra serie de mensajes o estímulos) en una
forma general de una interacción es representada como varias comunicaciones
desde la línea de vida o activación que tienen mutuamente expresiones guardián.
Una línea de vida se puede partir también en dos o más líneas de vida para
mostrar como un elemento puede manejar comunicaciones entrantes múltiples, y
las líneas de vida se combinarían nuevamente.
3: Trabajadores : = ObtenerTrabajadores( )
2008/06/18 159/195
Cimat © Guía Metodológica de UML – v. 1.2
1: GenerarReporte( )
2: Trabajadores : = ObtenerTrabajadores( )
7.5.1 Elementos
Los diagramas de colaboración están integrados de un número de elementos,
incluyendo los roles de clase, los objetos específicos, los roles de asociación y los
vínculos específicos. Todos estos elementos se describen en los siguientes
apartados.
2008/06/18 160/195
Cimat © Guía Metodológica de UML – v. 1.2
Los roles de clase y asociación, otras clases y otras asociaciones son usadas en
el nivel de especificación de las colaboraciones expresadas utilizando diagramas
de colaboración. La Figura 7-20 muestra el rol de clase de la Figura 7-8 con un rol
86H 867H
Reporte Sección
* Tiene *
Los objetos específicos conforman los roles de clase, los vínculos específicos
conforman los roles de asociación, y los vínculos específicos son usados en el
nivel de la instancia de colaboración expresado usando diagramas de
colaboración. La Figura 7-21 muestra los objetos de la Figura 7-9 con un vínculo
86H 869H
Referencia del proyecto, un objeto Reporte anónimo conformado por los objetos
Introducción, Cuerpo, y Conclusión, y sus tres vínculos Tiene.
2008/06/18 161/195
Cimat © Guía Metodológica de UML – v. 1.2
Tiene
Conclusión : Sección
: Reporte
Tiene
Tiene
7.5.2 Comunicación
En un diagrama de colaboración, una comunicación, un mensaje o un estímulo es
representada con una fecha para una relación desde un emisor hacia un receptor.
Una comunicación es etiquetada usando la misma notación que en los diagramas
de secuencia, pero el número de secuencia es requerido y expresado usando un
esquema numerado especial conocido como notación dot o de punto decimal, que
se usa entre los diferentes niveles de comunicación. Por ejemplo, entre el
elemento A y el B, la comunicación 1 es seguida de la comunicación 2; entre el
elemento B y C, la comunicación 1,1 es seguida de la 1.2; y toda la secuencia de
comunicación es 1, 1.1, 1.2 y 2.
2008/06/18 162/195
Cimat © Guía Metodológica de UML – v. 1.2
7.5.3 Repetición
En un diagrama de colaboración, una repetición (que involucra repetir una serie de
mensajes o estímulos) en la forma general de una interacción es representada
como una propiedad. Las propiedades se discutieron en el Capítulo 3.
Una iteración indica el numero de veces que las comunicaciones se deben realizar
y deben ir encerradas entre llaves ({}) y unir las comunicaciones usando líneas
punteadas. La Figura 7-25, similar a la Figura 7-15 pero usando un diagrama de
876H 87H
2008/06/18 163/195
Cimat © Guía Metodológica de UML – v. 1.2
1: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
2: ProductoDeTrabajo : = ObtenerProductosDeTrabajo() Proyecto
Reporte
4: Salida(DatoDeSalida)
7-16 pero usando un diagrama de colaboración, usa una condición guardián para
mostrar la misma información que la Figura 7-25. 80H
1: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
2: ProductoDeTrabajo : = ObtenerProductosDeTrabajo() Proyecto
Reporte
4: Salida(DatoDeSalida)
2008/06/18 164/195
Cimat © Guía Metodológica de UML – v. 1.2
información que la Figura 7-25 y la Figura 7-26 para un proyecto que contiene
83H 84H
Note que la Figura 7-27 puede ser de mas difícil lectura que la Figura 7-17. Para
85H 86H
1: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
2: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
3: ProductoDeTrabajo : = ObtenerProductosDeTrabajo()
6: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
7: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
8: ProductoDeTrabajo : = ObtenerProductosDeTrabajo()
11: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
12: UnidadesDeTrabajo : = ObtenerUnidadesDeTrabajo()
13: ProductoDeTrabajo : = ObtenerProductosDeTrabajo()
Reporte
5: Salida(DatoDeSalida)
10: Salida(DatoDeSalida)
15: Salida(DatoDeSalida) Proyecto
7.5.4 Condicionar
En un diagrama de colaboración, condicionar – que in Involucra realizar la
comunicación de una serie de mensajes o estímulos en lugar de otros mensajes o
estímulos- en la forma general de una interacción es representada usando la
notación de punto decimal en donde la comunicación de un nivel específico indica
que la condición guardián se debe satisfacer para que el siguiente nivel de
comunicación ocurra. Por ejemplo, entre los elementos A y B, la comunicación 1
puede contener una condición y estar seguida de la comunicación 2. La
comunicación 1 de A hacia B puede disparar las comunicaciones 1.1 y 1.2 entre B
2008/06/18 165/195
Cimat © Guía Metodológica de UML – v. 1.2
GenerarProyecto-Manejador
DelEstadoDelReporte
Proyecto
3: Trabajadores : = ObtenerTrabajador( )
2008/06/18 166/195
Cimat © Guía Metodológica de UML – v. 1.2
1: GenerarReporte( )
/ Organización del proyecto :
Organización
GenerarProyecto-Manejador
DelEstadoDelReporte
Proyecto
2: Trabajadores := ObtenerTrabajadores( )
8 Diagramas de Estado
Este capítulo se enfoca en los diagramas de estado, también conocidos como
diagramas de transición de estado, los cuales representan el ciclo de vida de los
elementos que conforman un sistema. Primero se hará una introducción a los
diagramas de estado y como son usados. Después se pasará a los estados y sus
detalles. Finalmente se discutirá sobre las transiciones entre los estados y sus
detalles. Muchos detalles de los diagramas de estado que no fueron profundizados
en el capítulo 3 son completamente cubiertos aquí y a través de éste capítulo, se
incluyen sugerencias relacionadas con los diagramas de estado.
8.1 Estados
Como se discutió en el capítulo 3, como los elementos se comunican unos con
otros dentro de una sociedad de objetos, cada elemento tiene un ciclo de vida en
el cual éste es creado, sabe algo, puede hacer algo, se puede comunicar con
otros elementos para pedir procesamiento de esos otros elementos, pueden otros
elementos tener comunicación con éste para pedir procesamiento de él y su
destrucción. Un estado es una condición o situación específica de un elemento
durante su ciclo de vida. Defina los estados para sus elementos. El estado actual
2008/06/18 167/195
Cimat © Guía Metodológica de UML – v. 1.2
• Inactivo
o Indica que el sistema de administración de proyectos no está
disponible para sus usuarios porque no esta iniciado o ha sido
apagado.
• Activo
o Indica que el sistema de administración de proyectos ha sido iniciado
y está disponible para sus usuarios.
• Suspendido
o Indica que el sistema de administración de proyectos ha encontrado
algún error severo, quizás porque está corriendo lento un dispositivo
de almacenamiento secundario y requiere la intervención del usuario
antes de convertirse activo otra vez.
2008/06/18 168/195
Cimat © Guía Metodológica de UML – v. 1.2
final. Un diagrama de estado debe tener un solo estado inicial pero puede tener
cualquier número de estados finales.
8.2 Transiciones
Dados los estados de un elemento ¿como se relacionan estos estados con otros
estados? las transiciones responden a esta pregunta. Como se discutió en el
capítulo 3, las transiciones entre estados ocurren como a continuación se muestra:
2. Un evento ocurre.
2008/06/18 169/195
Cimat © Guía Metodológica de UML – v. 1.2
8.2.1 Eventos
Un evento es una ocurrencia, incluyendo la recepción de una petición. Por
ejemplo, el sistema de administración de proyectos podría responder a los
siguientes eventos:
• Iniciar.
o Indica que el sistema de administración de proyectos se volvería
activo si éste esta inactivo.
• Cerrarse.
o Indica que el sistema de administración de proyectos se volvería
inactivo si éste está activo.
• Error severo.
o Indica que el sistema de administración de proyectos ha encontrado
un error severo, quizás esté ejecutándose en segundo plano, y será
suspendido si está activo.
• Reiniciar
o Indica que el sistema de administración de proyectos se volverá
activo si éste está suspendido.
en la cual:
• nombre_del_evento
o Es el nombre del evento. Un evento usualmente tiene el mismo
nombre como una operación del elemento al cual el diagrama de
estado pertenece; por consiguiente cuando el elemento recibe el
evento, esa operación es invocada.
• lista_de_parámetros
o Es opcional, y es una lista separada por comas que indica los
parámetros pasados al evento. Cada parámetro podría ser un valor
explícito o una variable. Los paréntesis no son usados cuando el
evento no requiere ningún parámetro.
• guardia
o Es opcional e indica una condición que debe satisfacer la transición
que se dispara o que ocurre. Los corchetes no son mostrados
cuando un guardia no es especificado.
2008/06/18 170/195
Cimat © Guía Metodológica de UML – v. 1.2
Iniciar
Iniciar (Idusuario)
Apagar (IdUsuario) [Puede apagarse el sistema] Iniciar (IdUsuario) [Suficiente memoria disponible]
Activo
Suspendido
La Figura 8-3 también muestra una transición originada desde el estado inicial
896H
etiquetada con el evento que crea una instancia del sistema de administración de
proyectos y una transición al estado final etiquetada con el evento que destruye
una instancia del sistema de administración del proyecto. Finalmente la Figura 8-3. 897H
2008/06/18 171/195
Cimat © Guía Metodológica de UML – v. 1.2
8.2.2 Acciones
Una acción representa procesamiento. Por ejemplo el sistema de administración
de proyectos podría responder a eventos con las siguientes acciones:
• RegistrarMensaje
o Indica que el sistema de administración de proyectos registrará un
mensaje en el historial. Este archivo es utilizado para registrar el
procesamiento del sistema de administración de sistema y puede ser
usado para diagnosticar problemas y algunas cosas más.
• obtenerFechaYHora
o Indica que el sistema operativo regresa la fecha y el tiempo actual
del sistema operativo.
variable_de_regreso := elemento_destino.nombre_de_la_acción
(lista_de_argumentos)
en la cual:
• variable_de_regreso
o Es opcional e indica un nombre para el valor regresado por la acción
al ser invocada como respuesta al evento. Si se escoge no mostrar
una variable de retorno o la acción no regresa un valor, se debe
omitir los dos puntos y el signo de igual.
• elemento_destino
o Es el nombre del elemento que realizará la acción. Si el mismo
elemento que recibe el evento realizará la acción, el elemento
objetivo no es mostrado y se debe omitir el punto.
• nombre_de_la_acción
o Es el nombre de la acción. Una acción usualmente tiene el mismo
nombre que el de una operación del elemento al cual el diagrama de
estado pertenece, o como una operación del elemento destino si uno
es especificado, por consiguiente, cuando la acción es invocada, el
elemento recibe el evento y la operación es invocada.
• lista_de_argumentos
2008/06/18 172/195
Cimat © Guía Metodológica de UML – v. 1.2
SO.obtenerFechaYHora (ZonaHoraria)
Si esta acción regresa algún dato de salida (la fecha y hora actual), se puede
actualizar la acción como sigue:
DT := obtenerFechaYHora (ZonaHoraria)
muestra las eventos y acciones para las transiciones entre los estados Activo e
Inactivo. También se puede ver el registro de un mensaje usando la acción
RegistrarMensaje cuando el sistema es cerrado, y se puede ver que el evento
Iniciar desencadenando la recuperación de la fecha y la hora usando la acción
obtenerFechaYHora del objeto SO, el cual representa el sistema operativo.
Apagar (IdUsuario) [Puede apagarse el sistema] Iniciar (IdUsuario) [Suficiente memoria disponible]
/ RegistrarMensage(Idusuario, “Apagar”) / DT := OS.ObtieneFechaYTiempo (ZonaHorario)
Activo
Suspendido
2008/06/18 173/195
Cimat © Guía Metodológica de UML – v. 1.2
otros elementos dentro de éste tienen sus propios estados. Por ejemplo, dentro
del estado Activo del sistema de administración de proyectos, cada objeto y
subsistema tiene su propio estado, y el diagrama de estado para cada elemento
podría ser mostrado dentro del estado Activo del sistema de administración de
proyectos o usando el diagrama de estado propio del elemento. Esta naturaleza
recursiva de los diagramas de estado es muy poderosa, porque permite aprender
la notación básica de diagramas de estado y reaplicarla para anidar diagramas de
estado sin tener que aprender más notación.
• entrada
o Indica la acción a ser realizada cuando el elemento entra al estado.
• salida
o Indica la acción a ser realizada cuando el elemento sale del estado.
• hacer
o Indica la acción a realizar continuamente mientras el elemento está
dentro del estado.
al estado Activo, los diagramas de estado anidados tienen cada uno un estado
actual.
2008/06/18 174/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 175/195
Cimat © Guía Metodológica de UML – v. 1.2
saliente, todos los diagramas de estado anidados son forzados a salir. La Figura
903H
9 Diagramas de Actividad
Este capítulo se centra en los diagramas de actividad, que representan las
actividades y las responsabilidades de los elementos que hacen funcionar un
sistema. Primero, se introducen los diagramas de actividad y cómo se utilizan.
Después, se discuten los estados de acción y sus detalles. Finalmente, se pasa a
los flujos y sus detalles. Muchos detalles de los diagramas de actividad que no
eran fleshed out en el Capítulo 3 se elaboran más completamente aquí, y a través
26H
9.1 Estados
Según lo discutido en el Capítulo 3, como los elementos se comunican los unos
264H
con los otros dentro de una sociedad de objetos, cada elemento tiene la
responsabilidad apropiada de reaccionar a las comunicaciones que recibe. Un
estado de acción representa el proceso mientras que un elemento satisface una
responsabilidad. Hay varios tipos de estados de acción, incluyendo estados de
acción simple, inicial, y final. Las secciones próximas discuten estos diversos
tipos de estados de acción.
2008/06/18 176/195
Cimat © Guía Metodológica de UML – v. 1.2
En el UML, un estado de acción se muestra con forma de una tapa recta y arcos
inferiores y convexos en los dos lados, y se etiqueta con el nombre de una
operación o de una descripción del proceso. La Figura 9.1 demuestra los diversos
904H
El Sistema de Administración de
Proyectos Genera el Reporte
La Impresora Imprime el
Reporte
9.2 actualiza la Figura 9.1 con un estado de acción inicial y final. Un diagrama de
906H
actividad puede tener solamente un estado de acción inicial, pero puede tener
cualquier número de los estados de acción final.
2008/06/18 177/195
Cimat © Guía Metodológica de UML – v. 1.2
El Administrador de Proyecto
Ingresa los Criterios del Reporte
El Sistema de Administración de
Proyectos Genera el Reporte
2008/06/18 178/195
Cimat © Guía Metodológica de UML – v. 1.2
El Administrador de Proyecto
Ingresa los Criterios del Reporte
La Impresora Imprime el
Reporte
La Figura 9.3 también muestra una transición de flujo-de-control que origina del
908H
estado inicial para indicar el primer estado de acción, y una transición al estado
final para indicar el ultimo estado de acción.
2008/06/18 179/195
Cimat © Guía Metodológica de UML – v. 1.2
Note los nuevos nombres para los estados de acción en la Figura 9.4 con respecto
91H
la Figura 9.3. En la Figura 9.3, los nombres del estado de acción transportaron
912H 913H
una cierta idea de las entradas y de las salidas de cada estado. La Figura 9.4 sin
914H
2008/06/18 180/195
Cimat © Guía Metodológica de UML – v. 1.2
El Administrador de Proyecto
Ingresa los Criterios del Report e
La Impresora Imprime el
Reporte Reporte
Una transición de flujo-de-control puede ser omitida cuando una transición de flujo-
de-objeto indica el orden de los estados de acción; es decir, cuando un estado de
acción produce una salida que se convierte en la entrada del subsiguiente estado
de acción, la transición de un flujo-de-objeto implica una transición de flujo-de-
control y por lo que una transición flujo-de-control no es necesaria. La Figura 9.5915H
2008/06/18 181/195
Cimat © Guía Metodológica de UML – v. 1.2
El Administrador de Proyecto
Ingresa los Criterios del Reporte
9.3 Swimlanes
Según lo discutido en el capítulo 3, un swimlane es una región visual en un
diagrama de actividad que señala el elemento que tiene responsabilidad de los
estados de acción dentro de la región. Por ejemplo, el sistema de administración
de proyectos puede tener los siguientes swimlanes, que se ilustran en la Figura 917H
9.6:
• Impresora
2008/06/18 182/195
Cimat © Guía Metodológica de UML – v. 1.2
Ingresar los
Datos
CriterioDel Generar la
Reporte Informacion
9.4 Decisiones
Una decisión implica el seleccionar una transición de flujo-de-control de muchas
transiciones de flujo-de-control basadas sobre una condición. Por ejemplo, una
vez que un informe sea impreso por el sistema de administración de proyectos,
otros informes pueden ser seleccionados y ser impresos si el administrador del
proyecto elige imprimir más reportes.
2008/06/18 183/195
Cimat © Guía Metodológica de UML – v. 1.2
informe, el administrador del proyecto puede elegir imprimir más informes. Note
que porque la forma del diamante está en el swimlane del administrador del
proyecto, el administrador del proyecto es responsable de tomar la decisión.
Administrador del Proyecto S istema de Admi ni str acion de Pr oye ctos Im pr esor a
CriterioDel Generar la
Reporte Informacion
9.5 Concurrencia
La concurrencia implica el seleccionar múltiples transiciones simultáneamente.
Por ejemplo, mientras que la impresora está imprimiendo un reporte, la impresora
debe también supervisar el control para otras peticiones de impresión entrantes.
2008/06/18 184/195
Cimat © Guía Metodológica de UML – v. 1.2
Generar la
CriterioDel
Informacion
Reporte
2008/06/18 185/195
Cimat © Guía Metodológica de UML – v. 1.2
2008/06/18 186/195
Cimat © Guía Metodológica de UML – v. 1.2
Dentro de este esquema, como cada capa tiene elementos más específicos en
concreto, la frase "meta" es disminuida y el número de capa decrece.
2008/06/18 187/195
Cimat © Guía Metodológica de UML – v. 1.2
10.2 Estereotipos
Un estereotipo define un nuevo tipo de elemento de modelado en UML. Use
estereotipos para definir un nuevo tipo de elemento de modelado y después
2008/06/18 188/195
Cimat © Guía Metodológica de UML – v. 1.2
<<metaclase>> <<metaclase>>
Clase Asociacion
<<estereotipo>> <<estereotipo>>
<<estereotipo>> <<estereotipo>>
Projecto Hecho de
2008/06/18 189/195
Cimat © Guía Metodológica de UML – v. 1.2
<<Proyecto>> <<Proyecto>>
Projecto de Desarrollo Proyecto de Infraestructura
Figura 10-1, junto con las clases y las asociaciones definidas en la Figura 10-2, y
925H 926H
2008/06/18 190/195
Cimat © Guía Metodológica de UML – v. 1.2
<<Proyecto>> <<Proyecto>>
SistAdmonProy: Java Deployment:
Deployment de Java:
Proyecto de Desarrollo Proyecto
Proyecto de
de Infraestructura
Infraestructura
EntDesJava:
EntDesJava: Entorno
Unix:Unix:
Entorno
Entorno de
de Desarrollo
Desarrollo Entorno
Enternode
deDeployment
Desarrollo
10.3 Propiedades
Una propiedad es una característica del elemento de un modelo. Se usan
características para definir cualidades y las reglas para un tipo de elemento dado
del modelado. Por ejemplo, las características pueden definir lo siguiente:
cualidades que representan las fechas de inicio y de fin de un proyecto, una
descripción textual específica de la relación entre un proyecto y las cosas que se
integran el proyecto, y una regla que la fecha de inicio debe anteceder a la fecha
de fin.
10.3.1 Etiquetas(Tags)
Una etiqueta es un atributo de un elemento del modelo y de su valor
correspondiente -- por ejemplo, los atributos representan de las fechas de inicio y
de fin de un proyecto.
2008/06/18 191/195
Cimat © Guía Metodológica de UML – v. 1.2
Por ejemplo, la Figura 10-4 actualiza la Figura 10-1 y muestra una etiqueta
927H 928H
<<metaclase>> <<metaclase>>
Clase Asociacion
<<estereotipo>> <<estereotipo>>
<<estereotipo>> <<estereotipo>>
Projecto Hecho de
{FechaDeInicio: String, {Descripción:String}
FechaDeFin: String }
2008/06/18 192/195
Cimat © Guía Metodológica de UML – v. 1.2
Por ejemplo, la Figura 10-5 actualiza la Figura 10-3 usando las etiquetas en la
92H 930H
Figura 10-4, y muestra que el SistAdmonProy inicia en enero 1 del 2003 y finaliza
931H
<<Proyecto>> <<Proyecto>>
SistAdmonProy: Proyecto Deployment de Java: Proyecto
de Desarrollo de Infraestructura
{FechaDeInicio = "Enero 1, 2003", {FechaDeInicio = "Diciembre 31, 2003",
FechaDeFin = "Diciembre 31, 2003"} FechaDeFin = "Enero 1, 2003"}
10.3.2 Restricciones
Una restricción es una regla para un elemento del modelo -- por ejemplo, una
regla que la fecha de inicio de un proyecto debe anteceder a la fecha de fin del
proyecto. Las reglas definidas para un estereotipo se aplican a cada elemento del
modelo al cual se aplique el estereotipo, y cada elemento del modelo al cual se
aplica el estereotipo debe apegarse a las reglas.
2008/06/18 193/195
Cimat © Guía Metodológica de UML – v. 1.2
lenguaje. Por ejemplo, se puede expresar una restricción usando Java, C++, C #,
u otro lenguaje, ya sea de programación o no.
proyectos:
considera válido. Su fecha de inicio antecede a su fecha de fin. Por otra parte, el
proyecto Deployment de Java descrito en la Figura 10-5 se considera inválido o
937H
<<metaclase>> <<metaclase>>
Clase Asociacion
<<estereotipo>> <<estereotipo>>
<<estereotipo>> <<estereotipo>>
Projecto Hecho de
{FechaDeInicio: String, {Descripción:String,
FechaDeFin: String, La descripción no debe ser
La FechaDeFin debe estar en o después de la FechaDeInicio} una cadena vacía}
10.4 Perfiles
Un perfil es una colección de definiciones para los estereotipos, definiciones para
las etiquetas, y de restricciones relevantes para un dominio específico o propósito.
Por ejemplo, usted puede agrupar los estereotipos Proyecto y Hecho de con sus
definiciones para las etiquetas y las restricciones de este capítulo, en un perfil para
la administración del proyecto. El perfil de la administración del proyecto puede
2008/06/18 194/195
Cimat © Guía Metodológica de UML – v. 1.2
aprender UML, que contendría los diagramas y los elementos del modelo definidos
en este libro. De ese paquete, se ve una dependencia al perfil de la
Administración del Proyecto, que contendría las definiciones para los estereotipos,
las definiciones para las etiquetas y las restricciones usadas para la administración
del proyecto, según lo definido en este capítulo. Los perfiles son paquetes, según
lo discutido en el Capítulo 4, y podemos mostrar su contenido en este diagrama
también.
<<modelo>>
Aprendiendo UML
<<perfil>>
Administración del Proyecto
2008/06/18 195/195