martes, 4 de junio de 2019

DIAGRAMA DE DISTRIBUCION

DIAGRAMA DE DISTRIBUCIÓN
En el diagrama de distribución es donde representamos la estructura de hardware donde estará nuestro sistema o software, para ello cada componente lo podemos representar como nodos, el nodo es cualquier elemento que sea un recurso de hardware, es decir, es nuestra denominación genérica para nuestros equipos.

Dentro de la clasificación de los nodos tenemos que hay el nodo que puede ejecutar o procesar y el nodo que no ejecuta ni procesa, estos últimos pueden ser los dispositivos de salida como impresoras o monitores, es decir, los que están en contacto con el exterior.

Para representar al nodo utilizaremos la figura del cubo, dentro de nuestro cubo podemos escribir la información correspondiente al nodo, por ejemplo su nombre, veamos a continuación un nodo básico:
uml_diag_distribucion_part1.2.jpg

Ahora si necesitamos indicar información adicional de nuestro nodo, por ejemplo si pertenece a un paquete o tal vez los componentes que posee, podemos dividir el cubo en diferentes secciones donde iremos agregando la información representada en texto, veamos en el siguiente ejemplo a que nos referimos:


uml_diag_distribucion_part1.3.jpg

Incorporar Relaciones entre Nodos

Por supuesto que un nodo no es un ente aislado en un sistema, para ello en nuestro diagrama podremos representar como se asocia o se relaciona con otros nodos, a través de sus componentes o interfaces, con ello podemos dar una representación más exacta.

Usualmente utilizamos la conexión como la forma de representación, sin embargo podemos utilizar la asociación y la agregación en nuestros nodos, para representar la conexión utilizamos una línea discontinua, donde vinculamos un componente de un nodo a otro componente de otro nodo, esta conexión no necesariamente es un cable, esta conexión también puede representar conexiones inalámbricas, como Wi-Fi, Bluetooth, infrarrojos, etc.

Veamos a continuación un ejemplo de este tipo de conexión del que estamos hablando:


uml_diag_distribucion_part1.jpg

Como podemos notar esta es la representación de la distribución de un sistema cliente – servidor, que sucede en este diagrama, en el nodo cliente tenemos un componente de programa de presentación, dicho programa probablemente nos debe mostrar los recursos del servidor a los que podemos tener acceso, como por ejemplo el programa de búsqueda, al utilizar dicho programa, ocurre una conexión con el servidor quien procesa y hace un procesamiento de los datos y entonces retorna un resultado para dicha búsqueda.

Nuestro diagrama de nodos entonces nos da una representación bastante acertada de la estructura de los equipos que intervienen, ya que el cliente puede ser un terminal cualquier con dispositivos de entrada y salida de datos y el servidor es un equipo diferente que procesa los datos.

Ya tenemos una idea aproximada de como representar la distribución de hardware de nuestros sistemas utilizando UML, en el próximo tutorial veremos una aplicación más extensa de los diagramas de distribución.


¿Cuándo se utiliza?

Se debe utilizar un Diagrama de Distribución cuando se quiera:

· Verificar si el desempeño de un factor está relacionado con otro factor.

· Demostrar que un cambio en una condición afectará la otra.

¿Cómo se utiliza?

1. Reunir varios conjuntos de observaciones en pares, preferiblemente 25 ó más, los cuales se piensa que pueden estar relacionados.

2. Trazar los pares de datos desde el más bajo al más alto para cada conjunto
de datos.

3. Construir los ejes verticales y horizontales de tal forma que el valor más alto
y más bajo puedan trazarse. (ver Figura 1).

4. Dibujar los datos colocando una marca en el punto correspondiente a cada
par x-y (ver Figura 1).

5. Marcar los ejes x - y, de tal manera que el Diagrama de Distribución tenga
sentido para observadores futuros.

6. Colocar la fecha y la fuente de dónde los datos fueron recolectados.


DIAGRAMA DE COMPONENTES

DIAGRAMA DE COMPONENTES
El diagrama de componentes proporciona una visión física de la construcción del sistema de información. Muestra la organización de los componentes software, sus interfaces y las dependencias entre ellos.

