domingo, 8 de diciembre de 2013

Diagrama de Despliegue

Diagrama de Despliegue


El diagrama de despliegue UML muestra la arquitectura física de un sistema informático. Puede representar a los equipos y a los dispositivos, y también mostrar sus ínter-conexiones y el software que se encontrará en cada máquina.

Nodo
·         Un nodo es un elemento físico que existe en tiempo de ejecución y Representa un recurso computacional, que generalmente tiene algo de memoria y, a menudo, capacidad de procesamiento.

·         Los nodos se utilizan para modelar la topología del hardware sobre el que se ejecuta el sistema. Representa típicamente un procesador o un dispositivo sobre el que se pueden desplegar los componentes.

Los componentes son los elementos que participan en la ejecución de un Sistema. Los nodos son los elementos donde se ejecutan los componentes.

·         Los componentes representan el empaquetamiento físico de los elementos lógicos. Los nodos representan el despliegue físico de los componentes.
·         La relación entre un nodo y el componente que despliega puede mostrarse con una relación de dependencia, o listando los nodos desplegados en un compartimiento adicional dentro del nodo.

·         Los estereotipos permiten precisar la naturaleza del equipo:

Procesadores: Nodo con capacidad de procesamiento. Puede ejecutar un componente.

Dispositivos: Nodo sin capacidad de procesamiento. Representa Cualquier otro dispositivo hardware.

·         Los nodos se relacionan mediante conexiones bidireccionales (en Principio) que pueden a su vez estereotiparse.

·         Las conexiones se modelan como asociaciones, con todas las Características que implica.

El diagrama de Despliegue esta compuesto por los siguientes:









Diagramas de Estados

Diagramas de Estados


Un diagrama de estados muestra la secuencia de estados que un objeto ó una interacción pueden atravesar durante su existencia en respuesta a eventos externos o internos que provocan los cambios de un estado a otro.

Un diagrama de estados es útil sólo para los objetos con un comportamiento Significativo. El resto de objetos se puede considerar que tienen un único Estado.

Un diagrama de estados completa la definición de los casos de uso y sirven de base para el diseño de la interfaz de usuario. Los diagramas de estados y los diagramas de interacción son complementarios.

§  Estados

Un estado se representa mediante de un rectángulo con las esquinas redondeadas.  Puede tener de forma opcional uno o más secciones, tales como el nombre y las transiciones internas.

En la sección nombre se coloca el nombre del estado.  Mientras que en la sección transiciones internas se coloca una lista de acciones realizadas mientras el objeto están en un estado según el siguiente formato:

     evento argumentos / acción

Cada nombre de evento puede aparecer más de una vez en un único estado.  Las acciones pueden utilizar los atributos y enlaces del objeto al que pertenecen o los parámetros de transiciones de entrada.  Las siguientes acciones utilizan palabras reservadas:
  • entrar: ocurre a la entrada del estado 
  • salir: ocurren a la salida del estado
  • hacer: ocurren mientras está en el estado


Existen dos (2) estados especiales y que se distinguen del resto:
El estado inicial y el estado final.  El primero ocurren cuando se crea un objeto y el segundo ocurre cuando este desaparece. Se ilustran mediante un punto negro y un punto negro con un circulo externo respectivamente.



§  Transiciones




Hay dos (2) tipos de transiciones:

a.        Transiciones simples

Una transición simple es una relación entre dos estados, indicando que un objeto del primer estado entrará en el segundo estado y realizará ciertas operaciones cuando ocurra un evento dado si determinadas condiciones
se cumplen.

El disparador de la transición es la ocurrencia del evento que está etiquetando la transición.

El evento podría tener parámetros, que se utilizarán en:
 - Las acciones especificadas en la transición
 - Las acciones iniciadas en el siguiente estado

Los eventos se procesan de forma exclusiva en cada momento, nunca concurrentemente.

Si un evento no disparara ninguna transición, simplemente se ignora.

