UML: CASOS DE USO

328,489 views

Published on

Introduccion de UML y luego específicamente una Introduccion de Casos de uso, luego de diagramas de casos de uso

UML: CASOS DE USO

  1. 1. UML: CASOS DE USO Y DIAGRAMA DE CASOS DE USO Docente: Ing. Armando Cabrera Integrantes: Marilyn Jaramillo Katty Landacay FUNDAMENTOS DE INGENIERÍA DE SOFTWARE
  2. 2. UML Unified Modeling Language <ul><li>Lenguaje Estándar para: </li></ul><ul><ul><li>Visualizar </li></ul></ul><ul><ul><li>Especificar </li></ul></ul><ul><ul><li>Construir </li></ul></ul><ul><ul><li>Documentar los planos del software </li></ul></ul>Indican como crear y leer modelos bien formados pero no nos dicen qué modelos se deben crear ni cuándo se los deberían crear <ul><ul><li>Ir a Casos de uso </li></ul></ul>
  3. 3. UML es un lenguaje para visualizar <ul><li>La distancia entre pensar en una implementación y transformarla en código es casi cero. </li></ul><ul><li>UML es algo más que un simple montón de símbolos gráficos. </li></ul><ul><li>En algunos casos: Lo que piensas lo codificas. </li></ul><ul><li>Algunas cosas se modelan mejor textualmente; otras se modelas mejor de forma gráfica </li></ul>
  4. 4. UML es un lenguaje para especificar <ul><li>Significa construir modelos precisos, no ambiguos y completos </li></ul><ul><li>Pero sus modelos pueden conectarse a una gran variedad de lenguajes de programación </li></ul><ul><li>UML cubre todas las decisiones de análisis, diseño e implementación </li></ul><ul><li>No es un lenguaje de programación </li></ul>UML es un lenguaje para construir
  5. 5. UML es un lenguaje para documentar <ul><li>UML cubre la documentación de la arquitectura de un sistema y todos sus detalles </li></ul><ul><li>Proporciona un lenguaje: </li></ul><ul><li>Expresar requisitos y pruebas </li></ul><ul><li>Modelar actividades de planificación de proyectos y gestión de versiones </li></ul>
  6. 6. CASOS DE USO <ul><li>Qué es un caso de uso? </li></ul><ul><li>Para que sirven los casos de uso? </li></ul><ul><li>Cómo se representan? </li></ul><ul><li>Cómo se debe crear un caso de uso? </li></ul><ul><li>Flujo de eventos </li></ul><ul><li>Relaciones </li></ul><ul><li>Diagramas de caso de uso </li></ul>Use Case 2 Specification Use case 1 Model Use case 2 Use case 3 Actor 2
  7. 7. QUÉ ES UN CASO DE USO? <ul><li>Describen una interacción típica entre un usuario (actores) y un sistema de cómputo. </li></ul><ul><li>Es una técnica para capturar información de cómo un sistema o negocio trabaja actualmente, o de cómo se desea que trabaje </li></ul><ul><li>Produce algo de valor para algún actor como el cálculo de algún resultado </li></ul><ul><li>Describe qué hace un sistema pero no especifica cómo lo hace </li></ul><ul><li>El caso de uso capta alguna función visible para el usuario. </li></ul><ul><li>El caso de uso puede ser pequeño o grande. </li></ul><ul><li>El caso de uso logra un objetivo discreto para el usuario. </li></ul><ul><li>Un caso de uso debe ser simple, claro y conciso </li></ul>
  8. 8. PARA QUE SIRVEN LOS CASOS DE USO? <ul><li>Para capturar el comportamiento deseado del sistema sin tener que especificar como se implementa ese comportamiento </li></ul><ul><li>Como medio de comprensión del sistema para desarrolladores, usuarios finales y expertos del dominio </li></ul><ul><li>Ayudan a validar la arquitectura y a verificar el sistema en el transcurso del desarrollo de este </li></ul>
  9. 9. Un caso de uso se representa en UML como un óvalo: CÓMO SE REPRESENTAN? Nombre del Caso de Uso En UML, un actor se representa como monigote Actor
  10. 10. ACTORES <ul><li>Representa un conjunto de roles que los usuarios de los casos de uso juegan al interactuar con éstos </li></ul><ul><li>Representa un rol que es jugado por una persona, un dispositivo hardware u otro sistema que interactúe con nuestro sistema </li></ul><ul><li>Se puede definir categorías generales de actores (como cliente) y especializarlos (como ClienteComercial) a través de relaciones de generalización </li></ul>Cliente Cliente Comercial actor actor generalización <ul><li>Un actor y un caso de uso se pueden comunicar a través de una asociación en donde cada uno de ellos pueden enviar y recibir mensaje. </li></ul>
  11. 11. FLUJO DE EVENTOS <ul><li>Cómo y cuándo empieza y acaba el caso de uso </li></ul><ul><li>Cuándo interactúan con los actores y que objetos se intercambian </li></ul><ul><li>Conviene separa el flujo principal de uno alternativo </li></ul>
  12. 12. Ejemplo: VALIDACIÓN DE USUARIO
  13. 13. <ul><li>FLUJO DE EVENTO PRINCIPAL: </li></ul><ul><li>el caso de uso comienza cuando se pide al cliente un número de identificación personal (cédula), el cliente introduce la cédula, luego acepta con enter, el sistema lo comprueba para su validación, si la cédula es válida el sistema acepta la entrada y acaba el caso de uso. </li></ul><ul><li>FLUJO DE EVENTO EXCEPCIONAL: </li></ul><ul><li>El cliente puede cancelar su transacción en cualquier momento con el botón cancelar, reiniciando el caso de uso, no se efectúa ningún cambio a la cuenta del cliente . </li></ul><ul><li>El cliente puede borrar la cédula en cualquier momento antes de introducirlo y volver a teclear una nueva cédula </li></ul><ul><li>El cliente introduce un cédula inválida el caso de uso vuelve a empezar, si se lo realiza tres veces se cancela la transacción. </li></ul>
  14. 14. Cómo identificar los casos de uso?
  15. 15. Cómo se debe crear un caso de uso? <ul><li>Tras localizar los actores, procede el describirlos </li></ul><ul><li>especificar describiendo un flujo de eventos </li></ul><ul><li>Los actores sólo pueden conectar a los casos de uso a través de asociaciones </li></ul><ul><li>Generalmente hay pocos actores asociados a cada Caso de Uso </li></ul><ul><li>Preguntas clave: </li></ul><ul><ul><li>¿cuáles son las tareas del actor? </li></ul></ul><ul><ul><li>¿qué información crea, guarda, modifica, destruye o lee el actor? </li></ul></ul><ul><ul><li>¿debe el actor notificar al sistema los cambios externos? </li></ul></ul><ul><ul><li>¿debe el sistema informar al actor de los cambios internos? </li></ul></ul>
  16. 16. <ul><li>L a descripción del Caso de Uso comprende: </li></ul><ul><ul><li>el inicio: cuándo y qué actor lo produce? </li></ul></ul><ul><ul><li>el fin: cuándo se produce y qué valor devuelve? </li></ul></ul><ul><ul><li>la interacción actor-caso de uso: qué mensajes intercambian ambos? </li></ul></ul><ul><ul><li>objetivo del caso de uso: ¿qué intenta el caso de uso? </li></ul></ul><ul><ul><li>cronología y origen de las informaciones </li></ul></ul><ul><ul><li>repeticiones de comportamiento: ¿qué operaciones son iteradas? </li></ul></ul><ul><ul><li>situaciones opcionales: ¿qué ejecuciones alternativas se presentan en el caso de uso? </li></ul></ul>
  17. 17. Puntos claves del ejemplo: <ul><li>Las precondiciones son los hechos que se han de cumplir para que el flujo de evento se pueda llevar a cabo. </li></ul><ul><li>Flujo de eventos Normal , que corresponde a la ejecución normal y exitosa del caso de uso </li></ul><ul><li>Los flujos alternativos son los que nos permiten indicar qué es lo que hace el sistema en los casos menos frecuentes e inesperados. </li></ul><ul><li>las poscondiciones son los hechos que se ha de cumplir si el flujo de eventos normal se ha ejecutado correctamente. </li></ul>
  18. 18. Ejemplo: escribir un mensaje en un foro
  19. 19. RELACIONES Para extraer el comportamiento de los casos de uso en los que se incluye y poniendo ese comportamiento en otros casos de uso que lo extiende Tipos: - GENERALIZACIÓN - EXTENSIÓN - INCLUSIÓN
  20. 20. GENERALIZACIÓN <ul><li>El caso hijo hereda el comportamiento y significado de caso de uso padre </li></ul><ul><li>El hijo puede añadir o redefinir el comportamiento del padre </li></ul><ul><ul><li>El Caso de Uso fuente hereda la especificación del Caso de Uso destino </li></ul></ul>Caso de uso origen Caso de uso destino
  21. 21. <ul><ul><li>INCLUSIÓN </li></ul></ul><ul><ul><li>Un caso base de uso base incorpora expolisitamente el comportamiento de otro caso de uso en el lugar especificado en el caso base. </li></ul></ul><ul><ul><li>Se usa para evitar describir el mismo flujo de eventos repetidas veces, poniendo comportamiento común en un caso de uso aparte </li></ul></ul><ul><ul><li>Se representa como una dependencia estereotipada con <<include>> </li></ul></ul>
  22. 22. Ingresando pedido Buscando datos de producto Obtener reporte De Ventas por producto <<include>> <<include>> Empleado de ventas Gerente REPRESENTACIÓN: EJEMPLO: Caso de uso origen Caso de uso destino << include >>
  23. 23. <ul><li>EXTENSIÓN </li></ul><ul><li>Significa que un caso de uso base incorpora implícitamente el comportamiento de otro caso de uso en el lugar especificado indirectamente por el caso de uso que extiende al base </li></ul><ul><li>Se usa esta relación cuando se tiene un caso de uso que es similar a otro, pero que hace un poco más. </li></ul>Caso de uso origen Caso de uso destino <<extends>>
  24. 24. Ejemplo: Realizar Llamada telefónica Realizar llamada Con conferencia Recibir llamada telefónica Recibir llamada adicional Usar agenda <<extend>> <<extend>> relación de extensión frontera del sistema Casos de uso Red telefónica Usuario Actores Teléfono móvil
  25. 25. <ul><li>Ejemplo de todas las relaciones : </li></ul>
  26. 26. <ul><li>Un diagrama de casos de uso es un diagrama que muestra un conjunto de casos de uso, actores y sus relaciones. </li></ul><ul><li>Son importantes para modelar el comportamiento de un sistema. </li></ul><ul><li>Normalmente los casos de uso contienen: </li></ul><ul><ul><li>Casos de Uso </li></ul></ul><ul><ul><li>Actores </li></ul></ul><ul><ul><li>Relaciones de dependencia, generalización y asociación. </li></ul></ul>DIAGRAMAS DE CASO DE USO En UML, cada caso de uso debe tener al menos un actor. Esta forma de ver el sistema nos ayuda a concebirlo como un todo.
  27. 27. <ul><li>Cubren principalmente el comportamiento del sistema. </li></ul><ul><li>Es un tipo especial de diagrama, por su contenido particular. </li></ul><ul><li>Se emplean para modelar la vista de casos de uso estática.(comportamiento, servicios externos). </li></ul><ul><li>Para modelar el contenido de un sistema </li></ul><ul><li>Dibujar una línea alrededor de todo el sistema, los actores quedarán fuera del sistema e interactúan con el, se especificara los actores y el significado de los roles. </li></ul><ul><li>Para modelar los requisitos de un sistema </li></ul><ul><li>Especificar que debería hacer el sistema, independientemente de cómo se haga, se especificará el comportamiento deseado del sistema. </li></ul><ul><li>Permite ver el sistema entero como una caja negra. </li></ul>
  28. 28. Técnicas comunes del modelado <ul><li>Elementos dentro y fuera, son responsables del comportamiento que esperan los elementos externos.. </li></ul><ul><li>Los elementos externos que interactúan con el sistema constituyen su contexto, es decir el entorno en que reside el sistema. </li></ul><ul><li>Modelar el contexto de un sistema </li></ul><ul><ul><li>Identificar actores en torno del sistema. </li></ul></ul><ul><ul><li>Grupos que necesitan ayuda del sistema, </li></ul></ul><ul><ul><li>Grupos necesarios para ejecutar las funciones del sistema. </li></ul></ul><ul><ul><li>Grupos que interactúan con el hardware o software. </li></ul></ul><ul><ul><li>Grupos que realizan funciones secundarias de administración y mantenimiento. </li></ul></ul><ul><li>Organizar los actores similares en jerarquía de generalización/especificación </li></ul><ul><li>Proporcionar un estereotipo para cada actor. </li></ul><ul><li>Introducir los actores en un diagrama de CU y especificar las vías de comunicación . </li></ul>
  29. 29. Antes Después
  30. 30. Comercio Realizar Transacción Con tarjeta Procesar factura Del cliente Ajustar transacciones Gestionar cuenta Del cliente Cliente Entidad Financiera Cliente individual Cliente corporativo
  31. 31. <ul><li>Los Casos de Uso no son parte del diseño (cómo), sino parte del análisis (qué). </li></ul><ul><li>Los Casos de Uso son qué hace el sistema desde el punto de vista del usuario. Es decir, describen un uso del sistema y cómo este interactúa con el usuario. </li></ul><ul><li>Los diagramas de casos de uso muestran las relaciones entre los casos de uso de un sistema y sus actores. </li></ul><ul><li>En una relación << extends>>, un actor que lleve a cabo el caso de uso base puede realizar o no sus extensiones. Mientras, en una relación <<include>> el actor que realiza el caso de uso base también realiza el caso de uso incluido. </li></ul>
  32. 32. <ul><li>http://www.ingenierosoftware.com/analisisydiseno/casosdeuso.php </li></ul><ul><li>http://www-gris.det.uvigo.es/~avilas/UML/node25.html </li></ul><ul><li>Libro de UML: EL LENGUAJE UNIFICADO DE MODELADO, Booch, Jacobson, Rumdaugh, pag 190- 223 </li></ul>

×