Descripción

Como ya se ha indicado, los elementos de estos diagramas son los componentes software y las dependencias entre ellos.
Un componente es un módulo de software que puede ser código fuente, código binario, un ejecutable, o una librería con una interfaz definida. Una interfaz establece las operaciones externas de un componente, las cuales determinan una parte del comportamiento del mismo. Además se representan las dependencias entre componentes o entre un componente y la interfaz de otro, es decir uno de ellos usa los servicios o facilidades del otro.
Estos diagramas pueden incluir paquetes que permiten organizar la construcción del sistema de información en subsistemas y que recogen aspectos prácticos relacionados con la secuencia de compilación entre componentes, la agrupación de elementos en librerías, etc.

Notación

Componente
Un componente se representa como un rectángulo, con dos pequeños rectángulos superpuestos perpendicularmente en el lado izquierdo.
Para distinguir distintos tipos de componentes se les puede asignar un estereotipo, cuyo nombre estará dentro del símbolo: << ... >>
Interfaz
Se representa como un pequeño círculo situado junto al componente que lo implementa y unido a él por una línea continua. La interfaz puede tener un nombre que se escribe junto al círculo. Un componente puede proporcionar más de una interfaz.
Paquete
Un paquete se representa con un icono de carpeta (ver Diagrama de Paquetes).
Relación de dependencia
Una relación de dependencia se representa mediante una línea discontinua con una flecha que apunta al componente o interfaz que provee del servicio o facilidad al otro. La relación puede tener un estereotipo que se coloca junto a la línea, entre el símbolo: <<...>>

Ejemplo

Sistema encargado de la gestión de los préstamos y reservas de libros y revistas en una biblioteca. El lenguaje de desarrollo será Java, y los accesos a la información del prestatario serán mediante un paquete de Base de Datos.
Diagrama de Componentes
Lo que distingue a un diagrama de componentes de otros tipos de diagramas es su contenido. Normalmente contienen componentes, interfaces y relaciones entre ellos. Y como todos los diagramas, también puede contener paquetes utilizados para agrupar elementos del modelo.
Un diagrama de componentes muestra las organizaciones y dependencias lógicas entre componentes software, sean éstos componentes de código fuente, binarios o ejecutables. Desde el punto de vista del diagrama de componentes se tienen en consideración los requisitos relacionados con la facilidad de desarrollo, la gestión del software, la reutilización, y las restricciones impuestas por los lenguajes de programación y las herramientas utilizadas en el desarrollo. Los elementos de modelado dentro de un diagrama de componentes serán componentes y paquetes.
Dado que los diagramas de componentes muestran los componentes software que constituyen una parte reusable, sus interfaces, y sus interrelaciones, en muchos aspectos se puede considerar que un diagrama de componentes es un diagrama de clases a gran escala. Cada componente en el diagrama debe ser documentado con un diagrama de componentes más detallado, un diagrama de clases, o un diagrama de casos de uso.
Un paquete en un diagrama de componentes representa una división física del sistema. Los paquetes se organizan en una jerarquía de capas donde cada capa tiene una interfaz bien definida. Un ejemplo típico de una jerarquía en capas de este tipo es: Interfaz de usuario; Paquetes específicos de la aplicación; Paquetes reusables; Mecanismos claves; y Paquetes hardware y del sistema operativo.
Un diagrama de componentes se representa como un grafo de componentes software unidos por medio de relaciones de dependencia (generalmente de compilación). Puede mostrar también que un componente software contiene una interfaz, es decir, la soporta. Un ejemplo se muestra a continuación


DIAGRAMA DE COLABORACION

DIAGRAMA DE COLABORACIÓN
El diagrama de colaboración es un tipo de diagrama de interacción cuyo objetivo es describir el comportamiento dinámico del sistema de información mostrando cómo interactúan los objetos entre sí, es decir, con qué otros objetos tiene vínculos o intercambia mensajes un determinado objeto.

Descripción

