You are on page 1of 51

Diagramas de clases

Diagramas de Clases

octubre de 2013

Diagramas de clases. Ingeniera de software II

Diagramas de clases
Los diagramas de clases capturan la estructura esttica de un sistema mostrando los objetos en el sistema, las relaciones entre los objetos, y los atributos y operaciones que caracterizan cada clase de objetos. Es el ms importante de los diagramas.

octubre de 2013 Diagramas de clases. Ingeniera de software II 3

Clase
Nombre de la clase

Atributos

Metodos
Diagramas de clases. Ingeniera de software II 4

octubre de 2013

Clases
NombreClase NombreClase NombreClase Atributo Operacin () + mtodo / + atributo Pblico es accedido desde cualquier lado Pblico Privado Protegido - mtodo / - atributo Privado es accedido slo dentro de la clase # mtodo / # atributo Protegido es accedido slo dentro de la clase y por subclases Atributo ::= Nombre [ ":" Tipo ] [ "=" Valor inicial ] Operacin ::= Nombre "(" [ Lista argumentos ] ")" [ ":" Tipo ] Lista argumentos ::= Argumento | Argumento "," Lista argumentos Argumento ::= Nombre [ ":" Tipo ] [ "=" Valor por defecto ]

octubre de 2013

Diagramas de clases. Ingeniera de software II

Relaciones

Hay tres grandes tipos Asociaciones Agregaciones Composiciones Generalizaciones Dependencias

octubre de 2013

Diagramas de clases. Ingeniera de software II

Relaciones

octubre de 2013

Diagramas de clases. Ingeniera de software II

Asociaciones

Una asociacin es una relacin que describe un conjunto de vnculos. Representa la responsabilidad de conocer. Un vnculo es una conexin semntica entre un par de objetos. Es una instancia de una asociacin. Las asociaciones son en ambas direcciones o en una sola direccin.

octubre de 2013

Diagramas de clases. Ingeniera de software II

Asociaciones
juega para

Jugador
contrata a trabaja para

Equipo

Persona

Empresa

Persona Nombre Cdula Direccin

trabaja para

Empresa Nombre Direccin

Trabajo Salario Cargo


octubre de 2013 Diagramas de clases. Ingeniera de software II 9

Asociaciones
Elementos que la componen Nombre: las asociaciones pueden tener un nombre que la identifiquen Rol: Especifica el papel que juega cada clase dentro de la relacin
Persona Empleado 1..* trabaja para Empleador Empresa 0..1 Contratista 0..*

Contratante 0..*
contrata

octubre de 2013

Diagramas de clases. Ingeniera de software II

10

Navegabilidad

Las asociaciones son generalmente en ambos sentidos. Cuando, en una asociacin, una clase conoce a la otra, pero no al revs, la asociacin es navegable slo en el sentido de la clase que conoce a la otra.
Usuario est formado por 0..* Permiso

octubre de 2013

Diagramas de clases. Ingeniera de software II

11

Multiplicidad

La multiplicidad es el rango vlido de elementos que puede haber en un conjunto. Se expresa como un subconjunto de los enteros no negativos. Ejemplos
0..1 1..* 5..15 3

octubre de 2013

Diagramas de clases. Ingeniera de software II

12

Multiplicidad
Persona Empleado 1..* trabaja para Empleador 0..1 Camin 1 arrastra Zorra

Multiplicidad: 0..1

Empresa

0..1
rueda sobre

Vehculo
1

Ruedas
1..4,6,10,14

Jefe

manda *

Empleado

Polgono

est formado por

Punto 3..* {ordenados}

octubre de 2013

Diagramas de clases. Ingeniera de software II

13

Atributos de las asociaciones

Un atributo de una asociacin surge cuando entre dos clases asociadas aparece un atributo cuya existencia no depende de las clases sino de la asociacin.

octubre de 2013

Diagramas de clases. Ingeniera de software II

14

Atributos de las asociaciones


Persona Nombre Cdula 1..* Direccin Empleado trabaja para Empleador 0..* Trabajo Salario Cargo Persona Nombre Empleado Cdula 1..* Direccin Salario Cargo trabaja para Empleador 0..1 Empresa Nombre Direccin Empresa Nombre Direccin

Archivo 1..*

es accesible por
1..* Permisos

Persona

octubre de 2013

Diagramas de clases. Ingeniera de software II

15

Asociaciones como clases


La clase de una asociacin es un elemento de modelado que tiene al mismo tiempo caractersticas de asociacin y de clase. Una clase de asociacin se puede ver como una asociacin que tiene propiedades de clase o como una clase que tiene propiedades de asociacin.

octubre de 2013 Diagramas de clases. Ingeniera de software II 16

Asociaciones como clases


Usuario 1..* Autorizacin Prioridad Privilegios Comenzar sesin () autorizado en 1..* Terminal

octubre de 2013

Diagramas de clases. Ingeniera de software II

17

Agregaciones
La agregacin es una forma especial de asociacin que especifica una relacin es parte de entre el todo y cada una de sus partes. El objeto con sus agregaciones se trata generalmente como una unidad en varias operaciones.

