sábado, 15 de octubre de 2011

UML: CASOS DE USO Y DIAGRAMA DE CASOS DE USO

¿QUE ES UML?
El lenguaje unificado de modelado, es un lenguaje muy popular de modelado de sistemas de software en el cual usa técnicas de notación grafica para crear modelos visuales de sistemas de desarrollo de software.

UML se encarga de documentar, visualizar y especificar las funciones y procesos de los sistemas orientados al objeto. UML representa un modelo estándar para visualizar un dibujo técnico de sistemas, que incluye elementos como el actor, que viene siendo el usuario que interactua con el sujeto, el proceso de negocio, que son las tareas relacionadas lógicamente para lograr un negocio definido, el componente, que encapsula el contenido del sistema y la actividad, que es la tarea que toma lugar para cumplir un contrato de operación.

CASO DE USO

  • Es una representación de las actividades que deben realizarse para llevar a cabo algún proceso.
  • Los personajes que participan en un caso de uso se llaman actores.
  • Es una secuencia de interacciones que se desarrollaran entre el sistema y sus actores.
  • Capturan el comportamiento del sistema que se esta desarrollando, sin tener que especificar como se implementa ese comportamiento.

PARA QUE SIRVEN LOS CASOS DE USO

  • Para especificar la comunicación y el comportamiento de un sistema mediante la interacción con los usuarios.
  • Para validar la arquitectura. 
  • Para verificar que el sistema evolucione durante el desarrollo de manera adecuada. 

COMO SE REPRESENTAN LOS CASOS DE USO

  • En UML, un actor se representa como monigote



  • En UML un caso de uso se representa como un ovalo:



ACTORES

  • Es quien representa o inicia una acción dentro del sistema.
  • Se comunica con el caso de uso atraves de mensajes.
  • Puede ser representado por una persona, un dispositivo hardware u otro sistema que interactue con el sistema.



FLUJO DE EVENTOS

  • El flujo de eventos indica quien habla y que dice, esta secuencia empieza con algo dicho por el actor, y sigue así sucesivamente lo hecho por el sistema como lo dicho por el actor. Cada una de esas indicaciones se llaman paso.
  • Un buen flujo de eventos recoge con detalle  la identidad de quien realiza el paso, diciéndolo sin equivocarse la acción realizada.
Ejemplo de diagrama de flujo de eventos para el caso del cajero automático:



COMO IDENTIFICAR LOS CASOS DE USO

  • Haciendo un mapa mental.
  • Revisando los requerimientos que necesita el problema.
  • Buscando las tareas y responsabilidades de cada actor.

DESCRIPCIÓN DE CASO DE USO
son reseñas textuales del caso de uso. Normalmente tiene el formato de una nota o un documento relacionado de alguna manera con el caso de uso, y explica los procesos o actividades que tiene lugar en el caso de uso.
La descripción del caso de uso comprende:

  • El inicio: Cuando y que actor lo produce?
  • El fin: Cuando se produce y que valor devuelve?
  • La interacción: Que mensajes cambian el actor y el caso de uso?

