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 Estereotipo
Ventana <<estereotipo>> {abstracta} +tamaño: TTamaño #visibilidad: boleano = v
Visibilidad
+presentar() +ocultar() -conectar()
Definición de abstracta
Atributos
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
• Visibilidad: – + pública – # protegida – - privada
<<estereotipo>> {abstracta} +tamaño: TTamaño #visibilidad: boleano = v +presentar() +ocultar() -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}
• lista_parametros: una lista separada por comas de parámetros formales
Ventana <<estereotipo>> {abstracta} +tamaño: TTamaño #visibilidad: boleano = v +presentar() +ocultar() -conectar()
Restricciones de las clases • Invariantes: Siempre es cierta Se definen sobre los atributos Estudiante Nombre: string DNI: string Sexo: char Total de asignaturas matrículadas: integer Actualizar asignaturas matrículadas (Cantidad: string)
DNI
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 del negocio
Entidad del negocio
¿de dónde salen las clases?
Modelo de objetos del negocio
Económico
Jefe de obra Evalúa técnicamente, aprueba/rechaza
Evalúa económicamente
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
CC-Evaluar proyecto técnicamente
Evaluar económicamente un Aceptar/Rechazar un proyecto proyecto
CC-Evaluar proyecto económicamente
Aceptar/Rechazar 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
TIENE 1 Asignatur a
Dirección en la que se lee el nombre +Evaluación
Rol
Cardinalidad
0 Sustentaci ..n ón
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 0..1 Ejemplo:
1..* * 0..constante TProfes or
1..constante constante..constante
imparte 1..*
TAsignatura 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 1..*
+Jefe de Colectivo 1
TAsignat ura 0..* 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 1..*
TAsignatura 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 nro_billete
Tablero Ajedrez
fila columna
*
1
0..1
1
Viajero
Cuadro
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.
Mano
0 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 ESTUDIANTE GRUPO 1..* 0..1
Agregación compartida o simplemente agregación
subtipo sGeneralización/Especialización
Conce notación
Actividad que consiste en identificar aspectos comunes entre conceptos y definir las relaciones entre el supertipo (concepto general) y el subtipo (concepto específico).
Pago
Pago Pago en efectivo con tarjeta
supertip o Pago 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
Coche
Camión
Vehículo Aéreo
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 0..1
Reservación individual (XOR)
3..6 Ticket
0..1 1
Resumiendo … Asociaci Generaliza Realizac Dependen
< < tipo > >
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 parte del dominio
Diagrama de TProfes or
imparte 1..*
TAsignatura 0.. *
1
1 dirige
Representa una situación concreta del dominio
Diagrama de P:TProfesor 1
1 ..*
impart e dirig e
A:TAsignatura 0 ..*
1
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 1
1 ..*
impart e dirig e
A:TAsignatura 0 ..*
1
Diagrama de estructura compuesta
Diagrama de estructura compuesta Conce
• Diagrama que muestra la estructura interna de las clases y las relaciones que se establecen entre ellas en un contexto dado. • Es una forma alternativa de mostrar las
Nombre: tipo conector Nombre1: tipo1
puerto
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
conector multplicida 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 conector Nombre1: tipo1
puerto
Estructura interna de una clase • Las interfaces pueden ser: Interfaz proporcionada: Conjunto de servicios disponibles de esa clase Conjunto de servicios que esa Interfaz requerida:clase necesita que le proporcione
Nombre: tipo
puerto
conector Nombre1: tipo1
Nombre: tipo conecto r Nombre1: tipo1
Diagrama de estructura compuesta Artículo empieza desarrolla
1
1
Introducción Cuerpo
Artículo 1 1 Empieza :Introducción Desarrolla: Cuerpo
Diagrama de estructura compuesta Artículo escrito 0..3 desarrolla
Autor
1
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.