Buscar en Gazafatonario IT

Mostrando las entradas con la etiqueta casos de uso 2.0. Mostrar todas las entradas
Mostrando las entradas con la etiqueta casos de uso 2.0. Mostrar todas las entradas

miércoles, febrero 06, 2013

Todavía Otra Lección Más Sobre Porciones de Casos de Uso


Ya sabemos que Casos de Uso 2.0 es una práctica escalable y ágil que usa casos de uso y porciones de casos de uso para conducir el desarrollo incremental de sistemas de software. Sabemos que cualquier tipo de equipo de desarrollo lo puede usar, desde uno pequeño y local hasta uno grande y distribuido en varias locaciones,  en cualquier tipo de esfuerzo de desarrollo, desde la construcción de productos nuevos y simples hasta la elaboración de productos complejos o multisistemas, con cualquier enfoque metodológico, desde la tradicional cascada, hasta enfoques conducidos por bitácora de requisitos.
También sabemos que la porción de caso de uso es el elemento más importante de Casos de Uso 2.0. Una porción de casos de uso nos permite construir los sistemas de manera incremental, por partes, conduciendo todo el esfuerzo, desde el análisis del caso de uso, de una o varias porciones del mismo, pasando por el diseño de la porción, es decir, la realización del caso de uso (de la porción), para luego ir a la implementación de la porción, hasta someter el software a la verificación vía casos (scripts) de prueba; todo, en un ciclo corto de desarrollo, por ejemplo, una iteración de dos semanas o de un mes calendario.
Las porciones están compuestas de historias y de sus casos de prueba asociados, es decir, hay una sindicación entre las historias de un caso de uso y los casos de prueba que son las que finalmente verificarán que la porción del caso de uso está bien construida y satisface las necesidades del usuario. Esta compilación de historias y de casos de prueba tiene un valor claro que es entendido y acordado por los usuarios y los demás interesados en el producto. Por ejemplo, la siguiente figura muestra un caso de uso típico de un sistema de publicación de un periódico digital, con sus atributos más relevantes, y algunas de sus porciones, que podrían implementarse en una iteración.

Propiedades de un Caso de Uso y de algunas de sus Porciones en notas Post-it.
(Haga clic en la imagen para ampliarla)

Esta imagen, que muestra un tablero “repleto” de notas post-it, donde cada nota muestra el caso de uso con sus propiedades o la información destacada de cada una de sus porciones. En estas últimas, vemos un identificador de la porción (número y descripción), los flujos del caso de uso que forman la porción, es decir, las historias, donde FB es Flujo Básico, y A1, A2, etc., son las secuencias alternativas del caso de uso. Y también encontramos los casos de prueba, estos son los escenarios que finalmente comprobarán que la implementación de la porción fue exitosa.

No es necesario que estén todos los casos de prueba para verificar la porción, en términos generales, una historia y un caso de prueba serán suficientes para tener algo de valor para el usuario y empezar a entregar el sistema mediante incrementos. Finalmente, los números grandes en la esquina inferior derecha de cada nota post-it representan el esfuerzo que toma implementar esa porción. Es un estimado que puede realizarse con cualquiera de las técnicas habituales de estimación: puntos de historia, juicio de expertos, la estimación de Fibonacci, etc. Lo bueno de las estimaciones es que no tienen que ser exactas la primera vez, por eso se llaman estimaciones. ¡Si solo entendiéramos eso!

Un Ejemplo de Porciones de Casos de Uso

Con todo esto en mente, veamos un ejemplo característico de una de las actividades principales que incluye Casos de Uso 2.0: Preparar una porción de caso de uso. Si usamos el enfoque iterativo y una bitácora de requisitos, podemos dividir las tareas en dos grandes grupos:
  1.    Tareas antes del desarrollo
  2.    Tareas en cada iteración

En el primer grupo, Casos de Uso 2.0 propone las actividades típicas de Encontrar Actores y Casos de Uso, para conocer el “cuadro” completo, es decir, tener una visión de lo que será el sistema de software; pero a continuación, Casos de Uso 2.0 incluye la práctica de Dividir los Casos de Uso y la de Preparar una Porción de Caso de Uso. Entre tanto, las tareas del segundo grupo se muestran en la figura a continuación:

Actividades de Caso de Uso 2.0 para Enfoques de Desarrollo Iterativos
Fuente: Libro-e Use Case 2. 0 Jacobson y otros.
(Haga clic en la imagen para ampliarla)

