Escolar Documentos
Profissional Documentos
Cultura Documentos
requisitos
Jordi Pradel Miquel
Jose Raya Martos
PID_00191266
CC-BY-SA • PID_00191266 Obtención de requisitos
Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de
Reconocimiento-Compartir igual (BY-SA) v.3.0 España de Creative Commons. Se puede modificar la obra, reproducirla, distribuirla
o comunicarla públicamente siempre que se cite el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), y
siempre que la obra derivada quede sujeta a la misma licencia que el material original. La licencia completa se puede consultar en:
http://creativecommons.org/licenses/by-sa/3.0/es/legalcode.ca
CC-BY-SA • PID_00191266 Obtención de requisitos
Índice
Introducción............................................................................................... 5
Objetivos....................................................................................................... 6
2. Descubrimiento de requisitos......................................................... 12
2.1. Innovación en los procesos ........................................................ 12
3. Soluciones preexistentes................................................................... 15
3.1. Selección de componentes .......................................................... 16
4. Objetivos y requisitos....................................................................... 19
4.1. Relación entre objetivos y requisitos .......................................... 19
4.2. Organización de los objetivos ..................................................... 20
4.2.1. Objetivos generales ........................................................ 22
4.2.2. Objetivos de usuario y de tarea ..................................... 22
4.2.3. Clasificación de objetivos .............................................. 23
4.3. Identificación de requisitos de abajo a arriba (bottom-up) .......... 24
4.3.1. La técnica de los cinco porqués .................................... 25
4.4. Relación de los stakeholders y los objetivos ................................ 25
4.5. Modelado de los objetivos .......................................................... 25
5. Caso práctico....................................................................................... 27
5.1. Clasificación de objetivos ........................................................... 27
5.1.1. Objetivos obtenidos de las entrevistas .......................... 27
5.1.2. Objetivos de nivel general/usuario/tarea ....................... 27
5.2. Modelo de la interfaz gráfica de usuario .................................... 28
Resumen....................................................................................................... 35
Actividades.................................................................................................. 37
Ejercicios de autoevaluación.................................................................. 37
Solucionario................................................................................................ 39
CC-BY-SA • PID_00191266 Obtención de requisitos
Glosario........................................................................................................ 42
Bibliografía................................................................................................. 43
CC-BY-SA • PID_00191266 5 Obtención de requisitos
Introducción
En las asignaturas previas, ya hemos visto algunas técnicas para obtener los Ved también
requisitos de un sistema, como el modelado de roles de usuario o las entrevistas
Véase los materiales de Inge-
y cuestionarios, pero aún no hemos entrado en detalle por lo que respecta a niería del software.
algunos de los problemas importantes de la identificación de requisitos.
Uno de los problemas que nos encontramos a la hora de llevar a cabo esta
tarea es descubrir los requisitos que aún no conoce nadie. Esto es debido a que,
a veces, se nos hace difícil describir cómo queremos que sea el sistema final
que aún no hemos podido ver ni tocar. Por eso será importante que tengamos
en cuenta algunas técnicas para descubrir estos requisitos que, a priori, nadie
sabía que existían.
Objetivos
2. Conocer técnicas para descubrir requisitos que los stakeholders aún no sa-
ben que tienen.
4. Conocer la relación entre objetivos y requisitos, así como tener una idea
muy básica de en qué consiste el modelado de objetivos.
CC-BY-SA • PID_00191266 7 Obtención de requisitos
primera etapa, ya que aún no hemos decidido si el sistema que se desea A menudo se usa el término
desarrollar los tiene que cumplir o no. inglés requirements elicitation
para denominar la obtención
de requisitos.
1.1. Brainstorming
(1)
El brainstorming1 es una técnica de creatividad para grupos que favorece la ge- En español, es habitual el uso del
término lluvia de ideas.
neración de ideas de manera colaborativa. La técnica original establece cuatro
reglas:
También es muy importante tener muy clara cuál es la pregunta que tenemos
que responder. Por ejemplo, si queremos identificar stakeholders potenciales
y, para cada stakeholder, identificar requisitos candidatos, es mejor hacerlo en
sesiones independientes que no en una misma sesión donde se intentan res-
ponder varias preguntas a la vez.
1) Crear el grupo de trabajo (intentando que sea lo más diverso posible para
tener el máximo de puntos de vista).
La idea básica de esta técnica es que, en lugar de buscar los requisitos de to-
dos los usuarios individuales del sistema, los podemos agrupar según el rol y
asumir que todos los usuarios individuales que tienen el mismo rol ante el
sistema tendrán requisitos parecidos.
Por ejemplo, en Viajes UOC podemos identificar el rol de usuario “Agente de viajes” y
hacer la siguiente descripción:
Esta es una de las técnicas más utilizadas para la obtención de requisitos. Con-
siste, obviamente, en entrevistarse con los stakeholders para obtener directa-
mente de ellos los requisitos que tienen sobre el sistema que hay que desarro-
llar.
CC-BY-SA • PID_00191266 9 Obtención de requisitos
La principal ventaja de las maquetas es que son más baratas de hacer que un
prototipo, ya que no se detalla el aspecto visual de las pantallas (ya menudo,
como en el ejemplo de la figura, se simulan estas pantallas con un dibujo a
mano alzada).
CC-BY-SA • PID_00191266 10 Obtención de requisitos
Esta técnica es especialmente útil para los requisitos no funcionales, ya que, co- Ved también
mo hemos visto anteriormente, estos son independientes del comportamien-
Podéis encontrar más informa-
to del sistema. ción sobre el estándar IEEE-830
en el módulo “Documentación
de requisitos”.
El estándar IEEE-830 incluye una de estas listas. Otra plantilla con una lista
predefinida de requisitos no funcionales es la plantilla Volere.
Referencia bibliográfica
2. Descubrimiento de requisitos
Además, las propias necesidades que queremos satisfacer pueden cambiar con
el uso del software. Por eso necesitamos herramientas que nos permitan simu-
lar el uso del software sin tener que desarrollarlo completamente.
IKIWISI (I’ll know it when i see it) es el término que, a menudo, se usa
para hacer referencia al hecho de que no podemos describir qué es lo
que queremos, pero que, si nos lo ponen delante, lo podemos reconocer
como aquello que queríamos.
Para llevar a cabo esta tarea, necesitamos encontrar el modo de simular el uso
del sistema para que aparezcan estos requisitos y experimentar con maneras
alternativas de implementar una misma funcionalidad.
De hecho, los productos más exitosos son aquellos que consiguen “crear” una
nueva necesidad. Por ejemplo, en el año 2004 casi nadie decía “ojalá que al-
guien inventara las redes sociales para poder compartir información con los
amigos y familiares”. De hecho, todo el mundo pensaba que tenía esta nece-
sidad más o menos cubierta con el correo, blogs, grupos, etc. En cambio, sólo
6 años después, en el 2010, la red social Facebook contaba con más de 500
millones de miembros.
CC-BY-SA • PID_00191266 13 Obtención de requisitos
Referencia bibliográfica
“Nuestro trabajo es dar al cliente, dentro del plazo y el coste, no lo que
quiere sino lo que nunca había soñado que querría; y cuando lo tiene D.�Lasdun (1965). “An
Architect’s Approach to Ar-
delante, lo reconoce como aquello que siempre había querido”. (Denys chitecture”. RIBA Journal 72
(núm. 4).
Lasdun, 1965)
A pesar de que esta frase es
original de un arquitecto, es
perfectamente aplicable al
Antes de experimentar con alternativas, necesitamos un criterio para descubrir desarrollo del software.
cuáles son las que nos pueden interesar en un sistema concreto. Algunos de
los criterios que podemos aplicar son los siguientes:
En el caso de Viajes UOC, un ejemplo de este tipo de innovación sería el de poder com-
partir el plan de viaje con amigos y familiares. El hecho de saber que, contratando con
Viajes UOC, los amigos y familiares del cliente tendrán acceso a la información (y telé-
fonos de contacto) del lugar donde se encuentran durante el viaje es una cosa que mu-
chos de los clientes podrían estar haciendo por sí mismos (creando un documento con el
resumen de la información y enviándolo a amigos y familiares) y que, al mismo tiempo,
podría no haberse comentado durante las entrevistas.
2)�Ofrecer�más�información. Cada vez más, las personas estamos acostum- Ejemplo de ofrecer más
bradas a tener mucha información disponible y, con el paso del tiempo, cada información
Viajes UOC puede, con el nuevo sistema, hacer que el grado de participación del cliente
en la organización de su viaje sea mucho más alto que en el modelo tradicional de la
agencia, hasta el punto de que el cliente podría configurar todo el viaje desde casa e ir
a la agencia sólo a confirmar el pedido.
CC-BY-SA • PID_00191266 14 Obtención de requisitos
En el caso de Viajes UOC, hasta ahora toda la comunicación con los clientes se hacía
de manera presencial o, como mucho, telefónica. El nuevo sistema está ofreciendo una
nueva alternativa: relacionarse con los clientes a través de Internet.
James Robertson explica, en su artículo de 2002 “Eureka! Why Analysts Should Invent
Requirements”, el caso de una compañía aseguradora que, cuando algún cliente tenía
un siniestro con el coche, enviaba al momento un perito al lugar del accidente que se
encargaba de evaluar los daños y (si el cliente quería) de extender un cheque allí mismo
por el valor de los mismos. En este caso, pensar en lo que hacía el cliente que estaba
informando de un accidente les llevó a simplificar los trámites, hasta el extremo de que,
según cómo, ya no hacía falta que el cliente accediera al sistema para informar sobre el
accidente.
Otro ejemplo interesante que propone [Robertson] es el de los enlaces afiliados de Ama-
zon. Amazon pensó en lo que hacían sus clientes en el momento de decidir que querían
comprar un libro (o cualquier otro producto) y por eso crearon el programa de enlaces
afiliados, de manera que la web donde se hablaba del libro ofreciera directamente la
compra del mismo.
CC-BY-SA • PID_00191266 15 Obtención de requisitos
3. Soluciones preexistentes
Por ejemplo, Viajes UOC necesitará tener una base de datos de hoteles. El primer escena-
rio que nos viene a la cabeza ante esta situación es aquel en el que Viajes UOC “compra”
un sistema gestor de bases de datos Relacionales (SGBDR) y, sobre este sistema, desarrolla
la funcionalidad necesaria para gestionar la información relativa a los hoteles.
Podría pasar, sin embargo, que el SGBDR no pudiera satisfacer alguno de los requisitos
de nuestro sistema (como por ejemplo, que se considerara que la disponibilidad de esta
información es más importante que la consistencia) y decidiéramos usar otro tipo de
sistema de base de datos o, incluso, implementar uno propio.
El impacto, por lo tanto, será en los dos sentidos: por un lado, habrá que tener
en cuenta los requisitos del producto a desarrollar a la hora de elegir una so-
lución y, por otro, si no se encuentra una solución que cumpla los requisitos
del producto a desarrollar al 100%, habrá que adaptar el producto a aquello
que las soluciones nos ofrezcan.
Un ejemplo un poco extremo sería aquel en el que queremos procesar una reserva de viaje
en menos de un segundo, pero ninguna de las soluciones disponibles permite procesarla
en menos de dos segundos. En este caso, es muy probable que nosotros no seamos capaces
de superar este tiempo y, por lo tanto, haya que revisar el requisito o, incluso, descartarlo
si lo consideramos imposible de satisfacer.
Supongamos que Viajes UOC quiere ofrecer la posibilidad de mostrar fotografías de los
hoteles hechas por los viajeros en la ficha de detalle. Se quiere que los clientes de Viajes
UOC puedan publicar fotografías que ellos hayan hecho de los hoteles y que otros clientes
las puedan ver. Más concretamente, se ofrecerá a los clientes, en la ficha de detalle de un
hotel, la posibilidad de publicar una o más fotografías que haya hecho en alguna de sus
estancias en el hotel (con independencia de que hubiera contratado el viaje con Viajes
UOC o no).
Ante esto se tendrán que evaluar varias posibilidades. Por un lado, podemos desarrollar
íntegramente el servicio de almacenamiento de fotografías y almacenar las fotografías en
nuestros servidores. Habrá que desarrollar la funcionalidad de publicar una foto, ver una
foto y borrar una foto. Habrá que tener en cuenta aspectos relativos a la privacidad de
las fotos y los volúmenes de datos que pueden generar todas estas fotos.
Una alternativa, sin embargo, podría ser usar un software de “galería de fotos” que ya
esté desarrollado (COTS). En este caso, habrá que ver si este software nos permite que un
usuario publique una foto sin tenerse que identificar de nuevo en el sistema, o bien si
se puede asociar una galería diferente en cada hotel, etc. De los diferentes productos dis-
ponibles en el mercado, intentaremos elegir aquel que más se acerque a la funcionalidad
que hayamos desarrollado y que menos personalización requiera.
Por último, nos podríamos plantear contratar este servicio con un proveedor externo
que ya esté ofreciendo esta funcionalidad. Se tendrán que valorar aspectos como el coste
de alquilar este servicio (frente al coste de asumirlo nosotros) o bien si se puede dar el
servicio manteniendo la imagen de marca de Viajes UOC, etc. Además, habrá que tener en
cuenta otros factores, como por ejemplo qué pasa si el proveedor del servicio desaparece
del mercado, etc.
• Analizar y evaluar los resultados del paso anterior y selección del producto
o servicio más adecuado.
Supongamos, por ejemplo, que queremos escoger una plataforma de desarrollo de apli-
QSOS
caciones para teléfonos móviles para desarrollar la versión móvil de Viajes UOC. Lo pri-
mero que deberemos hacer es definir qué criterios de evaluación se aplicarán.
Los ejemplos que se usan en
Supongamos que tenemos un requisito político irrenunciable que la plataforma utilizada estos materiales sobre la se-
lección de una plataforma de
tiene que ser de código abierto. Algunos otros requisitos pueden ser que sea madura, con
desarrollo están inspirados en
un grado de adopción elevado, que esté en desarrollo activo, que esté muy documentada, QSOS (qualification and selec-
que sea portable, que soporte el envío de mensajes SMS, etc. tion of open source software),
un método de selección de
componentes de código abier-
A partir de aquí, hay que buscar una lista de productos o servicios candidatos to.
y descartar los que no cumplen los requisitos mínimos.
Siguiendo con el ejemplo anterior, el siguiente paso sería buscar plataformas de desarrollo
de aplicaciones móviles. De estas, ya sea durante la búsqueda o en un paso posterior, se
descartarían aquellas que no sean de código abierto, puesto que se ha decidido que este
es un requisito irrenunciable.
Apoyo�para�el�envío�de�SMS:
• No soportado: 0 puntos
• Soportado a través de una librería de terceros: 1 punto
• Soportado de forma integrada: 2 puntos
De este modo, cada plataforma candidata se puede puntuar con 0, 1 o 2 puntos en cuanto
al requisito de envío de SMS.
Una vez evaluados los candidatos, hay que hacer el análisis de los resultados
y la selección del candidato más adecuado. Para lo cual habrá que ponderar el
peso de cada requisito, puesto que algunos requisitos pueden ser más impor-
tantes que otros, y dar un valor total a cada candidato. Este proceso puede ser
automatizado y formal pero también se puede hacer manualmente y teniendo
en cuenta criterios cualitativos y menos formales.
4. Objetivos y requisitos
De todas las posibles características observables del software, sin embargo, sólo
tendremos en cuenta como requisitos candidatos aquellas que satisfagan el
objetivo de un stakeholder o ayuden a conseguirlo. Por lo tanto, en muchas
ocasiones, hay una relación de uno a uno entre requisitos y objetivos, puesto
que, a menudo, un requisito es la característica observable que satisface el
objetivo.
A veces, sin embargo, un objetivo va más allá delo que podemos observar en
un software. Algunos objetivos sólo se pueden satisfacer si las personas, orga-
nizaciones u otros sistemas de software más allá del que analizamos también
colaboran positivamente.
Otros objetivos pueden incluir varios requisitos en cuanto que habrá varias
características observables que ayudan a satisfacerlos.
Si decimos que “Como cliente de Viajes UOC quiero comprar un viaje”, estamos expre-
sando un objetivo (comprar un viaje), que dará lugar a uno o más requisitos (poder in-
dicar las fechas en las que se quiere viajar, conocer los hoteles disponibles en la zona en
aquellas fechas, etc.).
CC-BY-SA • PID_00191266 20 Obtención de requisitos
Podemos ver, pues, que la diferencia entre objetivos (aquello que los stakehol-
ders quieren de nuestro sistema) y los requisitos (aquella cualidad que nuestro
sistema tiene que satisfacer) es, a veces, difícil de encontrar. No se trata, pues,
de intentar diferenciar de forma estricta entre unos y otros, sino de tener un
marco general por el cual usar el término más adecuado en cada caso.
En general, podemos decir que el objetivo es el que determina la relación entre Identificación de caso de
el stakeholder y nuestro sistema. Por eso nos puede ser útil pensar en términos uso
de objetivos a la hora de obtener los requisitos candidatos: si identificamos Es una buena práctica recono-
correctamente los objetivos, nos será más fácil descomponerlos en subobjeti- cida el hecho de dar nombre
a los casos de uso a partir del
vos que nos determinen nuevos requisitos. objetivo que el actor princi-
pal quiere lograr. Así, si tene-
mos un caso de uso que nos
En el ejemplo anterior, el objetivo de satisfacer el valor de la marca de Viajes UOC se describe qué tiene que hacer
puede descomponer en objetivos más concretos, como, por ejemplo, “Respetar la imagen un cliente de Viajes UOC para
corporativa de Viajes UOC” (que sí que es una propiedad que el sistema puede satisfacer). comprar un viaje, lo más habi-
tual es usar el objetivo “Com-
prar un viaje” para identificar
Desde el punto de vista opuesto, “Poder crear ofertas exclusivas de una agencia” es un el caso de uso.
requisito candidato que nos aleja del objetivo de “consolidar el valor de la marca” y, por lo
Lo mismo pasa con las histo-
tanto, tener claro el objetivo nos puede ayudar a identificarlo como requisito a descartar.
rias de usuario, donde indica-
mos el objetivo como parte del
nombre de la historia: “Como
Identificar los objetivos, además, nos puede ser útil más adelante, durante la cliente quiero comprar un via-
priorización y selección de requisitos, puesto que nos permitirá saber qué sta- je”.
Ved también
4.2. Organización de los objetivos
Veremos la priorización y se-
lección de requisitos en el mó-
Hemos visto que los objetivos se pueden descomponer en subobjetivos, desde dulo “Gestión de requisitos”.
los más generales (como “Consolidar el valor de la marca”) hasta los más con-
cretos (como “Introducir el nombre del hotel”). Es habitual que, al describir su
visión del sistema, las personas salten de un nivel a otro sin darse cuenta. Por
eso, es importante que, al identificar los objetivos, sepamos distinguir cuáles
son del mismo nivel y cuáles no y así podamos estructurar mejor nuestra des-
cripción.
CC-BY-SA • PID_00191266 21 Obtención de requisitos
“Queremos consolidar la presencia internacional de nuestra empresa. Por eso, habrá que
adaptar el sistema de información de venta de viajes y hacer que, entre otras cosas, cuan-
do un cliente de un país de fuera de la zona euro compre un viaje y quiera ver el precio
total, el sistema calcule automáticamente la conversión entre divisas. Los desarrolladores
nos han dicho que crearán una tabla en la base de datos con la cotización más reciente
de la divisa del país”.
Este es un caso típico de descripción que mezcla objetivos muy generales con
objetivos concretos e, incluso, con parte de la descripción de la solución.
• Objetivos�de�tarea: expresan qué tareas tienen que llevar a cabo los usua-
rios para conseguir los objetivos de usuario.
CC-BY-SA • PID_00191266 22 Obtención de requisitos
Más concretos que los objetivos de tarea sólo quedan las decisiones de diseño
y arquitectura, que, al formar parte de la solución y no de la descripción del
problema, no forman parte de los requisitos del sistema.
En nuestro ejemplo, podemos identificar algunos de estos objetivos, como, por ejemplo,
“Expandir la franquicia de 95 a 200 agencias en dos años” o “Consolidar el valor de la
marca en los mercados emergentes”. En los dos casos se trata de objetivos muy generales
que habrá que descomponer (especialmente el segundo, ya que, tal y cómo está descrito,
no se puede determinar si se ha logrado o no).
“Consultar las recomendaciones sobre un hotel” es una cosa que el cliente puede querer
hacer con independencia de si al final compra o no compra el viaje, mientras que “Con-
sultar la disponibilidad de hoteles” es una cosa que cuesta más imaginar que quiera hacer
si no es que realmente quiere comprar el viaje. En este sentido, decimos que “Consultar
la disponibilidad de hoteles” tiene menos valor para el usuario que “Consultar las reco-
mendaciones sobre un hotel”, lo cual lo sitúa más cerca del nivel de tarea.
Un caso más evidente de objetivo de nivel de tarea es “Introducir las fechas en las que
se quiere hacer el viaje”. En este caso, es evidente que el cliente no querrá introducir las
fechas en las que se quiere hacer el viaje si no es para conseguir algo más.
Podemos volver a analizar el texto con el que hemos empezado este apartado
a la luz de esta clasificación:
CC-BY-SA • PID_00191266 24 Obtención de requisitos
• “Un cliente de un país de fuera de la zona euro tiene que poder comprar
un viaje” es un objetivo de usuario: el cliente de fuera de la zona euro es
el usuario y el objetivo es comprar el viaje. En este caso, es de esperar que
no necesite varios días para poder comprar el viaje (a pesar de que podría
ser el caso).
Hemos visto cómo podemos partir de los objetivos más generales (por ejem-
plo, los del plan estratégico) e irlos descomponiendo en subobjetivos para ir
descubriendo objetivos de usuario y, por lo tanto, requisitos de nuestro siste-
ma de información.
También podemos, sin embargo, hacer el proceso inverso: una vez hemos iden-
tificado un objetivo de nivel más bajo, podemos identificar qué objetivos de
más alto nivel y stakeholders pueden estar relacionados.
CC-BY-SA • PID_00191266 25 Obtención de requisitos
Sabemos que un empleado de la agencia quiere indicar su opinión sobre un hotel. Apli-
cando la técnica de los cinco porqués nos deberían preguntar ¿por qué?
• Porque el cliente quiere recibir asesoramiento a la hora de decidir a qué hotel ir, ¿por
qué? Porque el cliente quiere comprar un viaje, ¿por qué?
En este caso, hemos identificado una serie de objetivos (cada uno de ellos más general
que el anterior) y el proceso nos ha llevado a hacernos preguntas que no nos habíamos
planteado hasta ahora, como cuál es el tipo de cliente que esperamos tener (por ejemplo,
si viaja por turismo o por negocios) y cuál es el motivo que hace que este cliente nos
contrate el viaje en lugar de organizárselo por su cuenta.
KAOS es un método para la ingeniería de requisitos que permite crear mode- Enlace de interés
los de requisitos a partir de modelos de objetivos. Mediante este método, los
Podéis encontrar más in-
objetivos se organizan en forma de grafo cíclico tal que: formación sobre el método
KAOS en la Wikipedia.
CC-BY-SA • PID_00191266 26 Obtención de requisitos
• Cada objetivo del modelo (excepto los objetivos estratégicos) está justifi-
cado por, como mínimo, otro objetivo que explica por qué se introdujo
este objetivo en el modelo.
• Cada objetivo del modelo (excepto los objetivos de más bajo nivel) se pue-
de refinar como colección de subobjetivos que explican cómo se tiene que
obtener el objetivo.
El lenguaje i* es un lenguaje de modelización que nos ayuda a modelizar los Enlace de interés
agentes que participan en un sistema junto con sus “propiedades intenciona-
Podéis encontrar más
les”, como por ejemplo los objetivos, creencias, compromisos, etc.). información sobre i*
en su sitio web: http://
www.cs.toronto.edu/km/is-
Ejemplo del uso de i* para el modelado de objetivos
tar/.
Fuente: Carlos Cares; Xavier Franch; Anna Perini; Angelo Susi. Towards Interoperability of i* Models using iStarML. Computer Standards & Interfaces (vol. 1, núm. 33, págs. 69-79).
CC-BY-SA • PID_00191266 27 Obtención de requisitos
5. Caso práctico
En este apartado veremos cómo podemos aplicar algunas de las técnicas que
hemos estudiado en el caso de Viajes UOC.
También nos traslada el objetivo de Martí de “No tener que apoyar” y nos
propone “Que exista un mecanismo de solución de incidencias técnicas”.
Finalmente, también nos pide que el nuevo sistema “No requiera formación
adicional”.
Los objetivos más concretos que apoyan el objetivo de conseguir nuevos clien-
tes son:
Estos dos objetivos todavía son de nivel general, a pesar de que ya hemos
identificado algunos objetivos de usuario que los pueden apoyar:
• Escribir la recomendación.
• Que el cliente pueda leer la recomendación.
• Que el cliente pueda pedir cita con el agente de viajes.
• Que el cliente pueda saber quién ha hecho una recomendación.
Nivel�de�objetivo: Usuario
Stakeholders�e�intereses:
Garantías�mínimas: -
Escenario�principal�de�éxito:
CC-BY-SA • PID_00191266 29 Obtención de requisitos
1) El agente de viajes busca el hotel o el destino sobre el que quiere escribir y, como resul-
tado, el sistema muestra la ficha de detalle del hotel o el destino
Extensiones:
3a. El agente de viajes ya había hecho una recomendación sobre aquel hotel o destino
3a2. Si el agente de viajes confirma que la quiere sobrescribir, el sistema guarda la reco-
mendación asociada al agente de viajes y el hotel o destino
Caso�de�uso: Buscar entidad (donde entidad puede ser cualquier cosa que tenga una ficha
de detalle, como, por ejemplo, un destino o un hotel)
Nivel�de�objetivo: Tarea
Stakeholders�e�intereses:
Precondición: -
Garantías�mínimas: -
Escenario�principal�de�éxito:
1) El usuario (sea agente de viajes o cliente) introduce uno o más termas de busca
2) El sistema muestra la lista de entidades que contienen algunos de los términos de busca
en alguno de los campos de busca. Para cada entidad muestra los campos a mostrar.
Extensiones:
1a2. El sistema le muestra el formulario de busca avanzada donde pide los campos de
busca avanzada
1a3. El usuario llena los datos del formulario de busca y volvemos al paso 2 del escenario
principal
Nivel�de�objetivo: Tarea
Stakeholders�e�intereses:
Precondición: -
Garantías�mínimas: -
Escenario�principal�de�éxito:
1) El usuario busca el hotel usando el caso de uso. Buscar una entidad en la que:
• La entidad es un hotel
• Los campos de busca son: nombre del hotel y nombre del destino al que pertenece
el hotel
• Los campos a mostrar son: nombre del hotel y nombre del destino al que pertenece
el hotel
• Los campos de busca avanzada son: nombre del hotel, nombre del destino donde se
encuentra, precio medio de estancia y mínimo de recomendaciones por parte de los
agentes de Viajes UOC
Nivel�de�objetivo: Tarea
Stakeholders�e�intereses:
Precondición: -
Garantías�mínimas: -
Escenario�principal�de�éxito:
1) El usuario busca el destino usando el caso de uso. Buscar una entidad en la que:
• La entidad es un destino
• Los campos de busca son: nombre del destino
• Los campos a mostrar son: nombre del destino
• No existe busca avanzada
Actor�principal: Cliente
Nivel�de�objetivo: Usuario
Stakeholders�e�intereses:
Agente de viajes: Quiere que el cliente vea la recomendación y que sepa quién lo ha hecho
Precondición: -
Garantías�mínimas: -
Escenario�principal�de�éxito:
1) El cliente busca el hotel o el destino sobre el cual quiere leer recomendaciones y, como
resultado, el sistema muestra la ficha de detalle del hotel o del destino
2) El cliente pide ver todas las recomendaciones sobre aquel hotel o destino
Extensiones:
2a1. El sistema muestra sólo las recomendaciones positivas de aquel hotel o destino
2b1. El sistema muestra sólo las recomendaciones negativas de aquel hotel o destino
3a. El cliente pide ver más recomendaciones por el mismo autor que una de las recomen-
daciones
3a1. El sistema muestra todas las recomendaciones hechas por aquella persona junto con
el nombre del hotel y destino del hotel si se trata de una recomendación sobre un hotel
o el nombre del destino si se trata de una recomendación sobre un destino
Las dos búsquedas (de hotel y de destino) funcionan de forma parecida, puesto
que usan la misma plantilla. Inicialmente, se introducen unos ciertos términos
de busca y se obtiene un listado de resultados:
CC-BY-SA • PID_00191266 32 Obtención de requisitos
Una extensión de las búsquedas permite hacer, cuando el caso de uso lo per-
mita, una búsqueda avanzada consistente en buscar por diversos campos de
búsqueda:
Las dos pantallas presentarán, sin embargo, botones que nos permitan enca-
denar con el paso siguiente de cualquiera de los casos de uso en los que se
usarán. En nuestro caso, habrá un botón para ver las recomendaciones y otro
para escribir una recomendación.
CC-BY-SA • PID_00191266 33 Obtención de requisitos
Finalmente, hay una tercera extensión de este caso de uso que permite ver
todas las recomendaciones que ha hecho un mismo usuario:
CC-BY-SA • PID_00191266 35 Obtención de requisitos
Resumen
Finalmente, hemos visto cómo los objetivos, aquello que quieren los stakehol-
ders, no siempre son requisitos directos del sistema informático que hay que
desarrollar. Hay objetivos de nivel general, que suelen afectar no sólo al siste-
ma informático sino también a otros sistemas y personas dentro de la organi-
zación, objetivos a nivel de usuario, que son los que un usuario puede lograr
sólo usando el sistema informático, y objetivos de nivel de tarea, que son pe-
queños objetivos que ayudan a lograr los objetivos de nivel de usuario.
CC-BY-SA • PID_00191266 36 Obtención de requisitos
Podemos identificar los objetivos de nivel más general al más concreto, pero
también podemos hacer un estudio de abajo arriba, en el que estudiamos los
objetivos más concretos que tenemos, y nos preguntamos qué objetivos más
generales pueden esconder. Finalmente, hemos visto que hay técnicas como
i* o KAOS que nos permiten modelar los objetivos de manera formal.
CC-BY-SA • PID_00191266 37 Obtención de requisitos
Actividades
1. Suponed que estáis trabajando en la obtención de requisitos de un sistema de información
para los usuarios de una red de bibliotecas públicas y que ya habéis encontrado los requisitos
más habituales respecto a la consulta del catálogo, el préstamo de libros y su devolución.
Nos planteamos descubrir nuevos requisitos candidatos proponiendo ciertas innovaciones
en los procesos.
2. Proponed un modelo de la interfaz que permita experimentar con algunos de los requisi-
tos candidatos propuestos en la actividad anterior, para ver si a los stakeholders les interesa
realmente y, si es así, averiguar más detalles.
Capacidades SQL
Ejercicios de autoevaluación
1. Indicad dos técnicas de experimentación que nos permitan descubrir requisitos que nadie
conoce a priori.
3. Indicad tres criterios que podemos aplicar para descubrir formas de innovación de los
procesos, que puedan resultar valiosas para el cliente.
4. Indicad un punto en común y una diferencia entre los componentes de software (COTS)
y los servicios.
6. ¿Cuáles son las actividades más típicas a la hora de hacer selección de soluciones preexis-
tentes (COTS y servicios)?
7. A la hora de seleccionar una solución preexistente, ¿todos los requisitos tienen el mismo
peso?
CC-BY-SA • PID_00191266 38 Obtención de requisitos
Solucionario
Actividades
1.
b) Se trata de ofrecer mucha más información de la que se haya considerado hasta ahora.
Una opción, en el supuesto que nos ocupa, sería dar más información sobre la disponibilidad
de ejemplares de un libro. Podríamos indicar en qué periodos ha estado en préstamo un libro
(sin dar información sobre a quién se ha dejado, para respetar su intimidad), y qué préstamos
tiene programados en el futuro. Un posible requisito candidato que puede ser interesante
sería hacer algún tipo de cálculo del número de ejemplares disponibles, de tal manera que
el sistema diera al usuario una estimación de cuántos ejemplares habrá disponibles en una
cierta fecha futura. Así, un usuario podría ver, por ejemplo, que un libro del cual no hay
ningún ejemplar disponible hoy, está previsto que haya dos disponibles la próxima semana,
porque otros usuarios los devuelven.
c) Aquí hay muchos requisitos candidatos posibles. Algunos tienen que ver con formar una
comunidad de usuarios del sistema. Así, los usuarios podrían puntuar libros, escribir reseñas
u opiniones, sugerir correcciones en los datos del catálogo. En esta línea se puede ir tan lejos
como se quiera. Una red social de lectores no es inimaginable.
d) Si suponemos que el sistema que estábamos considerando se tenía que usar por Internet,
el uso de dispositivos móviles seguramente ya ha surgido como una necesidad y, por lo tanto,
no se puede considerar una alternativa sino un requisito ya identificado. Pero en esta línea
podemos pensar en otras opciones. Una posible alternativa podría ser pedir un libro por
correo electrónico a través de una red social: el usuario sencillamente tendría que enviar un
correo o mensaje indicando qué libro quiere (“busco Tirant lo Blanc de Joanot Martorell”) y el
sistema analizaría el correo probando de averiguar qué libro quiere el usuario para reservarlo
en préstamo y responder también por correo. Todavía más sencillo sería automatizar así la
renovación de préstamos.
2. Se propone una pantalla de consulta de los detalles de un libro donde se muestra una
posible representación de las puntuaciones de los usuarios, una lista de comentarios de los
usuarios y una previsión de disponibilidad de ejemplares.
CC-BY-SA • PID_00191266 40 Obtención de requisitos
3.
b) IaaS: Amazon Web Services ofrece varios servicios de infraestructura, como por ejemplo
EC2, que ofrece capacidad de cálculo, SimpleDB o RDS que ofrecen bases de datos, o S3 que
ofrece espacio de almacenamiento de ficheros.
c) SaaS: Hay muchos ejemplos de software ofrecido como servicio. Un par de los ejemplos más
populares en el momento de escribir estos materiales son SalesForce CRM, un CRM ofrecido
como servicio, y Google Apps, la suite de Google que ofrece correo electrónico, calendario y
herramientas ofimáticas, entre otras aplicaciones, todas ellas como servicios.
Un objetivo de nivel de usuario puede ser el envío de un correo electrónico. Este, a su vez,
se puede descomponer en objetivos a nivel de tarea, como por ejemplo, seleccionar los des-
tinatarios, escribir el tema o escribir el mensaje.
Ejercicios de autoevaluación
2. El coste de construir un prototipo no es trivial y el prototipo puede dar una falsa sensación
de producto final, creando expectativas erróneas al cliente. (Véase el subapartado 2.1.)
3. En los materiales se ven los siguientes: innovar el servicio, ofrecer más información, fomen-
tar la participación, dar alternativas y considerar el caso de uso completo. (Véase el subapar-
tado 2.2.)
CC-BY-SA • PID_00191266 41 Obtención de requisitos
4. Ambos términos hacen referencia a soluciones preexistentes, que ofrecen, por lo tanto,
una funcionalidad ya implementada. En el caso de los componentes, lo que adquirimos es
un componente de software que se usa desde el sistema que estamos implementando, en el
mismo ordenador. En el caso de los servicios, en cambio, se trata de sistemas autónomos,
que se ejecutan en los ordenadores de la organización que los ofrece y a los que accedemos
de forma remota. (Véase el apartado 3.)
5. Por un lado hay que elegir una solución preexistente teniendo en cuenta los requisitos
del sistema que se quiere desarrollar, pero por la otra, habrá que contemplar la posibilidad
de adaptar el sistema que se quiere desarrollar a aquello que las soluciones ofrecen. (Véase
el apartado 3.)
1) Definir el criterio de evaluación sobre la base de los requisitos del sistema a desarrollar.
5) Analizar y evaluar los resultados del paso anterior y seleccionar el producto o servicio más
adecuado.
6) Personalizar el servicio o producto para reducir las diferencias respecto de los requisitos
del sistema a desarrollar.
7. No. Algunos requisitos se consideran irrenunciables, de tal manera que se usan para filtrar
la lista de soluciones candidatas antes de evaluar otros requisitos: aquellas soluciones que no
los satisfacen no se consideran. A partir de aquí, cada requisito puede tener un peso diferente
a la hora de analizar los resultados de las evaluaciones y de seleccionar la mejor solución.
(Véase el apartado 2.)
8. No. Hay objetivos de los stakeholders que no puede satisfacer un sistema informático por sí
mismo, puesto que implican a otras personas o entidades dentro de la organización. (Véase
el apartado 3.)
10. Lo más habitual es que se tarden días, semanas o incluso años. (Véase el subapartado
3.1.1.)
11. Objetivos de usuario (subobjetivos que tienen un valor intrínseco para el usuario) u ob-
jetivos de tarea (subobjetivos que sólo tienen valor dentro del escenario que lleva al usuario
a conseguir su objetivo).
CC-BY-SA • PID_00191266 42 Obtención de requisitos
Glosario
caso de uso m Especificación que recoge el contrato entre el sistema y sus stakeholders.
Describe el comportamiento del sistema y las interacciones en varios escenarios, mostrando
cómo el sistema responde a las peticiones y objetivos de los stakeholders.
COTS m Del inglés “commercial off the shelf”. Solución de software ya desarrollada y que se
encuentra disponible en el mercado en una forma tal que se puede usar directamente.
IaaS m Del inglés “infrastructure as a service”. Servicio que ofrece un componente de infra-
estructura como por ejemplo una base de datos relacional.
IKIWISI m Del inglés “I’ll know it when I see it”. Término utilizado para hacer referencia
al hecho de que un stakeholder no puede describir qué es lo que quiere pero que si lo ve lo
reconoce como aquello que quería.
maqueta f Otro nombre para los modelos de la interfaz gráfica de usuario usados en la
modelización.
objetivo de tarea m Dicho de los objetivos que un usuario quiere alcanzar sólo en el
contexto de lograr un objetivo de nivel más general, de usuario.
PaaS m Del inglés “platform as a service”. Servicio que ofrece una plataforma de ejecución
de software.
SaaS m Del inglés “software as a service”. Servicio que ofrece un sistema de software com-
pleto, como por ejemplo una hoja de cálculo.
servicio m Solución de software que se puede contratar de tal forma que la organización
contratada ofrece todo lo necesario para utilizarlo, incluyendo la infraestructura hardware,
el mantenimiento, etc.
stakeholder m y f Persona o entidad con un interés sobre el producto que estamos desa-
rrollando.
CC-BY-SA • PID_00191266 43 Obtención de requisitos
Bibliografía
Bibliografía principal
Leffingwell, D. (2011). Agile Software Requirements. Lean Requirements Practices for Teams,
Programs, and the Enterprise. Addison-Wesley.
Este libro es una buena compilación de técnicas y prácticas relacionadas con los requisitos
del software. En concreto, de este módulo nos interesa la parte III, donde nos habla de la
visión de producto y de cómo afecta a la gestión de requisitos.
Este libro nos da indicaciones sobre cómo hay que aplicar, de manera eficaz, los casos de uso
en la gestión de requisitos. A pesar de centrarse en su documentación, su discusión sobre
objetivos es aplicable también a la obtención de requisitos, independientemente de que fi-
nalmente se documenten mediante casos de uso o no.
Este libro trata, principalmente, de la técnica de las historias de usuario, pero gran parte del
discurso es aplicable a la obtención, gestión y documentación de requisitos con independen-
cia del estilo de documentación.
En esta obra, Alan Davis propone un enfoque pragmático para la obtención y la gestión de
requisitos.
Bibliografía complementaria
Berenbach, B.; Kazmeier, J.; Paulish D. J.; Rudorfer A. (2009). Software & Systems
Requirements Engineering in Practice. Mc Graw Hill.
Referencias bibliográficas
IEEE-SA Standards Board (1998). IEEE Std 830-1998 - IEEE Recommended Practice for Soft-
ware Requirements Specifications. IEEE Computer Society.