Sei sulla pagina 1di 7

Qu es UML?

El Lenguaje Unificado de Modelado (UML) fue creado para forjar un lenguaje de modelado visual
comn y semntica y sintcticamente rico para la arquitectura, el diseo y la implementacin de
sistemas de software complejos, tanto en estructura como en comportamiento. En general, los
diagramas UML describen los lmites, la estructura y el comportamiento del sistema y los objetos
que contiene.

Modelacin de clases

Hay muchos paradigmas o modelos para la resolucin de problemas en la informtica, que es el


estudio de algoritmos y datos. Hay cuatro categoras de modelos para la resolucin de problemas:
lenguajes imperativos, funcionales, declarativos y orientados a objetos (OOP). En los lenguajes
orientados a objetos, los algoritmos se expresan definiendo 'objetos' y haciendo que los objetos
interacten entre s. Esos objetos son cosas que deben ser manipuladas y existen en el mundo real.
Pueden ser edificios, artefactos sobre un escritorio o seres humanos.

Los lenguajes orientados a objetos dominan el mundo de la programacin porque modelan los
objetos del mundo real. UML es una combinacin de varias notaciones orientadas a objetos: diseo
orientado a objetos, tcnica de modelado de objetos e ingeniera de software orientada a objetos.

UML usa las fortalezas de estos tres enfoques para presentar una metodologa ms uniforme que
sea ms sencilla de usar. UML representa buenas prcticas para la construccin y documentacin
de diferentes aspectos del modelado de sistemas de software y de negocios.

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. Adems, est compuesto
por los siguientes elementos:

1- Clase: atributos, mtodos y visibilidad.


2- 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:

Superior: Contiene el nombre de la Clase

Intermedio: Contiene los atributos (o variables de instancia) que caracterizan


a la Clase (pueden ser private, protected o public).

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).
Atributos y Mtodos:

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).

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
accesible 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 Relaciones
entre Clases:

Ahora ya definido el concepto de Clase, es necesario explicar cmo 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:

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

0 o muchos: 0..* (0..n)

nmero fijo: m (m denota el nmero).

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.

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 est
condicionado por el tiempo de vida del que lo incluye. Este tipo de relacin es comnmente
llamada Composicin (el Objeto base se construye 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 comnmente llamada Agregacin (el
objeto base utiliza al incluido para su funcionamiento).

Un Ejemplo es el siguiente:

Un Almacn posee Clientes y Cuentas (los rombos van en el


objeto que posee las referencias).

Cuando se destruye el Objeto Almacn 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 referenciado. Cuando no existe este tipo de
particularidad la flecha se elimina.
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 rdenes


de Compra, en cambio una orden de compra solo
puede tener asociado un cliente.

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 est condicionado a la instanciacin proveniente desde el objeto Aplicacin):

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).

Casos Particulares:

Clase Abstracta:

Una clase abstracta se denota con el nombre de la


clase y de los mtodos con letra "itlica". Esto indica
que la clase definida no puede ser instanciada pues
posee mtodos abstractos (an no han sido definidos,
es decir, sin implementacin). La nica forma de
utilizarla es definiendo subclases, que implementan
los mtodos abstractos definidos.

Clase parametrizada:

Una clase parametrizada se denota con un su cuadro en el extremo


superior de la clase, en donde se especifican los parmetros que
deben ser pasados a la clase para que esta pueda ser instanciada.
El ejemplo ms tpico es el caso de un Diccionario en donde una
llave o palabra tiene asociado un significado, pero en este caso las
llaves y elementos pueden ser genricos. La genericidad puede
venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida
(especializacin a travs de clases).

En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependern


exclusivamente de la implementacin que se le quiera dar.

Ejemplo:

Supongamos que tenemos el caso del Diccionario implementado mediante un rbol binario, en
donde cada nodo posee:

key: Variable por la cual se realiza la bsqueda, puede ser genrica.

item: Contenido a almacenar en el diccionario asociado a "key", cuyo tipo tambin puede ser
genrico.

Para este caso particular hemos definido un Diccionario para almacenar String y Personas, las cuales
pueden funcionar como llaves o como item, solo se mostrarn las relaciones para la implementacin
del Diccionario:
DEFINICIN DE VARIABLES DE INSTANCIA Y DE CLASE

Una variable de instancia normalmente se define como privada, para que no se pueda modificar
desde otra clase, solo a travs de los mtodos, pero puede ser definida como pblica y en ese caso
no se requiere de hacer uso de algn mtodo para tomar su valor o modificarla (no es recomendable
por el control de la variable por la misma clase).

Una variable de clase es aquella que solamente tiene un valor para toda la clase y debe ser definida
como static (esttica) para que no se cree un nuevo valor con cada instancia. La palabra static nos
sirve para definir algo que no tiene que ver con las instancias de la clase, sino con toda la clase.
Cuando a alguna variable o a algn mtodo le anteponemos la palabra static, esto define que ser
nica (variable) o nico (mtodo) para toda la clase.

Las variables de instancia se utilizan a travs de los mtodos de la clase y estos son utilizados por
objetos.

COMPORTAMIENTOS DE OBJETOS DE LA CLASE.

Conceptos orientados a objetos en UML

Los objetos en UML son entidades del mundo real que existen a nuestro alrededor. En el desarrollo
de software, los objetos se pueden usar para describir, o modelar, el sistema que se est creando
en trminos que sean pertinentes para el dominio. Los objetos tambin permiten la descomposicin
de sistemas complejos en componentes comprensibles que permiten que se construya una pieza a
la vez.

Estos son algunos conceptos fundamentales de un mundo orientado a objetos:

Objetos: Representan una entidad y el componente bsico.

Clase: Plano de un objeto.

Abstraccin: Comportamiento de una entidad del mundo real.

Encapsulacin: Mecanismo para enlazar los datos y ocultarlos del mundo exterior.

Herencia: Mecanismo para crear nuevas clases a partir de una existente.

Polimorfismo: Define el mecanismo para salidas en diferentes formas.


BIBLIOGRAFIA

https://estructuradedatosfitec.wikispaces.com/file/view/3_4+Var+Instancia+y+Clase.pdf

https://www.lucidchart.com/pages/es/qu%C3%A9-es-el-lenguaje-unificado-de-modelado-uml

https://users.dcc.uchile.cl/~psalinas/uml/modelo.html

Potrebbero piacerti anche