martes, 26 de abril de 2016

Programas de Software Libre para usar UML.

UML y programas de Software Libre para usar UML.

UML (Unified Modeling Language) es un lenguaje de modelado visual para sistemas. Aunque UML está más asociado con modelar sistemas de software orientados a objetos, tiene una aplicación más amplia debido a sus mecanismos de extensibilidad. Los diagramas UML son legibles por las personas y los ordenadores pueden mostrarlos fácilmente, pero es importante apreciar que UML no nos proporciona ningún tipo de metodología de modelado, simplemente proporciona una sintaxis visual que podemos utilizar para construir modelos
UML en realidad no está ligado a ninguna metodología específica o ciclo de vida y se puede utilizar con todas las metodologías existentes. Sin embargo UP (Unified Process) utiliza UML como su sintaxis de modelado visual subyacente y se integran muy bien el uno con el otro.


Umbrello


Umbrello UML Modeller es una herramienta de diagramas que ayuda en el proceso del desarrollo de software. Umbrello UML Modeller le facilitará la creación de un producto de alta calidad, especialmente durante fases de análisis y diseño del proyecto. UML también puede usarse para documentar sus diseños de software para ayudarle a usted y al resto de desarrolladores.
Quizás sea la herramienta más intuitiva para aquellos que están poco acostumbrados a trabajar con UML de las que aquí comento. Guarda la estética común a todos los programas desarrollados para y por KDE, por lo que si estás acostumbrado a trabajar en este escritorio o con algunos de sus programas principales no te costará nada adaptarte al mismo.
Además, se incluye la idea de UML de mantener todos los elementos creados en un modelo externo a los diagramas, por lo que si eliminamos un elemento de un diagrama este no desaparece del modelo hasta que lo eliminemos explícitamente del mismo, tal y como especifican las últimas versiones de UML. Aunque eso si, los diferentes elementos los separa por vistas, cuando según tengo entendido no debería existir tal división en cuanto a los elementos del modelo.
También soporta la generación de código a partir del modelo de elementos y los diagramas para un gran número de lenguajes.
Aquí dejo una captura de la interfaz del programa:




LINK DE DESCARGA: https://umbrello.kde.org/



ArgoUML


ArgoUML presume de ser el líder en el modelado de UML en el mundo del código libre e incluye un soporte total para el estándar UML 1.4. Este se ejecuta sobre una plataforma Java e incluye las siguientes características a destacar entre otras:
Soporte Cognitivo
Reflection-in-action
Opportunistic Design
Comprehension and Problem Solving
Como opinión personal acerca de este programa, he decir que el que esté montado en una plataforma Java presenta la ventaja de la portabilidad y la desventaja de la fluidez del programa como siempre. Al principio cuando empiezas a utilizar el programa tiene un aspecto un poco clásico y te puede llevar a pensar que el programa esté desfasado. Sin embargo, a medida que le dedicas más tiempo a intentar conocer el programa con profundidad te encuentras con que efectivamente cumple el estándar UML 1.4 hasta el más mínimo detalle, con unos menús de interacción muy cómodos y una gestión del metamodelo muy intuitiva. Sin duda alguna nos encontramos con la mejor opción de software libre para el modelado de UML.
Otro punto a favor es que cuenta con una extensa documentación, eso si, si no te manejas en el idioma de Shakespeare mejor no le eches el vistazo :P .



LINK: http://argouml.uptodown.com/


Diagrama de actividades

Diagramas de actividades UML: Referencia




Un diagrama de actividades muestra un proceso de negocio o un proceso de software como un flujo de trabajo a través de una serie de acciones.Las personas, los componentes de software o los equipos pueden realizar estas acciones.
Puede usar un diagrama de actividades para describir procesos de varios tipos, como los ejemplos siguientes:
En este tema se describen los elementos que puede usar en los diagramas de actividades.Para obtener información detallada sobre el dibujo de diagramas de actividades, vea Diagramas de actividades UML: Instrucciones.Para crear un diagrama de actividades UML, en el menú Arquitectura, haga clic en Nuevo diagrama de UML o de capas.Para más información sobre cómo dibujar diagramas de modelado en general, vea Editar modelos y diagramas UML.

Leer diagramas de actividades


