Está en la página 1de 21

1

Diagrama Diagrama
de de
Clases Clases
2
Diagrama de Clases Diagrama de Clases
El propsito de este diagrama es el de representar los El propsito de este diagrama es el de representar los
objetos fundamentales del sistema, es decir los que objetos fundamentales del sistema, es decir los que
percibe el usuario y con los que espera tratar para percibe el usuario y con los que espera tratar para
completar su tarea en vez de objetos del sistema o de un completar su tarea en vez de objetos del sistema o de un
modelo de programacin. modelo de programacin.
La clase define el mbito de definicin de un conjunto de La clase define el mbito de definicin de un conjunto de
objetos. objetos.
Cada objeto pertenece a una clase. Cada objeto pertenece a una clase.
Los objetos se crean por instanciacin de las clases. Los objetos se crean por instanciacin de las clases.
3
Diagrama de Clases Diagrama de Clases
Cada clase se representa en un rectngulo con tres Cada clase se representa en un rectngulo con tres
compartimientos: compartimientos:
Nombre de la clase Nombre de la clase
Atributos de la clase Atributos de la clase
Operaciones de la clase Operaciones de la clase
4
Diagrama de Clases: Atributos Diagrama de Clases: Atributos
Tipo Tipo: puede llegar a depender del lenguaje de programacin a utiliza : puede llegar a depender del lenguaje de programacin a utilizar. r.
Valor inicial Valor inicial: valor que poseer el atributo al crear un objeto. : valor que poseer el atributo al crear un objeto.
Visibilidad Visibilidad: est relacionado con el encapsulamiento. : est relacionado con el encapsulamiento.
Multiplicidad Multiplicidad: determinar si un atributo debe estar o no, y si posee un nico : determinar si un atributo debe estar o no, y si posee un nico valor o valor o
una lista de valores. una lista de valores.
Ordenamiento Ordenamiento: especifica si el atributo determina alguna relacin de orden d : especifica si el atributo determina alguna relacin de orden dentro de la entro de la
clase. clase.
Capacidad de cambio Capacidad de cambio: permite definir atributos con valores constantes. : permite definir atributos con valores constantes.
Modificadores Modificadores: un atributo puede ser de clase, derivado, voltil, transitorio : un atributo puede ser de clase, derivado, voltil, transitorio. .
El atributo fecha de nacimiento es pblico. El atributo fecha de nacimiento es pblico.
El atributo edad es derivado (puede calcularse a partir El atributo edad es derivado (puede calcularse a partir
de la fecha de nacimiento), y determina una relacin de de la fecha de nacimiento), y determina una relacin de
orden entre las instancias de las personas. orden entre las instancias de las personas.
El atributo DNI es un atributo protegido. El atributo DNI es un atributo protegido.
El atributo coloresPreferidos representa una coleccin El atributo coloresPreferidos representa una coleccin
o conjunto de valores del tipo Color o conjunto de valores del tipo Color
5
Diagrama de Clases: Atributos Diagrama de Clases: Atributos
Visibilidad Visibilidad
La encapsulamiento presenta tres ventajas bsicas: La encapsulamiento presenta tres ventajas bsicas:
Se protegen los datos de accesos indebidos Se protegen los datos de accesos indebidos
El acoplamiento entre las clases se disminuye El acoplamiento entre las clases se disminuye
Favorece la modularidad y el mantenimiento Favorece la modularidad y el mantenimiento
Los atributos de una clase no deberan ser manipulables directam Los atributos de una clase no deberan ser manipulables directamente por el resto de ente por el resto de
objetos. objetos.
Niveles de encapsulamiento:
( (- -) Privado ) Privado : es el ms fuerte. Esta parte es totalmente invisible desde : es el ms fuerte. Esta parte es totalmente invisible desde
fuera de la clase (excepto para clases friends en terminol fuera de la clase (excepto para clases friends en terminologa C++). oga C++).
(~) Package (~) Package : Slo es visible dentro del mismo package. : Slo es visible dentro del mismo package.
(#) (#) Los atributos/operaciones Los atributos/operaciones protegidos protegidos estn visibles para las clases estn visibles para las clases
friends y para las clases derivadas de la original. friends y para las clases derivadas de la original.
(+) (+) Los atributos/operaciones Los atributos/operaciones pblicos pblicos son visibles a otras clases (cuando son visibles a otras clases (cuando
se trata de atributos se est transgrediendo el principi se trata de atributos se est transgrediendo el principio de o de
encapsulamiento). encapsulamiento).
6
Diagrama de Clases: Atributos Diagrama de Clases: Atributos
Multiplicidad Multiplicidad
Modificadores Modificadores
De De clase clase o o esttico esttico: el atributo se aparece subrayado. No es necesario contar : el atributo se aparece subrayado. No es necesario contar
con un objeto para ejecutarlo. con un objeto para ejecutarlo.
Derivado Derivado: es calculable a partir de otros atributos. : es calculable a partir de otros atributos.
Transitorio Transitorio: tendr valor slo durante una porcin de la ejecucin. : tendr valor slo durante una porcin de la ejecucin.
Voltil Voltil: no se persiste. : no se persiste.
1 1 El atributo debe tener un nico valor. El atributo debe tener un nico valor.
0..1 0..1 El atributo puede o no tener un valor. El atributo puede o no tener un valor.
0..* 0..* El atributo puede tener varios valores o ninguno. El atributo puede tener varios valores o ninguno.
1..* 1..* El atributo puede tener varios valores, pero debe tener al menos El atributo puede tener varios valores, pero debe tener al menos uno uno
* * El atributo puede tener varios valores. El atributo puede tener varios valores.
M..N M..N El atributo puede tener entre M y N valores. El atributo puede tener entre M y N valores.
7
Diagrama de Clases: Operaciones Diagrama de Clases: Operaciones
Una operacin es un servicio que una instancia de la clase puede Una operacin es un servicio que una instancia de la clase puede realizar. realizar.
Tipo devuelto Tipo devuelto: puede llegar a depender del lenguaje de programacin a utiliza : puede llegar a depender del lenguaje de programacin a utilizar. r.
Parmetros Parmetros: adems del tipo, puede especificarse si son In, Out o InOut. : adems del tipo, puede especificarse si son In, Out o InOut.
Visibilidad Visibilidad: est relacionado con el encapsulamiento. : est relacionado con el encapsulamiento.
Modificadores Modificadores: una operacin puede ser de clase, abstracta, query o construct : una operacin puede ser de clase, abstracta, query o constructor. or.
La operacin calcularEdad es privado y no La operacin calcularEdad es privado y no
devuelve nada. devuelve nada.
El mtodo pblico calcularHorasTrabajadas es El mtodo pblico calcularHorasTrabajadas es
abstracto, las subclases de la clase Persona deber abstracto, las subclases de la clase Persona deber
implementarlo para utilizarlo. implementarlo para utilizarlo.
8
Diagrama de Clases Diagrama de Clases
Relaciones entre Clases Relaciones entre Clases
Una asociacin es una conexin estructural simple Una asociacin es una conexin estructural simple
entre clases. Las instancias de las clases implicadas en entre clases. Las instancias de las clases implicadas en
una asociacin estarn probablemente comunicndose una asociacin estarn probablemente comunicndose
en el momento de ejecucin. en el momento de ejecucin.
Los enlaces entre de objetos pueden representarse Los enlaces entre de objetos pueden representarse
entre las respectivas clases entre las respectivas clases
Formas de relacin entre clases: Formas de relacin entre clases:
Asociacin y Agregacin (vista como un caso particular de Asociacin y Agregacin (vista como un caso particular de
asociacin) asociacin)
Generalizacin/Especializacin Generalizacin/Especializacin
9
Diagrama de Clases: Asociacin Diagrama de Clases: Asociacin
La asociacin expresa una conexin bidireccional entre La asociacin expresa una conexin bidireccional entre
objetos. objetos.
Una asociacin es una abstraccin de la relacin Una asociacin es una abstraccin de la relacin
existente en los enlaces entre los objetos. existente en los enlaces entre los objetos.
Enlace Enlace
10
Diagrama de Clases Diagrama de Clases
Relaciones entre Clases Relaciones entre Clases
Multiplicidad Multiplicidad
1 1 Un elemento relacionado. Un elemento relacionado.
0..1 0..1 Uno o ningn elemento relacionado. Uno o ningn elemento relacionado.
0..* 0..* Varios elementos relacionados o ninguno. Varios elementos relacionados o ninguno.
1..* 1..* Varios elementos relacionados pero al menos uno. Varios elementos relacionados pero al menos uno.
* * Varios elementos relacionados. Varios elementos relacionados.
M..N M..N Entre M y N elementos relacionados. Entre M y N elementos relacionados.
11
Diagrama de Clases: Asociacin Diagrama de Clases: Asociacin
Rol Rol
Identificado como un nombre a los finales de la asociaci Identificado como un nombre a los finales de la asociaci n, n,
describe la sem describe la sem ntica de la relaci ntica de la relaci n en el sentido indicado. n en el sentido indicado.
Cada asociaci Cada asociaci n tiene dos roles; cada rol es una direcci n tiene dos roles; cada rol es una direcci n en n en
la asociaci la asociaci n. n.
12
Diagrama de Clases: Asociacin Diagrama de Clases: Asociacin
Se asume que una asociacin es bidireccional, es decir Se asume que una asociacin es bidireccional, es decir
que se puede navegar desde cualquiera de clases que se puede navegar desde cualquiera de clases
implicadas a la otra, pero es posible indicar que la implicadas a la otra, pero es posible indicar que la
navegacin ocurrir en una sola direccin. navegacin ocurrir en una sola direccin.
13
Diagrama de Clases: Agregacin Diagrama de Clases: Agregacin
Es una asociacin especial, una relacin del tipo Es una asociacin especial, una relacin del tipo
todo/parte dentro de la cual una o ms clases son todo/parte dentro de la cual una o ms clases son
partes de un conjunto. partes de un conjunto.
14
Diagrama de Clases: Composicin Diagrama de Clases: Composicin
La composicin es una forma fuerte de La composicin es una forma fuerte de
agregacin. Se diferencian en: agregacin. Se diferencian en:
En la composicin tanto el todo como las partes tienen el En la composicin tanto el todo como las partes tienen el
mismo ciclo de vida. mismo ciclo de vida.
Un objeto puede pertenecer solamente a una composicin. Un objeto puede pertenecer solamente a una composicin.
15
Diagrama de Clases: Asociacin Calificada Diagrama de Clases: Asociacin Calificada
Un calificador es un atributo (o tupla de atributos) de la Un calificador es un atributo (o tupla de atributos) de la
asociacin cuyos valores sirven para particionar el asociacin cuyos valores sirven para particionar el
conjunto de objetos enlazados a otro. conjunto de objetos enlazados a otro.
Un calificador se representa como un pequeo Un calificador se representa como un pequeo
rectngulo conectado al final de una asociacin y a la rectngulo conectado al final de una asociacin y a la
clase. clase.
El rectngulo del calificador es parte de la asociacin, y El rectngulo del calificador es parte de la asociacin, y
no parte de la clase. no parte de la clase.
fila fila: : int int
columna columna: : int int
16
Diagrama de Clases: Asociacin n Diagrama de Clases: Asociacin n- -arias arias
Son asociaciones que se establecen entre m Son asociaciones que se establecen entre m s de dos clases s de dos clases
Una clase puede aparecer varias veces desempe Una clase puede aparecer varias veces desempe ando ando
distintos roles. distintos roles.
Las asociaciones n Las asociaciones n- -arias se representan a trav arias se representan a trav s de s de rombo rombo
que se une con cada una de las clases que se une con cada una de las clases. .
La relaciones n La relaciones n- -arias arias
pueden ser usadas pueden ser usadas
para impedir para impedir
inconsistencias en el inconsistencias en el
modelo. modelo.
17
Diagrama de Clases: Generalizacin Diagrama de Clases: Generalizacin
Una generalizacin se refiere a una relacin entre una Una generalizacin se refiere a una relacin entre una
clase general (superclase o padre) y una versin ms clase general (superclase o padre) y una versin ms
especfica de dicha clase (subclase o hija). especfica de dicha clase (subclase o hija).
18
Diagrama de Clases: Generalizacin Diagrama de Clases: Generalizacin
Nombres usados: clase padre Nombres usados: clase padre - - clase hija. Otros nombres: clase hija. Otros nombres:
superclase superclase - - subclase, clase base subclase, clase base - - clase derivada. clase derivada.
Las subclases heredan propiedades de sus clases padre, es decir, Las subclases heredan propiedades de sus clases padre, es decir,
atributos y operaciones (y asociaciones) de la clase padre estn atributos y operaciones (y asociaciones) de la clase padre estn
disponibles en sus clases hijas. disponibles en sus clases hijas.
La especializacin es una tcnica muy eficaz para la extensin y La especializacin es una tcnica muy eficaz para la extensin y
reutilizacin. reutilizacin.
Restricciones predefinidas Restricciones predefinidas
en UML: en UML:
Overlapping Overlapping
Disjoint Disjoint
Complete Complete
Incomplete Incomplete
19
Diagrama de Clases: Generalizacin Diagrama de Clases: Generalizacin
Particionamiento del espacio de objetos Particionamiento del espacio de objetos Clasificacin Esttica Clasificacin Esttica
Particionamiento del espacio de estados de los objetos Particionamiento del espacio de estados de los objetos
Clasificacin Dinmica Clasificacin Dinmica
En ambos casos se recomienda considerar En ambos casos se recomienda considerar
generalizaciones/especializaciones disjuntas generalizaciones/especializaciones disjuntas
Usando discriminadores se pueden tener varias especializaciones Usando discriminadores se pueden tener varias especializaciones
de una misma clase padre de una misma clase padre
Discriminador Discriminador
20
Diagrama de Clases: Generalizacin Diagrama de Clases: Generalizacin
La herencia mltiple debe manejarse con precaucin. Algunos La herencia mltiple debe manejarse con precaucin. Algunos
problemas son el conflicto de nombre y el conflicto de precedenc problemas son el conflicto de nombre y el conflicto de precedencia. ia.
Se recomienda un uso restringido y disciplinado de la herencia. Se recomienda un uso restringido y disciplinado de la herencia.
Permite modelar jerarquas alternativas. Permite modelar jerarquas alternativas.
21
Es una asociacin y una clase simultneamente. Es una asociacin y una clase simultneamente.
Hay que tener en cuenta dnde se colocan los Hay que tener en cuenta dnde se colocan los
atributos. atributos.
Diagrama de Clases: Clase de asociacin Diagrama de Clases: Clase de asociacin
22
Diagrama de Clases: Dependencia Diagrama de Clases: Dependencia
Una dependencia es una relacin de uso en la que un Una dependencia es una relacin de uso en la que un
cambio en uno de los trminos cambio en uno de los trminos - -por ejemplo, una clase por ejemplo, una clase- -
puede afectar a otro (otra clase) puede afectar a otro (otra clase)
23
Diagrama de Clases: Dependencia Diagrama de Clases: Dependencia
Posibles dependencias entre clases Posibles dependencias entre clases
use use: el funcionamiento del origen depende de la : el funcionamiento del origen depende de la
presencia del destino presencia del destino
instantiate instantiate: el origen crea instancias del destino : el origen crea instancias del destino
derive derive: el origen puede calcularse a partir del destino : el origen puede calcularse a partir del destino
refine refine: el origen est : el origen est un grado de abstracci un grado de abstracci n m n m s s
detallado. detallado.
bind() bind(): : derivaci derivaci n gen n gen rica de una plantilla rica de una plantilla
friend friend: visibilidad caracter : visibilidad caracter stica de C++ stica de C++
24
Diagrama de Clases: Estereotipos Diagrama de Clases: Estereotipos
Un estereotipo representa el principal mecanismo de Un estereotipo representa el principal mecanismo de
extensin de UML. Ofrece una forma de extender una extensin de UML. Ofrece una forma de extender una
metaclase, creando un nuevo elemento de metaclase, creando un nuevo elemento de
metamodelo. metamodelo.
25
Diagrama de Clases: Interfaces Diagrama de Clases: Interfaces
Una interfaz es una coleccin de operaciones que Una interfaz es una coleccin de operaciones que
representan servicios ofrecidos por una clase o representan servicios ofrecidos por una clase o
componente. componente.
Por definicin, todas estas operaciones tendrn una Por definicin, todas estas operaciones tendrn una
visibilidad pblica. visibilidad pblica.
La interfaz especifica algo similar a un contrato que la La interfaz especifica algo similar a un contrato que la
clase se compromete a respetar. clase se compromete a respetar.
La clase La clase realiza realiza (o suministra una (o suministra una realizacin realizacin de) una o de) una o
varias interfaces. varias interfaces.
UML define dos tipos de interfaces: interfaz UML define dos tipos de interfaces: interfaz
suministrada e interfaz requerida. suministrada e interfaz requerida.
26
Diagrama de Clases: Interfaces Diagrama de Clases: Interfaces
La interfaz suministrada es aquella que una clase La interfaz suministrada es aquella que una clase
efectivamente implementa. efectivamente implementa.
27
Diagrama de Clases: Interfaces Diagrama de Clases: Interfaces
Las interfaces requeridas son aquellas que necesita una Las interfaces requeridas son aquellas que necesita una
clase para realizar su cometido. El smbolo utilizado clase para realizar su cometido. El smbolo utilizado
para representarla es un semicrculo. para representarla es un semicrculo.
28
Ejemplo Ejemplo
Cmo interpretara lo siguiente? Cmo interpretara lo siguiente?
29
Modelo de Dominio vs. Modelo de Diseo Modelo de Dominio vs. Modelo de Diseo
El diagrama de clases puede utilizarse con distintos El diagrama de clases puede utilizarse con distintos
fines en distintas etapas del proceso de desarrollo. fines en distintas etapas del proceso de desarrollo.
Durante la etapa de anlisis, el Durante la etapa de anlisis, el modelo de dominio modelo de dominio
es encargado de mostrar el conjunto de clases es encargado de mostrar el conjunto de clases
conceptuales del problema y las relaciones presentes conceptuales del problema y las relaciones presentes
entre s. entre s.
Durante la etapa de diseo, el Durante la etapa de diseo, el modelo de diseo modelo de diseo
determina las futuras componentes de software determina las futuras componentes de software
(clases) y sus relaciones entre s. (clases) y sus relaciones entre s.
30
Modelo de Dominio Modelo de Dominio
Es una representacin de las cosas, entidades, Es una representacin de las cosas, entidades,
idea, clases conceptuales u objetos del mundo idea, clases conceptuales u objetos del mundo
real o dominio de inters, no de componentes de real o dominio de inters, no de componentes de
software. software.
Muestra clases conceptuales significativas en un Muestra clases conceptuales significativas en un
dominio del problema. dominio del problema.
Se usa como base para el diseo de los objetos de Se usa como base para el diseo de los objetos de
software. software.
31
Modelo de Dominio Modelo de Dominio
Es el artefacto ms importante del anlisis. Es el artefacto ms importante del anlisis.
P Podra se considerado como un diccionario visual odra se considerado como un diccionario visual
de abstracciones de clases conceptuales, de abstracciones de clases conceptuales,
vocabulario e informacin del dominio. vocabulario e informacin del dominio.
No es absolutamente correcto o incorrecto, su No es absolutamente correcto o incorrecto, su
intenci intenci n en ser n en ser til sirviendo como una til sirviendo como una
herramienta de comunicaci herramienta de comunicaci n. n.
32
Modelo de Dominio Modelo de Dominio
Otros nombres: Otros nombres: modelo conceptual, modelo de objetos del dominio modelo conceptual, modelo de objetos del dominio
y modelo de los objetos de an y modelo de los objetos de an lisis. lisis.
Seg Seg n el punto de vista, tiene puntos en com n el punto de vista, tiene puntos en com n con el n con el Diagrama Diagrama
de Entidad Relaci de Entidad Relaci n n. .
Usando UML, el MD se representa con un conjunto de diagramas Usando UML, el MD se representa con un conjunto de diagramas
de clases. Se puede mostrar: de clases. Se puede mostrar:
objetos del dominio objetos del dominio o o clases conceptuales clases conceptuales
asociaciones asociaciones entre las clases conceptuales entre las clases conceptuales
atributos atributos de las clases conceptuales de las clases conceptuales
NO SE DEFINE NINGUNA OPERACI NO SE DEFINE NINGUNA OPERACI N N. La asignaci . La asignaci n de n de
responsabilidades de los objetos no forma parte de este modelo. responsabilidades de los objetos no forma parte de este modelo.
33
Modelo de Dominio: Clases Conceptuales Modelo de Dominio: Clases Conceptuales
Es v Es v lido lido
Tener clases conceptuales sin atributos. Tener clases conceptuales sin atributos.
Tener clases conceptuales para las cuales no haya Tener clases conceptuales para las cuales no haya
requerimientos de informaci requerimientos de informaci n a registrar. n a registrar.
T Tener clases conceptuales con ener clases conceptuales con rol de rol de
comportamiento comportamiento, en lugar de informaci , en lugar de informaci n. n.
Estrategias para identificar Estrategias para identificar
Utilizar lista de categor Utilizar lista de categor as de clases conceptuales. as de clases conceptuales.
Identificar frases nominales (sustantivos o frases). Identificar frases nominales (sustantivos o frases).
34
Modelo de Dominio: Clases Conceptuales Modelo de Dominio: Clases Conceptuales
35
Modelo de Dominio: Clases Conceptuales Modelo de Dominio: Clases Conceptuales
Identificar frases nominales (sustantivos o frases) Identificar frases nominales (sustantivos o frases)
Se intenta identificar sustantivos o frases nominales en el Se intenta identificar sustantivos o frases nominales en el
vocabulario y descripciones del dominio del problema. vocabulario y descripciones del dominio del problema.
Esta t Esta t cnica pr cnica pr ctica no puede ser aplicada ctica no puede ser aplicada
mec mec nicamente sino que hay que usar el nicamente sino que hay que usar el sentido com sentido com n n
y capturar las abstracciones adecuadas puesto que el y capturar las abstracciones adecuadas puesto que el
lenguaje natural es ambiguo y los conceptos relevantes no lenguaje natural es ambiguo y los conceptos relevantes no
siempre se encuentran de manera expl siempre se encuentran de manera expl cita. cita.
36
Ejemplo Ejemplo
Un posible modelo de dominio para el caso del local de Un posible modelo de dominio para el caso del local de
venta de electrodom venta de electrodom sticos sticos
37
Diagrama Entidad Relacin Diagrama Entidad Relacin
No pertenece a UML No pertenece a UML
Nacido para describir bases de datos relacionales Nacido para describir bases de datos relacionales
(Chen). (Chen).
2 conceptos: entidades y relaciones. 2 conceptos: entidades y relaciones.
Entidades: conjuntos de individuos que poseen Entidades: conjuntos de individuos que poseen
atributos. atributos.
Relaciones entre individuos especificando Relaciones entre individuos especificando
cardinalidad y opcionalidad. cardinalidad y opcionalidad.
Cliente Proyecto Empleado
ordena
trabaja_en
38
Modelo de Diseo Modelo de Diseo
A diferencia del Modelo de Dominio, el modelo A diferencia del Modelo de Dominio, el modelo
de diseo se encuentra ms cerca de la de diseo se encuentra ms cerca de la
solucin buscada. solucin buscada.
Refleja decisiones en cuanto a asignacin de Refleja decisiones en cuanto a asignacin de
responsabilidades entre los objetos responsabilidades entre los objetos
(operaciones). (operaciones).
Toma como base el Modelo de Dominio, donde Toma como base el Modelo de Dominio, donde
algunas entidades se promovern a Clases. algunas entidades se promovern a Clases.
39
Modelo de Diseo Modelo de Diseo
Muestra cmo se relacionan componentes de Muestra cmo se relacionan componentes de
software para resolver el problema planteado. software para resolver el problema planteado.
Es el paso previo a la implementacin. Es el paso previo a la implementacin.
Es posible aplicar patterns segn el tipo de Es posible aplicar patterns segn el tipo de
problema. problema.
40
Objetos Objetos
41
Preguntas Preguntas? ?

También podría gustarte