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

Post on 20-Jan-2015

11 views 0 download

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

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

3

Construcciones generalesConstrucciones generales

Iconos

Formas 2D

strings

Caminos (path)

es parte de

La notación UML

4

Construcciones generalesConstrucciones generales

Notas

Paquete

Dependencia

Estereotipo

Esto es...

<<interfaz>>

La notación UML

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

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

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

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

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 ?

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

12

RelacionesRelaciones

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

binariaagregacióncomposición

generalización dependencia

La notación UML

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

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

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

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

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

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

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

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.

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:

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

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,

24

Asociación n-ariaAsociación n-aria

Vuelo Asiento

Persona

asientovuelo

pasajero

reservación

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

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

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

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

29

Herencia SimpleHerencia Simple

Una clase B hereda de una y solo una clase A

Peces

Peces de colores

<<hereda>>

30

Herencia MúltipleHerencia Múltiple

<<hereda>>

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

Aves

Loros

Mascotas

31

Vehículo

Vehículoaeréo

Vehículoterrestre

VehículoAcuático

Aviones acuaticos

Herencia múltipleHerencia múltipleLa notación UML

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

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

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

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

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

38

Bibliografía recomendada:

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

- www. omg.org