En las tablas de las secciones siguientes se describen los elementos que puede usar en un diagrama de actividades y sus propiedades principales.Para obtener una lista completa de las propiedades de los elementos, vea Propiedades de los elementos de diagramas de actividades UML.
Las acciones y otros elementos que aparecen en un diagrama de actividades conforman una actividad.Puede ver la actividad en el Explorador de modelos UML.Se crea cuando se agrega el primer elemento al diagrama.
Para leer un diagrama, imagine que un token o un subproceso de control pasa por los conectores de una acción a la siguiente.

Flujos de control simple


Puede mostrar una secuencia de acciones con bifurcaciones y bucles.Para más información sobre cómo usar los elementos que se describen aquí, vea la sección Describir el flujo de control del tema Diagramas de actividades UML: Instrucciones.
Flujo de control simple
Forma
Elemento
Descripción y propiedades principales
1
Acción
Paso de la actividad en el que los usuarios o el software realizan alguna tarea.
La acción se puede iniciar cuando un token llega a todos sus flujos entrantes.Cuando termina, los tokens se envían en todos los flujos salientes.
  • Body: especifica la acción en detalle.
  • Language: idioma de la expresión en el cuerpo.
  • Local Postconditions: restricciones que deben cumplirse cuando termina la ejecución.Objetivo alcanzado por la acción.
  • Local Preconditions: restricciones que deben cumplirse antes de que empiece la ejecución.
2
Flujo de control
Conector que muestra el flujo de control entre las acciones.Para interpretar el diagrama, imagine que un token fluye de una acción a la siguiente.
Para crear un flujo de control, use la herramienta Conector.
3
Initial Node
Indica la primera acción o las primeras acciones de la actividad.Cuando se inicia la actividad, un token fluye desde el nodo inicial.
4
Activity Final Node
Fin de la actividad.Cuando llega un token, la actividad finaliza.
5
Decision Node
Bifurcación condicional de un flujo.Tiene una entrada y dos o más salidas.Un token entrante solo emerge en una de las salidas.
6
Restricción
Condición que especifica si un token puede fluir por un conector.Se usa con más frecuencia en los flujos salientes de un nodo de decisión.
Para establecer una restricción, haga clic con el botón derecho en un flujo, haga clic en Propiedades y, después, establezca la propiedad Restricción.
7
Merge Node
Necesario para combinar los flujos que se dividieron mediante un nodo de decisión.Tiene dos o más entradas y una salida.Un token en cualquier entrada emerge en la salida.
8
Comentario
Proporciona información adicional sobre los elementos a los que está vinculado.
9
Call Behavior Action
Acción que se define con más detalle en otro diagrama de actividades.
  • IsSynchronous: si es true, la acción espera hasta que la actividad finaliza.
  • Behavior: actividad invocada.
(sin mostrar)
Call Operation Action
Acción que llama a una operación en una instancia de una clase.
Actividad
Flujo de trabajo que se representa mediante un diagrama de actividades.Para ver las propiedades de una actividad, debe seleccionarla en el Explorador de modelos UML.
  • Is Read Only: si es true, la actividad no debe cambiar el estado de los objetos.
  • Is Single Execution: si es true, a lo sumo hay una ejecución de este diagrama a la vez.
Diagrama de actividades UML
Diagrama que muestra una actividad.Para ver sus propiedades, haga clic en una parte vacía del diagrama.
System_CAPS_noteNota
Los nombres del diagrama de actividades, el archivo que contiene el diagrama y la actividad que se muestra en el diagrama pueden ser diferentes.

Flujos simultáneos


Puede describir secuencias de acciones que se ejecutan al mismo tiempo.Para más información, vea Dibujar flujos simultáneos.
Diagrama de actividades mostrando flujo simultáneo
Forma
Elemento
Descripción
11
Fork Node
Divide un único flujo en flujos simultáneos.Cada token entrante genera un token en cada conector saliente.
12
Join Node
Combina flujos simultáneos en un único flujo.Cuando cada flujo entrante tiene un token en espera, se genera un token en la salida.
13
Send Signal Action
Acción que envía un mensaje o una señal a otra actividad o a un subproceso simultáneo de la misma actividad.El tipo y el contenido del mensaje están implícitos en el título de la acción o se especifican en los comentarios adicionales.
La acción puede enviar datos de la señal, que se pueden pasar a la acción de un flujo de objeto o terminal de entrada (16).
14
Accept Event Action
Acción que espera un mensaje o una señal antes de continuar con la acción.El tipo de mensaje que la acción puede recibir está implícito en el título o se especifica en los comentarios adicionales.
Si la acción no tiene ningún flujo de control entrante, genera un token cada vez que recibe un mensaje.
La acción puede recibir datos de la señal, que se pueden pasar a un flujo de objeto o terminal de salida (17).
  • IsUnmarshall: si es true, puede haber varios terminales de salida con tipo y los datos se deserializan en ellos.Si es false, todos los datos aparecen en un terminal.

Flujos de datos


Puede describir el flujo de datos de una acción a otra.Para más información sobre los elementos que se usan en esta sección, vea la sección Dibujar flujos de datos del tema Instrucciones para dibujar un diagrama de actividades.
Diagrama de actividades mostrando flujo de datos
Forma
Elemento
Descripción
15
Object Node
Representa los datos que pasan por un flujo.
  • Ordenación: cómo se almacenan varios tokens.
  • Selection: invoca un proceso, que se puede definir en otro diagrama, que filtra los datos.
  • Upper Bound: 0 indica que los datos deben pasar directamente por el flujo; * indica que los datos pueden almacenarse en el flujo.
  • Type: tipo de objetos que se almacenan y se transmiten.
16
Input Pin
Representa los datos que puede recibir una acción cuando se ejecuta.
  • Type: tipo de objetos que se transmiten.
17
Output Pin
Representa los datos que genera una acción cuando se ejecuta.
  • Type: tipo de objetos que se transmiten.
18
Activity Parameter Node
Nodo de objeto a través del cual la actividad recibe o genera datos.
Se usa cuando la actividad representada en el diagrama se llama desde otra actividad, o bien cuando el diagrama describe una operación o función.
  • Type: tipo de objetos que se transmiten.
(sin mostrar)
Flujo de objetos
Conector que muestra el flujo de datos entre las acciones y los nodos de objeto.
Para crear un flujo de objeto, use la herramienta Conector para vincular un terminal de entrada o salida, o bien un nodo de objeto a otro elemento.
  • Selection: invoca un proceso, que se puede definir en otro diagrama, que filtra los datos.
  • Transformation: invoca un proceso, que se puede definir en otro diagrama, que transforma los datos.
  • IsMulticast: indica que puede haber varios componentes u objetos de destinatario.
  • IsMultiReceive: indica que pueden recibirse entradas de varios objetos o componentes.

Diagramas de estado

DIAGRAMAS DE ESTADO

Los diagramas de estado son un método conocido para explicar el comportamiento de un sistema, que explican todos los estados posibles en los que puede ingresar un objeto particular y la manera en que modifica el estado del objeto, como resultado de los eventos que llegan a el.Un diagrama de estados es un diagrama utilizado para determinar cada una de las rutas o caminos que puede tomar un movimiento de información luego de ejecutarse cada proceso.
Permite identificar bajo qué pruebas se ejecuta cada uno de los procesos y en qué momento podrían tener una variación. El diagrama de estados permite visualizar de una forma ordenada la ejecución de cada uno de los procesos.

Un estado es una situación durante la vida de un objeto, de forma que cuando dicha situación se satisface se lleva a cabo alguna acción o se espera por un evento. El estado de un objeto se puede caracterizar por el valor de una o varias de las características de su clase, además, el estado de un objeto también se puede caracterizar por la existencia de un enlace con otro objeto. El diagrama de estados y transiciones incluye todos los mensajes que un objeto puede enviar o recibir. En un diagrama de estados, un escenario simboliza un camino dentro del diagrama. Dado que generalmente el espacio entre dos envíos de mensajes representa un estado, se pueden utilizar los diagramas de secuencia para buscar los diferentes estados de un objeto.


ELEMENTOS DEL DIAGRAMA DE ESTADOS:

