Sie sind auf Seite 1von 6

Diagramas de clases

Las clases representan los bloques de construccin ms importantes de cualquier sistema


orientado a objetos. Una clase es una descripcin de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semntica. La representacin grfica de clases en
UML se muestra en la siguiente figura.
Esta notacin es independiente de cualquier lenguaje de programacin. El primer bloque de la
figura representa el nombre de la clase, el segundo bloque contiene los atributos, y el tercer
bloque contiene las operaciones. El nombre de la clase puede ser simple (ej: Figura o puede
indicar el camino completo (paquete donde reside la clase (ej: Grafico::Figura. En la
definicin de los atributos se pueden incluir sus tipos (ej: altura:Real. Lo mismo para las
operaciones (ej: mover(a:int, b:int):boolean.
!o es necesario mostrar todas las caracter"sticas. # $eces las clases tienen tantas caracter"sticas,
que no es con$eniente mostrarlas todas. En estos casos tambi%n se pueden organi&ar las
caracter"sticas usando estereotipos. 'or ejemplo:
Responsabilidades
Una responsabilidad es un contrato o una obligacin de una clase. #l modelar clases, un buen
comien&o consiste en especificar las responsabilidades de los elementos. Una clase bien
estructurada tiene al menos una responsabilidad (deber"a tener pocas. (rficamente, las
respondabilidades se e)presan en una seccin al final de la clase. 'or ejemplo:
Uso de clases
Modelar el vocabulario de un sistema: 'ara modelar el $ocabulario de un sistema, *ay que
identificar aquellas cosas que utili&an los usuarios para describir el problema o la solucin. 'ara
esto se pueden utili&ar tarjetas +,+ y anlisis basado en casos de uso. Una $e& identificadas las
abstracciones, *ay que identificar sus responsabilidades. El siguiente es un ejemplo del modelado
del $ocabulario de un sistema.
Modelar la distribucin de responsabilidades: 'ara modelar la distrubucin de
responsabilidades en un sistema, *ay que identificar un conjunto de clases que colaboren entre
ellas para lle$ar a cabo alg-n comportamiento. Luego *ay que identificar el conjunto de
responsabilidades para cada clase. 'or ejemplo:
.bser$e cmo estas clases colaboran de forma que ninguna clase *ace muc*o ni muy poco.
Relaciones
Las clases casi nunca se encuentran aisladas. 'or lo general la mayor"a de ellas colaboran con
otras de $arias maneras. 'or tanto, al modelar un sistema tambi%n *ay que modelar la forma en
que las clases se ralacionan. En el modelado orientado a objetos *ay tres tipos de relaciones:
dependencias, generali&aciones y asociaciones.
Una dependencia es una relacin de uso, que declara que un cambio en la especificacin de un
elemento (por ejemplo la clase Evento puede afectar a otro elemento que la utili&a (por
ejemplo la clase Ventana, pero no necesariamente a la in$ersa (la flec*a $a dirigida *acia el
elemento del cual se depende. Una dependencia quiere decir que un elemento utili&a a otro.
Una generalizacin conecta una clase general (llamada superclase o padre con otra clase ms
especiali&ada (llamada subclase o *ijo. Es una relacin /es-un/ o /es-una/. 'or ejemplo, el
CuadroDialogo es una Ventana.
Las asociaciones son relaciones estructurales entre instancias, que especifican que los objetos de
un elemento estn conectados con los objetos de otro. Es legal que los objetos de una clases est%n
conectados con objetos de la misma clase. 0ay cuatro tipos de /adornos/ que se le pueden poner
a estas relaciones: nombre, rol, multiplicidad y agregacin. Ejemplo:
Nombre: Una asociacin puede tener un nombre, que se utili&a para describir la naturale&a de la
relacin. 'ara e$itar ambig1edades, se puede indicar una direccin al nombre, es decir, la
direccin en que se debe leer el nombre.
Rol: Un rol es la cara que la clase de un e)tremo de la asociacin presenta a la clase del otro
e)tremo. Es el rol que juega la clase en la asociacin.
Multiplicidad: ,epresenta el n-mero de objetos que pueden conectarse a tra$%s de una relacin
de asociacin. 2e puede indicar una multiplicidad de e)actamente uno (3, cero o uno (4..3,
muc*os (4..5, o uno o ms (3..5. 6ambi%n se puede indicar un $alor e)acto (por ejemplo, 7.
Agregacin: # $eces se desea modelar una relacin de tipo /todo8parte/, en la cual una clase
representa algo grande (el todo, que consta de elementos ms peque9os (las partes. Este tipo de
relacin se denomina agregacin, y es una relacin /tiene-un/ o /tiene-una/. Ejemplo:
Composicin: La composicin es un tipo especial de asociacin, que tambi%n modela relaciones
/todo8parte/. La diferencia es que tiene una fuerte relacin de pertenencia y $idas coincidentes de
la parte con el todo. Las /partes/ pueden crearse despu%s del /todo/, pero una $e& creadas, $i$en
y mueren con el /todo/ (se pueden eliminar e)pl"citamente antes. :uiere decir que una /parte/,
solamente puede estar relacionada con un /todo/. Ejemplo:
En el siguiente ejemplo se muestran algunas de la relaciones antes descritas. .bser$en el poder
de e)presin de esta notacin.
Algunos conceptos
'ara diferenciar a las clases abstractas, el nombre de %stas se pone en cursi$a. Las clases
abstractas no pueden tener instancias directas. La visibilidad de una caracter"stica especifica si
puede ser utili&ada por otros objetos. 0ay tres ni$eles de $isibilidad en UML: public
(cualquiera la puede usar, la caracter"stica es precedida por el s"mbolo ;, protected
(cualquier descendiente la puede utili&ar, se especifica con el s"mbolo <, y private
(solamente la propia clase la usa, se especifica con el s"mbolo =. El alcance de una caracter"stica
define si la caracter"stica aparece en cada instancia de la clase, o si slo *ay una caracter"stica
para todas las instancias. 'ara definir alcance de clase, las caracter"sticas se subrayan. 'or
defecto, las caracter"sticas tienen alcance de instancia. Ejemplo:
0ay otras propiedades poco utili&adas. 'or ejemplo, leaf, que indica que una clase es una *oja,
y por tanto no permite que otras clases *erenden caracter"sticas de ella. La propiedad root
indica que una clase no puede tener padres. 'or ejemplo:
La multiplicidad define el n-mero de instancias que puede tener una clase. Esta es 4, 3 o n. 'or
defecto, las clases tienen multiplicidad n. 2i se quiere definir una multiplicidad diferente de n,
*ay que especificarla. 'or ejemplo:
Esto quiere decir que la clase ControladorRed solamente puede tener una instancia. # su
$e&, para esta clase pueden *aber dos o ms puertoConsola.

Das könnte Ihnen auch gefallen