Академический Документы
Профессиональный Документы
Культура Документы
Casos de Uso
Contenido
Introduccin.......................................................................................................................................3 Qu contiene esta gua? A quin va dirigida?..........................................................................3 Los Casos de Uso.............................................................................................................................4 Qu son los Casos de Uso?........................................................................................................4 Qu ventajas me pueden aportar?..............................................................................................4 Identificar los Casos de Uso del sistema.......................................................................................4 Errores comunes en la identificacin de Casos de Uso...............................................................5 Los Actores........................................................................................................................................6 Qu es un actor de Casos de Uso, qu representa?.................................................................6 Identificar a los Actores...................................................................................................................7 Los Actores juegan Roles...............................................................................................................7 La importancia de la frontera o contexto del sistema...................................................................8 Escribiendo Casos de Uso..............................................................................................................9 Qu son los Diagramas de Casos de Uso?................................................................................9 Cmo represento las ramificaciones que puede sufrir un Caso de Uso?................................9 Cundo debo usar la relacin Includes y cundo la relacin Extends?...................................9 Plantillas de Casos de Uso...........................................................................................................12 Consejos y recordatorios importantes.......................................................................................13 No olvidar la perspectiva del usuario...........................................................................................13 No perder de vista la frontera del sistema...................................................................................13 No confundir un paso o transaccin individual como un caso de uso en s mismo ...............13 Identificar los verdaderos objetivos del usuario..........................................................................13 Evitar una excesiva descomposicin...........................................................................................13 Evitar una excesiva abstraccin...................................................................................................13 No escribir los casos de uso demasiado escuetos....................................................................13 No omitir los posibles cursos alternativos...................................................................................13 No complicarse la vida decidiendo si usar includes o extends............................................14 Mantener separadas las cuestiones sobre la Interfaz de Usuario............................................14 Bibliografa y Enlaces de inters.................................................................................................15 Bibliografa.....................................................................................................................................15 Enlaces de Inters .......................................................................................................................15 Agradecimientos.............................................................................................................................16
Pgina 2 de 17
Introduccin
No son pocos los casos en los que, tras varios meses de trabajo duro y noches en vela, por fin se entrega el producto al cliente. Pero durante la presentacin, ste interrumpe frecuentemente un tanto mosqueado: Por qu cuando hago esto el sistema no aplica la regla de negocio correspondiente?, Por qu no habis incluido aquella opcin que os dije que era muy importante?, Por qu esa pantalla presenta esos datos en lugar de los que realmente necesito?. La captura y documentacin de requisitos es una de las tareas ms importantes en el desarrollo de aplicaciones informticas. Puede que sea incluso la ms importante de todas, puesto que de una adecuada comprensin de los requisitos del sistema depende en gran parte el xito o fracaso del proyecto. Quiz nuestro sistema sea el ms veloz, el que mejor aprovecha los recursos, el que menos incidencias reportar, el que est diseado y programado con la mayor elegancia y haciendo uso de las ltimas tecnologas. Pero si no hace lo que el usuario realmente necesita, habremos fracasado estrepitosamente.
Pgina 3 de 17
Pgina 4 de 17
2: Averiguamos qu procesos inician o en cules participan: Cules son sus responsabilidades, Crear/Modificar/Eliminar elementos, Mantenimiento/Soporte del sistema?. de qu tareas se Introducir/Obtener encargan: datos,
Debern informar al sistema sobre algn evento externo que se produzca (ej. Llegada de ficheros de datos a su destino, listos para ser procesados)? Deben ser informados por el sistema sobre algn evento que se produzca (ej.: Error en la ejecucin de un proceso desatendido)?. Necesitan indicar al sistema que efecte algn proceso concreto en un momento determinado (ej.: Realizar una copia de seguridad de los datos del perodo)?. Otros procesos en los que los actores participen como estimuladores del sistema, como receptores de informacin procedente del sistema, o como colaboradores del mismo en la ejecucin de tareas.
Identificacin basada en los eventos: 1: Se identifican los eventos ante los que el Sistema debe reaccionar. Creacin/Modificacin/Eliminacin de elementos. Entrada/Solicitud de datos por parte de algn actor. Orden de ejecucin de algn proceso. Notificaciones sobre eventos externos al sistema (p.ej.: El paso del tiempo). Es necesario que algn actor sea informado sobre ciertos cambios o acontecimientos que se produzcan en el sistema? Cualquier otro evento ante el cual el sistema deba reaccionar.
Al finalizar, deberemos hacernos una ltima pregunta: Los casos de uso que hemos identificado son capaces de cubrir todos los requisitos funcionales que tenemos anotados?
Pgina 5 de 17
Teniendo en cuenta tanto los objetivos del usuario como las interacciones con el sistema, podremos considerar formas alternativas para el cumplimiento de tales objetivos. Si llegamos muy pronto a la interaccin con el sistema, quiz recurriremos a la opcin obvia para la solucin, pasando por alto otras maneras posiblemente ms efectivas de cumplir con los objetivos del usuario.
Pgina 6 de 17
Los Actores
Actor Principal: Es aquel que invoca al sistema para lograr cierto objetivo. Este actor es frecuentemente, aunque no siempre, quien inicia el caso de uso envindole un mensaje, pulsando un botn, etc. Hay dos situaciones comunes en las que el que inicia el caso de uso no es el actor principal: Una es cuando un operador telefnico o un dependiente de una tienda inician el caso de uso ante una peticin de otra persona, que es la realmente interesada. El otro caso se da cuando el que inicia el caso de uso es el tiempo. Los actores principales son importantes al principio de la captura de requisitos y despus, justo antes de empezar a desarrollar el sistema. Entre estos dos puntos, no deben preocuparnos demasiado. Durante la fase inicial de caputra de requisitos, obtener una completa lista de actores principales nos permite tener un punto de vista amplio sobre el sistema, detectando y comprendiendo los objetivos que deben cumplirse, basndonos en las necesidades de esos actores principales. Antes de empezar a desarrollar el sistema, hacer un repaso de esa lista nos permitir asegurarnos de que dichas necesidades han sido realmente satisfechas, establecer niveles de seguridad para cada caso de uso (administrador, usuario web, ...), y preparar manuales de usuario para los distintos grupos de usuarios.
Actor de Soporte: Es aquel que proporciona un servicio al sistema. Puede ser una impresora, otro sistema distinto al nuestro que provee acceso a sus servicios (p.ej.: Web Services), o que invoca a nuestro sistema para lograr un objetivo, etc. Identificar los actores de soporte es muy importante, porque eso nos permitir detectar las interfaces externas que nuestro sistema utilizar. Un mismo actor puede ejercer de actor principal en un caso de uso, y de actor de soporte en otro. Tambin es cierto que sobre la conveniencia de identificar como actor a un sistema externo, hay diferentes opiniones entre los gurs del tema. Yo personalmente me quedo con la primera, por los motivos que acabo de exponer, pero t chales un vistazo y luego decide por t mism@ cul te parece mejor:
Pgina 7 de 17
Todas las interacciones con sistemas externos deben aparecer en el diagrama de casos de uso. Slo se deben mostrar los sistemas externos como actores, cuando ellos sean los que inicien el caso de uso. Slo se deben mostrar los sistemas externos como actores, cuando ellos sean los que necesiten al caso de uso (Martin Fowler, autor de UML Gota a Gota, se queda con esta). Algunos piensan que es un enfoque equivocado considerar que un sistema externo es un actor. Paradjicamente, sostienen que un actor es un usuario que desea algo del sistema.
Pgina 8 de 17
Ninguna de estas opciones es mejor que la otra. Simplemente debemos escoger aquella que nos resulte ms cmoda de utilizar y creamos que facilita la comprensin a las personas que vayan a leer nuestros casos de uso (los dems miembros del equipo, el usuario, etc).
Pgina 9 de 17
Pgina 10 de 17
Extends: Una relacin de extensin se utiliza para: Modelar las variantes posibles del caso de uso base. Modelar la parte de un caso de uso que el usuario puede ver como comportamiento opcional del sistema. De esta forma, se separa el comportamiento opcional del obligatorio. Modelar un subflujo separado que se ejectua slo bajo ciertas condiciones. Modelar varios flujos que se pueden insertar en un punto dado, controlados por la interaccin explcita con un actor.
Una relacin extends puede reflejar bsicamente una extensin (una variante, un curso alternativo) del caso de uso base, que extraemos para modelarlo como caso de uso a parte. El caso de uso base sigue su curso, pero ante determinadas condiciones, su comportamiento se ve interrumpido con el del caso de uso que lo extiende. El caso de uso extensin es el que conoce cundo, dnde y por qu debe incorporar su comportamiento, extendiendo el caso de uso base. El caso de uso base no nombra al caso de uso que le extiende. De hecho no sabe nada de l. El caso de uso extensin nombra al caso de uso base cuando se cumple la condicin que lo hace ejecutarse. Algunos ejemplos del uso de extends: Cuando hay varios servicios asncronos que el usuario puede activar interrumpiendo al caso de uso base. Por ejemplo, en un procesador de texto, el caso de uso base: Redactar documento, se puede ver interrumpido en cualquier momento si el usuario activa las acciones: Poner en negrita, Justificar texto, etc. Cuando estamos aadiendo nueva funcionalidad a unos requisitos ya cerrados. Por ejemplo, de un sistema ya desarrollado que ahora queremos ampliar. En estas situaciones podemos crear nuevos casos de uso que extiendan a uno base ya cerrado, evitando as modificarlo directamente. De hecho, se invent extends con el propsito de no tocar requisitos ya cerrados.
Es preferible mantener la extensin dentro del caso de uso base siempre que sea posible. Extraeremos las extensiones como casos de uso aparte cuando: La extensin se produce en varios sitios (factorizar comportamiento extendido comn) La explicacin de la extensin puede hacer difcil la comprensin del caso de uso base, por ser larga y/o complicada. Queremos ampliar la funcionalidad o comportamiento del caso de uso base, pero sin modificarlo directamente.
Es aconsejable crear casos de uso extensin slo cuando sea necesario, ya que son ms difciles de comprender para la gente, y tambin ms difciles de mantener.
NOTA: Con extends los actores tienen algo que ver con los casos de uso que se extienden. Se supone que un actor dado intervendr tanto en el caso de uso base, como de todas sus
Pgina 11 de 17
extensiones. Sin embargo, con la relacin includes, es frecuente que no haya un actor asociado con el caso que se incluye.
Pgina 12 de 17
Actor
<Nombre del Actor implicado>
Description
<Descripcin de lo que ocurre en el paso>
Variacin
<Cul es la condicin que desencadena la extensin o variante>
Descripcin
<Descripcin de lo que ocurre en la variacin o extensin>
Puntos Abiertos
Punto
<ID Pto>
Descripcin
<Descripcin de las dudas o indefiniciones existentes en el Caso de Uso>
Pgina 13 de 17
Pgina 14 de 17
tratamiento. (No hacerlo provocar que el desarrollador decida por s mismo la solucin a aplicar, casi siempre influido por la facilidad de implementacin y no por el modo ms conveniente).
Pgina 15 de 17
Enlaces de Inters
Use Case Zone: http://www.pols.co.uk/usecasezone/ Sitio Web de Martin Fowler: http://martinfowler.com/ Sitio Web de Alistair Cockburn: http://members.aol.com/acockburn/ VICO (Completo sitio web sobre UML): http://www.vico.org/ UML Central: http://www.embarcadero.com/support/uml_central.asp#tutorials
Pgina 16 de 17
Agradecimientos
Espero que no os importe que aproveche la ocasin para dedicar esta gua: A todos aquellos que opinan que para construir software de calidad, es necesario hacer primero algo que con frecuencia se olvida: Pensar. Primero en lo que hay que hacer, luego en cmo hacerlo, y a continuacin, pero slo despus de lo anterior, traducir lo obtenido a cdigo fuente. He tenido el privilegio de conocer profesionales que trabajan as, amantes como yo de esta profesin y de las cosas bien hechas, a los que admiro y respeto profundamente, por los buenos momentos que hemos pasado juntos y por lo mucho que de ellos aprend y espero seguir aprendiendo. Desde aqu les envo un fuerte abrazo y les doy las gracias.
Pgina 17 de 17