You are on page 1of 56

Curso de UML

Actividad 4 Diagramas de Clases, de


objetos y de Estructura compuesta

Dra. Anaisa Hernández González


Diagrama de clases
¿Qué es un Diagrama de clases?

Modela los conceptos del dominio de la


aplicación, así como los conceptos internos
generados como parte de la implementación de
la aplicación. Es un paso esencial en el análisis
OO.
Es una colección de elementos declarativos
del modelo (clases y sus relaciones),
conectados como un grafo.
Diagrama de clases

Un diagrama de clases es una


colección estática de los
elementos declaratorios del
modelo, como clases, tipos y sus
relaciones, conectados unos a
otros y a sus contenidos.
Clases
• Definición: Descriptor para un juego de datos
con estructura, conducta, y relaciones
similares. [UML] Ícono
estereotipo
Nombre Ventana
Definición
<<estereotipo>> de abstracta
Estereotipo {abstracta}

+tamaño: TTamaño Atributos


#visibilidad: boleano = v

+presentar()
Visibilidad
+ocultar()
-conectar() Operacione
s
Atributos de las Clases
• Definición: Identifican las características
propias de cada clase. Son de tipos simples.

• Sintaxis:
– visibilidad nombre: tipo = valor_inicial
{cadena de propiedades} Ventana
<<estereotipo>>
{abstracta}
• Visibilidad:
+tamaño: TTamaño
– + pública #visibilidad: boleano = v

– # protegida +presentar()
+ocultar()
– - privada -conectar()
Operaciones de las Clases
• Definición: El conjunto de operaciones describen
el comportamiento de los objetos de una clase.
• Sintaxis:
– visibilidad nombre(lista_parametros) :
expresion_tipo_retorno {cadena de propiedades}
Ventana
<<estereotipo>>
{abstracta}
• lista_parametros: una lista
separada por comas de +tamaño: TTamaño
parámetros formales #visibilidad: boleano = v

+presentar()
+ocultar()
-conectar()
Restricciones de las clases
• Invariantes: Siempre es cierta
Se definen sobre los atributos
DNI  
Estudiante
  
Nombre: string
DNI: string
Sexo: char
Total de asignaturas matrículadas: integer

Actualizar asignaturas matrículadas


(Cantidad: string)
Restricciones de las clases
• Pre/Postcondiciones: Se definen sobre los
métodos. Se chequean antes/después de que se ejecute.
Se usan para validar entradas/Muestra cómo deben

Estudiante
Nombre: string
DNI: string
Sexo: char
Total de asignaturas matriculadas: integer
Actualizar asignaturas matriculadas
(Cantidad: integer)

Actualizar asignaturas matriculadas


  
      
Modelo de objetos del negocio
Modelo de objetos del negocio

• El modelo de objetos del negocio


identifica todos los “ROLES” y
“COSAS” en el negocio, los cuales son
representados como clases en la Vista
Lógica.
• Existen dos tipos diferentes de clases
en el modelo de negocio:

Trabajador Entidad
del negocio del negocio
¿de dónde salen las clases?
Modelo de objetos del negocio

Jefe de obra Económico

Evalúa técnicamente, Evalúa económicamente


aprueba/rechaza

Proyecto
Diagrama de clases del análisis
Diagrama de clases del análisis

1. Clases

2. Atributos
3. Relaciones entre las clases
• Asociaciones
• Agregación/Composición
• Generalización/Especialización
• Tipos asociativos
Clases del análisis
• Se centran en los requisitos funcionales.
• Es más evidente en el contexto del
dominio del problema porque representa
conceptos y relaciones del dominio.
• Tiene atributos reconocibles en el
dominio.
• Interfaz
• Estereotipos en clases:
• Control
• Entidad
Esta clasificación da robustez al modelo porque
los cambios al modelo tienden a afectar a un área
en específico
Clases de Interfaz

CI_Aprobar/Rechazar proyecto
Modelan la interacción entre el sistema
y sus actores
Clases de interfaz
Ejemplo

Jefe de obra Económico

Aprobar/rechazar proyecto
Evaluar un proyecto
económicamente
Evaluar un proyecto
técnicamente
Clases de interfaz
Ejemplo

Económico
Jefe de obra

CI-Aceptar/Rechazar Proyecto Evaluar técnicamente Evaluar económicamente


Clases de Entidad

Proyecto
• Modelan información que posee una vida larga y
que es a menudo persistente.
• Modelan la información y el comportamiento
asociado de algún fenómeno o concepto, como
una persona, un objeto del mundo real o un
suceso del mundo real.
Clases de control

CC-Aceptar/Rechazar
Coordinan la realización de uno o unos pocos CU,
proyecto
coordinando las actividades de los objetos que
implementan la funcionalidad del CU:
• Definen el flujo de control y
transacciones dentro de un CU.
• Delegan trabajo a otros objetos.
EN PRINCIPIO, SE DEFINE UNA CLASE DE
CONTROL POR CU
Clases de control
Ejemplo

Evaluar técnicamente un proyecto Evaluar económicamente un Aceptar/Rechazar un proyecto


proyecto

CC-Evaluar proyecto CC-Evaluar proyecto Aceptar/Rechazar


técnicamente económicamente proyecto
Niveles de abstracción

Patrón Controlador
Resumiendo...Identificar clases del análisis

1. Identificar clases de entidad a partir del


estudio de los CU del sistema y del
modelo de objetos, extrayendo la
información que debe utilizarse y
manipularse en la realización del CU.
2. Identificar una clase de interfaz por cada
actor que sea un sistema externo (SW y
HW) y dejar que esta clase represente la
interfaz de comunicación.
Resumiendo...Identificar clases del análisis

3. Identificar una clase de interfaz por cada


actor humano y dejar que esta clase
represente la ventana principal del
interfaz de usuario con el cual interactúa
el sistema.
4. Identificar una clase de control
responsable del tratamiento de control y
de coordinación de la realización del CU.

CONSTRUIR EL DIAGRAMA DE CLASES DEL


ANÁLISIS
Atributos
Atributo : Características o propiedades
de todas las instancias de la
clase.
Reglas para definirlos:
• Incluir aquellos atributos que se
requieren según los requerimientos de
información de los casos de uso en los
que está involucrada la clase.
• Conservar atributos simples, los
complejos sugieren relaciones entre
clases.
• Ningún atributo como llave foránea.
Asociaciones
Relaciones estructurales entre instancias que
especifican que los objetos de un elemento están
conectados con los objetos de otros.
Nombre de la relación Dirección en la que se
lee el nombre
TIENE +Evaluación
1 0
Asignatur Rol Sustentaci
..n
a ón
Cardinalidad
Multiplicidad de las relaciones
Multiplicidad: Describe la cardinalidad de la relación,
es el indicador de cuántos objetos pueden participar en
una relación. Rango de las cardinalidades permisibles
que un conjunto puede asumir.

0..* 1..* 1..constante


1..1 * constante..constante
0..1 0..constante

Ejemplo:
TProfes or imparte TAsignatura
1..* 0.. *
1 1
dirige
Rol en las relaciones

Rol: Un extremo puede ser explícitamente


nombrado con una etiqueta, ésta describe la
semántica de la relación en el sentido indicado
(opcionalmente se documenta con un nombre).

Ejemplo:
TProfesor imparte TAsignat ura
1..* 0..*
+Jefe de Colectivo 1 1
dirige
Navegabilidad de las relaciones
Navegabilidad: Indica el grado de visibilidad que
tienen las instancias de una clase respecto a
otra. Indica la posibilidad de navegar
unidireccionalmente en una asociación.
TProfes or imparte TAsignatura
1..* 0.. *
1 1
dirige

Las asociaciones por defecto son bidireccionales si


usted quiere especificar unidirección debe
especificarlo con una flecha.
Asociación cualificada
Aerolínea Viajero
* 0..1
nro_billete

Tablero Cuadro
fila 1 1
Ajedrez
columna

Reduce la multiplicidad del rol opuesto al considerar el


valor
del cualificador
Tipo asociativo
PERSONA * 0 CENTRO DE TRABAJO

..*

PUESTO

Clase que modela una abstracción que se genera por la


relación entre dos o más clases.
Agregación Compositiva o
Composición
Es una forma fuerte de agregación donde el tiempo de vida de
la parte coincide con el todo. Las partes no deben sobrevivir
fuera del todo. Operaciones de copia o eliminación al todo
deben propagarse a las partes. La multiplicidad en el
extremo del compuesto puede ser a lo sumo 1. Indica
que únicamente el compuesto posee la parte y que se encuentra
en una jerarquía de partes con estructura de árbol.

0
Mano Dedo
..7
Agregación compositiva o
simplemente composición
Agregación compartida
Se identifican con relaciones entre tipos que impliquen que
uno “tiene a” otro. Es aquella, en que la parte puede estar
en muchas instancias compuestas porque la relación entre
el todo y sus partes no liga las vidas del todo y las partes.
Cuando deja de existir la agregada no necesariamente
dejan de existir las partes.
tien
e
GRUPO 1..*
ESTUDIANTE
0..1

Agregación compartida o
simplemente agregación
subtipo
sGeneralización/Especialización

