Você está na página 1de 56

LEVANTAMIENTO DE

REQUERIMIENTOS POR MEDIO


DE CASOS DE USO Ver. 1.2
Febrero 2008
Ernesto Lpez Caballero
Introduccin
La administracin de requerimientos es un
aspecto crucial de los proyectos: un
levantamiento mal realizado o una
administracin deficiente de requisitos son unas
de las causas ms comunes para el fracaso de
los proyectos.

Introduccin
Los casos de uso
como una tcnica
excelente para
administrar los
requerimientos de
nuestros proyectos.
Situaciones familiares
Pero si
construimos todo
Lo que usted
solicit!
Si, pero
no es lo
que quiero
Nadie,
me
pregunt

Mmm, creo
que lo que
piensan es que
se trabaje de
esta manera
Tengo una gran idea!
Crees que se pueda
solicitar esta
caracterstica?
No hay
problema!!
Por qu no
nos dijo que
quera esa
caracterstic
a?

Qu es un Requerimiento?
De manera general, un requerimiento es una
condicin o caracterstica que debe
satisfacerse.
En el contexto de desarrollo de software, un
requerimiento es una caracterstica
identificable expresada en trminos de
funcionalidad o desempeo que un
sistema debe poseer para lograr su objetivo.

Tipos de Requerimiento
Requerimientos funcionales
Describen lo que el sistema debe hacer, es
decir especifican acciones que el sistema
debe ser capaz de realizar
(funcionalidad).
Requerimientos no funcionales
Describen atributos del sistema o atributos
del ambiente del sistema, por ejemplo:
Facilidad de uso, Confiabilidad,
Desempeo, de diseo, de interfaz,
Legales, de Seguridad.

Tipos de Requerimiento
Los requisitos NO funcionales tambin son
importantes. Desempeo, cumplimiento de
estndares o leyes, atributos de calidad
(confiabilidad, disponibilidad, seguridad,
mantenibilidad, portabilidad), etc.
Desempeo
Portabilidad
Disponibilidad
Diferencia entre solicitudes y
requerimientos
Los usuarios nos envan sus solicitudes en
diversos formatos:





Para que sean requerimientos se debe
o Analizar correctamente el problema
o Entender las necesidades reales
o Documentar formalmente


Rotafolios
Documents
Documents
E-
mail
Listados
Hojas Electrnicas
Analista
En concreto
Los requerimientos
constituyen la
Definicin del Sistema

Los
requerimientos
constituyen la
Definicin del
Sistema

Cual es el problema?
El problema puede ser
definido como la diferencia
entre...
(Problema)
Las cosas como se
desean
y
Las cosas como se
perciben
Gause & Weinberg, 1989 Turn Your Lights On !
Adicionalmente,
No hay una Buena Percepcin del
Proyecto Porque:
No hay un entendimiento claro del negocio y sus
objetivos
No se identifican correctamente a todos los
involucrados y sus intereses, visin o
requerimientos particulares
No hay un buen nivel de involucramiento de
usuarios y partes interesadas (stakeholders)
No existe una metodologa clara para
administrar los requerimientos de los sistemas,
as como los cambios que surjan


Atributos en los requerimientos
Requerimiento
100
Origen
Costo
Estatus
Prioridad
Estabilidad
Riesgo
Los ATRIBUTOS y RELACIONES
de Requerimientos son una fuente
poderosa para administrar la informacin
Requerimiento
201
Requerimiento
302
Dificultad
UML y los Requerimientos
Vista de
Procesos
Integradores del sistema
Eficiencia
Escalabilidad
estabilidad
Vista de
Implantacin
Ingeniero del sistema
Topologa del sistema
Entrega, instalacin
Comunicaciones
Vista de
Implementacin
Programadores
Gestin del software
Vista de
Lgica
Usuario final
Funcionalidad
Vista de
Casos de Uso
Arquitectura 4+1 Vistas
El modelo central de UML es el
de Casos de Uso (Use Case
Model)
A travs de los casos de uso, se
modela el comportamiento y
se toma en cuenta a todos los
actores del sistema
Utiliza diagramas y
documentos de especificacin
de casos de uso
Los casos de uso constituyen
el conjunto de requerimientos
funcionales del sistema

Modelo de casos de uso
Caso de Uso
Actor
Conceptual Fsica
Fuentes del Requerimiento
Conversaciones con el cliente/usuario
Dominio del problema
Literatura relevante del dominio
Entrevistas con expertos
Conocimiento personal del dominio
Sistemas legados
Experiencia de sistemas anteriores

Tcnicas de levantamiento de
Requerimiento
Entrevistas
Prototipos
Sesiones JAD
Caso Prctico
Identificar Requerimientos Funcionales y No
Funcionales (Ejercicio- Documento Word)

