Está en la página 1de 0

Diagrama de clases

UML
Clara Patricia Avella Ibez
Tunja Boyac Colombia
Docente universitaria
cpavella@gmail.com
Agosto de 2011
Por qu usar un diagrama
de clases?
Es una de las primeras y ms usadas
herramientas de generacin automtica de
cdigo.
Ha sido el diagrama ms importante en
todos los mtodos orientados a objetos,
porque constituye la gua para convertir el
diseo lgico del sistema en lenguaje de
cdigo.
Componentes del diagrama
Clases
Relaciones
Comentarios
Paquetes
Clases
NombreDeLaClase
Atributos
Operaciones
(mtodos) - privado: el atributo slo es visible por los
mtodos de la clase
+ pblico: el atributo es visible dentro y fuera de
la clase
# protegido: el atributo es visible por los
mtodos de la clase y por mtodos de clases
derivadas de esta clase, cuando hay herencia.
Accesibilidad nombreDelAtributo :
tipoDeDato
Accesibilidad
Utilizar singular
Clases
NombreDeLaClase
Atributos
Operaciones
(mtodos) - privado: el mtodo slo es visible por los otros
mtodos de la clase.
+ pblico: el mtodo es visible dentro y fuera de
la clase
# protegido: el mtodo es visible por los mtodos
de la clase y por mtodos de clases derivadas de
esta clase, cuando hay herencia.
Accesibilidad
Accesibilidad nombreDelMtodo(parmetro1: tipoDeDato,
parmetro2: tipoDeDato, parmetroN: tipoDeDato) :
tipoDeDatoDeRetornoDelMtodo
Clases
Empleado
-id: int
-nombre: String
-apellido: String
-salario: double
+calcularPagoM(diasTrab:int):double
Ejemplo
Paquetes
Agrupan lgicamente las clases que tienen alguna relacin entre s.
Se pueden agrupar por clases que conforman mdulos y submdulos
de la aplicacin.
Se pueden agrupar por tipo de funcionalidad. Ej. Paquete con las
clases de la lgica del negocio, paquete con las clases de la Interfaz
Grfica de usuario, paquete con las clases que manejan persistencia
de datos.
Paquete X
Paquete Y
Paquetes
LogicaNegocio
Ejemplo
Empleado Fecha
Relaciones
Clase A
Las clases pueden conectarse con otras clases de diferentes
formas, estas conexiones se llaman relaciones.
Clase B
Clase A Clase B Clase A Clase B
Clase A Clase B Clase B
Clase A
Relaciones
ClaseA
Indica que una clase
invoca uno o varios
mtodos que se
encuentran en la clase
con la cual se
relaciona.
ClaseB
Uso
La clase A usa a la clase B
La clase A invoca uno o varios
mtodos de la clase B
Relaciones
public class ClaseA
{
public static void main(String args[])
{
ClaseB objeto1 = new ClaseB( );
objeto1.metodo1( );
}
}
ClaseA ClaseB
Uso
Ejemplo en cdigo java:
+main(args)
: void
+metodo1()
:void
public class ClaseB
{
// atributos
public void metodo1( )
{
// ac van las instrucciones del mtodo
}
}
La clase A usa
(invoca) el
mtodo1 de la
clase B
Relaciones
Herencia
Clase A
Clase B
Relacin
Los objetos de la
Clase B toman los
atributos y mtodos
de la Clase A como
si fueran propios
La Clase B (subclase o
clase derivada)
hereda de la Clase A
(superclase o clase
general)
Herencia Simple
Clase A
Clase B Clase C
Clase A
Clase B
Una clase
hereda slo
de una clase
Relaciones
Herencia
Clase A Clase B
Clase C
Una clase hereda
de ms de una
clase
Herencia Mltiple
Relaciones
Herencia
Ejemplo
Profesor
#nombre:String
#apellido:String
#docIdentidad:String
ProfesorTC
-diasTrabajados:int
-salarioMensual:double
ProfesorCatedra
-horasTrabajadas:int
-valorHora:double
Herencia simple
Relaciones
Herencia
Relaciones
Agregacin
Clase A Clase B
*
Se utiliza para expresar que
una clase contiene muchos
objetos de otra clase
En este caso se expresa que
la clase A contiene muchos
objetos de la clase B
El * indica la
multiplicidad de
la relacin, es
decir, cuntos
objetos de la
clase B son
conocidos por la
clase A
Ejemplos de
Multiplicidad:
1 uno
1, 2. uno o dos
5 cinco
0..* entre cero y muchos
* entre cero y muchos
1..* entre 1 y muchos
5..10 entre cinco y diez
Relaciones
Agregacin
Catalogo
Libro
-isbn:string
-titulo: string
*
Un catlogo contiene
muchos libros
Clase
contenedora
Relaciones
Agregacin
Curso
- nrc: int
- nombre: string
Estudiante
-id: int
-nombre: string
-apellido:s tring
5..30
Un curso contiene
entre 5 y 30
estudiantes
Ejemplo
Relaciones
Composicin
Universidad
- nit: string
- nombre: string
Carrera
-id: int
-nombre: string
1..*
Es una relacin de
agregacin fuertemente
ligada, es decir que por lo
menos debe existir un
objeto de la clase contenida
en la clase contenedora
para que exista la relacin.
En el ejemplo: Una
Universidad por lo menos
debe tener una Carrera
para existir
Su paso a cdigo fuente se
maneja de la misma forma que
la relacin de agregacin.
Relaciones
Asociacin
Cuando los objetos de una clase tienen alguna referencia con objetos de
otra clase se utiliza una relacin de asociacin. Se representa por una
lnea continua.
Clase A Clase B
Clase A Clase B
Cada objeto de la Clase A conoce
una referencia de la clase B, pero
la clase B no conoce a la clase A.
1
Cada objeto de la Clase A conoce una
referencia de la clase B y cada objeto
de la clase B pertenece a una
referencia de la clase A.
conoce > 1
La relacin de Asociacin debe tener:
Direccin: indica qu clase tiene la referencia a qu clase
-> <-
Si no hay flecha indica que las dos clases se conocen entre s.
Multiplicidad (el mismo concepto manejado en agregacin)
Nombre: sirve para identificar la relacin en el diagrama
conoce 1 < pertenece a
Relaciones
Profesor
- codigo: int
- nombre: String
- apellido: String
Curso
-id: int
-nombre: String
1..3
Un profesor orienta
entre 1 y 3 cursos
Asociacin
orienta
Ejemplo
Relaciones
Ciudad
- codigo: int
- nombre: string
Estudiante
-id: int
-nombre: string
-apellido:s tring
1
Un estudiante tiene una
ciudad de nacimiento y
una ciudad de residencia
Asociacin
ciudad de
Nacimiento
1
ciudad de
Residencia
Ejemplo
Referencias bibliogrficas
Knoernschild, Kirk. Java Design Objects, UML and process.
Addison Wesley, 2001. ISBN 0-201-75044-9
Roques, Pascal. UML in practice. The art of modeling
software systems demostrated through worked examples
and solutions. Jhon Wiley & Sons, Ltd. Editorial, 2004.
http://www.dcc.uchile.cl/~psalinas/uml/modelo.html