Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sintaxis Uml
Sintaxis Uml
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.
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
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: