Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Casos de Uso y el
Proceso de Análisis
Asociado
Javier Garzás
Noviembre 2003
jgarzas@acm.org
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Escuelas
 Dirigida por Datos:
- Derivan del ME/R.
- Cercan...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Aparición de los Casos de Uso
El autor que formalizó los Ca...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Use Case Driven
“Cuando deseamos cambiar el
comportamiento ...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
¿Qué es un Caso de Uso?
“Una (de las muchas posibles) inter...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Características
 Un UC captura alguna función (“verbo+algo...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
¿Diferencias entre Casos de Uso?
Tipos de UC
(Fowler, 1997)...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Elementos
 Ejemplo:
Sistema
Actor A
Caso de uso X
Actor B
...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Los Actores
Un Actor es un ROL que un usuario juega
con res...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Los Actores
 Los actores se determinan observando:
- Usuar...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Herencia entre actores
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
 Tras localizar los actores, procede el
describirlos
 Los...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Los Actores
 ¿Mostrar TODAS las interacciones con
sistemas...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Las Relaciones
UML define cuatro tipos de relación en los
C...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Las Relaciones
- De Extensión: cuando se tiene un caso
de u...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Las Relaciones
- De Uso: cuando hay una parte de
comportami...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
¿¿¿Uses o Extend???
 Ambos suponen “factor Común” entre ca...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Las Relaciones
- De Herencia: el Caso de Uso fuente hereda
...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Las Relaciones
 Ejemplo:
Identificación
Giro por Internet
...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Las Relaciones
 Ejemplo:
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Desde el Metalenguaje
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Construcción del Diagrama
 Un caso de uso debe ser simple,...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Construcción del Diagrama
 Heurísticas:
- Los casos de uso...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Construcción del Diagrama
 Los Casos de Uso pueden present...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Construcción del Diagrama
 La descripción del Caso de Uso ...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Casos de Uso: Test
 Los casos de uso permiten realizar dos...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Casos de Uso: Test
 Cuando un modelo de casos de uso se co...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
La Realización del Caso de Uso
 La realización de los UC e...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
La Realización del Caso de Uso
“A specific sequence of acti...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
La Realización del Caso de Uso
Caso de Uso
Escenarios
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
La Realización del Caso de Uso
 La responsabilidad total d...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
La Realización del Caso de Uso
 El proceso de construcción...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
8 errores principales al modelar UC
1. Escribir requisitos ...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Algunas conclusiones
Un caso de uso bien estructurado:
-. N...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Aspectos pernciosos de los UC
 Excesivamente similares a l...
Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso
Técnicas para reducir el “gap”
 Bounday Objects: cerca de ...
Upcoming SlideShare
Loading in …5
×

JGarzas - Casos de Uso

2,660 views

Published on

Published in: Technology
  • Be the first to comment

JGarzas - Casos de Uso

  1. 1. Casos de Uso y el Proceso de Análisis Asociado Javier Garzás Noviembre 2003 jgarzas@acm.org
  2. 2. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Escuelas  Dirigida por Datos: - Derivan del ME/R. - Cercanos al diseño estructurado (utilizan p.e DFDs). - Ejemplos: Shlaer/Mellor, Martin/Odell, Rumbaught (OMT), etc.  Dirigida por Responsabilidad: - Comienzan desde la perpesctiva de la OO. - Característicos son los métodos de Booch y sobre todo el de Wirfs-Brock (CRC/RDD)  Dirigida por Casos de Uso: - Filosofía basada en escenarios. - La mayor representación recae en Jacobson
  3. 3. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Aparición de los Casos de Uso El autor que formalizó los Casos de Uso (Use Cases, UC o CU) fue Ivar Jacobson, haciendolos pieza fundametal de su metodología...Objectory (1994).
  4. 4. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Use Case Driven “Cuando deseamos cambiar el comportamiento del sistema remodelamos al actor apropiado y su caso de uso. La arquitectura del sistema en conjunto estará controlada por los deseos del usuario.” Jacobson, “Object – Oriented Software Engineering: A use case driven Approach”, 1992. La esencia del diseño orientado por casos de uso...
  5. 5. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso ¿Qué es un Caso de Uso? “Una (de las muchas posibles) interacción típica entre un usuario y un sistema de computo” (Fowler, 1997) “The use case construct is used to define the behavior of a system or other semantic entity without revealing the entity’s internal structure. Each use case specifies a sequence of actions, including variants, that the entity can perform, interacting with actors of the entity” (UML 1.3) “Secuencia de acciones que un actor (generalmente una persona, pero quizás una entidad externa como otro sistema) ejecuta dentro de un sistema para lograr una meta.” (Rosenberg, 1999)
  6. 6. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Características  Un UC captura alguna función (“verbo+algo”) visible por el usuario.  Un UC de uso puede ser pequeño o grande (¿?).  Un UC de uso realiza una discreta meta para el usuario.  Los UC definen los límites del sistema y las relaciones entre el sistema y el entorno.  Los UC describen funcionalidad sin entrar en implementación  Basados en el lenguaje natural... “accesibles por los usuarios”  Suplen la carencia en cuanto a la determinación de requisitos
  7. 7. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso ¿Diferencias entre Casos de Uso? Tipos de UC (Fowler, 1997) Objetivos del usuario Interacciones del usuario • Dar formato a un documento • Cambiar tipo de letra • Cambiar color Comenzar con objetivos de usuario y, si es necesario, al final, desarrollar interacciones
  8. 8. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Elementos  Ejemplo: Sistema Actor A Caso de uso X Actor B Caso de uso Y
  9. 9. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Los Actores Un Actor es un ROL que un usuario juega con respecto al sistema  Un usuario puede jugar más de un Rol  Puede no ser humano  Se representa como un... Actor
  10. 10. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Los Actores  Los actores se determinan observando: - Usuarios directos del sistema - Responsables del uso o mantenimiento del sistema - Otros sistemas que interactúan con el sistema en cuestión  La misma persona física puede interpretar varios roles  El nombre del actor describe el rol desempeñado
  11. 11. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Herencia entre actores
  12. 12. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso  Tras localizar los actores, procede el describirlos  Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción,  Los casos de uso intervienen durante todo el ciclo de vida Los Actores
  13. 13. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Los Actores  ¿Mostrar TODAS las interacciones con sistemas remotos?  ¿Mostrar sólo cuando es el sistema externo el que inicia el contacto?  ¿Sólo cuando necesitan al caso de uso? Posibles alternativas (Fowler, 1997):
  14. 14. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Las Relaciones UML define cuatro tipos de relación en los Casos de Uso: - De Comunicación: Caso de Uso Actor Puede o no existir direccionalidad. La direccionalidad SOLO dice QUIEN inicia la acción NO hacia donde se establecerá la comunicación
  15. 15. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Las Relaciones - De Extensión: cuando se tiene un caso de uso similar a otro pero que hace alguna cosa más. Origen Destino <<Extends>>
  16. 16. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Las Relaciones - De Uso: cuando hay una parte de comportamiento similar a varios casos de uso y no queremos mantener copias UML 1.3 la estereotipa como <<includes>> Origen Destino <<Uses>>
  17. 17. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso ¿¿¿Uses o Extend???  Ambos suponen “factor Común” entre casos de uso  Cuando varios casos de uso tienen funcionalidad solapada… usar una relación de include  Cuando un casos de uso tiene funcionalidades excepcionales… usar relación de extend Heurísticas
  18. 18. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Las Relaciones - De Herencia: el Caso de Uso fuente hereda la especificación del Caso de Uso destino Origen Destino
  19. 19. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Las Relaciones  Ejemplo: Identificación Giro por Internet Cliente Giro <<extends>> <<includes>>
  20. 20. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Las Relaciones  Ejemplo:
  21. 21. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Desde el Metalenguaje
  22. 22. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Construcción del Diagrama  Un caso de uso debe ser simple, inteligible, claro y conciso  Generalmente hay pocos actores asociados a cada Caso de Uso  Preguntas clave: - ¿cuáles son las tareas del actor? - ¿qué información crea, guarda, modifica, destruye o lee el actor? - ¿debe el actor notificar al sistema los cambios externos? - ¿debe el sistema informar al actor de los cambios internos?
  23. 23. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Construcción del Diagrama  Heurísticas: - Los casos de uso deberían tener una fuerte correlación con el manual de usuario para el sistema. - De cada caso de uso se debería poder escribir uno o dos párrafos, de lo contrario se está modelando muy fino. - NO OLVIDAR que TODO sistema interactúa siempre con algún actor externo.
  24. 24. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Construcción del Diagrama  Los Casos de Uso pueden presentarse en distintas vistas (un actor con todos sus casos de uso, un caso de uso con todos sus actores, etc.)  Un caso de uso puede también ser descrito mediante un diagrama de actividades
  25. 25. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Construcción del Diagrama  La descripción del Caso de Uso comprende: - El inicio: cuándo y qué actor lo produce? - El fin: cuándo se produce y qué valor devuelve? - La interacción actor-caso de uso: qué mensajes intercambian ambos? - Objetivo del caso de uso: ¿qué lleva a cabo o intenta? - Cronología y origen de las informaciones - Repeticiones de comportamiento: ¿qué operaciones son iteradas? - Situaciones opcionales: ¿qué ejecuciones alternativas se presentan en el caso de uso?
  26. 26. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Casos de Uso: Test  Los casos de uso permiten realizar dos tipos de test: verificación y validación - Verificar significa confirmar que el sistema se desarrolla correctamente - Validar asegura que el sistema bajo desarrollo es el que el usuario realmente quiere
  27. 27. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Casos de Uso: Test  Cuando un modelo de casos de uso se completa entonces dicho modelo es presentado y discutido con usuarios y clientes  Los usuarios deben validar que el modelo encaja perfectamente en sus necesidades y que les ofrece la funcionalidad deseada
  28. 28. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso La Realización del Caso de Uso  La realización de los UC es la transformación de los distintos pasos y acciones que lo describen en clases, operaciones y relaciones entre clases  Se consigue localizando las responsabilidades de cada paso del UC en las clases que lo realizan “La realización de un caso de uso describe una colección de objetos que interactúan y soportan la funcionalidad requerida por el caso de uso” (Priestley, 2000)
  29. 29. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso La Realización del Caso de Uso “A specific sequence of actions that illustrates behaviors. A scenario may be used to illustrate an interaction or the execution of a use case instance” (UML 1.3) Escenario  Secuencias que describen una posible interacción del usuario en un caso de uso  La relación entre un caso de uso un escenario es la misma que entre una clase y un objeto
  30. 30. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso La Realización del Caso de Uso Caso de Uso Escenarios
  31. 31. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso La Realización del Caso de Uso  La responsabilidad total de una clase es la integración de todos los roles que desempeña en los distintos UC  Las realizaciones se especifican mediante Diagramas de interacción.  Los escenarios se representarán como Diagramas de Interacción.
  32. 32. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso La Realización del Caso de Uso  El proceso de construcción es iterativo, esto es, la realización del Caso de Uso puede implicar su modificación  Los Casos de Uso permiten centrarse en la funcionalidad del sistema  En métodos OO que carecen de una técnica de captura de requisitos el análisis comienza particionando el sistema en clases
  33. 33. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso 8 errores principales al modelar UC 1. Escribir requisitos funcionales en vez de escenarios de uso. 2. Describir atributos y métodos en vez de uso. 3. Escribir casos de uso muy concisos. 4. Olvidar por completo las interfaces de usuario. 5. Escribir los casos de uso en voz pasiva. 6. Ignorar respuestas o peticiones a sistemas. 7. No documentar. 8. Gastar tiempo excesivo en la elección de includes (uses) o extend.
  34. 34. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Algunas conclusiones Un caso de uso bien estructurado: -. Nombra un comportamiento atómico razonable, solo e identificable del sistema o parte del mismo. -. Factoriza comportamientos en común, tomándolos de otro caso de uso que los incluya. -. Factoriza variantes asignando el comportamiento dentro de otros casos de uso que lo extiendan. -. Describe el flujo de eventos en forma muy clara para que alguien externo lo entienda fácilmente. -. Describe un conjunto minimal de escenarios que especifiquen la semántica variante y normal del caso de uso.
  35. 35. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Aspectos pernciosos de los UC  Excesivamente similares a los DFSs = fncionalidad - Consejo: Sería conveniente leer a Meyer  ¿Cómo se hace la Transición hacia el diseño?... Análisis Diseño ¿? gap
  36. 36. Javier Garzás, Proceso de desarrollo OO con UML – Casos de Uso Técnicas para reducir el “gap”  Bounday Objects: cerca de los límites del sistema. Interactúan con los actores y pasan mensajes from/to sistema.  Control Objects: Controlan las interacciones entre grupos de objetos.  Entity Objects: entidades del dominio. Normalmente pasivos, persistentes y participar en diversos Casos de Uso. Robustness Analysis (Jacobson, 1991)

×