jueves, 21 de mayo de 2009
UML

UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos.

Con UML se fusiona la notación de estas técnicas para formar una herramienta compartida entre todos los ingenieros software que trabajan en el desarrollo orientado a objetos.

UML también intenta solucionar el problema de propiedad de código que se da con los desarrolladores, al implementar un lenguaje de modelado común para todos los desarrollos se crea una documentación también común, que cualquier desarrollador con conocimientos de UML será capaz de entender, independientemente del lenguaje utilizado para el desarrollo.

Su utilización es independiente del lenguaje de programación y de las características de los proyectos, ya que UML ha sido diseñado para modelar cualquier tipo de proyectos, tanto informáticos como de arquitectura, o de cualquier otro tipo.

Divide cada proyecto en un número de diagramas que representan las diferentes vistas del proyecto. Estos diagramas juntos son los que representan la arquitectura del proyecto; Se dispone de dos tipos diferentes de diagramas, los que dan una vista estática del sistema y los que dan una visión dinámica.

Diagramas estáticos:

· Diagrama de clases: muestra las clases, interfaces, colaboraciones y sus relaciones. Son los más comunes y dan una vista estática del proyecto.

· Diagrama de objetos: Es un diagrama de instancias de las clases mostradas en el diagrama de clases. Muestra las instancias y como se relacionan entre ellas. Se da una visión de casos reales.

· Diagrama de componentes: Muestran la organización de los componentes del sistema. Un componente se corresponde con una o varias clases, interfaces o colaboraciones.

· Diagrama de despliegue.: Muestra los nodos y sus relaciones. Un nodo es un conjunto de componentes. Se utiliza para reducir la complejidad de los diagramas de clases y componentes de un gran sistema. Sirve como resumen e índice.

· Diagrama de casos de uso: Muestran los casos de uso, actores y sus relaciones. Muestra quien puede hacer que y relaciones existen entre acciones(casos de uso). Son muy importantes para modelar y organizar el comportamiento del sistema.

Diagramas dinámicos:

· Diagrama de secuencia, Diagrama de colaboración: Muestran a los diferentes objetos y las relaciones que pueden tener entre ellos, los mensajes que se envían entre ellos. Son dos diagramas diferentes, que se puede pasar de uno a otro sin perdida de información, pero que nos dan puntos de vista diferentes del sistema. En resumen, cualquiera de los dos es un Diagrama de Interacción.

· Diagrama de estados: muestra los estados, eventos, transiciones y actividades de los diferentes objetos. Son útiles en sistemas que reaccionen a eventos.

· Diagrama de actividades: Es un caso especial del diagrama de estados. Muestra el flujo entre los objetos. Se utilizan para modelar el funcionamiento del sistema y el flujo de control entre objetos. 

También se pueden categorizar como diagramas de Estructura, Comportamiento e Interacción y de forma jerárquica, como se muestra en la figura.

Diagramas de Clase:

Forma parte de la vista estática del sistema. En el diagrama de clases será donde definiremos las características de cada una de las clases, interfaces, colaboraciones y relaciones de dependencia y generalización. Es decir, es donde con nuestros conocimientos de diseño orientado a objetos, definiremos las clases e implementaremos las relaciones de herencia y agregación.

En el diagrama de clases debemos definir a estas y a sus relaciones.

Clase:

Es representada con un rectángulo, que se divide en tres áreas. El área superior contiene el nombre, el área central contiene los atributos, y el área inferior las acciones:

· Cada clase debe tener un nombre único, que las diferencie de las otras.

· Un atributo representa alguna propiedad de la clase que se encuentra en todas las instancias de la clase. Los atributos pueden representarse solo mostrando su nombre, mostrando su nombre y su tipo, e incluso su valor por defecto.

· Un método u operación es la implementación de un servicio de la clase, que muestra un comportamiento común a todos los objetos. Es una función que le indica a las instancias de la clase que hagan algo.

Al describir los atributos o métodos, lo hacemos antecediéndolos por un signo, el cual nos permite saber la visibilidad que estos tienen:

Un diagrama de clases está formado por varios rectángulos de este tipo conectados por líneas que muestran la manera en que las clases se relacionan entre sí.

Relaciones entre Clases:

Existen tres relaciones diferentes entre clases: Dependencias, Generalización y Asociación. En las relaciones se habla de una clase destino y de una clase origen. La origen es desde la que se realiza la acción de relacionar. Es decir desde la que parte la flecha, la destino es la que recibe la flecha. Las relaciones se pueden modificar con estereotipos o con restricciones.

· Dependencia (depende de/usa a) : Es una relación de uso, es decir una clase usa a otra, que la necesita para su cometido. Se representa con una flecha discontinua la cual va desde la clase utilizadora a la clase utilizada. Con la dependencia mostramos que un cambio en la clase utilizada puede afectar al funcionamiento de la clase utilizadora, pero no al contrario.

· Generalización (es un tipo de) : Es la herencia, se representa con una flecha continua de punta cerrada sin relleno, la punta de la flecha es la que se conecta con la clase principal.

· Asociación (tiene un) : Es una relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos.

· Agregación: Este es un tipo especial de relación, los componentes y la clase que constituyen son una asociación que conforma un todo. Una línea conectará el todo con un componente mediante un rombo sin relleno que se colocará en la línea más cercana al todo.

· Composición: Es un tipo muy representativo de una agregación, cada componente dentro de una composición puede pertenecer tan sólo a un todo. El símbolo de una composición es el mismo que el de una agregación, excepto que el rombo está relleno.

· Realización (realiza) : Realización es una relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá. Se pueden encontrar relaciones de realización: entre interfaces y las clases o componentes que las realizan, y entre los casos de uso y las colaboraciones que los realizan.

La realización es lo suficientemente diferente de la dependencia, la generalización y la asociación como para ser tratada como un tipo aparte de relación. Semánticamente la realización es una mezcla entre dependencia y generalización.

Etiquetas: , , , ,

 
posted by Camilo Mojica at 19:12 | Permalink |


0 Comments: