sábado, 10 de octubre de 2015

HERRAMINETAS CASE O MODELADO



HERRAMIENTAS PARA UML

 RESUMEN  REALIZADO  POR - JOSSEY ALGUERO

Son diversas aplicaciones informáticas o programas informáticos destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero.

Herramientas UML textuales

También podemos encontrar diversas herramientas que permiten la especificación textual de modelos UML (y que automáticamente dibujan el diagrama UML correspondiente). Pueden ser una solución útil en algunos casos. Lista de herramientas de este tipo:

  • Nomnoml: Crea diagramas de clase con una sintaxis textual para UML fácil de usar. Lee  el cómo y el porqué de esta herramienta.
  • yuml: es un servicio online para crear diagramas de clase y de casos de uso. Este servicio puede llamarse desde un blog o página web (pasando la descripción textual del modelo a mostrar como parte de la URL) para visualizar automáticamente el modelo indicado. Ahora podemos también generar modelos UML desde otras herramientas UML.
  • UML Graph: dibuja automáticamente diagramas de clase y de secuencia. Para los de clase utiliza la sintaxis Java con anotaciones que después la herramienta convierte a specifications Graphviz. Para los diagramas de secuencia se utiliza un enfoque diferente (y esto es lo que no me gusta de la herramienta, en el fondo son dos distintas): se usan pic macros para definir el diagrama y después el programa pic2plot convierte las macros en archivos gráficos.
  • TextUML Toolkit: es otra herramienta reciente. Es un editor open-source que utiliza como visor de UML el proyecto EclipseGraphviz. Soporta básicamente diagramas de clase y un subconjunto de los diagramas de actividades.
  • MetaUML: es una librería para visualizar diagramas UML en archivos LaTeX, definidos utilizando una notación textual simple. Soporta diagramas de clase, de actividad y de casos de uso y máquinas de estado.
  • USE: también utiliza una notación textual pero en este caso su objetivo es animar el modelo permitiendo la creación de snapshots que sirvan para validar las restricciones OCL que se hayan definido.
  • PlantUML: soporta diagramas de clase, de casos de uso y de actividad, aunque no tengo claro si es un proyecto aún activo. Ver también esta descripción más detallada en el blog
  • Simple DSL: for sequence diagrams basado en UMLGraph. Utiliza el TXL Programming Language para pasar del DSL a UMLGraph
  • (sólo para fans acérrimos de Latex) Macros de Latex macros para dibujar UML Sequence diagrams , el nombre lo dice todo
  • metaDepth : Herramienta para la definición textual de modelos multi-nivel (es decir, la herramienta no se limita a modelos UML ni está restringida a la arquitectura modelo/metamodelo/metametamodelo típica
  • EasyUML Editor : soporta casi todos los tipos de diagramas UML. Los diagramas se pueden exportar a PDF, PNG o SVG. Se ejecuta como una aplicación web

Herramientas UML específicas para MAC:

  • MacA&D: con soporte para los principales diagramas de UML 2.2. y funcionalidades de generación de código para SQL, C++, Objective-C, Java, PHP and REALbasic
  • CanvasUML : para dibujar diagramas de clase
  • Otras herramientas como MagicDraw, VisualParadigm and QuickUML tienen también versión para MAC

Herramientas para dispositivos móbiles:

  • Lucidchart: tiene una versión para ipad capaz de reconozer figuras hechas a mano.
  • Draw UML: una herramienta de dibujo UML para el ipad.
  • Magicdraw Reader iphone Edition: Permite a los usuarios visualizar modelos hechos con magicdraw desde su iphone o ipod Touch.
  • Mock4U UML: Como usar Balsamiq para crear mock-ups de modelos UML en el iphone usando sus templates para iphone.
  • Iuml : NO es realmente una herramienta de modelado sinó una guía de referencia para llevar en el iphone y consultar la documentación mientras dibujamos modelos UML.
  • UML Process Aid es otra herramienta para consultar documentación sobre UML en el iphone.
  • Andyuml: una herramienta Android para el dibujo de diagramas UML
  • Astah* UML pad permite la creación de diagramas de clase UML en vuestro ipad. Además, se pueden exportar los modelos para completarlos más tarde utilizando otras de las herramientas de modelado de la misma marca.

CASO DE USO-


Diagrama de Casos de Usos

Se emplea para visualizar el comportamiento del sistema, una parte de él o de una sola clase; y como se relaciona con su entorno. De ésta forma se puede conocer cómo responde ésa parte del sistema ante un estímulo del ambiente. El diagrama de uso es muy útil para definir como debería ser el comportamiento de una parte del sistema, ya que solo especifica cómo deben comportarse y no como están implementadas las partes que define. Un caso de uso especifica un requerimiento funcional.


Elementos

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

Actor

Un actor es un rol que tiene un usuario con respecto al sistema. Es decir, sería un usuario del sistema. Es importante destacar el uso de la palabra “rol”, ya que esto especifica que un actor no necesariamente representa a una persona en particular, si no la labor que realiza frente al sistema.
Por  ejemplo, en un sistema de ventas, el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local. Debe tener un nombre significativo y se representa mediante el siguiente gráfico:






 Caso de Uso:Es una operación o tarea específica que se realiza tras una orden o estímulo de un agente externo, puede ser un actor o desde la invocación desde otro caso de uso.

Se representa mediante el siguiente gráfico:

  Relaciones

Asociación

Es el tipo de relación más básica, 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 o Instanciación

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 una de las más utilizadas, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>).
Este tipo de relación está orientado exclusivamente para casos de uso.
extends: se recomienda utilizar cuando un caso de uso es similar a otro (en 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.




DIAGRAMAS DE UML DINAMICOS VS ESTATICOS


RESUMEN  POR ERIKA CASTILLO
LOS DIAGRAMAS ESTATICOS Y DINAMICOS


Diagrama de Casos de Uso: modela la funcionalidad del sistema agrupándola en descripciones de acciones ejecutadas por un sistema para obtener un resultado. Se utiliza para entender el uso del sistema Muestra el conjunto de casos de uso y actores(Un actor puede ser tanto un sistema como una persona)  y sus relaciones: es decir, muestra quien puede hacer qué y las relaciones que existen entre acciones (casos de uso). Son muy importantes para modelar y organizar el comportamiento del sistema.
Diagrama de Clases: muestra las clases (descripciones de objetos que comparten características comunes) que componen el sistema y cómo se relacionan entre sí.
Diagrama de Objetos: muestra una serie de objetos (instancias de las clases) y sus relaciones. A diferencia de los diagramas anteriores, estos diagramas se enfocan en la perspectiva de casos reales o prototipos. Es un diagrama de instancias de las clases mostradas en el diagrama de clases.
Diagrama de Secuencia: enfatiza la interacción entre los objetos y los mensajes que intercambian entre sí junto con el orden temporal de los mismos.
Diagrama de Colaboración: igualmente, muestra la interacción entre los objetos resaltando la organización estructural de los objetos en lugar del orden de los mensajes intercambiados.
El diagrama de secuencia y el 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: Se utiliza para analizar los cambios de estado de los objetos. 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, simplifica el diagrama de estados modelando el comportamiento mediante flujos de actividades. Muestra el flujo entre los objetos. Se utilizan para modelar el funcionamiento del sistema y el flujo de control entre objetos.
Diagrama de Componentes: muestra la organización y las dependencias entre un conjunto de componentes. Se usan para agrupar clases en componentes o módulos.
Diagrama de Despliegue (o implementación): muestra los dispositivos que se encuentran en un sistema y su distribución en el mismo. Se utiliza para identificar Sistemas de Cooperación: Durante el proceso de desarrollo el equipo averiguará de qué sistemas dependerá el nuevo sistema y que otros sistemas dependerán de él.

Los diagramas uml de  dividen según su tipo de vista:

 Son  estáticos: también llamados estructurales se encargan de definir qué elementos (entidades, objetos, áreas, clases, departamentos, componentes etc.) deben de estar definidas dentro del sistema u organización a desarrollar el correspondiente modelado.                                                                                      
Son dinámicos:  se  encargan de  dar la vista de la relaciones  y integraciones  de los  tipos de clases u objetos  en ejecución  del sistema.


DIAGRAMA DE CLASES -








DIAGRAMA DE  CLASES
 RESUMEN  ELABORADO POR :  JOSSEY ALGUERO
Definir:

  La función  de este diagrama es la  visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso.

 Está  compuesta  por los siguientes elementos:

Clase: atributos, métodos y visibilidad.

Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

Definición de los elementos:

Clases: es la unidad  básica  donde  se encapsula toda la información  de un objeto (un objeto es una instancia de una clase).En UML, una clase es  representada  por unos rectángulos que posee tres divisiones:

Superior: contiene el nombre  de la Clase u objeto

Intermedio: contienes  los  atributos  esta  puede ser  privada, publica, protegido.

Inferior: contiene métodos  u  operaciones  esta  indica  la forma  en que se relacionan pueden ser privada, publica, protegido.

Atributos y Métodos:
Atributos:
Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:
·         public (+): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.
·         private (-): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).
·         protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se derive.
. Métodos:
Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:
Public (+): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.
Private (-): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar).
Protected (#): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia).
Dentro de  los  diagramas de  clases  las cardinalidades  representa el grado de  de relación  o dependencia  que  existe entre clases  o objeto. Esta  cardinalidades pueden  ser  las siguientes:
  • uno o muchos: 1..* (1..n)
  • 0 o muchos: 0..* (0..n)
  • número fijo: m (m denota el número).
Relaciones
1. Herencia (Especialización/Generalización): Indica que una subclase hereda los métodos y atributos especificados por una Súper Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Súper Clase (public y protected). y se  identifica.
Agregación: Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres
Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).
Asociación: La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre sí. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
Dependencia o Instanciación (uso): Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada. El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra
  EJERCICIO 1