Las transiciones se representan por una flecha sólida que va de un estado a otro, etiquetada por un string de transición con el siguiente formato:

Evento ( [parametros] ) [condición guarda] / acción

La condición de guarda es una expresión lógica en términos de los parámetros del evento disparado, atributos y enlaces del objeto al que pertenece la máquina de estados.

a.        Transiciones complejas

Una transición es compleja cuando posee múltiples estados fuente y múltiples estados destino. Sirve para representar una sincronización de hilos concurrentes a través de ramas AND/OR.



§  Estados Inicial y Final

 Estos elementos dan a entender tanto el inicio como el final del programa, se diferencian dado que uno de estos posee dos círculos por lo que es fácil de comprender



Al terminar el diagrama se podrá observar uno parecido a este el cual es el ejemplo de un avión el cual acelera para elevarse para luego aterrizar tiene que descender y bajar su velocidad







sábado, 7 de diciembre de 2013

Diagramas de Colaboracion

Diagramas de Colaboración


Un diagrama de colaboración sirve para describir un determinado escenario de un caso de uso al mostrar la interacción entre el conjunto de objetos que cooperan en la realización de dicho escenario.

Suele ser conveniente especificar en la parte izquierda del diagrama, el caso de uso que se está representando para que resulte más sencilla su validación.

Los diagramas de colaboración representan una combinación de información tomada de los diagramas de clases, de secuencias y de casos de uso, describiendo el comportamiento,

Tanto de la estructura estática, como de la estructura dinámica de un sistema.

El Diagrama de Colaboración esta compuesto por


  • Instancias


Las instancias representan un objeto o instancia cualquiera de una clase determinada (no a una instancia real).

Una instancia u objeto se ilustra con un rectángulo, que contiene el nombre y la clase del objeto en un formato nombreObjeto: nombreClase.






  • Enlaces


Los enlaces representan una conexión entre instancias que indican navegabilidad y visibilidad entre ellas. Establece una relación cliente-servidor entre las instancias.


  • Mensajes
 

Los mensajes se representan mediante una flecha etiquetada. Un mensaje esta asociado a un enlace y para el caso de los diagramas de colaboración tienen asociados un número que indican el orden de ocurrencia.


Por lo que al unir todas estas partes de lo que corresponde el Diagrama de Colaboración Obtendremos algo como esto


jueves, 5 de diciembre de 2013

Diagrama de Secuencias

Diagrama de Secuencias


Los diagramas de clases y los de objetos representan información estática. No obstante, en un sistema funcional, los objetos interactúan entre sí, y tales interacciones suceden con el tiempo. El diagrama de

secuencias UML muestra la mecánica de la interacción con base en tiempos.

Un diagrama de secuencia sirve para describir en detalle un determinado escenario de un caso de uso al mostrar la interacción entre el conjunto de objetos que cooperan en la realización de dicho escenario.

Los Diagramas de Secuencias están compuestos por los siguientes elementos:




















miércoles, 4 de diciembre de 2013

Diagramas de Caso de Uso

Diagrama de caso de uso

Un caso de uso es una descripción de las acciones de un sistema desde el punto de vista del usuario. Es una herramienta valiosa dado que es una técnica de aciertos y errores para obtener los requerimientos del sistema, justamente desde el punto de vista del usuario.
Los diagramas de caso de uso modelan la funcionalidad del sistema usando actores y casos de uso.
Los casos de uso son servicios o funciones provistas por el sistema para sus usuarios.

El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan (operaciones o casos de uso).

Un diagrama de casos de uso consta de los siguientes elementos:



  • Actores
  • Casos de uso
  • Relaciones de uso, herencia y comunicación

Actor



Un actor es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.

Como ejemplo a la definición anterior, tenemos el caso de un sistema de ventas en que el rol de vendedor con respecto al sistema puede ser realizado por un vendedor o bien por el supervisor.


Caso de uso




Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.

Relaciones



Asociación 


Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple.

