Вы находитесь на странице: 1из 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 Carro # marca: String - modelo: int - cantidadGasolina: double + Carro(String, String) ~ getModelo():String + tanquear(double):void

Ejemplo:

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 Mueca + vestir(vestido:Vestido)

2. Modificadores
Los atributos y mtodos estticos se subrayan, as:

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 - estilo:String - metrosCuadrados: int corejava::Day

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: Avin viajar 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. <<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

Ejemplo: