Elementos de Caso de Uso UML
Elementos de Caso de Uso UML
Elementos de Caso de Uso UML
Elementos de
de UML
UML
Elementos de UML
Los diagramas de casos de uso describen las relaciones y las dependencias entre un
grupo de casos de uso y los actores que participan en el proceso.
Es importante tener en cuenta que los diagramas de casos de uso no son apropiados
para representar el diseño y que no pueden describir las interioridades de un sistema.
Los diagramas de casos de uso sirven para facilitar la comunicación con los futuros
usuarios del sistema y con el cliente, y resultan de especial interés para determinar las
funciones que debe poseer el sistema. Los diagramas de casos de uso revelan qué debe
hacer el sistema, pero no (ni pueden especificar) cómo deben hacerlo.
Caso de uso
Un caso de uso describe (desde el punto de vista de los actores) un grupo de actividades
en un sistema que produce un resultado concreto y tangible.
Los casos de uso son descripciones de las interacciones típicas entre los usuarios de un
sistema y el mismo sistema. Representan la interfaz externa del sistema y especifican
una forma de los requisitos que el sistema debe cumplir (recuerde, solo lo que debe
hacer, no cómo debe hacerlo).
Cuando trabaje con casos de uso es importante que recuerde algunas reglas simples:
Cada caso de uso lleva a un resultado relevante (un resultado con «valor de
negocio»)
Los casos de uso también pueden tener relaciones con otros casos de uso. Los tres tipos
más frecuentes de relaciones entre casos de uso son:
<<inclusión>>, que indica que un caso de uso tiene lugar dentro de otro caso de
uso.
Generalización, que indica que un caso de uso hereda las características de otro
«supercaso de uso» y puede redefinir algunas de ellas o añadir otras nuevas de un
modo similar a la herencia entre clases.
Actor
Un actor es una entidad externa (situada fuera del sistema) que interactúa con el sistema
participando en (y a menudo iniciando) un caso de uso. Los actores pueden ser personas
de la vida real (por ejemplo, los usuarios del sistema), sistemas de computadoras o
eventos externos.
Los actores no representan a personas físicas ni a sistemas, sino a su rol. Esto significa
que cuando una persona interactúa con el sistema de formas distintas (asumiendo
diferentes roles), estará representada por varios actores. Por ejemplo, una persona que
da soporte telefónico al cliente e introduce pedidos del cliente en el sistema estaría
representada por un actor «Equipo de apoyo» y un actor «Agente de ventas».
Las descripciones de los casos de uso son narraciones textuales de los mismos. Suelen
adoptar la forma de una nota o de un documento enlazado de algún modo con el caso de
uso y explican los procesos o las actividades que tienen lugar en el caso de uso.
Diagrama de clase
Los diagramas de clase muestran las distintas clases que componen un sistema y cómo
se relacionan entre sí. Se dice que los diagramas de clase son «estáticos» porque
muestran las clases, junto a sus métodos y atributos, así como las relaciones estáticas
entre ellos: qué clases «conocen» a otras clases, o qué clases «son parte» de otra clase,
aunque no muestran las llamadas a los métodos entre ellas.
Clase
Una clase define los atributos y los métodos de un conjunto de objetos. Todos los objetos
de una clase (instancias de la clase) comparten el mismo comportamiento y poseen el
mismo conjunto de atributos (cada objeto tiene su propio conjunto). A veces se usa el
término «tipo» en lugar de «clase», pero es importante tener presente que no son lo
mismo, ya que «tipo» es un término más general.
En UML, las clases se representan por rectángulos con el nombre de la clase, que
pueden mostrar los atributos y las operaciones de la clase en dos «compartimentos»
dentro del rectángulo.
Atributos
En UML, los atributos se muestran como mínimo con su nombre, aunque también
pueden mostrar su tipo, su valor inicial y otras propiedades. Los atributos también se
pueden mostrar con su visibilidad:
Operaciones
Las operaciones (métodos) también se muestran como mínimo con su nombre, aunque
pueden mostrar también sus parámetros y los tipos que devuelven. Las operaciones
pueden, al igual que los atributos, mostrar su visibilidad:
Plantillas
Las clases pueden tener plantillas, un valor que se usa para una clase o un tipo sin
especificar. El tipo de la plantilla se especifica cuando se inicia la clase (es decir, cuando
se crea un objeto). Las plantillas existen en C++ moderno y se introducirán en Java 1.5,
donde se llamarán «genéricas».
Asociaciones de clases
Las clases se pueden relacionar (estar asociadas) con otras de diferentes modos:
Generalización
En UML, una asociación de generalización entre dos clases las coloca en una jerarquía
que representa el concepto de herencia de una clase derivada a partir de una clase base.
En UML, las generalizaciones se representan con una línea que conecta las dos clases,
con una flecha en el lado de la clase base.
Representación visual de una generalización en UML
Asociaciones
Las asociaciones son el mecanismo que permite que los objetos se comuniquen entre sí.
Describe la conexión entre diferentes clases (la conexión entre objetos reales se
denomina «conexión de objetos» o enlace).
Las asociaciones pueden tener un rol que indica el propósito de la asociación y pueden
ser unidireccionales o bidireccionales (indica si los dos objetos que participan en la
relación pueden enviar mensajes del uno al otro, o si solo uno de ellos tiene conocimiento
del otro). Cada extremo de la asociación también posee un valor de multiplicidad, que
dicta cuántos objetos a dicho lado de la asociación pueden relacionarse con un objeto del
otro lado.
En UML, las asociaciones se representan con líneas que conectan las clases que
participan en la relación, y que también pueden mostrar el rol y la multiplicidad de cada
uno de los participantes. La multiplicidad se muestra como un intervalo [mín..máx] de
valores no negativos, con una estrella (*) en el extremo máximo para representar el
infinito.
Agregación
Una agregación es un tipo especial de asociación en la que las dos clases participantes
no poseen un estado de igualdad, aunque forman una relación «completa». Una
agregación describe cómo la clase que tiene el papel del todo se compone de otras
clases (las posee), que tienen el papel de las partes. Para las agregaciones, las clases
que actúan como el todo siempre tienen una multiplicidad de uno.
En UML, las agregaciones se representan mediante una asociación que muestra un
rombo en la parte del todo.
Composición
Las composiciones son asociaciones que representan agregaciones muy fuertes. Esto
significa que las composiciones también forman relaciones todo-parte, aunque la relación
es tan fuerte que las partes no pueden existir por sí mismas: solo pueden existir dentro
del todo y, si el todo se destruye, las partes también se destruirían.
En UML, las composiciones se representan con un rombo sólido en la parte del todo.
Los diagramas de clases pueden contener otros elementos distintos las clases.
Interfaces
Las interfaces son clases abstractas, lo que significa que no se pueden crear
directamente instancias de ellas. Pueden contener operaciones, pero no atributos. Las
clases pueden heredar de interfaces (mediante una asociación de realización), en cuyo
caso se pueden hacer instancias de estos diagramas.
Tipo de datos
Los tipos de datos son primitivas que se se suelen integrar en los lenguajes de
programación. Ejemplos típicos son los enteros y los booleanos. No pueden tener
relaciones con las clases, aunque las clases sí pueden tener relaciones con ellos.
Enumeraciones
Una enumeración es una simple lista de valores. Un ejemplo típico es una enumeración
de los días de la semana. Las opciones de una enumeración se llaman «literales de
enumeración». Como los tipos de datos, no pueden tener relaciones con las clases,
aunque las clases sí pueden tener relación con ellas.
Paquetes
Diagramas de secuencia
Los mensajes pueden ser sincrónicos, el tipo normal de llamada de mensaje donde el
control se pasa al objeto llamado hasta que dicho método haya terminado su ejecución, o
asincrónicos, donde el control se devuelve directamente al objeto que realiza la llamada.
Los mensajes sincrónicos disponen de un rectángulo vertical en el lado del objeto
llamado para mostrar el flujo del control del programa.
Diagramas de colaboración
Los diagramas de colaboración muestran las interacciones que ocurren entre los objetos
que participan en una determinada situación. Esta es más o menos la misma información
que muestran los diagramas de secuencia, aunque en ellos el énfasis recae en cómo
ocurren las interacciones con el paso del tiempo, mientras que los diagramas de
colaboración ponen de relieve las relaciones entre los objetos y su topología.
Diagrama de estados
Los diagramas de estados muestran los diferentes estados de un objeto durante su vida
y los estímulos que hacen que el objeto cambie su estado.
Los diagramas de estados ven los objetos como máquinas de estados o autómatas
finitos que pueden estar en uno de un conjunto finito de estados y que pueden cambiar
su estado mediante uno de un conjunto finito de estímulos. Por ejemplo, un objeto de tipo
ServidorDeRed puede estar en uno de los siguientes estados durante su vida:
Preparado
A la escucha
Trabajando
Detenido
y los eventos que pueden hacer que el objeto cambie de estado son
El objeto se ha creado
etc.
Estado
Los estados son las piezas fundamentales de los diagramas de estado. Un estado
pertenece a exactamente una clase y representa un resumen de los valores que pueden
tener los atributos de una clase. Un estado de UML describe el estado interno de un
objeto de una determinada clase.
Tenga en cuenta que no todos los cambios en uno de los atributos de un objeto se deben
representar mediante un estado, sino solo aquellos cambios que puedan afectar
significativamente el funcionamiento de dicho objeto.
Existen dos tipo especiales de estados: «Inicial» y «Final». Son especiales porque no
existe ningún evento que pueda hacer que un objeto vuelva a su estado inicial ni que
pueda sacarlo de su estado final una vez lo haya alcanzado.
Diagrama de actividades
Los diagramas de actividades están siempre asociados a una clase, a una operación o a
un caso de uso.
Actividad
Las actividades pueden formar jerarquías, lo que significa que una actividad se puede
componer de varias actividades «detalladas», en cuyo caso las transiciones de entrada y
de salida deben corresponderse con las transiciones de entrada y de salida del diagrama
detallado.
Elementos auxiliares
Existen varios elementos en UML que no poseen un valor semántico real para el modelo,
sino que ayudan a clarificar partes del diagrama. Estos elementos son:
Líneas de texto
Cuadros
Las líneas de texto son útiles para añadir cortas informaciones de texto a un diagrama.
Son textos libres y no poseen ningún significado para el modelo.
Las notas son útiles para añadir información más detallada sobre un objeto o sobre una
situación determinada. Tienen la gran ventaja de que se pueden asociar a elementos de
UML para mostrar que la nota «pertenece» a un determinado objeto o situación.
Los cuadros son rectángulos libres que se pueden usar para agrupar elementos para
facilitar la legibilidad de los diagramas. No poseen ningún significado lógico en el modelo.
Diagramas de componentes
Los componentes pueden tener interfaces (es decir, clases abstractas con operaciones)
que permiten asociaciones entre componentes.
Diagramas de despliegue
Los diagramas de despliegue muestran las instancias de los componentes en tiempo de
ejecución y sus asociaciones. Incluyen nodos, que son recursos físicos (normalmente,
una única computadora). También muestran interfaces y objetos (instancias de clases).
Diagramas entidad-relación
Entidad
Una entidad es cualquier concepto del mundo real con una existencia independiente.
Puede ser un objeto con una existencia física (por ejemplo, una computadora o un robot)
o un objeto con una existencia conceptual (por ejemplo, un curso universitario). Cada
entidad posee un conjunto de atributos que describen sus propiedades.
Nota: No existe una notación estándar para representar diagramas ER. Diferentes textos
sobre este tema usan distintas notaciones. Los conceptos y notaciones para los
diagramas ER que usa Umbrello se han tomado del libro Fundamentos de sistemas de
bases de datos, 4ª edición, de Elmasri R. y Navathe S. (2004), Addison Wesley.
En los diagramas ER, los atributos de las identidades se muestran con su nombre en un
compartimento distinto de la entidad a la que pertenecen.
Restricciones
Clave única: El conjunto de atributos declarado como clave única es único para la
entidad. Pueden existir varias restricciones únicas en una entidad. Los atributos que
la constituyen pueden ser nulos. Las claves únicas y las claves primarias identifican
unívocamente una fila de una tabla (entidad).
Clave externa: Una clave externa es una restricción referencial entre dos tablas. La
clave externa identifica a una columna o a un conjunto de columnas de una tabla
que hacen referencia a una columna o a un conjunto de columnas de otra tabla. Las
columnas de la tabla referenciada deben formar una clave primaria o una clave
única.
Especialización
Especialización de disyunción
Especialización de solapamiento
Cuando las entidades derivadas no están restringidas para ser disyuntivas, se dice que
su conjunto de entidades está en una especialización de solapamiento. Esto significa que
la misma entidad del mundo real puede ser miembro de más de una entidad derivada de
la especialización.
Categoría
Se dice que una entidad derivada es una categoría cuando representa a una colección
de objetos que es un subconjunto de la unión de los distintos tipos de entidades. Una
categoría se modela cuando existe la necesidad de una relación de una
superclase/subclase con más de una superclase, donde las superclases representan
distintos tipos de entidades (muy parecido a la herencia múltiple de la programación
orientada a objetos).
Representación visual de una categoría en un diagrama EER