En este articulo hablaremos de UML, siendo el lenguaje de modelado más usado por cada una de las fases que comprenden el desarrollo del software, especificamente para definir y documentar dichas fases.

Para ello empezaremos definiendo que es UML.

 

¿Que es UML?

Es el Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language).  UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad. Su gran propagación en la ingenieria de software es debido a que es un lenguaje gráfico para visualizar, especificar, construir y documentar sistemas (procesos y/o metodos), detallando los artefactos en el sistema comportandose asi como plano para la construccion de dichos sistemas; estos planos pueden incluir puntos como: procesos de negocio, funciones del sistema y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.

UML es un conjunto de herramientas, que permite modelar sistemas que usaran el paradigma de la programación orientados a objetos, pues no podemos establecer una comparación con la programación estructurada, ya que UML significa Lenguaje Unificado de Modelado no programación ya que solo se diagrama la realidad de una utilización en un requerimiento.

[box title=”NOTA” type=”warning” width=”600px” ]

La programación orientada a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos.

[/box]

 

Objetivo Principal:

El objetivo principal de este lenguaje es hacer posible el intercambio de modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario definir una notación y semántica común (un estándar), debemos de tener en cuenta que el estándar UML no define un proceso de desarrollo específico sino que solo se trata de una notación.

Caraterísticas de UML

Si su meta u objetivo principal es  Unificar (como su nombre lo dice),  UML se basa en 4 grandes caracteristicas necesarias que elvuelven el cumpliento de su principal objetivo,  estas caracteristicas son:
  • Visualizar:  UML permite representar mediante su simbología el contenido y la estructura de un sistema software. La notación UML permite definir modelos que serán claramente comprensibles por otros desarrolladores facilitando así el mantenimiento del sistema que describe.
  • Especificar:  UML permite especificar los procesos de análisis, diseño y codificación de un sistema software. También permite determinar modelos precisos, sin ambigüedades, detallando las partes esenciales de los mismos.
  • Construir:   UML pueda generar código en distintos lenguajes de programación y tablas en una base de datos a partir de modelos UML. Además permite simular el comportamiento de sistemas software.
  • Documentar:  UML permite especificar los procesos de análisis, diseño y codificación y también permite documentar los mismos, dejando clara la arquitectura del sistema.

 

Organización de UML

UML esta organizado en conjuntos de elementos, dependiendo de sus características son agrupados o no, estos elementos son:

Elementos estructurales

Son aquellos que comprenden la parte estática de los modelos de UML.  Representan cosas que son conceptuales o materiales. Hay siete tipos de elementos estructurales: clases, interfaces, colaboraciones, casos de uso, clases activas, componentes y nodos.

 

Elementos de comportamiento

Son aquellos que comprenden las partes dinámicas de los modelos. Representan comportamiento en el tiempo y en el espacio. Hay dos tipos de elementos de comportamiento: interacciones y máquinas de estados.

 

Elementos de agrupación

Son aquellos que representan la  agrupación o las partes organizativas de los modelos de UML, es decir, las cajas en las que puede descomponerse un modelo. Sólo hay un elemento de agrupación: el paquete.

 

Elementos de anotación

Son aquellos que comprenden la parte explicativa de los modelos de UML. Son comentarios que se pueden aplicar para describir, clarificar y hacer observaciones sobre cualquier elemento de un modelo. El principal elemento de anotación es la nota.

 

 

¿Que es un Modelo de UML?

Un modelo es una representación de un sistema software desde una perspectiva específica. Es nuestro plano del sistema, viendolo desde  distintos ángulos, donde cada modelo nos permite fijarnos en un aspecto distinto del sistema.

Estos son:

 

Diagrama de Clases (Elemento de Estructura):

Este diagrama tambien conocido como Diagrama de Estructura Estática, engloba tanto el Modelo de Conceptual de Alto Nivel como al Diagrama de Clases en si mismo. Ambos son distintos conceptualmente, mientras el primero modela elementos del dominio el segundo presenta los elementos de la solución software. Sin embargo, comparten la misma notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos (asociaciones).

Diagrama de Casos de Uso (Elemento de Estructura):

