Está en la página 1de 21

Diagrama

de
Clases

Diagrama de Clases
El propsito de este diagrama es el de representar los
objetos fundamentales del sistema, es decir los que
percibe el usuario y con los que espera tratar para
completar su tarea en vez de objetos del sistema o de un
modelo de programacin.
La clase define el mbito de definicin de un conjunto de
objetos.
Cada objeto pertenece a una clase.
Los objetos se crean por instanciacin de las clases.

Diagrama de Clases
Cada clase se representa en un rectngulo con tres
compartimientos:
Nombre de la clase
Atributos de la clase
Operaciones de la clase

Diagrama de Clases: Atributos

Tipo:
Tipo: puede llegar a depender del lenguaje de programacin a utilizar.
utilizar.
Valor inicial:
inicial: valor que poseer el atributo al crear un objeto.
Visibilidad:
Visibilidad: est relacionado con el encapsulamiento.
Multiplicidad:
Multiplicidad: determinar si un atributo debe estar o no, y si posee un nico valor o
una lista de valores.
Ordenamiento:
Ordenamiento: especifica si el atributo determina alguna relacin de orden dentro
dentro de la
clase.
Capacidad de cambio:
cambio: permite definir atributos con valores constantes.
Modificadores:
Modificadores: un atributo puede ser de clase, derivado, voltil, transitorio.
transitorio.
El atributo fecha de nacimiento es pblico.

El atributo edad es derivado (puede calcularse a partir


de la fecha de nacimiento), y determina una relacin de
orden entre las instancias de las personas.
El atributo DNI es un atributo protegido.

El atributo coloresPreferidos representa una coleccin


o conjunto de valores del tipo Color
4

Diagrama de Clases: Atributos


Visibilidad
La encapsulamiento presenta tres ventajas bsicas:

Se protegen los datos de accesos indebidos


El acoplamiento entre las clases se disminuye
Favorece la modularidad y el mantenimiento

Los atributos de una clase no deberan ser manipulables directamente


directamente por el resto de
objetos.

