Casos de Uso - Especificacion y Errores
Casos de Uso - Especificacion y Errores
Casos de Uso - Especificacion y Errores
Practicas
Resumen. El uso de UML como estandar para la construccio n de software se ha extendido en los
ultimos an os. Es por eso que el empleo de los casos de uso, como parte del estandar UML, se ha
incrementado.
El propo sito de los casos de uso es describir en lenguaje natural la funcionalidad completa de un
sistema a desarrollar y su empleo se realiza en el proceso de especificacio n de requisitos del sistema.
Lamentablemente, la bibliografıa existente, muestra muchas formas de aplicar los casos de uso y no
son pocas las veces en que su empleo es inadecuado. Algunas de las causas son: mala interpretacio n
del estandar UML y secuencia incorrecta de actividades para la creaci o n de casos de uso.
Este artıculo presenta un esquema de trabajo para afrontar el proceso en mencio n utilizando casos de
uso. Se incluye, en este esquema, las actividades que se deben realizar, la utilizacio n correcta de casos
de uso y los errores que se cometen frecuentemente en cada una de las actividades.
Cabe resaltar que este esquema de trabajo es aplicado en los proyectos que forman parte de los cursos
del area de Ing. de Software de la PUCP a nivel pre y post grado. Tambie n, es utilizado en las tesis
para optar el tıtulo de Ing. Informatico.
Abstract. The use of UML as a standard to construct software has been increased over the last years.
For this reason, the utilization of use cases has been growing.
The purpose of the use cases is to describe software functionality using natural language. Use cases
are used in software requirement specification process.
Unfortunately, the authors show many ways to apply use cases and their use is not according to UML.
Sometimes people misunderstand UML standard and follow an inadequate sequence of activities to
obtain requirements with use cases.
This article shows a method to face requirements process with use cases. This article also includes the
correct use of use cases and common mistakes. T he method is used in undergraduate and post-
graduate Software Engineering courses at PUCP.
Uno de los primeros procesos que se realizan en un proyecto de construcci o n de software es la especificacio n de
requisitos. Los objetivos de este proceso son identificar, validar y documentar los requisitos de software; es decir
determinar las caracterısticas que deberan tener el sistema o las restricciones que debera cumplir para que sea
aceptado por el cliente y los futuros usuarios del sistema de software.
El producto final de este proceso es el documento de especificaci o n de requisitos de software y en e ste se sen ala,
con el detalle adecuado, lo que el usuario necesita del sistema de software. Es por ello, que el documento de
requisitos de software se considera como un contrato entre el cliente y el equipo de desarrollo del sistema.
Actualmente, el desarrollo de software orientado a objetos y el uso de UML se han incrementado. Es por ese
motivo que el empleo de casos de uso se estaimponiendo frente a otras te cnicas de especificacio n de requisitos.
Lamentablemente, la bibliografıa existente muestra muchas formas de aplicar los casos de uso y no son pocas las
veces en que su empleo es incorrecto. Algunas de las causas son: mala interpretacio n del estandar UML y secuencia
incorrecta de actividades para la creacio n de casos de uso.
Este artıculo muestra las actividades y la secuencia a seguir para realizar una especificaci o n de requisitos
empleando casos de uso. Ademas, se explicaran los errores comunes que se producen en cada una de esas
actividades.
Para determinar la funcionalidad de un sistema a desarrollar, UML [8] sen ala el uso de dos elementos: el actor y el
caso de uso.
El actor representa una entidad externa que interactua con el sistema. Las entidades externas podrıan ser
personas u otros sistemas. Es importante resaltar que los actores son abstracciones de papeles o roles y no
necesariamente tienen una correspondencia directa con personas.
A diferencia del actor, el caso de uso hace referencia al sistema a construir, detallando su comportamiento, el
cual se traduce en resultados que pueden ser observados por el actor. Los casos de uso describen las cosas que los
actores quieren que el sistema haga, por lo que un caso de uso deberıa ser una tarea completa desde la perspectiva
del actor.
Los actores y los casos de uso forman un modelo al que se le denomina ” modelo de casos de uso„ . Dicho
modelo muestra el comportamiento del sistema desde la perspectiva del usuario y serviracomo producto de entrada
para el analisis y disen o del sistema. La figura 1 muestra la notacio n que se debe utilizar para representar un actor y
un caso de uso.
Caso de Uso
Actor
UML especifica que para representar graficamente la relacio n entre un actor y caso de uso se debe trazar una
lınea que los una a la que se le denomina ” relacio n de comunicacio n„ . Ademas, UML sen ala que los casos de uso
pueden tener relaciones entre sı. Los tipos de relaciones que pueden existir son: ” include„ , ” extends„ y
” generalization„ . La figura 2 muestra un ejemplo de casos de uso con relaciones de tipo ” generalization„ .
2
Colocar orden
Figura 2. Diagrama de casos de uso con relacio n ” generalizationí entre casos de uso.
Los resultados de la especificacio n de requisitos son dos productos: el catalogo de requisitos y el documento de
especificacio n de requisitos de software. El primero de ellos contiene la lista de requisitos de software clasificada
por tipo y prioridad; y el segundo de ellos, especifica el comportamiento del sistema a un grado de detalle mayor al
del catalogo de requisitos. La figura 3, indica el contenido de los productos de la especificacio n de requisitos de
software mediante un diagrama de clases.
Las actividades para la especificacio n de requisitos de software usando casos de uso son las siguientes:
identificar y clasificar requisitos, identificar actores, identificar escenarios, identificar casos de uso, especificar casos
de uso e identificar relaciones entre casos de uso. La secuencia de actividades , que se detallan en este acapite, es el
resultado de la adaptacio n de las propuestas metodolo gicas de Bernd Bruegge [3], Rational Unified Process [9] y
Me trica Versio n 3 [7] para la especificacio n de requisitos. La figura 4 muestra la secuencia en que se deben realizar
las actividades y sus resultados.
3
Identificar y clasificar
requisitos
Catalogo de
requisitos
Identificar
actores
Descripcion
Identificar de actores
escenarios
Descripcion de
Identificar casos de uso
casos de uso
Diagramas de
caso de uso
Especificar
casos de uso
Especificacion de
casos de uso
Identificar relaciones
entre casos de uso
[ especificacion completa ]
Actividad
opcional
4
Tabla 1. Ejemplo de Requisitos funcionales y no funcionales
Requisitos Funcionales Requisitos No Funcionales
1. El sistema permitiraregistrar los clientes de la 3. La interfaz de usuario del sistema se implementara
empresa. sobre un navegador Web
2. El sistema permitiraa los usuarios realizar una 4. El sistema debera soportar al menos 20 transacciones
busqueda de los clientes por DNI, nombre o por segundo
apellido. 5. El sistema permitira que los nuevos usuarios se
familiaricen con su uso en menos de 15 minutos.
Luego, estos requisitos se clasificaran segun su importancia, obtenie ndose, de esta manera, una lista que
contendralos requisitos clasificados por dos criterios: tipo de requisito (funcional y no funcional) e importancia. A
esta lista se le conoce como catalogo de requisitos.
Consultar bibliografıa
Cliente
En cada una de las actividades especificadas anteriormente se produc en y generan errores. A continuacio n se
incluyen algunos de los mas frecuentes.
Los errores introducidos en esta etapa se deben principalmente a no comprender qui e nes son los actores del sistema.
En algunos casos se incluyen actores que realmente no lo son; por ejemplo, en un sistema en el que se realizan
pedidos de productos, se considera al cliente como un actor (Ver figura 6). Realmente quien ingresa los pedidos en
el sistema es el vendedor y no el cliente, por lo tanto el vendedor serıa el actor del sistema.
6
Cliente
Registrar pedido
Vendedor
En el ejemplo de la figura 6, si el sistema permitiera registrar los pedidos por Internet, el cliente sı serıa un actor
del sistema.
Un error muy extendido, y que es cometido en la mayorıa de la bibliografıa sobre casos de uso, es considerar las
opciones del menu o funciones del sistema como casos de uso (puede revisar el libro de Larman [6] y podra
encontrar este tipo de errores).
Kurt Bittner [1]sen ala que los casos de uso deben mostrar lo que el usuario necesita del sistema y no mostrar las
funciones u opciones del menu que permitiran realizar lo solicitado; por ejemplo, en un sistema donde se debe
almacenar la informacio n de los clientes, lo que al usuario le importa es actualizar la informacio n de clientes. Esta
actividad la podrarealizar accediendo a las opciones del menu agregar, modificar y eliminar clientes; por lo tanto la
funcionalidad del sistema serarepresentada con el caso de uso ” Actualizar cliente„ (ver figura 7).
Crear cliente
Eliminar cliente
Figura 7. Considerar que los casos de uso son funciones del sistema.
7
4.3 Errores en la especificacio n de los casos de uso.
La te cnica de casos de uso se debe utilizar para la especificacio n de requisitos del sistema, mas no para el disen o del
sistema. Los errores que se producen en esta actividad se deben a la inclusio n de cuestiones de disen o en la
especificacio n de casos de uso. Algunos de los errores que se cometen son los siguientes:
• Introducir palabras que se refieran a componentes de ventanas como: botones, listas desplegables, opciones
de menu, etc. En la especificacio n de casos de uso debe incluirse la informacio n que seraingresada o sera
mostrada, pero no que componente de la ventana se va a utilizar para mostrar dicha informacio n, sino se
estarıa realizando el disen o de pantallas en el proceso de especificacio n de requisitos, lo cual serıa
incorrecto.
• Mencionar elementos correspondientes al disen o de algoritmos o de base de datos en la especificaci o n de
casos de uso; por ejemplo, ” grabar en la tabla clientes en la base de datos„ u ” ordena los datos con el
algoritmo de la burbuja„ son oraciones que no deben incluirse en una especificacio n; ya que son elementos
que se determinan en la etapa de disen o.
Otro error es incluir ” etc„ o ” ası sucesivamente„ cuando se indica la informacio n que se debe ingresar o mostrar.
La especificacio n de casos de uso debe contener informacio n exacta y precisa que permita realizar una buena
estimacio n del esfuerzo requerido para realizar las etapas de analisis, disen o y codificacio n. Si la informacio n no es
exacta, se pueden producir retrasos debido a modificaciones de la base de datos, cambios en el disen o de las
pantallas o en el co digo fuente producto de las especificaciones tardıas de requisitos.
Los errores que se producen al incluir relaciones entre los casos de uso se deben principalmente a confundir los
casos de uso con los procesos de los diagramas de flujo de datos (DFD) de Yourdon [11]. Es por eso que se ven
diagramas de casos de uso que parecen DFDs , de manera similar al diagrama que se muestra en la figura 8.
Para evitar cometer este error, se aconseja que no haya mas de dos niveles de relaciones de tipo ” include„ o
” extend„ en un diagrama de casos de uso.
<<include>> <<include>>
Ingresar datos cliente Verificar datos cliente Guardar datos del cliente
Usuario
Otro error frecuente es crear un caso de uso que es incluido por un solo caso de uso; por ejemplo, la figura 9
muestra el caso de uso ” Buscar Cliente„ , el cual es incluido so lo por el caso de uso ” Actualizar clientes„ . Se debe
tener en cuenta que los casos de uso incluidos deben obtenerse luego de haber realizado las especificaciones de los
casos de uso, ya que en ese momento es que se determinar an cuales son los pasos que se repiten entre los diferentes
casos de uso y es allı donde se determinan las relaciones de tipo ” include„ .
<<include>>
Actualizar clientes
Usuario
Buscar cliente
8
Se puede encontrar bibliografıa en la que se emplea la relacio n ” use„ entre casos de uso. Se debe tener en cuenta
que dicha relacio n corresponde a versiones anteriores a UML versio n 1.3, por lo que su utilizacio n debe evitarse (ver
figura 10).
<<include>>
<<use>>
Seleccionar tareas
_Jefe de Proyecto <<use>>
<<include>>
Realizar seguimiento de tareas
En este artıculo se muestran las actividades que se deben realizar para la especificacio n de requisitos utilizando
casos de uso. Estas actividades han permitido minimizar los errores en la aplicacio n del estandar UML y lo que es
importante, finalizar el proceso con un documento de especificacio n de requisitos libre de errores y util para las
etapas de analisis y disen o.
El uso de las relaciones de casos de uso es opcional y no es necesaria para realizar un documento de
especificacio n de requisitos adecuado y detallado.
El presente trabajo es un inicio para el establecimiento de patrones en la aplicacio n de casos de uso, de manera
similar a los patrones de disen o [4] y los antipatrones [2] de software.
6. Bibliografıa
1. Bittner, K., Why Use Cases Are Not Functions, http://www.therationaledge.com, USA, 2000.
2. Brown, W.J., AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, John Wiley & Sons,
USA, 1998.
3. Bruegge B., Allen, S., Ingenierıa de Software Orientado a Objetos, Addison-Wesley, USA, 2002.
4. Gamma, E., Design Patterns: elements of reusable object-oriented software, Addison-Wesley, USA, 1995.
5. Heumann, J., Introduction to Business Modeling Using the Unified Modeling Language, The Rational Edge,
March 2001, USA.
6. Larman, C., UML y Patrones, Introduccion al Analisis y Disen o Orientado a Objetos, Me xico, Prentice Hall
Hispanoamericana, 1999
7. Ministerio de Administraciones Publicas, Analisis del Sistema de Informacion-Metrica Version 3, Espan a,
2000.
8. Object Management Group, OMG Unified Modeling Language, http://www.uml.org, USA, 1999
9. Rational Software, Rational Unified Process version 2001A.04.00.13, USA, 2001.
10. Schneider, G., Winters, J.P., Applying Use Cases, Second Edition, Addison-Wesley, Massachussets, USA,
2001.
11. Yourdon E., Analisis Estructurado Moderno, Prentice Hall Hispanoamericana, Me xico, 1989.
9