Вы находитесь на странице: 1из 12

I.

Modelo de Clases
Introduccin

Un diagrama de clases sirve para visualizar las relaciones entre las clases que
involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y
de contenimiento.

Un diagrama de clases esta compuesto por los siguientes elementos:

Clase: atributos, mtodos y visibilidad.


Relaciones: Herencia, Composicin, Agregacin, Asociacin y Uso.

Elementos

Clase

Es la unidad bsica que encapsula toda la informacin de un Objeto (un


objeto es una instancia de una clase). A travs de ella podemos modelar
el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).

En UML, una clase es representada por un rectngulo que posee tres


divisiones:

En donde:

o Superior: Contiene el nombre de la Clase


o Intermedio: Contiene los atributos (o variables de instancia) que
caracterizan a la Clase (pueden ser private, protected o public).
o Inferior: Contiene los mtodos u operaciones, los cuales son la
forma como interacta el objeto con su entorno (dependiendo de
la visibilidad: private, protected o public).
Ejemplo:

Una Cuenta Corriente que posee como caracterstica:

o Balance

Puede realizar las operaciones de:

o Depositar
o Girar
o y Balance

El diseo asociado es:

Atributos y Mtodos:

o Atributos:

Los atributos o caractersticas de una Clase pueden ser de tres


tipos, los que definen el grado de comunicacin y visibilidad de
ellos con el entorno, estos son:

public (+, ): Indica que el atributo ser visible tanto