En el caso de los actores y casos de uso, la figura siguiente muestra un subconjunto del modelo de un sistema de publicación de un periódico digital. Nómina y Facturación son dos ejemplos de actores que no son personas, son sistemas de software, externos al sistema que se está construyendo. Por su lado, Editor, Periodista, Bloguero y Lector, representan actores persona, grupos de usuario del software. Cada uno de estos tiene asociados uno o más casos de uso.

Diagrama (parcial) de Casos de Uso de un Sistema de Publicación de un Periódico Digital
(Haga clic en la imagen para ampliarla)
Para ilustrar el ejemplo de las porciones, tomemos el caso de uso Comprar Artículo, ejecutado por el Lector del periódico. A continuación muestro la narrativa del caso de uso.

Narrativa del caso de uso Comprar Artículos de un sistema de información de publicación de un periódico digital
(Haga clic en la imagen para ampliarla)
Lo que sigue es encontrar algunas de las historias del caso de uso con las que podamos iniciar el desarrollo, no de todo el caso de uso, pero sí de algunas de sus partes que tengan valor claro y entendido para el usuario.


Algunas historias del caso de uso Comprar Artículos del Sistema de publicación digital
(Haga clic en la imagen para ampliarla)
Notamos que algunos de los flujos están definidos explícitamente en la narrativa del caso de uso, mientras que otros como el A8 y el A9 no lo están. Estos cabrían dentro del grupo “etcétera” de la narrativa. Observamos también que el flujo básico es suficiente para tener una historia con sentido completo, de valor para el usuario. A esta historia le podemos “sumar” uno o más casos de prueba y estamos listos para construir una pequeña parte del software que tiene un peso bien definido para los usuarios.

Algunas porciones del caso de uso Comprar Artículos del Sistema de publicación digital
(Haga clic en la imagen para ampliarla)
En este cuadro vemos algunas de estas porciones para el caso de uso Comprar Artículos. Esto completa el trabajo de dividir el caso de uso. A continuación, preparamos la porción, digamos la primera de ellas, hacemos una estimación del esfuerzo que nos tomará someterla al resto del ciclo de vida durante una iteración y seguimos con el proceso: diseño (realización), implementación y verificación y, finalmente, demostración del producto (parcial) a los usuarios.
Conclusión
En el pasado hemos visto como un caso de uso puede llegar a ser lo suficientemente grande y complejo como para que se pueda implementar en una iteración corta. Las porciones de casos de uso proporcionan el medio y la coherencia de artilugios de las metodologías ágiles, como las historias de usuario, con el poder del modelado de los casos de uso para que no perdamos de vista el alcance completo del producto de software que estamos construyendo, permitiendo fabricar en un ciclo corto (una iteración de muy pocas semanas a un mes) una parte del producto que tiene valor significativo para los usuarios.
De esta manera es posible, por ejemplo, usar la práctica de Casos de Uso 2.0 con un marco de trabajo ágil como Scrum o con otros enfoques como AUP u otras metodologías livianas. Pero de este asunto hablaremos en los próximos días, cuando les presente La Esencia de la Ingeniería de Software.
Nota:
Esta entrada se puede descargar como artículo para su libre distribución, haciendo clic en:


miércoles, enero 23, 2013

¿Por qué existe Casos de Uso 2.0?


Necesitamos prácticas que nos apasionen y que se enfoquen en las personas sobre los procesos pero que además nos posibiliten resultados de calidad. Necesitamos además que nuestro trabajo sea aún más colaborativo y permita una integración unificada, continua. Precisamos de un enfoque que permita bajar la tensión “ellos versus nosotros” entre desarrolladores y verificadores.

Requerimos prácticas que nos licencien para manejar mejor los cambios y que nos habiliten para entregar productos de manera incremental. Y también necesitamos prácticas que soporten un mejor manejo del conocimiento de los productos que construimos y que nos apoyen cuando hacemos frente a situaciones adversas, que nos permitan mantenernos enfocados en lo que es de valor para nuestro cliente.

Casos de Uso 2.0 es precisamente eso, una práctica escalable y ágil que usa casos de uso para capturar un conjunto de requisitos y conducir el desarrollo incremental de un sistema que los ejecute. Casos de Uso 2.0 se reenfoca en lo esencial y ofrece una forma de trabajo liviana y más limpia para que los equipos de software logren los beneficios del desarrollo iterativo e incremental a un nivel corporativo.

Pero para llegar más al corazón de Casos de Uso 2.0, necesitamos mirar la radiografía de los casos de uso: ¿Qué hizo tan popular a los casos de uso? Con el tiempo, los casos de uso alcanzaron un uso multitudinario porque comunican efectivamente lo que el sistema debe hacer, porque ponen los requisitos en el contexto de las metas de un usuario específico y porque conducen el desarrollo a través del diseño, el código y, si se quiere, las pruebas.

En el fondo, el modelado de casos de uso es una idea muy simple. Esto quiere decir que con Actores, Casos de Uso, Inclusiones y algunos otros artilugios podemos llegar al núcleo de lo que el sistema debe hacer, porque nos enfoca inequívocamente en quién (o qué) usará el sistema y nos permite encontrar con rapidez asombrosa lo que el sistema debe hacer para que ese quién logre algo útil en su proceso de negocio.

Otra pregunta que debemos responder antes de dar el salto de versión es ¿por qué necesitamos casos de uso todavía? Si hay muchas otras prácticas relacionadas de requisitos populares, ¿por qué estás no han reemplazado la necesidad de casos de uso? Por ejemplo, las historias de usuario son grandiosas para sistemas pequeños y equipos pequeños, aunque bien es cierto que con pequeños incrementos podemos construir un sistema grande.

También hay otros enfoques, como la especificación de características, fabulosa para manejo de productos; los tradicionales requisitos declarativos, excelsos para capturar cualidades independientes atómicas; el modelado de dominio, extraordinario para sistemas de funcionalidad simple y ricos en información. Sí, hay muchas otras buenas técnicas pero a todas les hace falto algo para reunirlas y proporcionar una solución simple y escalable.

Ahora sí, ¿por qué necesitamos casos de uso 2.0? En principio, para corregir algunos de los malentendidos:

  • Los casos de uso son livianos, no pesados
  • Los casos de uso son historias, no funciones
  • Los casos de uso son simples, no complicados
  • Los casos de uso son para todo tipo de desarrollo, no solo para desarrollo de aplicaciones nuevas y “planas”.
  • Para reenfocarnos en lo esencial, de vez en cuando viene bien un refrescamiento de ideas y de experiencias.
  • Para dar un mejor soporte a las innovaciones y mejoras tales como Desarrollo Dirigido por Pruebas (TDD), Kanban y Scrum.

Lo que hace distintivo a Casos de Uso 2.0 es que nos ayudan a entender el cuadro completo, es una práctica tan liviana como queremos que sea, habilita la entrega incremental del producto, no es solo sobre requisitos, es para todo el ciclo de vida, también es para requisitos no funcionales, para software embebido, incluso no es solo para desarrollo de software, también es para desarrollo de negocios y, finalmente, es escalable en todas las direcciones para cubrir cualquier necesidad real.

Como siempre, cuando se trata de procesos y métodos, aconsejo no desvirtuar la capacidad que tenemos los seres humanos de pensar. Lo que posibilitan las técnicas es precisamente potenciar nuestra habilidad para encontrar el mejor siguiente paso en el camino hacia la satisfacción. Al final de cuentas es el cerebro humano el que visiona productos e ideas, ninguna tecnología ni método puede reemplazar nuestro proceso de pensamiento.


Referencias

El e-Book "Use Case 2.0", sobre las buenas prácticas alrededor del uso de los casos de uso, lo pueden encontrar en www.ivarjacobson.com.

Sobre Casos de Uso 2.0 pueden leer mi serie de artículos en este Gazafatonario IT:

Casos de Uso 2.0

http://www.gazafatonarioit.com/2012/04/casos-de-uso-20.html 

Casos de Uso 2.0 y Métodos Ágiles

http://www.gazafatonarioit.com/2012/04/casos-de-uso-20-y-metodos-agiles.html

¡Quiero una Porción de Caso de Uso!

http://www.gazafatonarioit.com/2012/04/quiero-una-porcion-de-caso-de-uso.html

Casos de Uso 2.0 – Aplicable a todos los tipos de sistemas y organizaciones

http://www.gazafatonarioit.com/2012/04/casos-de-uso-20-aplicable-todos-los.html 

Casos de Uso 2.0: Cosas con las cuales trabajar

http://www.gazafatonarioit.com/2012/11/casos-de-uso-20-cosas-con-las-cuales.html 

Sobre Casos de Uso pueden leer toda mi sección de Lecturas Fundamentales en este mismo Gazafatonario, empezando en:

http://www.gazafatonarioit.com/2006/11/lecturas-fundamentales.html


miércoles, noviembre 28, 2012

Casos de Uso 2.0: Cosas con las cuales trabajar


Dicen el Dr. Jacobson y sus colegas que la materia prima de Casos de Uso 2.0 son los requisitos del software, el producto de software mismo y las pruebas que demuestren que el producto obedece a esos requisitos y los ejecuta a cabalidad.
En el corazón de Casos de Uso 2.0 están el caso de uso, la historia y la porción de caso de uso. Estos elementos capturan los requisitos y conducen el desarrollo del sistema. La Figura muestra como estos conceptos están relacionados entre sí. También muestra como los cambios y los defectos impactan el uso de Casos de Uso 2.0. [1]
Mapa Conceptual de Casos de Uso 2.0
Mapa Conceptual de Casos de Uso 2.0. Fuente: eBook "Use Case 2.0", Jacobson y otros.
Ya he hablado lo suficiente sobre Requisitos en general y de Casos de Uso en particular, así que hablemos de los demás conceptos que aquí encontramos:
Los Interesados son todas aquellas personas que de una u otra manera impactan del proyecto y se ven afectados por este y por el producto que se está construyendo. Todos ellos influencias directa o indirectamente al proyecto y no solo incluyen a los usuarios del sistema, sino también a los patrocinadores, a los ejecutivos, a otras áreas de la organización y a entidades externas relacionadas de alguna forma con la organización. A todos hay que tenerlos en cuenta a la hora de delimitar las funciones del sistema.
Uno de los principales mecanismos de comunicación entre los Interesados y el equipo de construcción es que los primeros nos cuenten historias a los segundos, sus Historias. Son narrativas acerca de lo que hacen y como lo hacen, con qué, con quién interactúan y qué intercambian. Estas narrativas son el alma de los casos de uso (no confundir con Historias de Usuario que son un repositorio de esas historias, como los son los casos de uso, los requisitos en prosa, los prototipos, los tableros de historias, entre otros).
En todo proyecto siempre hay Cambios, ya sea porque cambian las políticas de la organización, cambian las expectativas de los usuarios, cambia aspectos legales o contables, o cambian los interesados o los usuarios y estos últimos quieren otra cosa. Estos cambios seguramente modificarán las historias y, por consiguiente, los requisitos y los casos de uso. Incluso pueden requerir nuevas historias. Los cambios pueden llegar en cualquier momento y las porciones de casos de uso son una buena forma de analizar su impacto en el proyecto y de incluirlos en el producto.
Las Pruebas nunca deben faltar. Es lo único que asegura la calidad total del producto y deben verse como algo intrínseco al ciclo de vida del software. Como el software se implementó vía porciones de casos de uso, que ya incluyen los casos de prueba en su especificación, esta unión “software-pruebas” se hace finalmente indivisible, es uno de los grandes aspectos que nos enseña Casos de Uso 2.0 y una práctica excepcional. El hecho de que las pruebas hagan parte de la especificación de las porciones de casos de uso es a todas luces un paso más allá hacia la solución de una gran cantidad de inconvenientes que encontramos durante la práctica diaria de la construcción del software. Incluso, de esta forma, es posible implementar prácticas como Desarrollo Conducido por Pruebas (TDD por sus siglas en inglés –Test Driven Development) y otros métodos ágiles de desarrollo de software.
Durante las pruebas encontramos Defectos y mientras estos existan sabremos que la porción de casos de uso actual no está finalizada. Los defectos pueden ser encontrados durante una revisión par, en etapas tempranas del ciclo de vida e incluso de la iteración actual, durante la misma programación del sistema, con las pruebas unitarias u otro tipo de pruebas del programador, o mientras realizamos las pruebas de calidad final de cada porción de caso de uso y las pruebas de integración del sistema. En este punto juegan un papel muy importante el uso de herramientas para automatizar pruebas, como los Robots de pruebas.
Estos son algunos de los conceptos más importantes, inherentes a las prácticas expuestas en Casos de Uso 2.0. En el libro electrónico de Jacobson [1] encuentran más detalles sobre este modelo conceptual.
Referencias:
[1] El e-Book "Use Case 2.0", sobre las buenas prácticas alrededor del uso de los casos de uso, lo pueden encontrar en www.ivarjacobson.com.
Sobre Casos de Uso 2.0 pueden leer mi serie de artículos en este Gazafatonario:
http://www.gazafatonarioit.com/2012/04/casos-de-uso-20-y-metodos-agiles.html
http://www.gazafatonarioit.com/2012/04/quiero-una-porcion-de-caso-de-uso.html
Sobre Casos de Uso pueden leer toda mi sección de Lecturas Fundamentales en este mismo Gazafatonario, empezando en:

viernes, noviembre 16, 2012

Diez Consejos Útiles y Simples Para Escribir Correctamente Casos de Uso Correctos: XI


"Los buenos consejos no son tomados en cuenta generalmente, pero eso no es motivo para no darlos."
Agatha Christie
Consejo Adicional: ¿Cómo luce un caso de uso inefectivo?
Caso de Uso: Apertura de Productos y Servicios
Secuencia Básica:
1.     Muestre una lista de productos y servicios de la siguiente forma:
  •         La ventana izquierda lista todas las categorías de productos y servicios de la compañía (Ahorro e Inversión, Crédito Hipotecario, Otros Créditos)
  •         La ventana inferior muestra los datos que se solicitan para el producto seleccionado
  •         La tercera ventana muestra todos los productos y servicios que tiene actualmente el cliente
2.     Haga:
3.     El usuario hace clic en una categoría de producto o servicio
4.     Muestre los productos disponibles en esa categoría en orden alfabético
5.     El usuario hace clic en un producto
6.     Se actualiza la ventana inferior para solicitar los datos necesarios para la apertura del producto y el usuario hace clic en el botón “Solicitar Producto”.
7.     Chequee si el usuario cumple los requisitos necesarios para solicitar ese producto y que el producto esté disponible para su “tipo de persona” (Natural o Jurídica)
8.     Si el producto está disponible y el usuario cumple los requisitos necesarios, adicione el producto al usuario. Muestre la lista actualizada de productos del usuario, con el nuevo producto en estado “Solicitado”. Si no, muestre el mensaje “El cliente no cumple los requisitos necesarios. Seleccione otro producto.”
9.     Repita desde 3 hasta que el usuario haga clic en “Terminar Solicitud”
10.   Almacene la solicitud y regrese a la pantalla principal.
¿Y cómo luce un caso de uso efectivo?
Caso de Uso: Solicitar Producto
Actor: Cliente
Secuencia Básica:
1.     El Cliente solicita abrir un producto
2.     El sistema muestra la lista de productos actuales del cliente y muestra una lista de productos disponibles
3.     El Cliente selecciona el producto a solicitar
4.     El sistema verifica que el Cliente cumple con los requisitos necesarios y adiciona el producto a la lista de productos del cliente, en estado “Solicitado”.
5.     El sistema almacena la solicitud
Veamos algunos aspectos importantes de estas dos versiones:
Versión Inefectiva
Versión Efectiva
El nombre del caso de uso no es apropiado
El nombre está escrito como una frase verbal simple (en el formato “hacer algo”)
No tiene un actor definido
Tiene un actor principal, el Cliente.
El caso de uso se refiere a “el usuario” como actor del mismo. “Usuario” no es un concepto formal, es un humano, puede actuar como diferentes instancias de varios actores distintos.
El caso de uso se refiere a “el cliente” como actor del mismo. “Actor” es un concepto formal, puede ser un humano o un sistema, existe sólo si un usuario hace algo.
Está escrita en una especie de pseudocódigo y en lenguaje técnico.
Está escrita en prosa
Relaciona muchos aspectos de la interfaz de usuario. Orientado al Sistema.
Está escrito en términos del negocio (del usuario). Orientado al Negocio.
Aborda elementos que pueden ser disímiles en su tratamiento (productos y servicios, categorías de productos)
Aborda sólo productos. Incluso, los casos de uso deberían especificarse para un único producto a la vez.
Algunos pasos son complejos, difíciles de leer o muy largos. (Pasos 1 y 8).
Los pasos son claros, en el formato “el sistema hace…el actor hace”
La secuencia básica parece abarcar todos los escenarios posibles del caso de uso
La secuencia básica deja muchos escenarios para secuencias alternativas, como la solicitud de servicios o cuando el cliente no cumpla con las condiciones exigidas.
Parece haber sido especificado por completo en una sola pasada.
Le faltan detalles, pero estimula la creación iterativa de casos de uso.
Algunos pasos describen acciones consecutivas ejecutadas por el sistema y por el usuario a la vez.
Todos los pasos están escritos como expresiones verbales simples.
El verdadero truco con los casos de uso es mantenerlos simples. No nos preocupemos acerca de las formas del caso de uso, solo procuremos garabatearlos en una hoja de papel en blanco o en una página en blanco de un procesador de palabras simple, o en unas tarjetas indexadas blancas. No nos preocupemos por cubrir todos los detalles de inmediato. Los detalles no son importantes hasta mucho después. No nos preocupemos por capturar todos los casos de uso desde el principio; esa es una tarea imposible.
La única cosa para recordar sobre casos de uso es: mañana van a cambiar. Sin importar que tan diligente seamos a la hora de capturarlos, sin importar que tan meticulosamente registremos los detalles, sin importar que tan sistemáticamente pensemos acerca de los casos de uso, sin importar el mucho esfuerzo que hagamos para explorar y analizar los requisitos, mañana los casos de uso cambiarán.
Después vendrán las herramientas sofisticadas de apoyo. Las herramientas aumentan nuestra productividad, nos ayudan a clasificar, a buscar, a estimar, pero no hacen el trabajo por nosotros.
Esta es una visión minimalista del proceso, algunos la llaman ágil. Simplemente es una manera de hacer las cosas, una manera efectiva en ciertos casos. Ese es el verdadero sentido de esto: para cada proyecto, para cada actividad, debemos buscar o construir el mejor camino para ir de principio a fin y entregar el mejor de los resultados, el único posible.

