Obtención de requisitos

Índice
- Introducción
- Objetivos
- 1.Técnicas de obtención de requisitos
- 2.Descubrimiento de requisitos
- 3.Soluciones preexistentes
- 4.Objetivos y requisitos
- 4.1.Relación entre objetivos y requisitos
- 4.2.Organización de los objetivos
- 4.2.1.Objetivos generales
- 4.2.2.Objetivos de usuario y de tarea
- 4.2.3.Clasificación de objetivos
- 4.3.Identificación de requisitos de abajo a arriba (bottom-up)
- 4.4.Relación de los stakeholders y los objetivos
- 4.5.Modelado de los objetivos
- 5.Caso práctico
- Resumen
- Actividades
- Ejercicios de autoevaluación
- Solucionario
- Glosario
- Bibliografía
Introducción
Objetivos
-
Conocer las principales técnicas de obtención de requisitos.
-
Conocer técnicas para descubrir requisitos que los stakeholders aún no saben que tienen.
-
Saber evaluar el impacto sobre los requisitos de la existencia de una solución predefinida.
-
Conocer la relación entre objetivos y requisitos, así como tener una idea muy básica de en qué consiste el modelado de objetivos.
1.Técnicas de obtención de requisitos
1.1.Brainstorming
1.2.Modelado de roles de usuario

1.3.Entrevistas y cuestionarios

2) Evitar las respuestas condicionadas
3) Evitar respuestas limitadas por el conocimiento actual
4) Aportar información sobre el coste de las alternativas
1.4.Observación y prototipado

1.5.Listas predefinidas

2.Descubrimiento de requisitos
2.1.Innovación en los procesos
3.Soluciones preexistentes
3.1.Selección de componentes
-
Definir el criterio de evaluación sobre la base de los requisitos del sistema a desarrollar.
-
Buscar productos y servicios candidatos.
-
Filtrar la lista de candidatos sobre la base de requisitos irrenunciables (aquellos que no son negociables).
-
Evaluar los candidatos restantes según los criterios definidos.
-
Analizar y evaluar los resultados del paso anterior y selección del producto o servicio más adecuado.
-
Personalizar el servicio o producto para reducir las diferencias respecto de los requisitos del sistema a desarrollar.
-
No soportado: 0 puntos
-
Soportado a través de una librería de terceros: 1 punto
-
Soportado de forma integrada: 2 puntos
4.Objetivos y requisitos
4.1.Relación entre objetivos y requisitos
4.2.Organización de los objetivos

“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, cuando 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”.
-
Objetivos generales: expresan por qué tenemos que desarrollar el producto.
-
Objetivos de usuario: expresan qué esperan los usuarios de nuestro sistema.
-
Objetivos de tarea: expresan qué tareas tienen que llevar a cabo los usuarios para conseguir los objetivos de usuario.
4.2.1.Objetivos generales
4.2.2.Objetivos de usuario y de tarea

4.2.3.Clasificación de objetivos
-
“Consolidar la presencia internacional de nuestra empresa” es un objetivo general que puede tardar años en conseguirse y que no es un requisito de nuestro sistema (no le podemos pedir a nuestro sistema que consolide la presencia internacional de la empresa por sí mismo).
-
“Adaptar el sistema de información de venta de viajes [a un entorno internacional]” es un objetivo general que apoya el objetivo anterior (y, por lo tanto, es más concreto). En este caso, se podría satisfacer en cuestión de meses pero, de nuevo, no es un requisito de nuestro sistema, sino que todavía habrá que concretar qué requisitos tiene que satisfacer nuestro sistema para que podamos decir que está adaptado a un entorno internacional.
-
“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).
-
“Ver el precio total” es un objetivo de tarea. No aporta ningún valor por sí mismo si no es como parte del objetivo “Comprar un viaje”. Lo mismo pasa con “el sistema calcule automáticamente la conversión entre divisas”; es parte del escenario de compra del viaje.
-
“Crearán una tabla en la base de datos con la cotización más reciente de la divisa del país en cuestión” y “actualizarán esta información mediante un proceso automático que se ejecutará cada tres horas” son parte de la solución y, por lo tanto, no forman parte de los requisitos del sistema.
4.3.Identificación de requisitos de abajo a arriba (bottom-up)
4.3.1.La técnica de los cinco porqués
-
Porque quiere que el cliente pueda consultar su opinión, ¿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é?
-
Porque el cliente se va de vacaciones y no quiere organizarse él el viaje, ¿por qué?
-
Porque el cliente no está familiarizado con el destino.
4.4.Relación de los stakeholders y los objetivos
4.5.Modelado de los objetivos
-
Cada objetivo del modelo (excepto los objetivos estratégicos) está justificado 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 puede refinar como colección de subobjetivos que explican cómo se tiene que obtener el objetivo.
5.Caso práctico
5.1.Clasificación de objetivos
5.1.1.Objetivos obtenidos de las entrevistas
5.1.2.Objetivos de nivel general/usuario/tarea
-
Conseguir nuevos clientes
-
Mantener los clientes existentes
-
Asesorar adecuadamente a los clientes de Internet.
-
Que los clientes tengan que ir a la agencia aunque sea una vez.
-
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.
-
Que el pago se tenga que hacer en la agencia.
-
Que el cliente pueda pedir cita con el agente de viajes (también nos ayuda con este objetivo).
5.2.Modelo de la interfaz gráfica de usuario
-
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
-
Sí existe busca avanzada
-
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
-
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







Resumen
Actividades
b) Proponed un requisito candidato consistente en ofrecer más información.
c) Proponed un requisito candidato consistente en fomentar la participación.
d) Proponed un requisito candidato consistente en dar alternativas.
e) Proponed un requisito candidato consistente en considerar el caso de uso completo.
b) Dad un ejemplo de IaaS (infrastructure as a service)
c) Dad un ejemplo de SaaS (software as a service)
Restricciones de integridad con nombres
Restricciones NOT NULL
Valores por defecto en las columnas
Uso de funciones para indicar los valores por defecto de las columnas
Apoyo de claves foráneas
Actualización de claves foráneas (on delete update)
Ejercicios de autoevaluación
Solucionario

Restricciones Not Null: 2
Valores por defecto en las columnas: 2
Uso de funciones para indicar los valores por defecto de las columnas: 0
Apoyo de claves foráneas (Solo en InnoDB): 1
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, fomentar la participación, dar alternativas y considerar el caso de uso completo. (Véase el subapartado 2.2.)
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.)
6. Los pasos típicos son:
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.)
9. No directamente. Algunos requisitos pueden ser el resultado de descomponer un objetivo de los stakeholders en partes más pequeñas que el sistema pueda satisfacer. En todo caso, sin embargo, todos los requisitos que no sean objetivos por sí mismo tienen que ayudar a los stakeholders a alcanzar sus objetivos.
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 objetivos de tarea (subobjetivos que sólo tienen valor dentro del escenario que lleva al usuario a conseguir su objetivo).
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.
- historia de usuario f
- Técnica de documentación de requisitos que hace énfasis en la comunicación verbal y minimiza la documentación escrita. Una historia de usuario está formada por tres componentes: el nombre, la conversación entre los desarrolladores y los clientes y la lista de pruebas que hay que hacer para verificar que se ha implementado correctamente.
- IaaS m
- Del inglés “infrastructure as a service”. Servicio que ofrece un componente de infraestructura 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.
- modelización f
- Técnica de experimentación de requisitos consistente en construir modelos de la interfaz gráfica del usuario para experimentar con los requisitos.
- objetivo m
- Aquello que los stakeholders esperan de nuestro sistema.
- objetivo de organización m
- Objetivos de nivel muy general que a menudo afectan al conjunto de la organización y que podemos tardar días, semanas o incluso años en alcanzar. En muchos casos, no los puede satisfacer un sistema informático por sí mismo.
- objetivo de usuario m
- Objetivos con un valor intrínseco para el usuario.
- 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.
- prototipado m
- Técnica de experimentación de requisitos consistente en construir un software con aspecto similar al producto final con el mínimo coste posible para poder experimentar con un subconjunto de los requisitos candidatos. Nada delo desarrollado como prototipo se aprovecha para la construcción del producto final.
- requisito m
- Condición exigida o necesaria para una cosa. En el campo de la ingeniería del software, necesidad o restricción que afecta a un producto de software, definiendo qué soluciones son adecuadas (lo cumplen) y cuáles no (no lo cumplen) desde el punto de vista de esta necesidad o restricción. Una solución será adecuada si satisface todos los requisitos del sistema.
- SaaS m
- Del inglés “software as a service”. Servicio que ofrece un sistema de software completo, 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 desarrollando.