Estado
Determina un lapso de tiempo del objeto, en el cual el objeto está esperando alguna ejecución, tiene cierta característica o puede obtener cierto tipo de estímulos. Se representa a través de un rectángulo con los bordes redondeados, que puede tener tres compartimientos: uno para el nombre, otro para el valor característico de los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado.

Eventos
Es una ocurrencia que puede causar el cambio de un estado a otro de un objeto. Esta ocurrencia puede ser:

· Condición que obtiene el valor de verdadero o falso

· Recepción de una señal de otro objeto en el modelo

· Recepción de un mensaje

· Paso de cierto período de tiempo, después de entrar al estado o de cierta hora y fecha particular

El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no es local a la clase que lo nombre.

Envío de mensajes
Aparte de mostrar la transición de estados por medio de eventos, puede representarse el momento en el cual se envían mensajes a otros objetos. Esto se ejecuta a través de una línea punteada dirigida al diagrama de estados del objeto receptor del mensaje.

Transición simple
Una transición simple es un vínculo entre dos estados que señala que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas. Se protagoniza como una línea sólida entre dos estados, que puede estar acompañada de un texto con el siguiente formato:

event-signature, "[" guard-condition] ", " action-expression ", "send-clause".

Event-signature es la explicación del evento que da lugar a la transición.

Guard-condition son las condiciones adicionales al evento, necesarias para que la transición ocurra.

Action-expression es un mensaje al objeto o a otro objeto que se ejecuta como resultado de la transición y el cambio de estado.

Send-clause son operaciones adicionales que se realizan con el cambio de estado, por ejemplo, el envío de eventos a otros paquetes o clases.

Transición interna
Es una transición que sigue en el mismo estado, en vez de implicar dos estados distintos. Representa un evento que no causa cambio de estado. Se denota como una cadena adicional en el compartimiento de acciones del estado.

Acciones:
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición. Se puede especificar al realizar una acción como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento.

Generalización de Estados:

· Podemos reducir la complejidad de estos diagramas usando la generalización de estados.

· Distinguimos así entre superestado y subestados.

· Un estado puede obtener varios subestados disjuntos.

· Los subestados heredan las variables de estado y las transiciones externas.

· La agregación de estados es la composición de un estado a partir de varios estados independientes.

La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los subestados concurrentes. La destrucción de un objeto es efectiva cuando el flujo del control del autómata alcanza un estado final no anidado. La llegada a un estado final guardado implica la subida al superestado asociado, no el fin del objeto.

Subestados
Un estado puede separarse en varios subestados, con transiciones entre ellos y conexiones al nivel superior. Las conexiones se ven al nivel inferior como estados de inicio o fin, los cuales se suponen conectados a las entradas y salidas del nivel inmediatamente superior.

Transacción Compleja
Una transición compleja relaciona tres o más estados en una transición de múltiples fuentes y/o múltiples destinos. Representa la subdivisión en discusiones del control del objeto o una sincronización. Se representa como una línea vertical de la cual salen o entran varias líneas de transición de estado.

Transición a estados anidados
Una transición de hacia un estado complejo (descrito mediante estados guardados) significa la entrada al estado inicial del subdiagrama. Las transiciones que salen del estado complejo se definen como transiciones desde cada uno de los subestados hacia afuera (a cualquier nivel de profundidad).

Transiciones temporizadas

· Las esperas son actividades que tienen asociada cierta duración.

· La actividad de espera se interrumpe cuando el evento esperado tiene lugar.

· Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado.

NOTACIONES: 
Las notaciones se pueden definir con los siguientes símbolos:


a.jpg

Los mas utilizados son: Estado Inicial, Estado final, Estado, Transición.



EJEMPLOS DE DIAGRAMA DE ESTADOS:


A continuación se muestran algunos ejemplos sencillos de Diagrama de Estados:


1. Diagrama de Estado: estados en los que pasa una lavadora
external image dde.JPG





2. Un cliente Compra productos los pasa por sistema, termina la venta, y posteriormente paga.

Diagrama de Estados
Diagrama de Estados






3. Diagrama de estados de UML para un pedido del sistema de procesos de pedidos. El diagrama indica los diversos estados de un pedido.
external image TZiSR.jpg

lunes, 25 de abril de 2016

Diagramas de secuencia

