1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

36
1 Lenguaje de Modelación Lenguaje de Modelación Unificado Unificado Unified Modeling Language Diagramas de Clase Diagramas de Clase

Transcript of 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

Page 1: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

1

Lenguaje de Modelación UnificadoLenguaje de Modelación Unificado

UnifiedModelingLanguage

Diagramas de ClaseDiagramas de Clase

Page 2: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

2

Describe la estructura estática del modelo del sistema, en particular, las clases, tipos, y objetos, su estructura interna y las relaciones

entre ellos.

Diagrama de clasesDiagrama de clasesLa notación UML

Page 3: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

3

Construcciones generalesConstrucciones generales

Iconos

Formas 2D

strings

Caminos (path)

es parte de

La notación UML

Page 4: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

4

Construcciones generalesConstrucciones generales

Notas

Paquete

Dependencia

Estereotipo

Esto es...

<<interfaz>>

La notación UML

Page 5: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

5

ClaseClase

Descriptor de un conjunto de objetos con estructura similar, mismo comportamiento y relaciones

Representa un concepto en el sistema que se modela

La notación UML

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: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

6

ObjetoObjeto

Entidad con identidad única que encapsula estado y comportamiento

La notación UML

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: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

7

Clase: EstereotiposClase: Estereotipos

La notación UML

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 8: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

9

Modelo del dominio:Modelo del dominio:sumando los atributossumando los atributos

Qué es un atributo??

Una información significativa de una clase -o de su instancia- que es necesaria para la comprensión del modelo y para satisfacer un requerimiento.

Tienda

dirección: Textnombre: Text

Venta

fecha: Fechahora: Tiempo

.........

1 *

realiza

Se indica el nombre y el tipo del atributo

Caso de Estudio:PVCaso de Estudio:PV

Page 9: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

10

GuíasGuías para modelar el dominio para modelar el dominio::Clase o atributo?Clase o atributo?

Clase o atributo?

Vuelo___________aeropuerto

Aeropuerto___________

nombreVueloO ?

Page 10: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

11

Identifique todos los elementosIdentifique todos los elementos(tarea en clase)(tarea en clase)

La notación UML

Polígono

centro: Punto vértices: Conj-Punto color-borde = Color color-relleno = Color

........ <<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 11: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

12

RelacionesRelaciones

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

binariaagregacióncomposición

generalización dependencia

La notación UML

Page 12: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

13

Asociación BinariaAsociación Binaria

¿Qué es una asociación??

Una relación significativa entre dos clases -o entre sus instancias-

Conexión semántica entre elementos del modelo.

Compañía Persona1 1..*emplea

La flecha -opcional- indica la dirección de lectura del nombre de la asociación

Multiplicidad de la asociación

Page 13: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

14

Asociación binariaAsociación binaria

incluye: un nombre (nombre de la asociación, vinculada

a un comportamiento específico) un rol (nombre, dirección y multiplicidad del

extremo de una asociación).

La notación UML

dirige

Compañía1 1..*

emplea

jefe

*

0..1

empleado

Persona

Page 14: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

15

MultiplicidadMultiplicidad

Indica cuántos objetos pueden participar en la relación

Pedido

fecha¿es prepagado?número precio

despacho( )

Clientenombredirección

credito( )

1*

Adaptado de Univ. Calgary

Page 15: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

16

MultiplicidadMultiplicidad

Indica cuántos instancias pueden participar en la relación en un momento dado

ClienteNombre..

*

ClienteNombre..

1..*

ClienteNombre..

1..10

ClienteNombre..

5

0 ó más (muchos)

1 ó más

1 a 10

Exactamente 5

Page 16: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

17

RolesRoles

Una asociación tiene roles

El Rol tiene dirección en la asociación

El Rol es explicitamente etiquetado

Pedido

fecha¿es prepagado?número costo

despacho( )

1

*

cantidadprecio¿satisfecho?

Pedido de producto

Línea de producto

Page 17: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

18

Nombre del rolNombre del rol

Rol = identifica el extremo de la asociación

El nombre del rol es obligatorio para asociaciones entre objetos de la misma clase

nombredirección

Compañíatrabaja para

nombrecédula de Identidaddirección

Persona

empresa empleado

nombrecédula de Identidaddirección

Personagerente

supervisavendedor

Page 18: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

19

ConvencionesConvenciones para asociaciones para asociaciones

LíneaAérea

Supervisa

Emplea

Asignado-a

1

1..*

Piloto Vuelo RutaAsignado-a

1 1