Niveles de encapsulamiento:
(-) Privado : es el ms fuerte. Esta parte es totalmente invisible desde
fuera de la clase (excepto para clases friends en terminologa
terminologa C++).
(~) Package : Slo es visible dentro del mismo package.
(#) Los atributos/operaciones protegidos estn visibles para las clases
friends y para las clases derivadas de la original.
(+) Los atributos/operaciones pblicos son visibles a otras clases (cuando
se trata de atributos se est transgrediendo el principio
principio de
encapsulamiento).
5

Diagrama de Clases: Atributos


Multiplicidad
1

El atributo debe tener un nico valor.

0..1

El atributo puede o no tener un valor.

0..*

El atributo puede tener varios valores o ninguno.

1..*

El atributo puede tener varios valores, pero debe tener al menos uno

El atributo puede tener varios valores.

M..N

El atributo puede tener entre M y N valores.

Modificadores
De clase o esttico:
esttico: el atributo se aparece subrayado. No es necesario contar
con un objeto para ejecutarlo.
Derivado:
Derivado: es calculable a partir de otros atributos.
Transitorio:
Transitorio: tendr valor slo durante una porcin de la ejecucin.
Voltil:
Voltil: no se persiste.

Diagrama de Clases: Operaciones


Una operacin es un servicio que una instancia de la clase puede realizar.

Tipo devuelto:
devuelto: puede llegar a depender del lenguaje de programacin a utilizar.
utilizar.
Parmetros:
Parmetros: adems del tipo, puede especificarse si son In, Out o InOut.
Visibilidad:
Visibilidad: est relacionado con el encapsulamiento.
Modificadores:
Modificadores: una operacin puede ser de clase, abstracta, query o constructor.
constructor.

La operacin calcularEdad es privado y no


devuelve nada.

El mtodo pblico calcularHorasTrabajadas es


abstracto, las subclases de la clase Persona deber
implementarlo para utilizarlo.

Diagrama de Clases
Relaciones entre Clases
Una asociacin es una conexin estructural simple
entre clases. Las instancias de las clases implicadas en
una asociacin estarn probablemente comunicndose
en el momento de ejecucin.
Los enlaces entre de objetos pueden representarse
entre las respectivas clases
Formas de relacin entre clases:
Asociacin y Agregacin (vista como un caso particular de
asociacin)
Generalizacin/Especializacin
8

Diagrama de Clases: Asociacin


La asociacin expresa una conexin bidireccional entre
objetos.
Una asociacin es una abstraccin de la relacin
existente en los enlaces entre los objetos.

Enlace

Diagrama de Clases
Relaciones entre Clases
Multiplicidad
1

Un elemento relacionado.

0..1

Uno o ningn elemento relacionado.

0..*

Varios elementos relacionados o ninguno.

1..*

Varios elementos relacionados pero al menos uno.

Varios elementos relacionados.

M..N

Entre M y N elementos relacionados.

10

Diagrama de Clases: Asociacin


Rol
Identificado como un nombre a los finales de la asociaci
asociacin,
describe la sem
semntica de la relaci
relacin en el sentido indicado.
Cada asociaci
asociacin tiene dos roles; cada rol es una direcci
direccin en
la asociaci
asociacin.

11

Diagrama de Clases: Asociacin


Se asume que una asociacin es bidireccional, es decir
que se puede navegar desde cualquiera de clases
implicadas a la otra, pero es posible indicar que la
navegacin ocurrir en una sola direccin.

12

Diagrama de Clases: Agregacin


Es una asociacin especial, una relacin del tipo
todo/parte dentro de la cual una o ms clases son
partes de un conjunto.

13

Diagrama de Clases: Composicin


La composicin es una forma fuerte de
agregacin. Se diferencian en:
En la composicin tanto el todo como las partes tienen el
mismo ciclo de vida.
Un objeto puede pertenecer solamente a una composicin.

14

Diagrama de Clases: Asociacin Calificada


Un calificador es un atributo (o tupla de atributos) de la
asociacin cuyos valores sirven para particionar el
conjunto de objetos enlazados a otro.
Un calificador se representa como un pequeo
rectngulo conectado al final de una asociacin y a la
clase.
El rectngulo del calificador es parte de la asociacin, y
no parte de la clase.

fila:
fila: int
columna:
columna: int

15

Diagrama de Clases: Asociacin nn-arias


Son asociaciones que se establecen entre m
ms de dos clases
Una clase puede aparecer varias veces desempe
desempeando
distintos roles.
Las asociaciones nn-arias se representan a trav
travs de rombo
que se une con cada una de las clases.
clases.
La relaciones nn-arias
pueden ser usadas
para impedir
inconsistencias en el
modelo.

16

Diagrama de Clases: Generalizacin


Una generalizacin se refiere a una relacin entre una
clase general (superclase o padre) y una versin ms
especfica de dicha clase (subclase o hija).

17

Diagrama de Clases: Generalizacin


Nombres usados: clase padre - clase hija. Otros nombres:
superclase - subclase, clase base - clase derivada.
Las subclases heredan propiedades de sus clases padre, es decir,
atributos y operaciones (y asociaciones) de la clase padre estn
disponibles en sus clases hijas.
La especializacin es una tcnica muy eficaz para la extensin y
reutilizacin.
Restricciones predefinidas
en UML:
Overlapping
Disjoint
Complete
Incomplete
18

Diagrama de Clases: Generalizacin


Particionamiento del espacio de objetos  Clasificacin Esttica
Particionamiento del espacio de estados de los objetos 
Clasificacin Dinmica
En ambos casos se recomienda considerar
generalizaciones/especializaciones disjuntas
Usando discriminadores se pueden tener varias especializaciones
de una misma clase padre

Discriminador

19

Diagrama de Clases: Generalizacin


La herencia mltiple debe manejarse con precaucin. Algunos
problemas son el conflicto de nombre y el conflicto de precedencia.
precedencia.
Se recomienda un uso restringido y disciplinado de la herencia.
Permite modelar jerarquas alternativas.

20

Diagrama de Clases: Clase de asociacin


Es una asociacin y una clase simultneamente.
Hay que tener en cuenta dnde se colocan los
atributos.

21

Diagrama de Clases: Dependencia


Una dependencia es una relacin de uso en la que un
cambio en uno de los trminos -por ejemplo, una claseclasepuede afectar a otro (otra clase)

22

Diagrama de Clases: Dependencia


Posibles dependencias entre clases
use:
use: el funcionamiento del origen depende de la
presencia del destino
instantiate:
instantiate: el origen crea instancias del destino
derive:
derive: el origen puede calcularse a partir del destino
refine:
refine: el origen est
est un grado de abstracci
abstraccin m
ms
detallado.
bind():
bind(): derivaci
derivacin gen
genrica de una plantilla
friend:
friend: visibilidad caracter
caracterstica de C++

23

Diagrama de Clases: Estereotipos


Un estereotipo representa el principal mecanismo de
extensin de UML. Ofrece una forma de extender una
metaclase, creando un nuevo elemento de
metamodelo.

24

Diagrama de Clases: Interfaces


Una interfaz es una coleccin de operaciones que
representan servicios ofrecidos por una clase o
componente.
Por definicin, todas estas operaciones tendrn una
visibilidad pblica.
La interfaz especifica algo similar a un contrato que la
clase se compromete a respetar.
La clase realiza (o suministra una realizacin de) una o
varias interfaces.
UML define dos tipos de interfaces: interfaz
suministrada e interfaz requerida.
25

Diagrama de Clases: Interfaces


La interfaz suministrada es aquella que una clase
efectivamente implementa.

26

Diagrama de Clases: Interfaces


Las interfaces requeridas son aquellas que necesita una
clase para realizar su cometido. El smbolo utilizado
para representarla es un semicrculo.

27

Ejemplo
Cmo interpretara lo siguiente?

28

Modelo de Dominio vs. Modelo de Diseo


El diagrama de clases puede utilizarse con distintos
fines en distintas etapas del proceso de desarrollo.
Durante la etapa de anlisis, el modelo de dominio
es encargado de mostrar el conjunto de clases
conceptuales del problema y las relaciones presentes
entre s.
Durante la etapa de diseo, el modelo de diseo
determina las futuras componentes de software
(clases) y sus relaciones entre s.
29

Modelo de Dominio
Es una representacin de las cosas, entidades,
idea, clases conceptuales u objetos del mundo
real o dominio de inters, no de componentes de
software.
Muestra clases conceptuales significativas en un
dominio del problema.
Se usa como base para el diseo de los objetos de
software.

30

Modelo de Dominio
Es el artefacto ms importante del anlisis.
Podra se considerado como un diccionario visual
de abstracciones de clases conceptuales,
vocabulario e informacin del dominio.
No es absolutamente correcto o incorrecto, su
intenci
intencin en ser til sirviendo como una
herramienta de comunicaci
comunicacin.

31

Modelo de Dominio
Otros nombres: modelo conceptual, modelo de objetos del dominio
y modelo de los objetos de an
anlisis.
Seg
Segn el punto de vista, tiene puntos en com
comn con el Diagrama
de Entidad Relaci

n
.
Relaci
Usando UML, el MD se representa con un conjunto de diagramas
de clases. Se puede mostrar:
objetos del dominio o clases conceptuales
asociaciones entre las clases conceptuales
atributos de las clases conceptuales
NO SE DEFINE NINGUNA OPERACI
OPERACIN. La asignaci
asignacin de
responsabilidades de los objetos no forma parte de este modelo.
32

Modelo de Dominio: Clases Conceptuales


Es v
vlido
lido
Tener clases conceptuales sin atributos.
Tener clases conceptuales para las cuales no haya
requerimientos de informaci
informacin a registrar.
Tener clases conceptuales con rol de
comportamiento,
comportamiento, en lugar de informaci
informacin.

Estrategias para identificar


Utilizar lista de categor
categoras de clases conceptuales.
Identificar frases nominales (sustantivos o frases).

33

Modelo de Dominio: Clases Conceptuales

34

Modelo de Dominio: Clases Conceptuales


Identificar frases nominales (sustantivos o frases)
Se intenta identificar sustantivos o frases nominales en el
vocabulario y descripciones del dominio del problema.
Esta t
tcnica pr
prctica no puede ser aplicada
mec
mecnicamente sino que hay que usar el sentido com
comn
y capturar las abstracciones adecuadas puesto que el
lenguaje natural es ambiguo y los conceptos relevantes no
siempre se encuentran de manera expl
explcita.

35

Ejemplo
Un posible modelo de dominio para el caso del local de
venta de electrodom
electrodomsticos
sticos

36

Diagrama Entidad Relacin


No pertenece a UML
Nacido para describir bases de datos relacionales
(Chen).
2 conceptos: entidades y relaciones.
Entidades: conjuntos de individuos que poseen
atributos.
Relaciones entre individuos especificando
cardinalidad y opcionalidad.
Cliente

Proyecto
ordena

Empleado
trabaja_en
37

Modelo de Diseo
A diferencia del Modelo de Dominio, el modelo
de diseo se encuentra ms cerca de la
solucin buscada.
Refleja decisiones en cuanto a asignacin de
responsabilidades entre los objetos
(operaciones).
Toma como base el Modelo de Dominio, donde
algunas entidades se promovern a Clases.
38

Modelo de Diseo
Muestra cmo se relacionan componentes de
software para resolver el problema planteado.
Es el paso previo a la implementacin.
Es posible aplicar patterns segn el tipo de
problema.

39

Objetos

40

Preguntas?

41

También podría gustarte