Los Diagramas de Secuencias muestran la forma en que un grupo de objetos se comunican (interactúan) entre sí a lo largo del tiempo Un Diagrama de Secuencia consta de objetos, mensajes entre estos objetos y una línea de vida del objeto representada por una línea vertical
DIAGRAMA DE SECUENCIA



El diagrama de secuencia de uml muestra la forma en que los objetos se comunican entre sí al transcurrir el tiempo.


Los diagramas de secuencia, formalmente diagramas de traza de eventos o de interacción de objetos, se utilizan con frecuencia para validar los casos de uso.




El diagrama muestra:
Los objetos participando de la interacción
La secuencia de mensajes intercambiados
Un diagrama de secuencia contiene:
Objetos con su línea de vida
Mensajes intercambiados entre objetos de una secuencia ordenada
Línea de vida activa


OBJETOS



Los diagramas de secuencia constan de objetos que se representan de modo usual: rectángulo con nombre, mensajes entre los objetos representados por líneas continuas con una punta de flecha y el tiempo representado como una progresión vertical. Los objetos se colocan cerca de la parte superior del diagrama de izquierda a derecha y se acomodan de manera que simplifiquen el diagrama.
La extensión que está debajo (en forma descendente) de cada objeto será una línea discontinua conocida como la línea de vida de un objeto, junto con la línea de vida de un (objeto rectángulo) se le conoce como activación, el cual una operación que realiza el objeto la interpreta como la duración de la activación.


LINEA DE VIDA
Una línea de vida representa un participante individual en un diagrama de secuencia. Una línea de vida usualmente tiene un rectángulo que contiene el nombre del objeto. Si el nombre es self entonces eso indica que la línea de vida representa el clasificador que posee el diagrama de secuencia.








MENSAJE
Un mensaje que va de un objeto a otro pasa de la línea de vida de un objeto al de otro. Un objeto puede enviarse un objeto a sí mismo es decir de su línea de vida así propia línea de vida.



Un mensaje puede ser simple, síncrono y asíncrono

Mensaje simple: es la transferencia del control de un objeto a otro.
Mensaje síncrono: es cuando el objeto espera la respuesta a ese mensaje antes de continuar con su trabajo.
Mensaje asíncrono: es cuando el objeto no espera la respuesta a ese mensaje antes de continuar.

TIEMPO
El diagrama representa el tiempo en dirección vertical. El tiempo se inicia en la parte superior y avanza hacia la parte inferior. Un mensaje que este más cerca de la parte superior ocurrirá antes que uno que esté cerca de la parte inferior.
Con ellos el diagrama de secuencia tiene 2 dimensiones: la dimensión horizontal (es la disposición de los objetos) y la dimensión vertical (muestra el paso del tiempo).
La siguiente figura muestra el conjunto básico de símbolos del diagrama de secuencia, junto con los símbolos de su funcionamiento.



RECURSIVIDAD
En ocasiones un objeto posee una operación que se invoca a sí misma. A esto se le conoce como recursividad y es una característica fundamental de varios lenguajes de programación.
La siguiente figura muestra este tipo de representación.

PALABRAS CLAVES
Diagrama
Secuencia
Objeto
Mensaje
Tiempo
Recursividad
Línea
Vida
self


OBJETIVO


Descubrir las interfaces requeridas para cada objeto y validar que cada interface se usa realmente.
El diagrama de Secuencias modela interacciones entre objetos. Ya que estas interacciones pueden ser muy complejas, se modelan un pequeño juego de interacciones como un solo escenario.



Flujo Normal: Flujo Alternativo: 1.- El actor pulsa sobre el botón para crear un nuevo mensaje. 
2.- El sistema muestra una caja de texto para introducir el título del mensaje y una zona de mayor tamaño para introducir el cuerpo del mensaje.
 3.- El actor introduce el título del mensaje y el cuerpo del mismo. 
4.- El sistema comprueba la validez de los datos y los almacena. 
4.A.- El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al actor de ello permitiéndole que los corrija.
5.- El moderador recibe una notificación de que hay un nuevo mensaje. 
6.- El moderador acepta y el sistema publica el mensaje si éste fue aceptado por el moderador. 
 7.- El moderador rechaza el mensaje, de modo que no es publicado sino devuelto al usuario.