Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEMANA 6
Gestión de requerimientos
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACC-2019
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
utilizar los contenidos para fines comerciales de ninguna clase. 1
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
1.
APRENDIZAJE ESPERADO
Estructurar requerimientos para un
proyecto de software, aplicando técnicas
y buenas prácticas.
IACC-2019
2
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
IACC-2019
3
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
INTRODUCCIÓN
Como se ha estudiando en a lo largo de esta estructurado el paso a paso de la realización
asignatura, la gestión de requerimeintos logra del proyecto, siempre teniendo en cuenta los
establecer lo que los sistemas deben hacer en requerimientos de software y los
cuanto a sus tareas, restrinciones y cualquier requerimientos de sistemas. Los primeros se
solicitud realizada por la organización, para originan en los requerimientos y
así poder lograr y alcanzar los propositos especificaciones de sistema, mientras que los
reales de proyecto. segundos radican en las necesidades del
usuario.
En relación a esto, se presentan una serie de
actividades que van a definir cómo será
"Hoy en día la mayoría del software existe no para resolver un problema, sino para actuar de
interfaz con otro software”
I. O. Angell
IACC-2019
4
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
1. GESTIÓN DE REQUERIMIENTOS
1.1. ACTIVIDADES DE GESTIÓN DE REQUERIMIENTOS
Las actividades fundamentales que abarcan la gestión de requerimientos según Báez (2019), son
tres:
Generación de requerimientos
Esta primera actividad tiene la habilidad de entender las necesidades de los interesados, y
recopilarlos en un repositorio para futuros análisis. Estas necesidades pueden ser expresadas de
forma abstracta y en términos de problemas o bien concretos y en términos de una solución. En
ambos casos las necesidades son conocidas como características.
Evaluación de requerimientos
Especificación de requerimientos
o Investigación
En esta fase, se recopilan requerimientos entre los usuarios y los miembros del equipo de desarrollo.
Para cada uno de ellos se formulan cuestiones similares acerca de cuáles son los logros, las
restricciones y las herramientas o procesos disponibles, solo cuando estos requerimientos sean bien
entendidos, se pueden desarrollar los requerimientos funcionales.
Se debe tener muy presente que los requerimientos no pueden ser completamente definidos al
inicio del proyecto. Algunos cambiarán, bien porque sean simplemente suprimidos, o debido a los
intereses y modificaciones que afecten al ciclo de vida del proyecto.
IACC-2019
5
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
Por ello, la flexibilidad en los planteamientos y las operaciones, son condiciones para el éxito.
Mientras que muchas organizaciones todavía utilizan solo documentos para gestionar los
requerimientos, otras gestionan a partir de herramientas de software. Estas herramientas permiten
gestionar los requerimientos en una base de datos y acostumbran a tener funciones para
automatizar la trazabilidad, como por ejemplo permitir la vinculación electrónica entre la jerarquía
de requerimientos, el control de versiones y la gestión de cambios.
o Viabilidad
Los costes de los requerimientos: para los requerimientos de usuario, se comparan los
costes actuales con los futuros, una vez se haya implementado el nuevo sistema.
Los costes de operación: indicarán qué departamento tiene presupuesto para ello y cuál es
el retorno de inversión para este producto, incluyendo la reducción de costes si se desarrolla
un nuevo sistema más fácil de utilizar.
Los costes técnicos: están relacionados con los costes de desarrollo de software y los costes
del hardware. El equipo debe indagar si los nuevos equipos y herramientas añadirán
suficiente potencia de procesamiento para transferir suficiente carga de trabajo del usuario
al sistema que permita un ahorro significativo de tiempo y costes al personal.
El entregable para el estadio de estudio de viabilidad son la programación y el presupuesto
para el proyecto.
o Diseño
Asumiendo que los costos han sido determinados con precisión y que los beneficios a obtener son
suficientemente importantes, el proyecto puede pasar al estadio de diseño. En dicho estadio, la
actividad principal de la gestión de requerimientos es comparar los resultados del diseño con el
documento de requerimientos, para asegurarse de que el trabajo está contemplado dentro del
alcance.
o Implementación y test
IACC-2019
6
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
de diseño de interfaz de usuario y trasladado al equipo de diseño, cuando este esté listos para
desarrollar la interface. Esto ahorra tiempo y hace el trabajo mucho más fácil.
o Lanzamiento
Podría pensarse que la gestión de requerimientos finaliza al entregar el producto, pero no es del
todo cierto. Desde este punto, se recopilan los datos provenientes de la aceptación de la aplicación,
y utilizados posteriormente en la fase de investigación de la nueva generación o versión. Entonces,
el proceso empieza de nuevo.
Es importante identificar y establecer el nivel de detalle que se requiere hacia los diferentes casos
de uso, reglas de negocio, características y atributos. Es necesario seleccionar aquellas asociaciones
que son de interés relevante para el análisis, para su posterior análisis ante un posible cambio en
IACC-2019
7
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
los elementos que se puedan ver afectados. Debido a esto, resulta fundamental que la trazabilidad
siempre esté actualizada y refleje la realidad del proyecto en tiempo real.
Disponer de una buena trazabilidad de requisitos nos permite realizar el control y apoyo para la
toma de decisiones en el proyecto. Por ejemplo, una de las ventajas principales que ofrece la
trazabilidad es poder determinar si todos los requisitos han sido considerados y si las instancias que
han sido generadas pueden asociarse con un requisito válido.
Una de las técnicas más utilizadas para recoger la información bidireccional de trazas, son las
matrices de trazabilidad. Estas muestran diversos elementos en filas y columnas (por ejemplo,
requisitos y pruebas) indicando en cada celda de la matriz si los elementos están o no trazados y en
qué dirección. Este tipo de técnicas permite un análisis gráfico de la trazabilidad de requisitos y la
gestión de su impacto ante posibles cambios.
Se han propuesto muchos enfoques distintos para recabar y preparar los requerimientos en forma
colaborativa. Cada uno utiliza un escenario un poco diferente, pero todos son variantes de los
siguientes lineamientos básicos:
• Tantos ingenieros de software como otros participantes dirigen o intervienen en las reuniones.
• Se sugiere una agenda con suficiente formalidad para cubrir todos los puntos importantes, pero
con la suficiente informalidad para que estimule el libre flujo de ideas.
IACC-2019
8
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
• Se utiliza un “mecanismo de definición” (que pueden ser hojas de trabajo, tablas sueltas, etiquetas
adhesivas, pizarrón electrónico, grupos de conversación o foro virtual).
Para comenzar, el analista de sistema debe diferenciar entre tres tipos de requerimientos:
Un método para diferenciar los requerimientos esenciales del resto de requerimientos es intentar
ordenarlos por importancia. Aquellos que no puedan ser ordenados o priorizados son
requerimientos esenciales, y los que permitan ser priorizados son requerimientos deseables o bien
requerimientos opcionales.
IACC-2019
9
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
La priorización de los requerimientos es un trabajo que afecta básicamente a los propietarios y a los
usuarios del sistema, bajo la supervisión del analista del sistema. Aunque en la literatura existen
varios métodos para priorizar requerimientos, la realidad muestra que una buena clasificación y
priorización se presenta en la mayoría de las ocasiones de la experiencia.
Una vez priorizados y categorizados los requisitos, es recomendable utilizar herramientas de gestión
de requisitos que nos faciliten la comprobación del cumplimiento de dichos requisitos.
La técnica MoSCoW no se limita a indicar si un requisito es de prioridad baja, media o alta. Esta
técnica ayuda a separar los requisitos en cuatro grandes categorías:
M – Must: requisitos fundamentales y obligatorios para satisfacer las necesidades del negocio.
Si estos no se cumplen, se verá comprometido el éxito del servicio.
S – Should: requisitos que deberían ser cumplidos en la medida de lo posible. El éxito del
proyecto o servicio no dependerá directamente del cumplimiento de estos requisitos. Estos
requisitos pueden ser satisfechos mediante soluciones temporales, o llegado el momento si
fuera necesaria, podrían ser prescindibles si existiera alguna causa que lo justificara.
C – Could: requisitos que son interesantes que cumpla el servicio. Se trata de requisitos
adicionales que se implementarán en el caso de disponer de tiempo y presupuesto para ello.
Estos requisitos mejorarían el rendimiento del servicio, pero podrían ser eliminados fácilmente.
W – Won’t: requisitos que se ha decidido no implementar de momento, pero que serán tomados
en cuenta en el futuro con el objetivo de mejorar el servicio o producto.
Esta categorización ayuda a marcar una “línea roja”, identificando aquellos requisitos que
obligatoriamente deben ser incluidos en el desarrollo del servicio. Es muy fácil de entender por
todas las partes interesadas, y de poner en práctica, ya que se define claramente cuáles son los
requisitos básicos sin los cuales no se pondrá en producción el servicio.
El Timeboxing hace referencia a una técnica ágil empleada para gestionar el desempeño del trabajo
y el alcance. Básicamente consiste en establecer una duración máxima de tiempo: tanto de inicio
IACC-2019
10
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
como de fin. Durante dicho tiempo, una iteración o sprint en scrum, se espera que el equipo de
desarrollo, manteniendo un ritmo constante, sea capaz de desarrollar un conjunto de
funcionalidades previamente establecidas.
Priorizar requisitos: para determinar aquellos que se deberían cumplir en la primera versión
o producto y aquellos que pueden llevarse a cabo en sucesivas versiones.
Establecer líneas base de los requisitos: para asegurar que cualquier modificación en los
requisitos que cambie la línea base se trata como cambios de alcance.
Comunicación abierta: para asegurar que la información relacionada con los requisitos se
comunica de forma consistente. Una comunicación abierta también implica comunicar a la
gente correcta y al conjunto mínimo de personas
Gestión de cambios de los requisitos: es esencial gestionar estos cambios de forma efectiva
y eficiente.
Uso de herramientas para la gestión de requisitos: para facilitar la gestión de requisitos
Mantener trazabilidad de requisitos: para llevar un seguimiento de la vida de un requisito
Establecer un plan de mejora de procesos para la ingeniería de requisitos: para cumplir
con las necesidades actuales y futuras de forma más eficiente y con mayor calidad.
Formar a los analistas de requisitos: para asegurar que los analistas de requisitos tengan el
conocimiento, entre otros aspectos, de cómo escribir buenos requisitos.
IACC-2019
11
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
COMENTARIO FINAL
Al tener claras las actividades a realizar la gestión de requerimientos, es mucho más fácil para el
ingeniero de software, debido a que ya todas las tareas están bien definidas para su próxima
ejecución. Esto hace que la calidad del producto mejore dentro de lo posible y que se puedan
gestionar las peticiones de algún cambio en las especificaciones de los requisitos. Junto a esto se
debe considerar la trazabilidad de los requisitos en la gestión de proyecto.
Se debe acotar que la gestión de requerimientos puede cambiar en la medida de los avances del
proyecto y sus actividades podrán sufrir alguna variante. Esto no implica que el trabajo realizado
esté errado, solo que mediante las necesidades que vayan surgiendo, se debe ir adaptando el
proceso para lograr una buena elaboración del sistema.
IACC-2019
12
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
REFERENCIAS
Fernández, V. (2006). Desarrollo de sistemas de información. Barcelona: Ediciones UPC
http://blog.masterinprojectmanagement.net/gestion-de-requerimientos-v-actividades/
Pressman, R. (2010). Ingeniería del software. Un enfoque práctico. 7.ª edición. México:MC Graw
Hill
/tecnologia/275-priorizacion-de-requisitos-tecnica-moscow
IACC-2019
13
SEMANA 6 – INGENIERÍA EN REQUERIMIENTO DE SOFTWARE
IACC-2019
14