Documentos de Académico
Documentos de Profesional
Documentos de Cultura
http://www.uml.org/
UML – Tipos de diagrama
● Modelado de datos
○ Diagrama de clases, objetos, componentes, despliegue,
paquetes
● Modelado de comportamiento
○ Diagrama de casos de uso, actividades, estados, colaboración,
secuencia.
Diseño de la solución
Diagrama de clases
● Diagrama de la categoría de los diagramas estructurales( describir
la arquitectura de un sistema con bastante detalle. )
● Sirven para describir cómo se relacionan los elementos de un
sistema, qué atributos y operaciones les caracterizan.
Diagrama de clases
● Formato gráfico de una clase
– Atributos (Propiedades)
– Métodos (Operaciones)
Diagrama de clases
● Sintaxis de los atributos
visibilidad nombre: tipo = valor inicial
Animal
- nombre: String
- patas: int
Diagrama de clases
● visibilidad
Interacción de Clases
Relaciones entre clases
Interacción de Clases
• Asociación
• Asociación Simple
• Agregación
• Composición
• Generalización (Herencia)
Interacción de Clases
Relación de asociación
● Relación estructural para indicar la vinculación entre
instancias de clases.
● Una asociación se forma al unir dos clases con una línea.
Interacción de Clases
Relación de asociación - Nombre de las relaciones
● El nombre de la asociación se coloca sobre la línea en la mitad (se lee
de izquierda a derecha)
● Buenas relaciones tienen sentido al leerlas.
Interacción de Clases
Relación de asociación - Roles
● Se escriben al final de una línea de asociación y describen el
propósito jugado por esa clase en la relación.
Interacción de Clases
Interacción de Clases
• Ejemplo de indicadores de multiplicidad y su significado
Interacción de Clases
Relación de asociación - Multiplicidad
● Indica cuántas instancias de una clases participan en la
relación
● La multiplicidad se puede indicar con un rango (0..1, 2..5), un
rango sin cota (0..*, 1..*), un valor (1) o una serie de valores
(1, 3, 5).
1 1..3
PEDIDO PIZZA
¿Dado un carro, cuántos dueños puede
tener?
1..* 1
Carro Dueño
¿Dada una pescera, cuántos peces puede
albergar?
0..* 1
Pez Pescera
Una cuenta bancaria puede tener dos
titulares
1..2 1..*
Cuenta
Titular
Bancaria
Interacción de Clases
• Modelar la relación entre un Escritor y un Libro.
• La relación tiene multiplicidad - Cada objeto Libro está asociado a uno o más objetos Escritor
(1..*). Cada objeto Escritor está asociado a uno o más objetos Libros (0..*).
• La asociación tiene una dirección. Escritor puede invocar métodos en objetos Libro, pero no
viceversa.
• La dirección de la flecha al final de la línea de asociación me indica la dirección.
• Si la línea de asociación no tiene flechas a los extremos, la asociación es bideireccional
• Un objeto Estudiante está relacionado con 1 a 4 objetos Materia.
• Un objeto Materia está relacionado con 1 a muchos objetos
Estudiante
• Un objeto Profesor está relacionado con 1 a 4 objetos Materia.
• Un objeto Materia está relacionada con 1 a 3 objetos Profesor
Interacción de Clases
• Navegación:
• Podemos navegar de Estudiante a Materia y de Materia a Estudiantes.
• Podemos navegar de Profesor a Materia, pero no de Materia a Profesor
¿Cómo se representa esto en JAVA?
¿Cómo se representa
esto en JAVA?
Ejercicio
• ¿Cómo modelaría el dominio de que un estudiante puede tomar
múltiple materias en un año de clases?
Clase de asociación
• Una clase de asociación es esencialmente una clase atada a una
asocian que es usada para modelar una asociación como una clase
UML. Esta tiene su propio nombre, atributos y operaciones. Sin
embargo, estas clases describen atributos adicionales los cuales no
pertenecen a los objetos involucrados en la asociación.
• Por ejemplo, una clase Inscripción es añadida para mantener el atributo
año entre la clase Estudiantes y la clase Curso, pero este no pertenece ni a
la clase Estudiante ni a la clase curso
Clase de asociación
• ¿Cómo modelaría el dominio de que un estudiante puede tomar
múltiple materias en un año de clases?
Asociaciones ternarias
¿Cómo se representa
esto en JAVA?
Interacción de Clases
Relación de asociación - Reflexiva
● Es posible que una clase se asocie consigo
misma (asociación reflexiva)
Múltiples asociaciones entre dos tipos
• Dos tipos pueden tener múltiples asociaciones entre ellos. Esto no
es poco común. Por ejemplo en el dominio de una aerolínea
tenemos la relación entre a Flight y a Airport.
• Las asociaciones Flies-to y Flies-From son diferentes relaciones las cuales
deben ser modelas por separado.
Múltiples asociaciones entre dos tipos
Interacción de Clases
Relación de agregación
• Una relación de agregación es la que forma un todo con sus partes.
• Son un tipo especial de relación de asociación.
• Puede tener nombre, roles, multiplicidad.
• En las relaciones de agregación, un objeto que representa una parte
puede estar compartido por varios objetos que representan el
todo(un alumno está en un curso y también puede estar en un grupo
de amigos)
Interacción de Clases
Ejemplo relación de agregación
Interacción de Clases
Relación de composición
● Las relaciones de composición son un tipo especial de relación de
agregación.
● Los objetos parte siempre están asociados a un objeto todo y sólo
a uno, se crean y se destruyen con él (coche y ruedas).
● Los objetos parte no pueden compartirse entre varios objetos
todo.
Interacción de Clases
Interacción de Clases
Interacción de Clases
Relación de Herencia/Generalización
Se representa mediante una flecha, cuya punta es un
triángulo vacío. La flecha que representa a la herencia va
orientada desde la subclase a la superclase.
Interacción de Clases
Relación de Herencia
Interacción de Clases
Clase abstracta
https://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/index.html
Interacción de Clases
Interface
• Establece la forma que debe tener una clase (modelo o esqueleto)
• Tiene métodos abstractos, constantes y métodos por defecto.
• No es una clase. No puede ser instanciada.
• En una interfaz todos los métodos son públicos y abstract (no es
necesario especificar).
Interacción de Clases
Interface
• Es común ubicar la palabra
<interfaz> bajo el nombre
• Las clases que implementan la
interfaz apuntan a la misma
con una flecha, cuya punta es
un triángulo vacío y la línea
entrecortada
Interacción de Clases
Tipo Enum
• Un tipo enumerado restringe los
posibles valores que puede tomar
una variable
• Se representa mediante un
rectángulo de dos secciones. En la
sección superior va el nombre
acompañado de la palabra <Enum>.
En la sección inferior se ubican los
posibles valores.
Taller en clase
Desarrollando un Diagrama de Clases
Diagrama de clases