W953BAF3WB56

miércoles, noviembre 14, 2012

Diez Consejos Útiles y Simples Para Escribir Correctamente Casos de Uso Correctos: X

Consejo 10
No usemos expresiones del tipo: “el sistema verifica si se cumple tal condición” y más adelante: “si se cumple la condición, haga esto”, y para terminar: “si no se cumple la condición, haga esto otro.” Este es un patrón que viene de la programación de computadores, es más bien pseudocódigo y la primera de las acciones no cumple con una de las premisas importantes de un caso de uso y es que cada acción lleve la secuencia del caso de uso un paso más adelante que el anterior. Vemos claramente que “el sistema verifica si se cumple tal condición” no avanza en el proceso, en cambio, debemos esperar hasta la siguiente operación: “si se cumple…” para continuar la secuencia.
En cambio, escribamos el caso de uso en términos de escenarios:
n. El sistema verifica que tal condición se cumple y hace…
n+1. El actor hace…
En una secuencia alterna especificamos lo que ocurre cuando la condición no se cumple:
nA1. El sistema verifica que tal condición no se cumple y hace…
(n+1)A2. El actor hace…
Como en:
4. El sistema verifica que el Cliente tiene capacidad de endeudamiento y solicita el valor del crédito
5. El actor ingresa el valor del crédito
Y en la secuencia alterna:
4A1. El sistema verifica que el Cliente no tiene capacidad de endeudamiento y solicita la identificación del avalista
4A2. El actor ingresa la identificación del avalista
Ejemplo
Consideremos este fragmento de caso de uso para verificar los fondos de una cuenta bancaria con miras a hacer efectivo un cheque.
Caso de Uso: Verificar fondos cuenta
Actor: Cajero
Secuencia Básica:
1.     El caso de uso inicia cuando el Cajero decide verificar los fondos disponibles para un cheque
2.     El sistema solicita el tipo y número de cuenta
3.     El Cajero ingresa el tipo y número de cuenta
4.     El sistema verifica que el número de cuenta existe y que está Activa y solicita el número del cheque
5.     El cajero ingresa el número del cheque
6.     El sistema valida que el número del cheque está dentro del rango autorizado y que no está contraordenado, y solicita el valor del cheque
7.     El cajero ingresa el valor del cheque
8.     El sistema verifica que hay fondos suficientes para pagar el cheque
9.     El caso de uso termina
Secuencia Alterna 1:
4A. El número de cuenta no existe
4A.1. El sistema verifica que el número de cuenta no existe y muestra el mensaje: “El número de cuenta dado no existe. Verifique.”
4A.2. El caso de uso continúa en el paso 2 de la secuencia básica.
Secuencia Alterna 2:
6A. El número del cheque no está dentro del rango autorizado
6A.1. El sistema verifica que el número del cheque no está dentro del rango autorizado y muestra el mensaje “El número del cheque no está autorizado. Verifique.”
6A.2. El caso de uso continúa en el paso 5 de la secuencia básica
Secuencia Alterna 3:
8A. No hay fondos suficientes para pagar el cheque
8A.1. El sistema verifica que la cuenta no tiene fondos suficientes para pagar el cheque y muestra el mensaje “Fondos insuficientes. Verifique.”
8A.2. El caso de uso continúa en el paso 7 de la secuencia básica
La escritura limpia del caso de uso lo hace claro, preciso y consistente, entre otros atributos deseables en un caso de uso. Nótese que es posible que haya más secuencias alternas.
Para saber más de casos de uso pueden visitar la sección Lecturas Fundamentales de mi Gazafatonario IT. En particular, pueden leer la Lectura Fundamental 3: Casos de Uso: Del Todo y de sus Partes.
Esta serie de consejos útiles para escribir casos de uso inicia en:

lunes, noviembre 12, 2012

Diez Consejos Útiles y Simples Para Escribir Correctamente Casos de Uso Correctos: VIII y IX

Consejo 8
Cuando se trata de incluir casos de uso se escribe:
  • El sistema ejecuta el caso de uso “AQUÍ VIENE EL NOMBRE DEL CASO DE USO INCLUIDO”
O simplemente,
  • Se ejecuta el caso de uso “AQUÍ VIENE EL NOMBRE DEL CASO DE USO INCLUIDO”
En este último caso se entiende que el único que ejecuta casos de uso incluidos es el sistema. Como en:
n. El sistema ejecuta el caso de uso “Verificar Lista Clinton”
n+1. Se ejecuta el caso de uso “Hacer Análisis de Riesgo”
Consejo 9
La especificación de un caso de uso incluido se debe iniciar estableciendo los nombres de los casos de uso que incluyen este caso de uso, como en:

1.     Este caso de uso se incluye en los casos de uso:

        a.     Caso de uso base 1

        b.     Caso de uso base 2

        c.     …

        d.     Caso de uso base n

2.     El sistema hace…

3.     El actor hace…



n. El caso de uso termina
Donde n es el número del último paso del caso de uso incluido.
Recordemos que esta relación de inclusión se usa cuando queremos:
  •      Factorizar o descomponer (en sentido matemático) el comportamiento del caso de uso base que no es necesario para entender el objetivo principal del mismo y donde solamente el resultado del caso de uso incluido es importante.
  •      Distribuir en uno o más casos de uso, funcionalidad del caso de uso base que es común para dos o más casos de uso (reusabilidad).

La primera opción se usa especialmente en casos de uso largos o complejos donde algunas partes del mismo no son relevantes para el sentido primordial del caso de uso y no son necesarias, en primera instancia, para entenderlo y aprobarlo. Por ejemplo, un caso de uso para Ingresar un Cliente de Naturaleza Jurídica puede solicitar docenas o cientos de datos que se pueden agrupar de acuerdo a algunos criterios como Datos Generales, Datos del Tipo de Entidad y Naturaleza Jurídica, Datos del Gerente o Representante Legal, Datos de los Contactos, Referencias Comerciales, entre otros. Algunos de estos grupos de datos pueden incluirse en casos de uso complementarios que son ejecutados desde el caso de uso principal.
La segunda posibilidad de inclusión es la reusabilidad de funcionalidad del sistema, es decir, cuando existe un comportamiento del sistema que se ejecuta en dos o más casos de uso de la misma manera, podemos usar un caso de uso incluido que represente ese comportamiento común. Por ejemplo, un caso de uso Verificar Centrales de Riesgo, que se ejecuta desde varios casos de uso de un sistema financiero, como Matricular Cliente, Revisar Solicitud de Crédito, Abrir Cuenta Corriente, entre otros.
Para conocer más acerca de relaciones entre casos de uso, pueden leer la Lectura Fundamental 12 Casos de Uso: de Extensiones y de Inclusiones en mi Gazafatonario IT:
La serie completa de estos consejos la encuentran en: