Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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:
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:
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).
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.
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:
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:
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):
Casos Particulares:
Clase Abstracta:
Clase parametrizada:
Ejemplo:
Supongamos que tenemos el caso del Diccionario implementado mediante un rbol binario, en
donde cada nodo posee:
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.
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.
Encapsulacin: Mecanismo para enlazar los datos y ocultarlos del mundo exterior.
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