Você está na página 1de 8

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
responsabilidades 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.
Ejemplo de diagrama de clases de una Universidad.
Se quiere desarrollar un sistema de informacin para la Universidad de Oriente segn la
descripcin siguiente. La Universidad se caracteriza mediante su nombre y la ciudad donde se
sita. En la Universidad estn vinculados dos tipos de ersona! "raba#adores$ que la
Universidad emplea$ y Estudiantes$ que estudian en la Universidad. %ada ersona tiene una %&
y un nombre. Los "raba#adores pertenecen a dos grupos! '& y (S. %ada "raba#ador tiene
asociada una fec)a de inicio de su contrato. %ada miembro del '& tambi*n tiene una
categor+a$ mientras que cada miembro del (S tiene un puesto. Los miembros del '& pueden
o no ser 'octores. Las actividades que desarrolla el '& son investigar y ense,ar$ mientras que
la actividad que desarrolla el (S es administrar. La Universidad se compone de un con#unto
de 'epartamentos$ cada uno de los cuales tiene un nombre y un con#unto de "raba#adores
adscrito. Un "raba#ador no puede estar adscrito a ms de un 'epartamento. Un '& est
adscrito obligatoriamente a un 'epartamento$ mientras que un (S$ no. %ada 'epartamento
est dirigido por un 'octor. Un Estudiante- puede ser bien -Estudiante de grado$ de una
determinada titulacin$ bien -Estudiante- de 'octorado$ de un determinado programa de
'octorado. Un Estudiante de grado puede tambi*n colaborar con un 'epartamento como
becario y puede realizar un .% dirigido por un miembro del '&-. Un -Estudiante de 'octorado
realiza una tesis dirigida por un 'octor. uede suponer que un Estudiante no puede estudiar en
ms de una Universidad y que un "raba#ador no puede ser empleado por ms de una
Universidad. roporcione un modelo de esta descripcin en forma de un diagrama de clases
U/L utilizando para nombres de clases nicamente las palabras que aparecen en negrita en la
descripcin anterior. Las palabras que aparecen en cursiva proporcionan pistas para la
definicin de los otros elementos del modelo. 0o )ace falta proporcionar informacin de tipado
para las propiedades que pueda definir. ara ms puntuacin$ a,ada a su modelo los
elementos necesarios para tomar en cuenta lo siguiente! Una ersona puede ser a la vez
"raba#ador y Estudiante$ Un Estudiante no puede ser a la vez -Estudiante de grado y
-Estudiante de 'octorado$ Los nicos tipos de "raba#ador que e1isten son '& y (S$ Un
"raba#ador no puede ser a la vez '& y (S.
Diagrama de clases
Ejemplo de diagrama de clases de una Universidad.
Un diagrama de clases es un tipo de diagrama esttico que describe la estructura de
un sistema mostrando sus clases, orientados a objetos.
Definiciones[editar]
Propiedad de objetos que tienen propiedades y/u operaciones que contienen un contexto y
un dominio, los primeros dos ejemplos son clases de datos y el tercero clase de lgica de
negocio, dependiendo de qui!n dise"e el sistema se pueden unir los datos con las operaciones.
El diagrama de clases incluye muc#a ms in$ormacin como la relacin entre un objeto y
otro, la #erencia de propiedades de otro objeto, conjuntos de operaciones/propiedades que son
implementadas para una inter$a% gr$ica.
Presenta las clases del sistema con sus relaciones estructurales y de #erencia.
El diagrama de clases es la base para elaborar una arquitectura &'( o &'P.

Você também pode gostar