Aplicacin principal del los casos de
uso
La aplicacin principal de los casos de uso es
en el proceso de anlisis y diseo pero de
manera particular en la definicin de
requerimientos del usuario. Es una excelente
herramienta de comunicacin debido a la
sencillez de su elaboracin as como su
comprensin.
Diferencia [casos de uso] y
[Diagrama de casos de uso]
Es importante diferenciar casos de uso con
diagrama de casos de uso.
Casos de Uso: El caso de uso es una serie de
cosas, es una tcnica de anlisis de sistemas,
es una tcnica para recopilar requerimientos,
puede ser usada como estrategia de
desarrollo o conduccin de proyectos de
sistemas.
Diagrama de caso de uso: El diagrama de
casos de uso forma parte del conjunto de
herramientas del UML y es muy simple
elaborar un diagrama de este tipo.
Bsicamente se conforma de dos figuras
elementales el actor y el caso de uso.

Casos de Uso
Describen el comportamiento del sistema tal
y como es percibido por los usuarios finales,
analistas, y encargados de las pruebas.
es una tcnica para captura y especificacin
de requisitos.
Retirar dinero
Consultar Extracto
Cliente
Realizar transferencia
Elementos
Actor
o Un actor que puede ser una persona, pero en
particular el rol que desempea dentro del sistema
o entorno que estemos analizando, se representa
con un muequito.
o Rol que juega un usuario con respecto al sistema.
o Un Actor no necesariamente representa a una
persona en particular, sino ms bien la labor que
realiza frente al sistema.

Elementos: Actor
Actores:
o Principales: personas que usan el sistema.
o Secundarios: personas que mantienen o administran el
sistema.
o Material externo: dispositivos materiales
imprescindibles que forman parte del mbito de la
aplicacin y deben ser utilizados.
o Otros sistemas: sistemas con los que el sistema
interacta

Administrador de Sistemas
Elementos: Casos de Uso
Casos de Uso
o Un caso de uso, que es una meta, accin, funcin,
o tarea que desarrolla uno o varios actores y se
representa con un elipse.
o Operacin o tarea especfica que se realiza tras una
orden de un agente externo originada por una
peticin de un actor o bien desde la invocacin de
otro caso de uso.
o Un caso de uso es anlogo a una funcin del
sistema.
Elementos: Relaciones
Relaciones
o Asociacin: Es el tipo de relacin ms bsica que
indica la invocacin desde un actor o caso de uso a
otra operacin (caso de uso).
o Dependencia o Instanciacin: Es una forma
muy particular de la relacin entre clases en la
cual una clase depende de otra, es decir, se
instancia (se crea).
Identificando Casos de Uso
Secuencia de eventos iniciada por un actor
donde se especifica la interaccin entre ste
y el sistema.
No se busca la descomposicin funcional del
sistema sino secuencias de eventos que
proporcionan un resultado a algn actor.

Casos de Uso
Casos de Uso:
o Los Casos de Uso se determinan observando y
precisando, actor por actor, las secuencias de
interaccin, los escenarios, desde el punto de vista
del usuario.

o Un escenario es una instancia de un caso de uso.

o Los casos de uso intervienen durante todo el ciclo
de vida. El proceso de desarrollo estar dirigido por
los casos de uso.

Actor A
Caso de Uso A
Actor B
Caso de Uso B
Identificando Casos de Uso
Cmo identificar los casos de uso de
nuestro problema?
-Un enfoque es revisar la manera en que cada
actor usa el sistema.
Qu le pide el sistema al actor que haga?
Qu consultas al sistema hace el actor?
De que acciones internas el sistema
informa al actor?

Identificando los Casos de Uso
Resumen para identificar los
requerimientos funcionales adecuados del
sistema mediante casos de uso.
1. Especificar la misin del sistema
2. Identificar quienes utilizaran el sistema
3. Averiguar cuales objetivos desean cumplir
los actores al usar el sistema (Casos de
Uso)
4. Identificar los pasos o eventos de cada
caso de uso (Especificacin del Caso de
Uso)
Identificando Casos de Uso ATM
Se describe la secuencia principal del caso de
uso.
Las alternativas tambin se incluyen en el
caso de uso.
Caso Prctico [Cajero Automtico
ATM]
Nombre del caso de uso: Sacar dinero
Resumen: El cliente retira una cantidad
especfica de dinero del cajero de su cuenta
bancaria.
Dependencias: Ninguna
Actores: Cliente ATM
Precondiciones: El ATM est listo con el
mensaje de bienvenida.