dentro como fuera de la clase, es decir, es accsesible desde
todos lados.
private (-, ): Indica que el atributo slo ser accesible
desde dentro de la clase (slo sus mtodos lo pueden
accesar).
protected (#, ): Indica que el atributo no ser
accesible desde fuera de la clase, pero si podr ser
accesado por mtodos de la clase adems de las subclases
que se deriven (ver herencia).
o Mtodos:

Los mtodos u operaciones de una clase son la forma en como


sta interacta con su entorno, stos pueden tener las
caractersticas:
public (+, ): Indica que el mtodo ser visible tanto
dentro como fuera de la clase, es decir, es accsesible desde
todos lados.

private (-, ): Indica que el mtodo slo ser accesible


desde dentro de la clase (slo otros mtodos de la clase lo
pueden accesar).
protected (#, ): Indica que el mtodo no ser
accesible desde fuera de la clase, pero si podr ser
accesado por mtodos de la clase adems de mtodos de
las subclases que se deriven (ver herencia).

Relaciones entre Clases:

Ahora ya definido el concepto de Clase, es necesario explicar como se


pueden interrelacionar dos o ms clases (cada uno con caractersticas y
objetivos diferentes).

Antes es necesario explicar el concepto de cardinalidad de relaciones:


En UML, la cardinalidad de las relaciones indica el grado y nivel de
dependencia, se anotan en cada extremo de la relacin y stas pueden
ser:

o uno o muchos: 1..* (1..n)


o 0 o muchos: 0..* (0..n)
o nmero fijo: m (m denota el nmero).
iv. Herencia (Especializacin/Generalizacin):

Indica que una subclase hereda los mtodos y atributos


especificados por una Super Clase, por ende la Subclase adems
de poseer sus propios mtodos y atributos, poseer las
caractersticas y atributos visibles de la Super Clase (public y
protected), ejemplo:
En la figura se especifica que Auto y Camin heredan de
Vehculo, es decir, Auto posee las Caractersticas de Vehculo
(Precio, VelMax, etc) adems posee algo particular que es
Descapotable, en cambio Camin tambin hereda las
caractersticas de Vehiculo (Precio, VelMax, etc) pero posee
como particularidad propia Acoplado, Tara y Carga.

Cabe destacar que fuera de este entorno, lo nico "visible" es el


mtodo Caracteristicas aplicable a instancias de Vehculo, Auto
y Camin, pues tiene definicin publica, en cambio atributos
como Descapotable no son visibles por ser privados.

v. Agregacin:

Para modelar objetos complejos, n bastan los tipos de datos


bsicos que proveen los lenguajes: enteros, reales y secuencias
de caracteres. Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador de la
aplicacin, tenemos dos posibilidades:

Por Valor: Es un tipo de relacin esttica, en donde el


tiempo de vida del objeto incluido esta condicionado por
el tiempo de vida del que lo incluye. Este tipo de relacin
es comunmente llamada Composicin (el Objeto base se
contruye a partir del objeto incluido, es decir, es
"parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en
donde el tiempo de vida del objeto incluido es
independiente del que lo incluye. Este tipo de relacin es
comunmente llamadaAgregacin (el objeto base utiliza al
incluido para su funcionamiento).

Un Ejemplo es el siguiente:

En donde se destaca que:

Un Almacen posee Clientes y Cuentas (los rombos van en


el objeto que posee las referencias).
Cuando se destruye el Objeto Almacen tambin son
destruidos los objetos Cuenta asociados, en cambio no son
afectados los objetos Cliente asociados.
La composicin (por Valor) se destaca por un rombo
relleno.
La agregacin (por Referencia) se destaca por un rombo
transparente.

La flecha en este tipo de relacin indica la navegabilidad del


objeto refereniado. Cuando no existe este tipo de particularidad
la flecha se elimina.

vi. Asociacin:

La relacin entre clases conocida como Asociacin, permite


asociar objetos que colaboran entre si. Cabe destacar que no es
una relacin fuerte, es decir, el tiempo de vida de un objeto no
depende del otro.

Ejemplo:
Un cliente puede tener asociadas muchas Ordenes de Compra, en
cambio una orden de compra solo puede tener asociado un
cliente.

vii. Dependencia o Instanciacin (uso):

Representa un tipo de relacin muy particular, en la que una


clase es instanciada (su instanciacin es dependiente de otro
objeto/clase). Se denota por una flecha punteada.

El uso ms particular de este tipo de relacin es para denotar la


dependencia que tiene una clase de otra, como por ejemplo una
aplicacin grafica que instancia una ventana (la creacin del
Objeto Ventana esta condicionado a la instanciacin proveniente
desde el objeto Aplicacion):

Cabe destacar que el objeto creado (en este caso la Ventana


grfica) no se almacena dentro del objeto que lo crea (en este
caso la Aplicacin).
2. Asociacin, Multiplicidad, Asociaciones Calificadas,
Herencia y generalizacin

Asociacin
Las asociaciones son conexiones conceptuales entre clases. Por ejemplo la asociacin, entre
trabajador y empresa.

Un trabajador labora en una empresa la asociacin conectara con una lnea a trabajador y
empresa, si vemos los roles de cada uno podemos decir que el trabajador es un empleado y la
empresa es la empleadora.

Labora en es el nombre de la asociacin y la colocamos sobre la linea, mientras que los roles
(empleado, empleador) los colocamos bajo la lnea a cada lado segn corresponda. As nuestra
relacin Un trabajador labora en una empresa en UML se vera as:

Las asociaciones pueden funcionar en ambos sentidos. Si vemos el ejemplo anterior desde la
perspectiva de la empresa, la asociacin sera Una empresa emplea trabajadores

Asociacin viceversa
Notemos que para comprender el sentido de la asociacin aadimos una flecha.
Las asociaciones no se limitan conectar una clase con otra, pueden conectarse varias clases
con una.

Asociacin mltiple
Cuando necesitamos especificar mas detalles en las asociaciones como restricciones podemos
especificarlas encerrndolas entre llaves. Por ejemplo un cajero atiende a un cliente, pero cada
cliente es atendido en el orden de su llegada.

Asociacin con restriccin


La restriccin del tipo O se la representa con una lnea entrecortada que una las 2 relaciones.
Por ejemplo un estudiante de educacin media superior puede elegir entre un curso
acadmico o uno comercial.
Multiplicidad
La multiplicidad indica la cantidad de objetos de una clase que se relacionan con otro objeto
en particular de la clase asociada.

En el ejemplo de la relacin Un trabajador labora en una empresa, aplicando la multiplicidad


sera Uno o varios empleados trabajan en una empresa. Y el diagramase vera asi:

notemos que usamos * como comodn para indicar la palabra varios

Asociaciones calificadas
Cuando la multiplicidad de una asociacin es de uno a muchos, en ocasiones se requiere
seleccionar un objeto especfico para cumplir la asociacin. Para seleccionar el objeto se
necesita un identificador que permita diferenciarlo del resto de objetos a este se le llama
calificador. Por ejemplo, cuando se realiza una reservacin en un hotel, el hotel le asigna un
nmero de confirmacin. Si se requiere hacer preguntas respecto a la reservacin, se deber
proporcionar el nmero de confirmacin que en este caso acta como identificador.

En UML esto se representa con un rectngulo adjunto a la clase que usar el calificador.

Asociaciones reflexivas
Esta se da cuando una clase se asocia consigo mismo. Por ejemplo en la clase empleado, un
empleado puede actuar como jefe o subalterno.
Herencia y generalizacin
La herencia y generalizacin son sinnimos dentro de UML.

La generalizacin permite que una clase hija herede todos los atributos y propiedades de la
clase madre. Por ejemplo las clases vertebrados e invertebrados pueden heredar de animal.

Herencia
La representacion de herencia en UML es a travs de una lnea que termina con un tringulo
sin relleno.

Dependencias

Se define cuando una clase utiliza a otra como parmetro de una de sus operaciones.

Por ejemplo imaginemos que tenemos 2 clase una sistema y otra formulario. Una de las
operaciones de sistema es mostrarFormulario(), la cual tiene como parmetro la clase
formulario, esto se representa en UML as:
Agregacin
Una agregacin es una acumulacin de clases. Es decir una clase esta formada por otras.

Por ejemplo un auto est formado por su motor, chasis, carrocera entre otras cosas. En UML
esto se representara as:

Composicin
Una composicin es un tipo de agregacin, la cual determina una restriccin. Cada
componente de una agregacin puede pertenecer tan solo a un todo.

Esto se representa de igual forma que una agregacin, con la diferencia de que el rombo esta
rellenado

Realizacin
Una realizacin es la relacin entre una clase y una interfaz.

Una interfaz define las capacidades o habilidades de un objeto.


Veamos un ejemplo. El teclado de la computadora esta basada en la presin de las teclas de
igual forma que el teclado una mquina de escribir. La operacin bsica (teclado) es comn
para ambos tipos de teclado, sin embargo el teclado de computadora tiene otras operaciones
como ctrl, alt, etc.

Podramos decir que el teclado de la mquina de escribir es una interfaz del teclado de
computadora pues define a la habilidad de teclado. Esto en UML se representara as:

Вам также может понравиться