1 *

* *

Convención de lectura de los nombres de las asociaciones

Page 19: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

20

GuíasGuías para para identificar asociacionesidentificar asociaciones

DescripciónItem_______________

descripciónprecio

identificador

Item_____________númeroSerial

1 *

• Centrarse en las relaciones que deben ser preservadas sin depender de la existencia de instancias

• Evitar asociaciones redundantes o derivables

• Chequear lista de asociaciones típicas.

Page 20: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

21

Sumario: notación básica para Sumario: notación básica para asociaciones binariasasociaciones binarias

Clase B Clase BNombre de la Asociación

rol_Arol_B

Pedido ItemContiene

Incluído enConstituído de

Ejemplo:

Page 21: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

22

Composición / agregaciónComposición / agregación(todo/partes)(todo/partes)

Gráficocolor

textura

1

1

Composición

Polígono Punto

13..*

Agregación

La notación UML

Page 22: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

23

Diagrama de objetosDiagrama de objetosLa notación UML

triángulo: Polígono

punto 1: Punto

x = 0.0y= 1.0

punto 2: Punto

x = 3.0y= 1.0

punto 3: Punto

x = 3.0y= 5.0

Polígono Punto

13..*

es posible obtener el diagrama de objetos correspondiente al objeto triángulo

A partir de la definición, por agregación, de la Clase Polígono,

Page 23: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

24

Asociación n-ariaAsociación n-aria

Vuelo Asiento

Persona

asientovuelo

pasajero

reservación

Page 24: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

25

EspecializaciónEspecializació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 MotoGrúa

La notación UML

Page 25: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

26

GeneralizaciónGeneralización

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

Carro MotoGrúa

Vehículo

La notación UML

Page 26: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

27

HerenciaHerencia

Mecanismo mediante el cual elementos más específicos incorporan la estructura y el comportamiento de elementos más generales

vehículo

carro

<<hereda>>

Page 27: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

28

HerenciaHerencia

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: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

29

Herencia SimpleHerencia Simple

Una clase B hereda de una y solo una clase A

Peces

Peces de colores

<<hereda>>

Page 29: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

30

Herencia MúltipleHerencia Múltiple

<<hereda>>

Una clase Z hereda de dos o más clases X, Y

Aves

Loros

Mascotas

Page 30: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

31

Vehículo

Vehículoaeréo

Vehículoterrestre

VehículoAcuático

Aviones acuaticos

Herencia múltipleHerencia múltipleLa notación UML

Page 31: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

32

asociacionesasociacionesresumen: notación básicaresumen: notación básica

Clase B Clase ANombre-de-la-asociación

rol_Arol_B

Superclase

Subclase2 Subclase 3Subclase1

Parte*

1

Todo

1 1..*

asociaciones

Generalización Agregación

Parte

Multi-plicidad

Page 32: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

33

GuíasGuías para para identificar asociaciones:identificar asociaciones:lista de categorías de asociacioneslista de categorías de asociaciones

Categoría Sistema

A es parte física de B Cabeza - Cuerpo

A está contenida en B Producto - Tienda

A es una descripción de B Características del Producto - producto

A es miembro de B Cajero - Tienda

A se comunica con B Cliente - Cajero

Page 33: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

34

Asociaciones complejas:Asociaciones complejas:¿Qué hacer ante estas situaciones?¿Qué hacer ante estas situaciones?

• Un atributo está relacionado a una asociación

• Hay dos clases asociadas y no se tiene claro en cual clase colocar un atributo

Solución:

• Crear una clase y anexarla a la asociación

Page 34: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

35

Asociaciones complejas:Asociaciones complejas:Clase AsociaciónClase Asociación

Se utiliza cuando los atributos no pertenecen a las clases sino a la asociación

prioridadderechoAcceso

UsuarioAutorizado en EstaciónTrabajo

Autorización

inicioSesión

Directorio

Page 35: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

36

Diagrama de ClasesDiagrama de Clases

Elementos del modelo

Vistas del modelo

Diagrama Proyección+placement:ListOfPoint+ style: Uninterpreted

1..* 0..*

proyección

Diagrama de Estado

Diagrama de Casos de Uso

Diagrama de Clases

Diagrama de Actividad

Diagrama de Objetos

(…)

La notación UML

Page 36: 1 Lenguaje de Modelación Unificado Unified Modeling Language Diagramas de Clase.

38

Bibliografía recomendada:

- Martin Fowler. UML Distilled. 3a Ed. Addison-Wesley 2004

- www. omg.org