Caso Prctico [Cajero Automtico]
Descripcin:
1. El cliente inserta la tarjeta en el lector del ATM.
2. Si la tarjeta es reconocida se lee el nmero de la
misma.
3. El sistema pide la clave al cliente.
4. El cliente introduce la clave (PIN).
5. El sistema verifica la fecha de caducidad y si es robada
o extraviada.
6. Si es vlida el sistema comprueba la clave introducida
con la que lleva la tarjeta escrita.
7. Si el PIN es vlido el sistema ve qu cuentas estn
disponibles para dicha tarjeta.
8. El sistema muestra las cuentas disponibles y le solicita
al cliente elija entre sacar dinero, consultar saldo y
transferencia.

Caso Prctico [Cajero Automtico]
Descripcin:
9. El cliente selecciona sacar dinero, introduce la
cantidad y selecciona el nmero de la cuenta.
10. El sistema comprueba si el cliente tiene suficiente
dinero en dicha cuenta y si ha sobrepasado el lmite
diario.
11. Si todo es correcto el sistema autoriza dispensar el
dinero.
12. El sistema entrega el dinero.
13. El sistema muestra un recibo incluyendo el nmero de
operacin, el tipo, la cantidad y el nmero de la
cuenta.
14. El sistema devuelve la tarjeta.
15. El sistema muestra su mensaje de bienvenida.

Caso Prctico [Cajero Automtico]
Alternativas:
o Si el sistema no reconoce la tarjeta entonces es devuelta.
o Si la tarjeta ha caducado es confiscada.
o Si la tarjeta est extraviada o robada es confiscada.
o Si el PIN no es correcto se vuelve a pedir.
o Si se introduce el PIN tres veces mal la tarjeta es confiscada.
o Si el sistema determina que no hay suficiente dinero entonces
muestra un mensaje y devuelve la tarjeta.
o Si el cajero no tiene dinero se muestra un mensaje, se devuelve
la tarjeta y se apaga el cajero.
o Si el cliente introduce cancelar se cancela la transaccin y se
devuelve la tarjeta.

Caso de uso sacar dinero
Inserta tarjeta
Lee Tarjeta
Ingresa PIN
Selecciona tipo de
transaccin
Selecciona tipo de retiro
Ingresa monto a retirar
Revisa efectivo en ATM
Pregunta al banco por
autorizacin
Da dinero y recibo
Toma el dinero, recibo y
tarjeta

Escenarios adicionales?
Condiciones alternas o
Manejo de errores?
Escenario feliz o de
da normal
Happy Path
Diagrama de Caso de Uso sacar
dinero
Relaciones entre Casos de Uso
Cuando los casos de uso se hacen complejos
pueden definirse dependencias entre ellos.
Se distinguen en UML tres relaciones de
dependencia:
o Incluye.
o Extiende.
o Generaliza.


Casos de Uso: Relaciones
Diagramas de Casos de Uso:
Actor
Caso de Uso
Casos de Uso: Relaciones
Inclusin: una instancia del Caso de Uso
origen incluye tambin el comportamiento
descrito por el Caso de Uso destino







<<include>> reemplaz al denominado <<uses>>

Caso de Uso Origen Caso de Uso Destino
<<include>>
Casos de Uso: Relaciones
Ejemplo <<include>>

Casos de Uso: Relaciones
Extensin: el Caso de Uso origen extiende
el comportamiento del Caso de Uso destino

Caso de Uso Origen Caso de Uso Destino
<<extend>>
Casos de Uso: Relaciones
Ejemplo: <<extend>>

Casos de Uso: Relaciones
Ejemplo: <<include>> y <<extend>>
Identificacin
Transferencia en Internet
Cliente
Transferencia
<<include>>
<<extend>>
Casos de Uso: Relaciones
Herencia: el Caso de Uso origen hereda la
especificacin del Caso de Uso destino y
posiblemente la modifica y/o ampla

Caso de Uso Hijo Caso de Uso Padre
Reuso: Evitando el Retrabajo
Una de las razones por las cuales se debe de
considerar el uso de este tipo de relaciones, es porque
identificas que hay pasos que son iguales en dos o
ms casos de uso.
Casos de Uso: Construccin
Un caso de uso debe ser simple, inteligible,
claro y conciso
Generalmente hay pocos actores asociados a
cada Caso de Uso
o Preguntas claves:
cules son las tareas del actor?
qu informacin 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?

Casos de Uso: Construccin
La descripcin del caso de uso comprende:
o el inicio: cundo y qu actor lo produce?
o el fin: cundo se produce y qu valor devuelve?
o la interaccin actor-caso de uso: qu mensajes
intercambian ambos?
o objetivo del caso de uso: qu lleva a cabo o
intenta?
o cronologa y origen de las interacciones
o repeticiones de comportamiento: qu operaciones
son iteradas?
o situaciones opcionales: qu ejecuciones
alternativas se presentan en el caso de uso?


Quien lee los Casos de Uso

