Está en la página 1de 8

t

APLICANDO LA FASE DE
ANÁLISIS Y ESPECIFICACIÓN DE
REQUISITOS DE LOS PROYECTOS
A UNA SITUACIÓN REAL.

Experto temático:
Samayda Herrera Betancur
Año: 2020
APLICANDO LA FASE DE ANÁLISIS Y ESPECIFICACIÓN DE REQUISITOS DE LOS
PROYECTOS A UNA SITUACIÓN REAL.

Desarrollo del Contenido

Introducción Unidad 1

Uno de los principales factores de éxito en el desarrollo de herramientas de software,


radica en la correcta identificación de los requisitos del sistema, identificar
adecuadamente las necesidades del cliente, las personas involucradas en el proceso y el
impacto que puede tener el desarrollo en estas personas y en la compañía, traza la ruta
para la implementación de las metodologías que se utilizarán para su desarrollo, y de las
demás actividades relacionadas al ciclo de vida del software.

En esta unidad podrás conocer con más detalle el proceso de elicitación de requisitos, las
diferentes técnicas que se pueden aplicar para obtener la información necesaria para el
desarrollo del proyecto, podrás aprender a documentar la información y aplicar los
conocimientos adquiridos a un proyecto de software.

Elicitación de requisitos:

Es el proceso por medio del cual se identifican las necesidades del cliente para el
desarrollo de software, este procedimiento también es reconocido como ingeniería de
requisitos o ingeniería de requerimientos. La correcta identificación de estos requisitos,
representa un punto de partida sólido para el desarrollo del sistema.

La importancia de una correcta elicitación de requisitos radica principalmente en que los


problemas en esta esta etapa del ciclo de vida del software, afecta directamente las
demás etapas del este, y el costo del cambio generado por no identificar adecuadamente
los requisitos del sistema pueden puede ser 60 o 100 veces superior a si se hubiera
realizado en cambio al principio del proyecto.

Identificar los requisitos de un sistema requiere de comunicación continua con el cliente y


los stakeholders, las personas encargadas de realizar estos procedimientos, debe hacer
uso de diferentes técnicas para identificar correctamente las necesidades del cliente y el
impacto que el desarrollo de la herramienta puede generar sobre las personas y la
compañía en general, ya que en la mayoría de los casos los clientes no saben explicar lo
que realmente necesita.

A continuación, se presenta una imagen que representa los problemas que se pueden
presentar al no tener una adecuada elicitación de requisitos y una mala comunicación con
el cliente.
Figura 1. Necesidades del cliente. Problemas de comunicación en la Ingeniería de
software

Tipo de requerimientos de software

Los requerimientos de software se dividen en dos grandes categorías:

Requerimientos funcionales: están relacionados con las funcionalidades que tendrá la


herramienta de software, también en este tipo de requisitos se especifica la comunicación
que el software puede tener con otros sistemas, e indica explícitamente lo que el software
no debe hacer.
Requisitos no funcionales: estos no hacen referencia a funcionalidades de la
herramienta, sino a características o propiedades que debe tener el sistema, como por
ejemplo rendimiento, disponibilidad, seguridad.

Técnicas para la elicitación de requisitos

Para llevar a cabo la elicitación de requisitos se recomienda utilizar y combinar diferentes


técnicas que permitan extraer del cliente, del proceso y de los stakeholders la información
necesaria para el desarrollo del proyecto, algunas de las técnicas utilizadas para este fin
son:

• Entrevista y cuestionarios
• Análisis de sistemas existentes
• Lluvia de ideas (Brainstorm)
• Prototipos
• Casos de uso
• Observación
• Estudio de documentación
• Taller de trabajo
• Mapa de impacto

Realiza la lectura del documento “La ingeniería de requerimientos y su


importancia en el desarrollo de proyectos de software” (Chaves, 2005)
para conocer acerca de la Ingeniería de requisitos y algunas técnicas y
herramientas utilizadas en el proceso.

