Está en la página 1de 4

Resumen Sintaxis UML para Diagramas de Clase

1. Representacin de una clase

Una clase se representan como un rectngulo dividido en tres partes (tres compartimentos).

En el compartimento superior, centrado, va el nombre de la clase.

El segundo compartimento contiene los atributos, en la forma:


visibilidad nombreAtributo: tipo

El tercer compartimento contiene los mtodos, en la forma:


visibilidad nombreMtodo(parmetros): tipoRetorno.

Los parmetros van separados por comas y slo se especifica el tipo.

Los constructores no tienen tipo de retorno.

La visibilidad, de atributos y mtodos, puede ser:


- privado
+ pblico
# protegido
~ de paquete

Ejemplo:

Carro
# marca: String
- modelo: int
- cantidadGasolina: double
+ Carro(String, String)
~ getModelo():String
+ tanquear(double):void

Es posible representar una clase usando slo el compartimento del nombre, o el compartimento
del nombre y uno de los dos siguientes (atributos o mtodos). Cuando se representa una clase
de esta forma no es posible deducir nada de los compartimentos faltantes.

Ejemplo:
Avin

ReproductorCD
- marca: String
- modelo: int

2. Modificadores

Los atributos y mtodos estticos se subrayan, as:

Mueca
+ vestir(vestido:Vestido)

ClaseConElementosEstticos
- cantidadTotal: int
- nombre: String
+ setCantidadTotal(valor : int):void
+ getNombre():String

Para indicar que una clase es abstracta o final se debe colocar un comentario en la parte superior
del rectngulo, debajo del nombre de la clase. Este comentario va entre llaves, como se muestra
en el ejemplo:
FiguraGeomtrica
{abstract}
- nombre:String

Los mtodos abstractos tambin llevan un comentario al final, como se ilustra a continuacin.
FiguraGeomtrica
{abstract}
+ rea( ):double {abstract}

Los atributos y mtodos final llevan el comentario frozen, Ejemplo:


Imagen
- largo: double {frozen}
- archivo: File
- rea(): double {frozen}

3. Paquetes

Un paquete se representa de la siguiente forma:

NombrePaquete

La relacin de un paquete con las clases que contiene se representar como se ilustra a
continuacin:

En un diagrama de clases, cuando se desea incluir una clase de otro paquete se escribe, en el
compartimento correspondiente al nombre de la clase, el nombre del paquete seguido de dos
puntos. Por ejemplo:
modelo::base::Casa

corejava::Day

- estilo:String
- metrosCuadrados: int

4. Herencia

La herencia se representa con una lnea continua que va de la clase hija a la clase padre, y que
termina en un tringulo vaco. Ejemplo:
FiguraGeomtrica
+ rea():double
+ permetro():double

Cuadrado
+ rea():double
En el ejemplo anterior la clase Cuadrado es hija de la clase FiguraGeomtrica y hereda todos sus
atributos y mtodos. En este caso slo es necesario mostrar los mtodos que se sobrescriben. Es decir,
Cuadrado sobrescribe el mtodo rea, pero no el mtodo permetro, aunque tiene ambos mtodos.

5. Asociacin

Una asociacin (relacin entre dos clases) se representa como una lnea continua entre dos
clases, y puede tener el nombre de la relacin sobre esta lnea. Ejemplo:
Avin

conducir

Piloto

En el ejemplo anterior cada Avin tiene una relacin con Piloto, pero tambin cada Piloto tiene
relacin con Avin. Esta es una relacin en ambos sentidos.

Para mostrar que la relacin slo tiene un sentido se muestra con una flecha que indica el sentido
de la relacin. Ejemplo:
viajar

Avin

Pasajero

En este ejemplo un Pasajero conoce el Avin (o aviones) con el cual viaja, pero el Avin no tiene
ninguna relacin con los Pasajeros.

Para determinar cuntos objetos de cada clase participan en una relacin (multiplicidad), se
escribe el rango de la forma: lmiteInferior..lmiteSuperior. Por ejemplo:
0..1
8-10
1
*

Cero o uno (indica una relacin opcional)


De ocho a diez
Exactamente uno
Cero o muchos

La multiplicidad se muestra en el extremo destino de la relacin, ejemplo:

Aerolnea

Avin
+ volar():void

1..3

Piloto
- nombre:String

En este caso las relaciones son:


- Un Piloto tiene relacin con cero o ms aviones.
- Un Avin tiene relacin con uno, dos o tres pilotos.
- Una Aerolnea tiene relacin con cero o muchos aviones.
- Un Avin tiene relacin con una Aerolnea.
Aunque estas relaciones se traducirn en atributos en las clases, estos atributos no se muestran en el
diagrama de clases.

6. Interfaces

Una interfaz se puede representar como una clase. En el primer compartimento del rectngulo
debe ir la palabra interfaz encerrada en smbolos de << y >>. En los otros compartimientos, se
trabaja igual que con las clases.

Ejemplo:
<<interfaz>>
Descriptible
+ descripcin(lneas:int):String

Para mostrar que una clase implementa una interfaz, se utiliza una lnea punteada desde la clase
hacia la interfaz, que termina en un tringulo vaco. Ejemplo:
<<interfaz>>
Serializable

Empleado
- cdula: String

También podría gustarte