Un diagrama de colaboración muestra la misma información que un diagrama de secuencia pero de forma diferente. En los diagramas de colaboración no existe una secuencia temporal en el eje vertical; es decir, la colocación de los mensajes en el diagrama no indica cuál es el orden en el que se suceden. Además, la colocación de los objetos es más flexible y permite mostrar de forma más clara cuáles son las colaboraciones entre ellos. En estos diagramas la comunicación entre objetos se denomina vínculo o enlace (link) y estará particularizada mediante los mensajes que intercambian.

Notación

Objeto
Un objeto se representa con un rectángulo dentro del que se incluye el nombre del objeto y, si se desea, el nombre de la clase, separando ambos por dos puntos.
Vínculo
En el diagrama, un vínculo se representa como una línea continua que une ambos objetos y que puede tener uno o varios mensajes asociados en ambas direcciones. Como un vínculo instancia una relación de asociación entre clases, también se puede indicar la navegabilidad del mismo mediante una flecha.
Mensaje
Un mensaje se representa con una pequeña flecha colocada junto a la línea del vínculo al que está asociado. La dirección de la flecha va del objeto emisor del mensaje al receptor del mismo. Junto a ella, se coloca el nombre del mensaje y sus argumentos.
A diferencia de los diagramas de secuencia, en los diagramas de colaboración siempre se muestra el número de secuencia del mensaje delante de su nombre, ya que no hay otra forma de conocer la secuencia de los mismos.
Además, los mensajes pueden tener asociadas condiciones e iteraciones que se representarán como en los diagramas de secuencia.

Ejemplo

Diagrama de colaboración para el caso de uso: Prestar un ejemplar de una aplicación encargada de los préstamos y reservas de una biblioteca.

 Imagen
El Diagrama de Colaboración presenta una alternativa al diagrama de secuencia para modelar interacciones entre objetos en el sistema. Mientras que el diagrama de secuencia se centra en la secuencia cronológica del escenario que estamos modelando, el diagrama de colaboración se centra en estudiar todos los efectos de un objeto dado durante un escenario. 


Los objetos se conectan por medio de enlaces, cada enlace representa una instancia de una asociación entre las clases implicadas. El enlace muestra los mensajes enviados entre los objetos, el tipo de mensaje (sincrónico, asincrónico, simple, blanking, y 'time-out'), y la visibilidad de un objeto con respecto a los otros.


Un uso de un diagrama de colaboración es mostrar la implementación de una operación. La comunicación muestra los parámetros y las variables locales de la operación, así como asociaciones más permanentes. Cuando se implementa el comportamiento, la secuencia de los mensajes corresponde a la estructura de llamadas anidadas y el paso de señales del programa.

Un diagrama de secuencia muestra secuencias en el tiempo como dimensión geométrica, pero las relaciones son implícitas. Un diagrama de comunicación muestra relaciones entre roles geométricamente y relaciona los mensajes con las relaciones, pero las secuencias temporales están menos claras.



Es útil marcar los objetos en cuatro grupos: los que existen con la interacción entera; los creados durante la interacción (restricción {new}); los destruidos durante la interacción (restricción {destroyed}); y los que se crean y se destruyen durante la interacción (restricción {transient}).

Aunque las comunicaciones muestran directamente la implementación de una operación, pueden también mostrar la realización de una clase entera. En este uso, muestran el contexto necesario para implementar todas las operaciones de una clase. Esto permite que el modelador vea los roles múltiples que los objetos pueden desempeñar en varias operaciones.




DIAGRAMA DE ACTIVIDADES

DIAGRAMA DE ACTIVIDADES
El Diagrama de Actividad es un diagrama de flujo del proceso multi-propósito que se usa para modelar el comportamiento del sistema. Los diagramas de actividad se pueden usar para modelar un Caso de Uso, o una clase, o un método complicado.
Un diagrama de actividad es parecido a un diagrama de flujo; la diferencia clave es que los diagramas de actividad pueden mostrar procesado paralelo (parallel processing). Esto es importante cuando se usan diagramas de actividad para modelar procesos 'bussiness' algunos de los cuales pueden actuar en paralelo, y para modelar varios hilos en los programas concurrentes.

 Usando Diagramas de Actividad para modelar Casos de Uso