Los clientes aprueban lo que el sistema debe hacer
Usuarios aumentan su comprensin del sistema
Desarrolladores del Sistema documentan el
comportamiento del sistema
Revisores examinan el flujo de eventos
Analistas de Sistemas (Diseadores del Sistema) proveen
la base para el anlisis y el diseo

Probador del Sistema la usa como base para los casos
de prueba
Lder de Proyecto proporciona informacin para planear
proyectos
Escritor Tcnico es la base para escribir la gua del
usuario
Casos de Uso: Construccin
PLANTILLA PDC PARA CASOS DE USO
Hacer la plantilla de acuerdo al ejemplo del
cajero automtico.
Redactando los casos de uso:
Especificando el caso de uso
Estructura de la especificacin del caso de
uso: cul usar? simple o compleja
Plantilla PDC
Otros
Redactando los casos de uso:
Especificando el caso de uso
Nombre: Crear mensaje foro
Autor: Joaqun Gracia
Fecha: 24/08/2003
Descripcin:
Permite crear un mensaje en el foro de discusin.
Actores:
Usuario de Internet logeado.
Precondiciones:
El usuario debe haberse logeado en el sistema.
Flujo Normal:
1. El actor pulsa sobre el botn para crear un nuevo mensaje.
2. El sistema muestra una caja de texto para introducir el ttulo del mensaje y una zona de
mayor tamao para introducir el cuerpo del mensaje.
3. El actor introduce el ttulo del mensaje y el cuerpo del mismo.
4. El sistema comprueba la validez de los datos y los almacena.
Flujo Alternativo:
1. El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al
actor de ello permitindole que los corrija
Poscondiciones:
Redactando los casos de uso:
Especificando el caso de uso
Precondiciones y postcondiciones
o Precondiciones. Son las condiciones que se deben de cumplir
en el sistema antes de iniciarlo. El estado en que se debe
encontrar el sistema antes de ejecutarlo. (Ej: Algn catlogo
debe estar actualizado, debe estar en conexin con otro
sistema, el usuario debe estar conectado con cierto perfil
especfico)
o Postcondiciones. Te indica como queda el sistema despus de
ejecutar el caso de uso. Imagina que eres un tester y quieres
comprobar si alguien acaba de ejecutar el caso de uso. Qu
cosas buscaras en el sistema? Seguramente datos nuevos,
modificados, eliminados o la posibilidad de elegir nuevas
opciones en el sistema.
Redactando los casos de uso:
Especificando el caso de uso
Flujos de eventos
Flujo principal del caso de uso Registrar Venta
o El vendedor solicita el registro de una nueva venta.
o El sistema solicita los datos de cada uno de los productos de la venta.
o El vendedor registra la cantidad y clave de cada uno de los productos.
o El sistema muestra la lista de productos con su cantidad, clave,
descripcin, subtotal, IVA y total.
o El sistema solicita el tipo de pago.
o El vendedor indica pago al contado o con tarjeta de crdito.
o Dependiendo de la seleccin comienza el flujo alterno Pago al contado o
Pago con tarjeta de crdito.
o Una vez realizado el pago se registra la venta, se actualiza el inventario e
imprime el ticket correspondiente.
o Termina el caso de uso.
Flujo Alterno: Pago al Contado
o El vendedor registra el monto recibido por el cliente.
o El sistema calcula y muestra el cambio a devolver.
o El vendedor devuelve el cambio al cliente.

Redactando los casos de uso:
Especificando el caso de uso
Un Flujo Bsico (Happy Day Path)
Varios Flujos Alternos
o Variantes del Flujo Bsico
o Casos Especiales
Flujos de Excepcin (para manejar
situaciones de error)
Redactando los casos de uso:
Especificando el caso de uso
Flujos alternos y excepcionales
Las excepciones pueden expresarse como sub-casos de
uso (include)
Flujo de eventos excepcional:
(Ejemplo)
El cliente valida un pedido en que no ha seleccionado
ningn producto.
El sistema vuelve a mostrar la lista de productos seleccionables.
Comentarios
Los Casos de Uso son una idea maravillosa
que ha sido generalmente complicada. El
verdadero truco para los Casos de Uso es
mantenerlos simples. Recordad, maana
van a cambiar.
Robert C. Martin
Bibliografa
El lenguaje unificado de Modelado
Addison wesley
Grady Booch
James Rumbaugh
Ivar Jacobson

Construccin de software orientado a objetos
Prentice Hall
Bertrand Meyer

Milestone Consulting. UML
http://www.milestone.com.mx/

Lider de Proyectos
http://www.liderdeproyecto.com/

IBM Rational Software Modeler


Gracias!

Febrero 2008
Ernesto Lpez Caballero

Você também pode gostar