Una biblioteca tiene copias de libros. Estos últimos se caracterizan por su nombre, tipo (novela, teatro, poesía, ensayo), editorial, año y autor.

  • Los autores se caracterizan por su nombre, nacionalidad y fecha de nacimiento.
  • Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en reparación.
  • Los lectores pueden tener un máximo de 3 libros en préstamo.
  • Cada libro se presta un máximo de 30 días, por cada día de retraso, se impone una “multa” de dos días sin posibilidad de coger un nuevo libro.
  • Realiza un diagrama de clases y añade los métodos necesarios para realizar el préstamo y devolución de libros.


  • EJERCICIO 2

    Realiza el diseño de una aplicación para la gestión de pedidos. La aplicación deberá:
    • manejar clientes (se guarda su nombre, dirección, teléfono y e-mail), que pueden realizar pedidos de productos, de los cuales se anota la cantidad en stock. Un cliente puede tener una o varias cuentas para el pago de los pedidos. Cada cuenta está asociada a una tarjeta de crédito, y tiene una cierta cantidad disponible de dinero, que el cliente debe aumentar periódicamente para poder realizar nuevos pedidos.
    • Un cliente puede empezar a realizar un pedido sólo si tiene alguna cuenta con dinero disponible. Al realizar un pedido, un cliente puede agruparlos en pedidos simples o compuestos. Los pedidos simples están asociados a una sola cuenta de pago y (por restricciones en la distribución) contienen un máximo de 20 unidades del mismo o distinto tipo de producto. A su vez, un pedido compuesto contiene dos o más pedidos, que pueden ser simples o compuestos. Como es de esperar, el sistema debe garantizar que todos los pedidos simples que componen un pedido compuesto se paguen con cuentas del mismo cliente. Además, sólo es posible realizar peticiones de productos en stock.
    • Existe una clase (de la cual debe haber una única instancia en la aplicación) responsable del cobro, orden de distribución y confirmación de los pedidos. El cobro de los pedidos se hace una vez al día, y el proceso consiste en comprobar  todos los pedidos pendientes de cobro, y cobrarlos de la cuenta de pago correspondiente. Si una cuenta no tiene suficiente dinero, el pedido se rechaza (si es parte de un pedido compuesto, se rechaza el pedido entero). Una vez que el pedido está listo para servirse, se ordena su distribución, y una vez entregado, pasa a estar confirmado.