Dependencia


Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada.

 Generalización 


Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>) Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores).extends: Se recomienda utilizar cuando un caso de uso es similar a otro (características).uses: Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica.De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento de clases, en donde esta la duda clásica de usar o heredar.


Documentación caso de uso




Diagramas de Clases

DIAGRAMA DE CLASES

Los diagramas de clases describen la estructura estática de un sistema.

El diagrama de clase es el diagrama principal de diseño y análisis para un sistema, y en él se agrupan todas las clases y relaciones que existen entre ellas y que serán utilizadas dentro del sistema. Los diagramas de Clases por definición son estáticos, esto es, representan que partes interactúan entre sí, sin indicar el momento en que ocurre.

Un rectángulo es el símbolo que representa a la clase, y se divide en tres áreas. Un diagrama de clases está formado por varios rectángulos de este tipo conectados por líneas que representan las asociaciones o
maneras en que las clases se relacionan entre si.

Una clase agrupa los objetos que comparten estructura, comportamiento y relaciones similares. Una clase representa los conceptos del sistema que se desea modelar.

Gráficamente una clase se dibuja como un rectángulo con hasta tres (3) compartimentos:


Nombre de la clase
Lista de Atributos (opcional)
Lista de Operaciones (opcional)

Las cosas que existen y que nos rodean se agrupan naturalmente en categorías. Una clase es una categoría o grupo de cosas que tienen atributos (propiedades) y acciones similares. Un ejemplo puede ser la
clase “Aviones” que tiene atributos como el “modelo de avión”, “la cantidad de motores”, “la velocidad de crucero” y “la capacidad de carga útil”. Entre las acciones de las cosas de esta clase se encuentran:
“acelerar”, “elevarse”, “girar”, “descender”, “desacelerar”.


Se pueden visualizar los componentes del diagrama de clases mas específicamente en este gráfico:




Atributos de una clase


