clase 5: diagramas de clases: modelo …martinez/cursos/ci3715/clase5_aj2010.pdf · objetivos:...

33
CLASE 5: DIAGRAMAS DE CLASES: MODELO CONCEPTUAL Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez

Upload: phamnhu

Post on 23-Sep-2018

244 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

CLASE 5: DIAGRAMAS DE CLASES: MODELO CONCEPTUAL

Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez

Page 2: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Objetivos: Diagrama de Clases

Ser capaz de:  Representar Clases  Representar relaciones entre Clases  Representar Componentes de una Clase

Page 3: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Modelos y Diagramas

 Diagramas de Casos de Uso

 Diagramas de Clases

Describe el sistema identificando sus

clases, objetos e interrelaciones

entre ellos

Page 4: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 5: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 6: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 7: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 8: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 9: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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.

Page 10: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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.

Page 11: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 12: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 13: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Clases Parametrizadas

atributos

métodos

...

...

nombre

parámetros

Forma de los parámetros: nombre: tipo = valor por defecto

nombre

Page 14: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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)

Page 15: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 16: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Relaciones entre Clases

Conexión semántica entre elementos del modelo  Asociación

 Binaria  Agregación  Composición

 Generalización  Dependencia

Page 17: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 18: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 19: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 20: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 21: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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:

Page 22: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 23: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Agregación / Composición (todo/partes)

Gráfico color

textura

1

1

Composición

Polígono Punto 1

3..* Agregación

Page 24: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 25: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Asociación n-aria

Vuelo Asiento

Persona

asiento vuelo

pasajero

reservación

Page 26: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 27: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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>>

Page 28: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 29: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Generalización

  Se crea una clase (superclase), que generaliza las propiedades comunes de varias clases

Carro Moto Grúa

Vehículo

Page 30: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

Vehículo Propulsión Viento

Vehículo Propulsión Motor

Vehículo terrestre

Vehículo Acuático

Velero

Herencia múltiple

Page 31: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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!!

Page 32: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

Page 33: CLASE 5: DIAGRAMAS DE CLASES: MODELO …martinez/cursos/ci3715/clase5_AJ2010.pdf · Objetivos: Diagrama de Clases Ser capaz de: Representar Clases Representar relaciones entre Clases

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

(…)