octubre de 2013 Diagramas de clases. Ingeniera de software II 18

Agregaciones
Auto
ruedas 4

Rueda

Polgono

est formado por

Punto

3..* {ordenados}

octubre de 2013

Diagramas de clases. Ingeniera de software II

19

Composicin

La composicin es una forma de agregacin con una relacin de pertenencia muy fuerte y un ciclo de vida coincidente entre las partes y el todo. La multiplicidad del compuesto no puede ser mayor que uno; no es compartido. Se puede agregar partes; pero una vez agregadas son eliminadas con el todo. Se puede remover partes; pero antes de que se elimine el todo.
octubre de 2013 Diagramas de clases. Ingeniera de software II 20

Composicin
Ventana

Scrollbar

Ttulo

Cuerpo 1

Slider

Barra

Panel

Encabezado
Factura
*

Lnea

octubre de 2013

Diagramas de clases. Ingeniera de software II

21

Composicin y Agregacin
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye ( el Objeto base se contruye a partir del objeto incluido )
Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye.(el objeto base utiliza al incluido para su funcionamiento)

octubre de 2013

Diagramas de clases. Ingeniera de software II

22

Asociacin y agregacin
Persona Nombre Empleado Cdula 1..* Direccin trabaja para Empleador Empresa

0..*

Nombre Direccin

Trabajo Salario Cargo 1..* Divisin Nombre Edificio Ubicacin

1..* Departamento Nombre 0..1 ocupa 1..*

1..* Oficina Piso Nmero

octubre de 2013

Diagramas de clases. Ingeniera de software II

23

Generalizacin y herencia

La generalizacin es una relacin taxonmica entre un elemento ms general y un elemento ms especfico. El elemento ms especfico es completamente consistente con el elemento ms general y contiene informacin adicional. Se puede usar una instancia del elemento ms especfico donde se espera un elemento ms general. La herencia es el mecanismo por el cual elementos ms especficos incorporan estructura y comportamiento de elementos ms genricos.
octubre de 2013 Diagramas de clases. Ingeniera de software II 24

Generalizacin y herencia
Figura Color Posicin centro Ancho lnea dibujo Tipo lnea dibujo Mover () Seleccionar () Rotar ()

Adimensional

Unidimensional Orientacin Escalar ()

Bidimensional Orientacin Tipo relleno Escalar () Rellenar ()

Punto Dibujar ()

Arco ngulo comienzo ngulo arco Radio Dibujar ()

Lnea Extremos Dibujar ()

Spline Puntos control Dibujar ()

Crculo Dimetro
Dibujar () Rotar ()

Polgono Nmero lados Vrtices Dibujar ()

octubre de 2013

Diagramas de clases. Ingeniera de software II

25

Generalizacin y composicin
Base Cubierta Lmpara Llave

Cable

Lmpara fluorescente

Lmpara incandescente

Encastre

Arrancador

Receptculo

octubre de 2013

Diagramas de clases. Ingeniera de software II

26

Clases abstractas
Las clases abstractas estn diseadas slo para ser heredadas. Las clases abstractas nunca tienen instancias. Las clases concretas son diseadas para tener instancias. Una clase abstracta no puede ser subclase de una clase concreta.

octubre de 2013 Diagramas de clases. Ingeniera de software II 27

Clases abstractas

Un mtodo es abstracto cuando no tiene cdigo en la clase en la que se declara. Debe estar definido en alguna de las clases sucesoras.

Una clase abstracta se denota con el nombre de la clase y de los mtodos con letra "itlica". Esto indica que la clase definida no puede ser instanciada pues posee mtodos abstractos
octubre de 2013 Diagramas de clases. Ingeniera de software II 28

Herencia

Herencia simple. Una clase puede tener una superclase. Herencia mltiple. Una clase puede tener varias superclases. Una clase puede no tener ninguna superclase y es el origen de la jerarqua. Habitualmente los lenguajes de programacin tienen una sola jerarqua, es decir, hay slo una clase sin superclase.
octubre de 2013 Diagramas de clases. Ingeniera de software II 29

Dependencias

Una dependencia es una relacin entre dos elementos del modelo, en la cual un cambio en uno de ellos, el elemento independiente, afectar al otro, el elemento dependiente. Es una relacin entre dos clases en la que se declara que una necesita saber acerca de la otra para utilizar sus objetos. A su vez es una relacin transitoria porque no se mantiene en el tiempo.
octubre de 2013 Diagramas de clases. Ingeniera de software II 30

Dependencias
Una clase

conoce

Otra clase ms

El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene una clase de otra.

instancia

Otra clase

octubre de 2013

Diagramas de clases. Ingeniera de software II

31

Cualificador

Cuando la multiplicidad de una asociacin es de uno a muchos se presenta un reto muy particular: la bsqueda Cuando un objeto de una clase tiene que seleccionar un objeto particular de otro tipo para cumplir con un papel en la asociacin, la primera clase deber atenerse a un atributo en particular para localizar al objeto adecuado
octubre de 2013 Diagramas de clases. Ingeniera de software II 32

