CLASE 5: DIAGRAMAS DE CLASES: MODELO CONCEPTUAL
Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez
Objetivos: Diagrama de Clases
Ser capaz de: Representar Clases Representar relaciones entre Clases Representar Componentes de una Clase
Modelos y Diagramas
Diagramas de Casos de Uso
Diagramas de Clases
Describe el sistema identificando sus
clases, objetos e interrelaciones
entre ellos
Diagrama de clases
Describe la estructura estática del modelo, en particular, las clases, tipos, interfaces y objetos, su estructura interna y las relaciones entre ellos.
Item
Icono String
Clase
Descriptor de un conjunto de objetos con estructura similar, mismo comportamiento y relaciones
Representa un concepto en el sistema que se modela
Rectángulo
p1: Punto p2: Punto
<<constructor>> Rectángulo(p1,p2:Punto) <<query>> área( ): Real aspecto( ): Real (...) <<update>> mover (delta:Punto) escala (radio: Real)
Rectángulo
nombre
atributos
métodos
Objeto
Entidad con identidad única que encapsula estado y comportamiento
triángulo: Polígono
centro = (0,0) vértices = ((0,0),(4,0),(4,3)) color-borde = negro color-relleno = blanco
triángulo
:Polígono
triángulo: Polígono
Identifique todos los elementos
Polígono
centro: Punto vértices: Conj-Punto ........ <<constructor>> Polígono(p1,p2,p3:Punto) <<query>> área( ): Real aspecto( ): Real (...) <<update>> mover (delta:Punto) escala (radio: Real)
triángulo: Polígono
centro = (0,0) vértices = ((0,0),(4,0),(4,3)) color-borde = negro color-relleno = blanco
Clase: Estereotipos
Un símbolo de clase puede contener o no un estereotipo.
Estereotipos:
<<type>> <<implementationClass>> <<interface>> <<utility>>
<<type>> Tipo de dato
<<implementationClass>> Imp. tipo de dato
<<interface>> Int. tipo de dato
Clase
<<utility>> Funciones
Type e ImplementationClass
<<type>> Tipo de dato
Un type provee una especificación del comportamiento visible de una clase
Una implementationClass provee la
realización concreta de un
tipo
<<implementationClass>> Itd
Relación de Realización.
Type, ImplementationClass y Relación de Realización
Un type permite especificar los objetos abstractos y el comportamiento de las operaciones externas
Una implementationClass es un descriptor de objetos con estados concretos y métodos.
Una relación de Realización implica que la implementationClass provee al menos todas las operaciones del Type.
una interfaz permite especificar las operaciones visibles externamente de una clase, componente, subsistema, etc. sin indicar la estructura interna
Interfaces
<<interfaz>> Comparable
esIgual(String): Boolean Hash():Integer
Clases Parametrizadas
Es un descriptor para una clase con uno o más parámetros formales no acotados.
Define una familia de clases, cada una de las cuales viene dada por la asociación de valores actuales a los parámetros
atributos
métodos
...
...
nombre
parámetros
Clases Parametrizadas
atributos
métodos
...
...
nombre
parámetros
Forma de los parámetros: nombre: tipo = valor por defecto
nombre
Clases Parametrizadas
Rectángulo
p1: Punto p2: Punto
<<constructor>> Rectángulo(p1,p2:Punto) <<query>> área( ): Real aspecto( ): Real (...) <<update>> mover (delta:Punto) escala (radio: Real)
nombre
atributos
métodos
parámetros
Punto
Rectángulo <CoorPolares> RectánguloCC
<<bind>> (CoorCartesianas)
Utilitarios
Agrupa variables globales y procedimientos en forma de una declaración de clase.
Los atributos y operaciones de un utility se interpretan como atributos y operaciones globales.
<<utility>> Math
Seno(Ángulo): Real Coseno(Ángulo): Real Raiz2(Real): Real Aleatorio():Real
Relaciones entre Clases
Conexión semántica entre elementos del modelo Asociación
Binaria Agregación Composición
Generalización Dependencia
dirige jefe
*
0..1
Asociaciones binarias
Conexión semántica bidireccional entre elementos, con un nombre (nombre de la relación vinculada al comportamiento específico) y un rol (nombre del extremo de una asociación)
Compañía 1 1..*
emplea
trabaja para Persona
Roles
Una asociación puede tener roles
El Rol tiene dirección en la asociación
El Rol es explícitamente etiquetado
Pedido
Fecha ¿Es prepagado? Número Costo
despacho( ) 1
*
Cantidad Precio ¿Satisfecho?
Pedido de producto línea de pedido
Multiplicidad
Indica cuántos objetos de una clase están relacionados con uno de la otra.
Pedido
fecha ¿es prepagado? número precio
despacho( )
Cliente nombre dirección
credito( )
1 *
Un Cliente está asociado con 0 o más pedidos Un Pedido está asociado con un Cliente
Nombre del rol
Rol = identifica el extremo de la asociación
El nombre del rol es obligatorio para asociaciones entre objetos de la misma clase
nombre dirección
Compañía trabaja para
nombre cédula de Identidad dirección
Persona
empresa empleado
nombre cédula dirección
Persona gerente de ventas
supervisa vendedor
Resumen: notación básica para asociaciones
Clase B Clase A nombre de la asociación
rol_A rol_B
Pedido Línea de Producto
contiene
incluida en constituido de
Ejemplo:
Clase Asociación
Se utiliza cuando los atributos no pertenecen a las clases sino a la asociación
prioridad derechos de Acceso
Usuario autorizado en Estación de Trabajo
Autorización
inicio de sesión
Directorio
Agregación / Composición (todo/partes)
Gráfico color
textura
1
1
Composición
Polígono Punto 1
3..* Agregación
Composición: diferentes formas de expresarla
Slider
Scrollbar 2
1
Window
Panel
Header
body 1
1
title 1
1
Window
scrollbar[2]:Slider title: Header body: Panel
Window
scrollbar:Slider
title: Header
body: Panel
2
1
1
Asociación n-aria
Vuelo Asiento
Persona
asiento vuelo
pasajero
reservación
Generalización
Relación entre un elemento más general y un elemento más específico
Especifica una relación de herencia Una superclase se define a través de una
relación de generalización
Herencia
Una clase B hereda de una clase A si adquiere las propiedades (estructura y comportamiento) definidas en la clase A
A es una superclase de la clase B
B es una subclase de la clase A
A
B
<<hereda>>
Especialización
Dada una clase, se crea otra clase (subclase) que especializa la clase dada, agregando las diferencias (adición, supresión o redefinición de propiedades)
Vehículo
Carro Moto Grúa
Generalización
Se crea una clase (superclase), que generaliza las propiedades comunes de varias clases
Carro Moto Grúa
Vehículo
Vehículo Propulsión Viento
Vehículo Propulsión Motor
Vehículo terrestre
Vehículo Acuático
Velero
Herencia múltiple
Vehículo
Vehículo Propulsión Viento
Vehículo Propulsión Motor
Vehículo terrestre
Vehículo Acuático
Velero
Herencia múltiple
Puede acarrear problemas!!
Dependencias entre clases
Relación unidireccional semántica entre 2 (o más) elementos del modelo y existe cuándo cambios en la definición de un elemento causa cambios en el otro
<<destino>> <<fuente>>
Indica que un cambio en el fuente requiere un cambio en el destino
Diagrama de Clases
Elementos del modelo
Vista del modelo
Diagrama Proyección
posición
1..* 0..*
proyección
Diagrama de Estado
Diagrama de Casos de Uso
Diagrama de Clases
Diagrama de Actividad
Diagrama de Objetos
(…)