Para profundizar un poco más en las técnicas utilizadas para identificar los requisitos de
un sistema podrás visualizar con detalle algunas de estas técnicas:

Casos de Uso:

Con la lectura del documento “Modelado de requerimientos de software”


(Pacheco-Casadiego, 2016) podrás conocer que son los casos de uso, como
se construyen y podrás analizar un ejemplo de la construcción de los casos de
uso para un sistema de ventas.

En los últimos años han aparecido nuevas metodologías, aunque no están creadas
específicamente para realizar el levantamiento de requisitos de software, apoyan
perfectamente la identificación de las necesidades del cliente, en la página oficial del
proyecto podrás descubrir ¿Qué es el Design Thinking?, ¿Quiénes lo utilizan?, ¿Cómo
funciona?, ¿En qué consiste el proceso?, ¿Cuáles son las técnicas?
Visita el sitio web http://www.designthinking.es/inicio/index.php en este
encontraras información de metodología, lo cual te brindará herramientas para
apoyar la identificación de los requisitos del cliente. El documento “Mini guía:
una introducción al Design Thinking” (EtnasSoft, 2012), una descripción
más detallada de algunas de las técnicas.

Documentación de requisitos de software

Las metodologías ágiles también han impactado fuertemente en la forma como se realiza
la elicitación de requisitos y su respectiva documentación, a diferencia de las
metodologías tradicionales, donde el analista realiza un documento donde se especifica
detalladamente los características del sistema como se muestra en el documento
“Especificación de Requisitos según el estándar de IEEE 830” la documentación es
más liviana, ya que según el manifiesto ágil, se valora más los individuos e interacciones
sobre los procesos y herramientas, el software funcionado sobre la documentación
extensiva, la colaboración con el cliente sobre la negociación contractual, la respuesta al
cambio sobre seguir un plan. Estas características hacen que el proyecto sea abierto al
cambio, por lo tanto, la documentación también debe ser flexible.

Para la documentación de los proyectos ágiles se utilizan diferentes técnicas y


herramientas, a continuación, se presentan algunas de ellas:

• Mapa de impacto

Es una herramienta creada por Gojko Adzic, consiste en un mapa mental que es
construido a partir de las conversaciones sostenidas con los stakeholders y los miembros
del equipo de desarrollo, este mapa mental responde a las preguntas:

¿Porqué?: Pregunta por los objetivos del proyecto y las metas que se tienen al
implementarlo
¿Quien?: Identifica quienes son los interesados en el proyecto, las personas que afectan
o son afectados por el mismo.
¿Cómo?: Identifica el impacto que tienen los stakeholders sobre el proyecto y como el
sistema puede ayudarlos para cumplir los objetivos del negocio.
¿Que?: Indaga sobre que se debe desarrollar para ayudar a las personas a cumplir con
los objetivos trazados (funcionalidades a alto nivel).
Figura 2. Mapa de Impacto. Descripción gráfica de elementos que debe contener un mapa
de impacto. Elaboración propia

• User Story Mapping


Luego de tener claros los objetivos del proyecto (¿porqué), los involucrados (¿Quién), el
impacto del proyecto (¿Cómo?), y las funcionalidades o acciones que se deben realizar
(¿Qué?), comenzamos a priorizar las acciones por medio del User Story Mapping.

Por medio del siguiente video puedes conocer cómo construir el User Story Mapping.
https://www.youtube.com/watch?v=txOLx58sT5g&t=114s

• RoadMap o Plan de programación


Es una técnica que permite realizar la planificación de un proyecto de software trazando
los objetivos a corto, mediano y largo plazo. Este permite establecer los plazos
aproximados en los cuales se realizarán entregas funcionales del producto (release), en el
siguiente video podrás conocer un poco sobre cómo realizar un RoadMap.
https://www.youtube.com/watch?v=l5cayIelH5Y

• Creación y priorización de Historias de usuario


