Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clases S
Clases S
Una clase se representan como un rectngulo dividido en tres partes (tres compartimentos).
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
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}
3. Paquetes
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
*
Aerolnea
Avin
+ volar():void
1..3
Piloto
- nombre:String
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