Los Diagramas de Actividad ofrecen una herramienta gráfica para modelar el proceso de un Caso de Uso. Se pueden usar como un añadido a una descripción textual del caso de uso, o para listar los pasos del caso de uso. Una descripción textual, código, u otros diagramas de actividad pueden detallar más la actividad.

Usando Diagramas de Actividad para modelar Clases

Cuando se modela el comportamiento de una clase, un diagrama de estado de UML se suel usar normalmente para modelar situaciones donde ocurren eventos asincrónicos. El diagrama de actividad se usa conado todos o la mayoría de los elementos representan el desarrollo de los pasos dados por las acciones generadas internamente. Deberías asignar actividades a las clases antes de terminar con el diagrama de actividad.
Contenido del diagrama de actividades
Básicamente un diagrama de actividades contiene:
  • Estados de actividad
  • Estados de acción
  • Transiciones
  • Objetos
Estados de actividad y estados de acción
La representación de ambos es un rectángulo con las puntas redondeadas, en cuyo interior se representa bien una actividad o bien una acción. La forma de expresar tanto una actividad como una acción, no queda impuesta por UML, se podría utilizar lenguaje natural, una especificación formal de expresiones, un metalenguaje, etc. La idea central es la siguiente: “Un estado que represente una acción es atómico, lo que significa que su ejecución se puede considerar instantánea y no puede ser interrumpida”, Al igual que en el diagrama de estados, el de actividad cuenta con un punto inicial (representado por un círculo) y uno final (representado como dos círculos concéntricos). En la siguiente figura, podemos ver ejemplos de estados de acción.

Estados de Acción
ransiciones
Las transiciones reflejan el paso de un estado a otro, bien sea de actividad o de acción. Esta transición se produce como resultado de la finalización del estado del que parte el arco dirigido que marca la transición. Como todo flujo de control debe empezar y terminar en algún momento, podemos indicar esto utilizando dos disparadores de inicio y fin tal y como queda reflejado en el ejemplo siguiente.
Transiciones

Bifurcaciones
Un flujo de control no tiene porqué ser siempre secuencial, puede presentar caminos alternativos. Para poder representar dichos caminos alternativos o bifurcación se utilizará como símbolo el rombo. Dicha bifurcación tendrá una transición de entrada y dos o más de salida. En cada transición de salida se colocará una expresión booleana que será evaluada una vez al llegar a la bifurcación, las guardas de la bifurcación han de ser excluyentes y contemplar todos los casos ya que de otro modo la ejecución del flujo de control quedaría interrumpida. Para poder cubrir todas las posibilidades se puede utilizar la palabra ELSE, para indicar una transición obligada a un determinado estado cuando el resto de guardas han fallado. Veamos un ejemplo de bifurcación.
Bifurcaciones

División y unión
No sólo existe el flujo secuencial y la bifurcación, también hay algunos casos en los que se requieren tareas concurrentes. UML representa gráficamente el proceso de división, que representa la concurrencia, y el momento de la unión de nuevo al flujo de control secuencial, por una línea horizontal ancha. Podemos ver cómo se representa gráficamente.
 División y unión

Calles
Cuando se modelan flujos de trabajo de organizaciones, es especialmente útil dividir los estados de actividades en grupos, cada grupo tiene un nombre concreto y se denominan calles. Cada calle representa a la parte de la organización responsable de las actividades que aparecen en esa calle. Gráficamente quedaría como se muestra a continuación.
Calles

Composición

  • Inicio: El inicio de un diagrama de actividad es representado por un círculo de color negro sólido.
  • Actividad : Una actividad representa la acción que será realizada por el sistema la cual es representada dentro de un ovalo.
  • Transición: Una transición ocurre cuando se lleva acabo el cambio de una actividad a otra, la transición es representada simplemente por una linea con una flecha en su terminación para indicar dirección.
  • Ramificación (Branch: Una ramificación ocurre cuando existe la posiblidad que ocurra más de una transición (resultado) al terminar determinada actividad.Este elemento es representado a través de un rombo.
  • Unión (Merge: Una unión ocurre al fusionar dos o más transiciones en una sola transición o actividad.Este elemento también es representado a través de un rombo.
  • Expresiones Resguardadas (Guard Expressions: Una expresió resguardada es utilizada para indicar una descripción explicita acerca de una transición. Este tipo de expresión es reprsentada mediante corchetes ([...] y es colocada sobre la linea de transición.
  • Fork : Un fork representa una necesidad de ramificar una transición en más de una posibilidad. Aunque similar a una ramificación (Branch) la diferencia radica en que un fork representa más de una ramificación obligada, esto es, la actividad debe proceder por ambos o más caminos, mientras que una ramificación (Branch) representa una transición u otra para la actividad (como una condicional). Un fork es representado por una linea negra solida, perpendicualar a las lineas de transición .
  • Join : Una join ocurre al fusionar dos o más transiciones provenientes de un fork, y es empleado para dichas transiciones en una sola,tal y como ocurria antes de un fork .Un representado por una linea negra solida, perpendicualar a las lineas de transición .
  • Fin : El fin de un diagrama de actividad es representado por un círculo, con otro circulo concentrico de color negro sólido.
  • Canales (Swimlanes: En determinadas ocasiones ocurre que un diagrama de actividad se expanda a lo largo de más de un entidad o actor, cuando esto ocurre el diagrama de actividad es particionada en canales (swimlines), donde cada canal representa la entidad o actor que esta llevando acabo la actividad.

lunes, 3 de junio de 2019

DIAGRAMA DE SECUENCIAS

DIAGRAMA DE SECUENCIAS
Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. A menudo es útil para complementar a un diagrama de clases, pues el diagrama de secuencia se podría describir de manera informal como "el diagrama de clases en movimiento", por lo que ambos deben estar relacionados entre sí (mismas clases, métodos, atributos...). Mientras que el diagrama de casos de uso permite el modelado de una vista  del escenario, el diagrama de secuencia contiene detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario y mensajes intercambiados entre los objetos.
Típicamente se examina la descripción de un caso de uso para determinar qué objetos son necesarios para la implementación del escenario. Si se dispone de la descripción de cada caso de uso como una secuencia de varios pasos, entonces se puede "caminar sobre" esos pasos para descubrir qué objetos son necesarios para que se puedan seguir los pasos. Un diagrama de secuencia muestra los objetos que intervienen en el escenario con líneas discontinuas verticales, y los mensajes pasados entre los objetos como flechas horizontales.
El lenguaje unificado de modelado UML Se utiliza para definir un sistema, mediante el uso de objetos que forman parte de él así como, las relaciones estáticas o dinámicas que existen entre ellos.
Dentro de los diagramas de comportamiento en UML que permiten enfatizar las interacciones entre los objetos se encuentran los diagramas de secuencias, este describe el comportamiento del sistema y las operaciones que se realizan representando los objetos y los mensajes que se intercambian, ya que en un sistema real y funcional los objetos interactúan entre sí, y tales iteraciones suceden con el tiempo que se asigna, es decir que el diagrama de secuencias de UML es una mecánica de interacción en base a los tiempos.A continuación se detallan las características de los diagramas de secuencias y los elementos que lo conforman.

OBJETIVO

Conocer sobre los diagramas de secuencia en UML, sus características, funcionamiento y elementos que los componen.

MARCO TEÓRICO

 Diagrama de Secuencias
Un diagrama de secuencias muestra la interacción de un conjunto de objetos de una aplicación a través del tiempo, en el cual se indicaran los módulos o clases que formaran parte del programa y las llamadas que se hacen cada uno de ellos para realizar una tarea determinada, por esta razón permite observar la perspectiva cronológica de las interacciones. Es importante recordar que el diagrama de secuencias se realiza a partir de la descripción de un caso de uso.
Entre las ventajas que tiene la elaboración de un diagrama de secuencias están las siguientes:
1

Elementos de un Diagrama de Secuencias
Rol de la Clase
El rol de la clase describe la manera en que un objeto se va a comportar en el contexto. No se listan los atributos del objeto.
2

Activación
Los cuadros de activación representan el tiempo que un objeto necesita para completar una tarea.
3

 Mensajes
Los mensajes son flechas que representan comunicaciones entre objetos. Las medias flechas representan mensajes asincrónicos. Los mensajes asincrónicos son enviados desde un objeto que no va a esperar una respuesta del receptor para continuar con sus tareas.
4

  Líneas de Vida
Las líneas de vida son verticales y en línea de puntos, ellas indican la presencia del objetodurante el tiempo.
5

Destrucción de Objetos
Los objetos pueden ser eliminados tempranamente usando una flecha etiquetada “<<destruir>>” que apunta a una X.
6

Loops
Una repetición o loop en un diagrama de secuencias, es representado como un rectángulo. La condición para abandonar el loop se coloca en la parte inferior entre corchetes [ ].
7

Ejemplo
En el siguiente ejemplo se muestra la secuencia que sigue un usuario del metro para comprar un ticket:
8

Como se mencionó anteriormente los diagramas de clases representan información estática de sistema, pero ya en un sistema funcional, los objetos interactúan entre sí con el tiempo, esto se puede representar mediante un diagrama de secuencias.
El objetivo de UML es ser capaz de describir el comportamiento de un sistema, subsistema u operación particular mediante un diagrama de secuencia el cual muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso, esto facilita como se distribuyen las tareas entre los componentes.

DIAGRAMA DE OBJETOS
Un diagrama de objetos UML representa una instancia específica de un diagrama de clases en un momento determinado en el tiempo. Cuando se lo representa visualmente, verás muchas similitudes con el diagrama de clases.
Un diagrama de objetos se enfoca en los atributos de un conjunto de objetos y cómo esos objetos se relacionan entre sí. Por ejemplo, en el siguiente diagrama de objetos, las tres cuentas bancarias están ligadas al banco mismo. Los títulos de clase muestran el tipo de cuentas (ahorros, corriente y tarjeta de crédito) que un cliente dado podría tener con este banco en particular. Los atributos de clase son diferentes para cada tipo de cuenta. Por ejemplo, el objeto de tarjeta de crédito tiene un límite de crédito, mientras que las cuentas de ahorros y corriente tienen tasas de interés. Para examinar este documento con más detalle.

No obstante, los diagramas de objetos no se limitan a casos de uso bancarios, ya que se puede crear fácilmente un diagrama de objetos para árboles genealógicos, departamentos corporativos o cualquier otro sistema con partes interrelacionadas.
Diagrama de objetos - Ejemplo de cuenta bancaria
Nombre de los objetos
 Cada objeto es representado como un rectángulo, que contiene el nombre del objeto y su clase subrayadas y separadas por dos puntos.
Atributos 
Como con las clases, los atributos se listan en un área inferior. Sin embargo , los atributos de los objetos deben tener un valor asignado.
GENERACION DE USO
Los diagramas de objetos se generan en las disciplinas de Arquitectura y diseño. Se utilizan para mostrar estructuras de datos y las interacciones que existen entre objetos en tiempo de ejecución.

Elementos del diagramas de objetos

Los diagramas de objetos son sencillos de crear: se componen de objetos, representados por rectángulos, conectados mediante líneas. Echa un vistazo a los elementos principales de un diagrama de objetos.

Objetos

Los objetos son instancias de una clase. Por ejemplo, si "coche" es una clase, un Altima 2007 de Nissan es un objeto de una clase.

Títulos de clases

Los títulos de clases son los atributos específicos de una clase dada. En el diagrama de objetos de árbol genealógico, los títulos de clases incluyen nombre, género y edad de los integrantes de la familia. Se pueden listar títulos de clases como elementos en el objeto o incluso en las propiedades del propio objeto (como el color).
Diagrama de objetos - Títulos de clases

Atributos de clases

Los atributos de clases se representan por medio de un rectángulo con dos pestañas que indica un elemento de software.

Enlaces

Los enlaces son líneas que conectan dos figuras de un diagrama de objetos entre sí. El diagrama de objetos corporativo siguiente muestra cómo los departamentos están conectados al estilo del organigrama tradicional.
Diagrama de objetos - Conexión de objetos
Diagrama de objetos - Ejemplo de cuenta bancaria