RELACIONES DE CASOS DE USO
Tipos de relaciones:
  • Generalización: Este tipo de relación es uno de los mas usados, 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). 

    • (<<Uses>>) o (<<Include>>): Es la relación que especifica una situacion en la que un caso de uso tiene lugar dentro de otro caso de uso.
    Ejemplo de un diagrama de caso de uso de un cajero automático: 

    •  (<<Extends>>):  Relación que especifica ciertas situaciones, o en algún punto (llamado punto de extensión) un caso de uso sera extendido por otro.
    Ejemplo de un diagrama de caso de uso de como pagar la cuenta de diferentes formas:



    • Ejemplo de todas las relaciones:




    DIAGRAMAS DE CASOS DE USO

    • Los diagramas de casos de usos describen las relaciones y las dependencias entre un grupo de casos de uso y los actores participantes en el proceso.
    • Los diagramas de casos de uso no están pensados para representar el diseño y no puede describir los elementos internos de un sistema.
    • Los diagramas de casos sirven para facilitar la comunicación con los futuros usuarios del sistema, y con el cliente. 
    • Los diagramas de casos de usos demuestran el comportamiento de un sistema desde el punto de vista del usuario. Por lo tanto los casos de usos determinan los requisitos funcionales del sistema, es decir, representan las funciones que un sistema puede ejecutar.
    • Su principal ventaja es la facilidad para interpretarlos, lo que hace que sean útiles en la comunicación con el cliente.

    Ejemplo de un caso de una maquina recicladora:
    Sistema que controla una maquina de reciclamiento de botellas, tarros y jabas. el sistema debe controlar y/o aceptar:

    • Registrar el numero de ítemes ingresados.
    • Imprimir un recibo cuando el usuario lo solicita:
    1. Describe lo depositado.
    2. El valor de cada ítem.
    3. Total.
    • El usuario/cliente presiona el botón de comienzo.
    • Existe un operador que desea saber lo siguiente:
    1. Cuantos ítemes han sido retornados en el día.
    2. Al final de cada día el operador solicita un resumen de todo lo depositado en el día.
    • El operador debe ademas poder cambiar:
    1. Información asociada a ítemes.
    2. Dar una alarma en el caso de que:
    • Ítem se atora.
    • No hay mas papel.
    Como una primera aproximación identificamos a los actores que interactuan con el sistema:
    Luego, tenemos que un cliente puede depositar ítemes y un operador puede cambiar la información de in ítem o bien puede imprimir un informe:

    Ademas podemos notar que un ítem puede ser una botella, un tarro o una jaba.

    Otro aspecto es la impresión de comprobantes, que puede ser realizada después de depositar algún item por un cliente o bien puede ser realizada a petición de un operador. 

    Entonces, el diseño completo del diagrama Use Case es:






    sábado, 8 de octubre de 2011

    PROCESOS DE LA INGENIERÍA DE REQUERIMIENTOS

    SISTEMA DE INFORMACIÓN
    Es un conjunto de elementos en el cual se puede capturar, procesar, almacenar y distribuir la información de una organización. Estos también ayudan a analizar los problemas que se presenten y a crear nuevos productos.

    TIPOS DE SISTEMAS DE INFORMACIÓN
    Los sistemas de información se dividen en diferentes niveles:

    • Sistemas de nivel operativo: Es aquel sistema que hacen un seguimiento a las actividades y las transacciones mas importantes de una organización.
    • Sistemas de nivel de conocimiento: Sistemas de información en los que se apoyan a los trabajadores del conocimientos en una organización.
    • Sistemas de nivel de administración: son aquellos que apoyan el seguimiento y toma de decisiones y las actividades del administrador.
    • Sistemas de nivel estratégico: Sistemas de información que apoyan las planeaciones para que la  organización no se desvíe de su rumbo.

    ¿QUE SON REQUERIMIENTOS?

    Los requerimientos son atributos necesarios dentro de un sistema, que pueden representar un factor de calidad del sistema. Se puede decir también que es una representación documentada de una condición.

    CARACTERÍSTICAS DE LOS REQUERIMIENTOS
    Las diferentes características son:

    • Necesario: Es necesario ya que si se omite el sistema a construir no funcione o pueda traer deficiencias
    • Conciso: Es conciso si este es fácil de leer y entender, para que en un futuro si se desea consultar se pueda precisar sin ningún inconveniente.
    • Completo: Es completo si no es necesario expandir mas información para su comprensión. 
    • Consistente: Es consistente si no se contradice con otro requerimiento.
    • No ambiguo: No es ambiguo cuando se define de una sola forma, esto para no causar al lector confusiones.
    • Verificable: Es Verificable cuando permita realizar los métodos de verificación tales como : inspección, análisis, demostración o pruebas.

    INGENIERÍA DE REQUERIMIENTOS
    La ingeniería de software se define, según (Ortas 1997), como un conjunto de actividades en las cuales, utilizando técnicas y herramientas, se analiza un problema y se concluye con la especificación de una o mas soluciones. 
    • Entonces podemos decir que la ingeniería de requerimientos son todas las actividades que están implicadas en el descubrimiento y documentación de los requerimientos para un producto definitivo.


    IMPORTANCIA DE LA INGENIERÍA DE REQUERIMIENTOS
    La ingeniería de requerimientos es importante porque:
    • Permite gestionar las necesidades del proyecto en forma estructurada: Todas las actividades de la ingeniería de requerimientos están bien organizadas y bien especificadas.
    • Disminuye los costos y retrasos del proyecto: Esto se da porque con unos buenos requerimientos nuestro software no tiene porque quedar mal desarrollado.
    • Mejora la calidad del software: Si no tuviéramos los requerimientos necesarios no podemos construir un software de calidad.
    • Mejora la comunicación entre equipos: Los requerimientos representan una aceptación entre los clientes y los desarrolladores, ya que si esto no pasa el proyecto no va a tener éxito.
    • Evita rechazo de usuarios finales: Esto sucede ya que la ingeniería de requerimientos obliga al cliente a considerar sus requerimientos.

    PERSONAL INVOLUCRADO EN LA INGENIERÍA DE REQUERIMIENTOS
    Para el desarrollo de requerimientos de un sistema se necesitan mucho personal involucrado, cada una de estas personas tienen diferentes intereses. Esto es muy importante porque asegura que se incluyan a las personas mas correctas para desempeñar las diferentes fases del ciclo de vida.
    • Usuario final: Son aquellas personas que usaran el sistema desarrollado. Ellos son los que utilizaran las interfaces y los manuales de usuario.
    • Usuario líder: Son los que proporcionan al equipo técnico todos lo detalles y requerimientos de las interfaces del sistema.
    • Personal de mantenimiento: Son los responsables de la administración de cualquier cambio. Su trabajo consiste en revisar los procesos del producto ya terminado.
    • Analistas y programadores: Son los responsables del desarrollo del software en si; Ellos son los que interactuan directamente con el cliente.
    • Personal de pruebas: Son aquellas personas que tiene que validar si los requerimientos satisfacen las necesidades del cliente.
    Tambien podríamos decir que estarían involucrados personal como administradores de proyecto, documentadores, diseñadores de bases de datos entre otros, pero eso ya depende de la magnitud del proyecto.


    REQUERIMIENTOS DE PROCESO
    Son aquellos requerimientos que se usan durante el desarrollo del software.

    REQUERIMIENTOS DEL USUARIO
    • Finalidad del software : Que sea entregado el producto totalmente terminado y completo.
    • Características del software que son requeridas: que el producto cumpla con todo lo que en verdad se necesita. 




    domingo, 2 de octubre de 2011

    LA ENTREVISTA

    Las entrevistas so utilizan para obtener información en forma verbal, a través de preguntas que propone uno como analista. Los entrevistados deben ser personas relacionadas de alguna manera con la organización, como los gerentes o empleados, los cuales son usuarios actuales del sistema existente. El analista puede entrevistar al persona sea de una manera individual o en grupos, algunos analistas prefieren esta técnica a las otras pero las entrevistas no son siempre la mejor fuente para recibir la información que deseamos.

    Dentro de una empresa, la entrevista es la técnica mas beneficiosa que tiene un analista para obtener datos. En otras palabras, la entrevista es un intercambio de información que se da de cara a cara. Esto viene siendo un canal de comunicación entre el analista y la empresa.


    ¿PARA QUE SIRVE?
    Pues sirve porque en ella se obtienen información acerca de las necesidades de una organización y se busca la manera de como satisfacerlas, se puede decir que sirven también porque ofrecen al analista una excelente oportunidad para crear un ambiente de simpatía con el usuario, lo cual es muy importante en el tiempo en que se de el estudio.



    PREPARACIÓN DE UNA ENTREVISTA.
    • Establecer la posición que ocupa el entrevistado dentro de la organización, cuales son su responsabilidades, que actividades  realiza, etc.
    • preparar las preguntas que se van a trazar, así como los documentos que van a necesitar.
    • Fijar el tiempo necesario para realizar la entrevista.
    • Elegir un lugar cómodo para así poder llevar a cabo la entrevista.
    • Acordar con el entrevistado una cita con una debida anticipación.


    TIPOS DE ENTREVISTAS
    • Estructurada: Es también llamada entrevista formal, esta caracterizada por estar estrictamente normalizada, se trazan preguntas idénticas y en el mismo orden a cada uno de los entrevistados que deben escoger las respuestas entre dos, tres o mas alternativas que les ofrezcan.
    Entre las ventajas encontramos que:
    • Se necesita un limitado entrenamiento del entrevistador.
    • Resulta en entrevistas mas pequeñas.
    • Es mas fácil de administrar y evaluar.
    • Asegura una elaboración similar de las preguntas para todos los entrevistados.
    Entre las desventajas encontramos que :
    • Requiere un alto costo de preparación.
    • Es difícil obtener información confidencial.
    • Se limita la posibilidad de progresar en un tema que surja durante la entrevista.

    • No estructurada: Es mas flexible y abierta, esta técnica no es mas que realizar preguntas de acuerdo a las respuestas que vayan surgiendo durante la entrevista.
    Entre las ventajas encontramos que:
    • El entrevistador tiene mayor flexibilidad al realizar las preguntas correspondiente a quien responde.
    • El entrevistador puede explotar áreas que surgen naturalmente durante la entrevista.
    • Puede recoger información de áreas en las que pensó que no eran importantes.
    Entre las desventajas encontramos que :
    • Puede recoger información extraña.
    • toma tiempo extra recoger la información realmente importante.
    • El análisis y los resultado de esta misma pueden ser muy largos.



    CONSIDERACIONES PARA LA ENTREVISTA
    • Hay que tratar de familiarizarse con la empresa y el tipo de persona que en ella se encuentra, para hacer esto debemos identificarnos con la misión, visión, organigrama, etc. Todo lo que nos pueda servir para darnos una idea general de la empresa.
    • debemos establecer unos objetivos bien claros antes de hacer las preguntas de la entrevista.
    • Seleccionar a las personas que vamos a entrevistar.
    • Elaborar un plan de entrevista.
    • Hacer una cita con anticipación, recordar a las personas que hay que entrevistar, el día y la hora en que se realizara.


    PUNTOS IMPORTANTES A TRATAR
    • Llegar temprano a la entrevista.
    • saludar al entrevistado con un apretón de mano y vestirnos de forma adecuada.
    • Registrar todos lo datos mas importantes de la entrevista para no perder en contacto visual.
    • Si vamos a usar grabadora o cámaras de vídeos pedir permiso primero.
    • Escribir el reporte inmediatamente despues de la entrevista para que no se olvide detalles importantes.
    • Validar la información con la persona entrevistada para evitar malos interpretaciones de la información. 

    POSTURA DEL ENTREVISTADOR

    • Primero que todo hay que escuchar, después hablar para interrumpir al entrevistado.
    • Evitar que el entrevistado se sienta mal porque no esta haciendo su trabajo bien.
    • En el momento de la entrevista no tratar al entrevistado de forma amigable, pero si de una manera sencilla y formal.
    • No utilizar palabras difícil de entender.


    ERRORES TÍPICOS A EVITAR
    • Entrevistar al personal inadecuado en el momento inadecuado.
    • Crear malas relaciones entre el entrevistador y el entrevistado.
    • Hacer preguntas que no van al caso.



    ÉXITO DE UNA ENTREVISTA
    Para asegurar el éxito de una entrevista hay que tener una serie de pasos a seguir, como son:
    • Definir la entrevista por adelantado
    • Comenzar la entrevista dando una breve introducción del tema a tratar.
    • Prepararnos e informarnos sobre el tema a tratar en la entrevista.º