Actividad que consiste en identificar


Conce aspectos comunes entre conceptos y definir
las relaciones entre el supertipo (concepto
general) y el subtipo (concepto específico).

notación Pago supertip


o

Pago Pago Pago


en efectivo con tarjeta con cheque
Generalización/Especialización
Restricciones predefinidas en UML:
•disjunta - no disjunta
•total (completa) - parcial (incompleta)
•Estática/dinámica
Vehículo

{disjunta/incompleta/estática
}
Veihículo Terrestre Vehículo Aéreo

Coche Camión Avión Helicóptero


Relaciones entre las clases
1. Entre clases de un mismo tipo:
• Asociaciones
• Agregación/Composición
• Generalización/Especialización

2. Entre clases de diferentes tipos:


Restricciones XOR

• Una de las varias asociaciones potenciales


que pueden ser instanciadas en cada
momento para cualquier objeto.
Reservación

Suscripción Reservación individual


0..1 (XOR) 0..1

3..6 Ticket 1
Resumiendo …

Asociaci

Generaliza

Realizac
< < tipo > >
Dependen
Diagrama de clases del diseño
Clases del diseño
• Tienen operaciones, parámetros, atributos,
tipos, etc. ; necesarios para su implementación
en el lenguaje de programación elegido.
<<entity>>
Person
a
Nombre
e-mail

GetNombre()
GetCorreo()
Diagrama de objetos
Muestra la
abstracción de una
Diagrama de parte del dominio
TProfes or imparte TAsignatura
1..* 0.. *
1 1
dirige

Representa una
Diagrama de situación concreta
del dominio
P:TProfesor impart A:TAsignatura
1 e 0
1 ..* ..* 1
dirig
e
Diagrama de objetos
Se usa para representar cómo los objetos
en un determinado escenario trabajan
juntos, por lo que no están todas las
clases ni todas sus características

P:TProfesor impart A:TAsignatura


1 e 0
1 ..* ..* 1
dirig
e
Diagrama de estructura
compuesta
Diagrama de estructura compuesta
• Diagrama que muestra la estructura
interna de las clases y las relaciones que se
Conce establecen entre ellas en un contexto dado.
• Es una forma alternativa de mostrar las

Nombre: tipo puerto


conector

Nombre1: tipo1
Estructura interna de una clase
• Estructura interna de las clases y las relaciones.
•Contiene un conjunto de partes unidas por conectores
• Una parte tiene un tipo y una multiplicidad dentro de
un contenedor.

Parte
Nombre: tipo puerto

multplicida conector
d
Nombre1: tipo1

Contene
Estructura interna de una clase
• Un conector es una relación contextual entre las partes.
•Es un mecanismo fuerte que encapsula las relaciones
entre el medio externo y las partes internas al establecer
que la relación es por un puerto.

Parte
Nombre: tipo puerto
conector

Nombre1: tipo1

Contene
Estructura interna de una clase
• Un puerto es un tipo de interacción con el medio.
•Los mensajes que recibe un puerto, los pasa a las partes.
• Un puerto tiene un conjunto de interfaces que definen las
operaciones que son permitidas con el medio externo.

Nombre: tipo puerto


conector

Nombre1: tipo1
Estructura interna de una clase
• Las interfaces pueden ser:
Interfaz proporcionada: Conjunto de servicios
disponibles de esa clase
 Interfaz requerida:clase
Conjunto de servicios que esa
necesita que le proporcione

Nombre: tipo puerto Nombre: tipo


conector conecto
Nombre1: tipo1  r
Nombre1: tipo1
Diagrama de estructura compuesta
Artículo
empieza 1 1
desarrolla
Introducción Cuerpo

Artículo

1 1
Empieza :Introducción Desarrolla: Cuerpo
Diagrama de estructura compuesta
Artículo
escrito 0..3 1
desarrolla
Autor Cuerpo

Artículo

0..3 1
Escrito: Autor Desarrolla: Cuerpo
Diagrama de estructura compuesta
CAJERO AUTOMÁTICO
CC: Controlador
del cajero

1
IC: Interfaz cajero
*
ISC: Servicio de
tarjeta de crédito
Resumiendo …
1. Los diagramas de clases resultan esenciales en
la modelación OO pues son su columna
vertebral.
2. Representan clases y asociaciones.
3. Muestran atributos y operaciones.
4. Tipos de asociaciones: Asociaciones,
Agregación y Generalización-especialización.
5. Los diagramas de objetos muestran algunas de
las clases y algunas de sus características.
6. Los diagramas de estructura compuesta
muestran las partes que contienen las clases y
las relaciones entre ellas.

You might also like