Cualificador
Cliente
Nmero de cuenta * opera en * Banco Dado un banco y nmero de cuenta tiene un cliente

Cliente

opera en Nmero de cuenta

Banco Dado un cliente y un nmero de cuenta tiene cero o ms bancos Una orden tiene muchas lneas de orden

0..*

Orden

0..*

1..*

Lnea de Orden Producto Cantidad

Orden

0..1 Producto

Lnea de Orden Cantidad

Dada una orden y un producto tiene cero o una lnea de orden

octubre de 2013

Diagramas de clases. Ingeniera de software II

33

Estereotipos
Permite extender el lenguaje UML para los diagramas de clase Ej. Vista, modelo, controlador, interface Se representan mediante <<estereotipos>>

octubre de 2013

Diagramas de clases. Ingeniera de software II

34

Estereotipos

octubre de 2013

Diagramas de clases. Ingeniera de software II

35

Estereotipos

octubre de 2013

Diagramas de clases. Ingeniera de software II

36

Interface
Un interface es una especificacin del conjunto de operaciones de una clase o paquete que son visibles desde otras clases o paquetes. Se representa mediante:

Una caja con nombre, operaciones y el estereotipo

<<Interface>>.

O bien mediante un crculo pequeo, con el nombre de la

interface

octubre de 2013

Diagramas de clases. Ingeniera de software II

37

Interface

Una clase tiene una instancia de su tipo, mientras que una interface debe tener al menos una clase para implantarla. En UML, una interface es considerada como una especializacin de una clase.

Una interface no es una clase.

Ejemplo interfaces

Ejemplo interfaces
En el diagrama anterior las clases Professor y Student implementan a la interface Person y no heredan de sta, podemos deducirlo a partir de: 1) El objeto Person de acuerdo a la simbologa del diagrama est como una interface y Professor y Student estn como clases. 2) No se trata de herencia ya que la lnea con la flecha est punteada y no slida.

Elemento derivado

Un elemento es derivado cuando se puede calcular a partir de otro elemento, pero se muestra por calidad o se incluye por razones de diseo, aunque no agregue informacin semntica.

octubre de 2013

Diagramas de clases. Ingeniera de software II

41

Elementos derivados
Persona Nombre Empleado Cdula 1..* Direccin 1..* trabaja en 1 /ocupa Edificio Ubicacin 1 1..*

/trabaja para

Empleador
0..*

Empresa Nombre Direccin

Departamento

Nombre
1..* 1..*

0..1
ocupa 1..*

Divisin
Nombre

Oficina
1..* Piso Nmero

Persona /Edad Fecha de nacimiento {Edad = Hoy - Fecha de nacimiento}

octubre de 2013

Diagramas de clases. Ingeniera de software II

42

Restricciones
depende de Jefe 0..1 Empleado Salario 1..* {Salario < Jefe.Salario}

Ventana Ancho Alto


{0.8 <= Ancho / Alto <= 1.5}

Proceso

Prioridad
{Prioridad nunca crece}

octubre de 2013

Diagramas de clases. Ingeniera de software II

43

Restricciones
est formado por Polgono Punto 3..* {ordenados}

miembro 3..* Persona {subconjunto} directivo 0..* Club 0..*

3..7

octubre de 2013

Diagramas de clases. Ingeniera de software II

44

Ejemplo

octubre de 2013

Diagramas de clases. Ingeniera de software II

45

Ejemplo

octubre de 2013

Diagramas de clases. Ingeniera de software II

46

Diagrama de Objetos

La clase define las reglas; los objetos expresan los hechos. La clase define que puede ser; el objeto describe que es. Se considera un caso especial del diagrama de clases. Puede construirse junto con el de clases. Describe una instancia de un diagrama de clase en un momento en particular. Este diagrama contiene objetos y relaciones.

Notacin Diagrama de Objetos

Consiste de dos elementos: objetos y uniones (links). Un objeto es una entidad real creada a partir de una clase, igual una unin es creada a partir de una asociacin. Ejemplo

Comparando el diagrama de Clases y el de Objetos

Diagrama anterior

El diagrama de objeto muestra que el objeto 4321 de tipo Embarque tiene dos Productos. Cada atributo de los 3 objetos tiene asignado un valor. Las operaciones de las clases no se incluyen en el diagrama de objetos, ya que stas no tienen mltiples interpretaciones o valores como los atributos. Cada objeto de la misma clase posee las mismas operaciones.

Diagrama de clase

Diagrama de objetos

Tiene tres compartimentos: nombre, Tiene dos compartimentos: nombre atributos y operaciones y atributos Solo se pone el nombre de la clase Se puede poner el nombre del objeto : y el de la clase subrayados, o solamente : y el nombre de la clase Solo se definen los valores de cada atributo para la prueba que se est modelando Las operaciones no estn incluidas en el objeto ya que son idnticas para cada objeto de la misma clase Los objetos se conectan con un link que tiene un nombre y no tiene multiplicidad.

En los atributos se definen las propiedades de los mismos Se listan las operaciones

Las clases se conectan con una asociacin con nombre, multiplicidad, roles.

You might also like