Un caso de uso es una descripción de la secuencia de interacciones que se producen entre los actores y el sistema,
cuando el actor usa el sistema para llevar a cabo una tarea específica, en si un caso de uso expresa una unidad coherente de funcionalidad, representandose graficamente en el Diagrama de Casos de Uso mediante una elipse con el nombre del caso de uso en su interior (verbo en infinitivo). El nombre del caso de uso debe reflejar la tarea específica que el actor desea llevar a cabo usando el sistema. En resumen un Caso de Uso es la funcionalidad que ofrece el sistema y la interaccion con agentes externos, entonces un Diagrama de Casos de Uso nos muestra la relación entre los actores y los casos de uso del sistema.

 

Diagrama de Secuencia (Elemento de Comportamiento):

Un diagrama de Secuencia muestra una interacción ordenada según la secuencia temporal de eventos, lo que hace es mostrar los objetos participantes en la interacción y los mensajes que intercambian ordenados según su secuencia en el tiempo. En este el eje vertical representa el tiempo y el eje horizontal los objetos y actores participantes en la interacción (la disposicion de los objetos o actores no deben de tener un orden especifico). Cada objeto o actor tiene una línea vertical que nos indica el tiempo de vida del mismo, en el podemos expresar los mensajes, validaciones, ciclos, llamadas a funcionalidades especificas, etc. Es el diagrama de preferencia para los programadores pues en el se representa lo que el sistema debe hacer, con quien debe interactuar y cuando debe de hacerlo.

Diagrama de Colaboración (Elemento de Comportamiento):

Un Diagrama de Colaboración es aquel que muestra una interacción organizada basándose en los objetos que toman parte en la
interacción y los enlaces entre los mismos. La diferencia de este a los de Secuencia, es que los de Colaboración muestran las relaciones entre los roles de los objetos, la secuencia de los mensajes y los flujos de ejecución concurrentes deben determinarse explícitamente mediante números de secuencia.

Diagrama de Estados (Elemento de Comportamiento):

Un Diagrama de Estados es aquel que muestra la secuencia de estados por los que pasa un caso de uso o un objeto a lo largo de su vida, indicando qué eventos hacen que se pase de un estado a otro y cuáles son las respuestas y acciones que genera. Su representación es un grafo cuyos nodos son estados y cuyos arcos dirigidos son transiciones etiquetadas con los nombres de los eventos. Un estado se representa como una caja redondeada con el nombre del estado en su interior. Una transición se representa como una flecha desde el estado origen al estado destino.

Diagrama de Paquetes (Elemento de Agrupación):

Un diagrama de paquetes muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema. Los Paquetes están normalmente diseñados como mecanismo de organización para mejorar la coherencia interna dentro de cada paquete, permitiendo además minimizar el acoplamiento externo entre los mismos.

Diagrama de Componentes (Elemento de Estructura):

Un diagrama de componentes representa la disposicion de como un sistema de software es dividido en partes (componentes), mostrando las dependencias entre estos componentes. Los componentes físicos pueden incluir archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes.  Este diagrama nos muestra la organización y las dependencias entre un conjunto de componentes. La gran importancia de este diagrama es que te da la visualizacion e interaccion con todos los intervinientes, permitiendote conocer la funcionalidad de los mismos y su posible reutilizacion en otro sistema o en el mismo.

Diagrama de Despliegue (Elemento de Estructura):

El Diagrama de Despliegue es aque que se utiliza para modelar la parte fisica osea el hardware utilizado en las implementaciones de sistemas y las relaciones entre sus componentes. Los elementos usados por este tipo de diagrama son nodos, componentes y asociaciones. La mayoría de las veces el modelado de la vista de despliegue implica modelar la topología del hardware sobre el que se ejecuta el sistema. Aunque UML no es un lenguaje de especificación de hardware de propósito general, se ha diseñado para modelar muchos de los aspectos hardware de un sistema a un nivel suficiente para que un ingeniero software pueda especificar la plataforma sobre la que se ejecuta el software del sistema.

 

¿Cuales son los más usados?

De todos los diagramas anteriormente mencionados,  los más usados en la ingenieria de software son:

  • Diagrama de Caso de Uso.
  • Diagrama de Secuencia.
  • Diagrama de Componentes.
  • Diagrama de Despliegue.
  • Diagrama de Estados.

 

¿Herramientas para diseñar?

Las más comunes son: (algunas libres y otras con licencia)

  • Rational Rose.
  • Visio.
  • Enterprise Architect.
  • Visual Paradigm.
  • Genleware Poseidon.

 

Espero que con este articulo te introduzca a UML de una forma muy sencilla y básica, queda mucho por conocer y aprender, pero siempre debemos de empezar por el principio.

 

(Visited 161 times, 1 visits today)