Los atributos representan alguna propiedad dentro de la clase. Los atributos son valores que son instanciados de la clase. Una clase puede tener varios atributos o ninguno.

Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos. Por esta razón se crearon niveles de visibilidad para los elementos que son:

  • (-) Privado: Son accesibles sólo por métodos propios de la clase.
  • (#) Protegidos: Son accesible sólo por las clases derivadas de la original. 
  • (+) Públicos: Son accesibles por cualquier clase 

Relaciones entre clases


Al construir abstracciones, descubrimos que muy pocas de las clases diseñadas actúan solas, y muchas otras colaboran con otras clases. Por lo que debemos conocer como se relacionan unas con otras.

Existen en el modelado orientado a objetos tres tipos de relaciones:

  • Dependencia
  • Generalización
  • Asociación

La Dependencia representa el uso de las relaciones entre clases, La Generalización sirve para conectar las clases generales a otras más específicas, es decir, para relaciones subclase/superclase, y la Asociación indica relaciones estructurales entre los objetos.

La Agregación se deriva de la Asociación y la Especialización se deriva de la Generalización. Ambos tipos de relaciones forman jerarquías de clases.




Dependencia


La dependencia se usa para mostrar que una clase usa otra clase como un argumento, el cual se especifica en la firma de la operación. En el diagrama anterior la clase Event es utilizado por la clase Window por sus métodos.
Se dibuja como una flecha punteada.


Generalización


La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general. A la clase más general se le denomina “Superclase” o “Padre” y a la clase más específica se le denomina “Subclase” o “Hijo”. A veces este tipo de relación es referenciada como "is-a-kind-of" o “es-un-tipo-de”. Por ejemplo, la clase CuadroDialogo es un tipo de la clase Ventana.

Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones y asociaciones de la clase padre están disponibles en sus clases hijas.

Una clase puede tener cero, uno o más padres. Una clase que no tiene padre es llamada clase raíz o clase base. Una clase que no tiene hijos es una clase hoja. Una clase que tiene exactamente un padre se dice que usa herencia sencilla; una clase que tiene más de un padre se dice que tiene herencia múltiple.

La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas. La Especialización es una técnica muy eficaz para la extensión y reutilización.



Asociación


Es la relación estructural que especifica que objetos de una cosa están conectados a objetos de otras. Dada una conexión de asociación en dos clases, se puede navegar desde un objeto de una clase a un objeto de la otra clase, y viceversa.


Una asociación que conecta exactamente dos clases se llama asociación binaria, aunque se pueden asociar más clases la cual se llamaría asociación n-aria. Se dibuja como una línea continua.

Existen cuatro conceptos que se aplican a la asociación:

  • Nombre
  • Rol
  • Multiplicidad

Diagramas UML

UML

Unified Modeling Language



Es un estándar ( ISO / IEC 19501:2005 ), de uso general lenguaje de modelado en el campo de la ingeniería de software . El Lenguaje de Modelado Unificado incluye un conjunto de técnicas de notación gráfica para crear modelos visuales de software orientado a objetos de sistemas intensivos, es la manera mas viable para lograr entender el funcionamiento del software que se esta realizando haciendo posible la verificación de posibles errores en lo concerniente a las conexiones o procesos a realizar.

entre los mas conocidos entre los diagramas UML se encuentran:


Diagramas de Caso de Uso
Diagramas de Clases
Diagramas de Secuencia
Diagramas de Colaboración
Diagramas de Estados
Diagramas de Despliegue


Los cuales explicaremos posteriormente.


La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les conoce como modelo. Recordemos que un modelo es una representación simplificada de la realidad; el modelo UML describe lo que supuestamente hará un sistema, pero no dice cómo implementar dicho sistema.

Actualmente existen diversos programas que permiten la realización de dichos diagramas de manera que estos sean fácil de realizar por la gran eficacia de los mismos debido a que su interfaz gráfica es comprensible y cómoda a la vista del usuario.

estos son alguno de los editores mas conocidos:


Visual Paradigm Community Edition


Link de descarga:


Ventajas:

  • Buena integración con IDEs.
  • Incluye localización en castellano.
  • Muy personalizable.
  • Soporta muchos más lenguajes de programación.

Desventajas:

  • No permite su uso en proyectos comerciales e incluye marca de agua recordando este hecho.
  • Muestra muchas otras funcionalidades no disponibles como gancho para las versiones de pago.

ArgoUML


Link de descarga:


Ventajas:

  • Es software libre.
  • Soporta PHP.

Desventajas:

  • UML 1.4

StarUML


Link de descarga:




Ventajas:

  • Es software libre.
  • Muy personalizable.

Desventajas:

  • Problemas con la ingeniería inversa si hay caracteres locales, tildes por ejemplo.
  • Sin versión para Linux aunque puede funcionar con Wine.http://www.tadicho.com/?p=154

UMLET


Link de descarga:


Ventajas:

  • Es software libre.
  • Buena integración con Eclipse.
  • Permite edición sólo con texto (sin usar el ratón).

Desventajas:

  • Sin ingeniería inversa.

JUDE COMMUNITY


Link de descarga:


Ventajas:

  • Buena personalización.

Desventajas:

  • Soporte incompleto UML 2

BOUML


Link de descarga:


Ventajas:

  • Muy rápido.
  • Soporte PHP.
  • Es software libre.
  • Ingeniería inversa por encima de la media.

Desventajas:

  • Muy poco intuitivo, curva aprendizaje grande.

Umbrello


Link de descarga:


Ventajas:

  • Es software libre.

Desventajas:

  • Sin binario actualizado para Windows.

yuml.me


Link de descarga:


Ventajas:

  • Herramienta web, no requiere instalación.
  • Muy ágil y cómodo.
  • Permite edición sólo con texto (sin usar el ratón).

Desventajas:

  • Herramienta web, necesitas estar conectado.
  • Ciertos problemas con caracteres locales.
  • No soporta diagramas de secuencia.