Una de las técnicas más utilizadas en metodologías ágiles para documentar los requisitos
del sistema son las historias de usuario, dependiendo de la metodología utilizada pueden
ser escritas diferentes personas, por ejemplo, en la metodología Scrum las historias de
usuario son escritas por el Product Owner, en XP las historias de usuario las debe escribir
el usuario.
Las historias de usuario se generan a partir de las funcionalidades identificadas en el
mapa de impacto y en el User Story Mapping.

En el siguiente video podrás conocer cómo es el proceso de creación de las historias de


usuario y las características que estas deben
tener https://www.youtube.com/watch?v=ky6wFiF5vMk.

Luego de ser creadas las historias de usuario, estas son refinadas con el fin de agregar
detalles, realizar estimaciones del tiempo de ejecución y priorizar el orden en el cual se
van a desarrollar. En la metodología Scrum, por ejemplo, el proceso de refinamiento se
realiza sobre el Product Backlog, ya que este representa el listado de todos los requisitos
que serán implementados durante el desarrollo del proyecto de software.

A partir de la priorización de las historias de usuario del Product Backlog, se seleccionan


las historias de usuario que serán implementadas en cada Spring (Spring Backlog).

Figura 2. Proceso Scrum


Imagen tomada de https://commons.wikimedia.org/wiki/File:Scrum_process.svg

Algunas herramientas que pueden apoyar el proceso de documentación de requisitos


son:

• Trello
• Miro
• Jira

Conclusión

Identificar los requisitos del sistema es una de los procesos principales al momento de
crear productos de software, de la correcta elicitación de requisitos depende en gran
medida el éxito del proyecto. La utilización de las diferentes técnicas mostradas en esta
unidad permite un mayor acercamiento con el cliente y los stakeholders, lo cual conlleva a
mejor documentación y posterior implementación de los requisitos.

Algunas recomendaciones finales al momento de iniciar el proceso de elicitación de


requisitos son:

• Tener una comunicación directa con el cliente y los stakeholders


• Es recomendable escuchar la descripción del problema por parte del cliente, esto
dará una visión global de lo que se desea construir
• Escuchar las ideas o expectativas del cliente con respecto al software
• Tomar nota y apoyarse de elementos escritos, para no olvidar detalles importantes
• En caso de necesitar aclarar algunos requerimientos, se pueden utilizar
Wireframes
• Es importante tener en cuenta la infraestructura sobre la cual será implementado
el sistema
• Tener claro y por escrito el alcance del sistema y las condiciones de pago.

Bibliografía

Chaves, M. A. (2005). La ingeniería de requerimientos y su importancia en el desarrollo de


proyectos de software. InterSedes: Revista de Las Sedes Regionales, 6(10), 1–13.

Design Thinking 24/7. (2020). Qué es y cómo hacer un “ROADMAP - PLAN DE


PROGRAMACIÓN” Temp 13 Ep 5 [archivo de video].
https://www.youtube.com/watch?v=l5cayIelH5Y

Dinngo. (n.d.). Design Thinking en Español. Retrieved September 23, 2020, from
http://www.designthinking.es/inicio/index.php

EtnasSoft. (2012). OpenLibra | Mini guía: una introducción al Design Thinking (Institute of
Design at Stanford (Ed.)). OpenLibra. https://openlibra.com/es/book/mini-guia-una-
introduccion-al-design-thinking

Pacheco-Casadiego, J. M. (2016). Modelado de requerimientos de softwares. In


Documento de docencia (Bogotá: Ed, Vol. 18). https://doi.org/10.16925/greylit.1852

Rua, Á. E.-C. (2018a). Cómo crear historias de usuario en SCRUM [archivo de video].
https://www.youtube.com/watch?v=ky6wFiF5vMk

Rua, Á. E.-C. (2018b). User Story Mapping [archivo de video].


https://www.youtube.com/watch?reload=9&v=txOLx58sT5g&t=114s

También podría gustarte