Está en la página 1de 63

Por: Cristian David Romero

INGENIERÍA DE
REQUISITOS
POR: CRISTIAN DAVID ROMERO
CONTENIDO Por: Cristian David Romero

1. Introducción a la Ingeniería de Requisitos [4]

¿Qué es la ingeniería de requisitos? [7]


Importancia de la gestión de requisitos [9]
Ciclo de vida de los requisitos [13]
Roles y responsabilidades en la gestión de requisitos [17]

2. Obtención de requisitos [18]


Técnicas para la elicitación de requisitos [20]
Entrevistas, encuestas, grupos focales y observación [22]
Análisis de stakeholders [31]

Priorización de requisitos [32]


Por: Cristian David Romero

CONTENIDO
3. Especificación de Requisitos [35]
Características de una buena especificación de requisitos [37]
Requisitos funcionales y no funcionales [39]
Lenguajes naturales y lenguajes formales [41]
Diagramas de casos de uso, diagramas de clases y otros
diagramas UML [42]
Prototipos y mockups [44]

4. Validación y Verificación de Requisitos [46]


Técnicas de validación y verificación [47]
Pruebas de requisitos, análisis estático y revisiones [50]
Gestión de cambios en los requisitos [55]

5. Herramientas para la Ingeniería de Requisitos [57]


Herramientas CASE [58]
Herramientas de gestión de requisitos [59]
Herramientas de colaboración [60]
Por: Cristian David Romero

INTRODUCCIÓN A LA
INGENIERÍA DE REQUISITOS
Por: Cristian David Romero

¿QUÉ ES LA INGENIERÍA?

La ingeniería es una disciplina que aplica el conocimiento científico y


tecnológico para mejorar la vida de las personas.

La ingeniería proporciona las herramientas, técnicas y conocimientos


necesarios para hacerlo de manera segura, eficiente y estéticamente
agradable.
Por: Cristian David Romero

¿QUÉ ES UN REQUISITO?
Es una condición o necesidad que debe cumplirse para que un producto o servicio sea considerado
satisfactorio. En el contexto del desarrollo de software, los requisitos se clasifican en dos categorías
principales:

Requisitos no funcionales
Requisitos funcionales
Definen las características generales del
Describen las funcionalidades del sistema,
sistema, como la performance, la
es decir, lo que el sistema debe hacer.
seguridad y la usabilidad.
Se expresan en términos de acciones,
Se expresan en términos de restricciones,
resultados y comportamiento del sistema.
cualidades y atributos del sistema.
Por: Cristian David Romero

¿QUÉ ES LA INGENIERÍA DE
REQUISITOS?

La Ingeniería de Requisitos es un proceso que se encarga de:


Definir
Documentar
Mantener los requisitos de un sistema.

Estos requisitos son las características y funcionalidades que el sistema debe cumplir para satisfacer
las necesidades de los usuarios y del negocio.
Por: Cristian David Romero
La falta de comunicación y la mala gestión de los requisitos pueden generar problemas en un proyecto de

software.

Viñeta 1: El usuario tiene una idea general de lo que quiere, pero no


la ha definido en detalle.
Viñeta 2: El líder de proyecto interpreta la idea del usuario y la
convierte en un plan de proyecto.
Viñeta 3: El analista diseña el software en base al plan del proyecto.
Viñeta 4: El programador escribe el código del software en base al
diseño del analista.
Viñeta 5: El consultor de negocios describe el software a los
stakeholders en términos de sus beneficios.
Viñeta 6: La documentación del proyecto describe el software de
manera técnica.
Viñeta 7: El equipo de operaciones instala el software en el entorno
de producción.
Viñeta 8: El cliente paga por el software de acuerdo a un contrato.
Viñeta 9: El equipo de soporte técnico ayuda a los usuarios con
problemas con el software.
Viñeta 10: Al final, el usuario puede no estar satisfecho con el
software porque no cumple con sus expectativas reales.

Ilustración de las diferentes etapas de un proyecto de software, desde la perspectiva de diferentes stakeholders. Cada viñeta muestra
cómo cada persona interpreta o ve el proyecto, lo que puede generar confusiones y problemas.
Por: Cristian David Romero

IMPORTANCIA EN LA GESTIÓN DE REQUISITOS

En el mundo de la ingeniería de software, la gestión de requisitos

juega un papel fundamental para el éxito de cualquier proyecto.

Se trata de un proceso continuo que abarca:


Identificación
Análisis
Documentación
Priorización
Gestión
de los requisitos de un software.
Por: Cristian David Romero

¿POR QUÉ ES IMPORTANTE?

1. Asegura que el software cumpla con las


necesidades de los usuarios 2. Reduce errores y costos

Claridad y precisión: Define lo que el software debe hacer Prevención de errores: La detección temprana de errores
de forma clara y precisa, evitando ambigüedades y en los requisitos evita costosas correcciones en etapas
malentendidos. posteriores del desarrollo.
Alineación con las expectativas: Garantiza que el software Optimización del tiempo y recursos: Un buen análisis de
se ajuste a las necesidades y expectativas de los usuarios, requisitos permite optimizar el uso del tiempo y recursos
stakeholders y clientes. del equipo.
Satisfacción del cliente: Un software que cumple con los Mejora la calidad del software: Un software con
requisitos del cliente genera mayor satisfacción y requisitos bien definidos tendrá una mejor calidad y
fidelización. menor cantidad de errores.
Por: Cristian David Romero

¿POR QUÉ ES IMPORTANTE?

3. Facilita la comunicación y colaboración 4. Permite una mejor planificación y gestión del


proyecto

Lenguaje común: Brinda un lenguaje común para Estimaciones precisas: Facilita la estimación
que todos los involucrados en el proyecto precisa del tiempo, recursos y costos del
comprendan los objetivos del software. proyecto.
Mejora la comunicación: Facilita la comunicación Planificación efectiva: Permite una

entre el equipo de desarrollo, los usuarios y los planificación más efectiva del proyecto al
stakeholders. tener una visión clara de los objetivos.
Mejora la colaboración: Promueve la colaboración Mejora la gestión del proyecto: Facilita la
entre diferentes equipos y departamentos. gestión del proyecto al tener un seguimiento
de los requisitos y su cumplimiento.
Por: Cristian David Romero

La gestión de requisitos es una disciplina fundamental en

la ingeniería de software que permite:

Desarrollar software Reducir errores y Facilitar la Permitir una mejor


que satisfaga las costos. comunicación y planificación y
necesidades de los colaboración. gestión del
usuarios. proyecto.

La gestión de requisitos no es una tarea opcional , sino una inversión que se traduce en un software de mayor calidad, menor costo y
mayor satisfacción del cliente.
Por: Cristian David Romero

Ciclo de vida de los requisitos

En la ingeniería de software, el ciclo de vida de


los requisitos es un marco que describe las
diferentes etapas que atraviesan los requisitos
desde su identificación hasta su validación.
Por: Cristian David Romero

Etapas del ciclo de vida:

Se analizan las Se verifica que los


Se identifican y necesidades para Se documentan los requisitos sean
documentan las comprenderlas en requisitos de forma correctos, completos y
necesidades de los profundidad y clara, precisa y consistentes con las
usuarios y stakeholders. determinar su completa. necesidades de los
viabilidad. usuarios.

1. Elicitación 2. Análisis 3. Especificación 4. Validación

Se actualiza y mantiene
Se ordenan los Se controlan y gestionan
la documentación de los
requisitos de acuerdo a los cambios en los
requisitos a lo largo del
su importancia y requisitos a lo largo del
ciclo de vida del
necesidad. proyecto.
software.

5. Priorización 6. Gestión de 7. Mantenimiento


cambios
Por: Cristian David Romero

Metodologías para el ciclo de vida

Cascada Espiral Ágil


Un enfoque lineal en el Un enfoque iterativo en Un enfoque flexible que
que cada etapa se el que se realizan ciclos se adapta a los cambios
completa antes de pasar de desarrollo y en las necesidades de
a la siguiente. evaluación. los usuarios.
Por: Cristian David Romero

Beneficios

Mejora la calidad Reduce errores y Facilita la Permite una mejor


del software costos comunicación y planificación y
colaboración gestión del
proyecto
Por: Cristian David Romero

Roles y responsabilidades en la gestión de requisitos

Ingeniero de requisitos Cliente/usuario


Elicitar, analizar y documentar Definir sus necesidades y
los requisitos. expectativas.
Priorizar los requisitos y Validar los requisitos y
gestionar los cambios. proporcionar feedback.
Asegurar la trazabilidad de los Colaborar con el equipo de
requisitos. desarrollo para asegurar que el
Colaborar con los stakeholders software cumpla con sus
y el equipo de desarrollo. necesidades.

Gerente de proyecto Equipo de desarrollo


Planificar y gestionar el Implementar los requisitos en
proceso de gestión de el software.
requisitos. Informar al ingeniero de
Asegurar que el proceso se requisitos sobre cualquier
cumpla en tiempo y forma. problema con los requisitos.
Resolver conflictos y tomar Colaborar con el ingeniero de
decisiones. requisitos para asegurar que el
software cumpla con los
requisitos.

Otras responsabilidades: Stakeholders, Testers, Arquitecto de software, entre otros.


Por: Cristian David Romero

OBTENCIÓN DE REQUISITOS
Por: Cristian David Romero

Elicitación

La elicitación de requisitos es el proceso de:


identificar
Comprender
Documentar
las necesidades de los usuarios y stakeholders
para un proyecto de software. Es una etapa
fundamental para el éxito del proyecto, ya que
define lo que el software debe hacer.
Por: Cristian David Romero

Técnicas

Entrevistas Observación
Individuales o en grupo: Observar a los usuarios en su
Permiten obtener información entorno de trabajo.
detallada de los usuarios y Permite identificar necesidades
stakeholders. que los usuarios no son
Pueden ser abiertas, cerradas o conscientes de tener.
semi-estructuradas. Puede ser difícil de realizar y
Es importante preparar las requiere un buen observador.
preguntas de antemano y tener
un buen entrevistador.

Cuestionarios Brainstorming
Permiten obtener información Técnica creativa para generar
de un gran número de usuarios ideas en grupo.
de forma rápida y económica. Permite obtener una gran
Pueden ser difíciles de diseñar cantidad de ideas en poco
y pueden no ser lo tiempo.
suficientemente detallados. Puede ser difícil de controlar y
no todas las ideas serán válidas.
Por: Cristian David Romero

Técnicas

Prototipos Análisis de documentos


Permite a los usuarios Permite obtener información
visualizar y probar el software sobre el negocio, los usuarios y
antes de que esté terminado. el software actual.
Puede ayudar a identificar Puede ser una fuente valiosa de
errores y omisiones en los información, pero puede ser
requisitos. difícil de encontrar y analizar la
Puede ser costoso y llevar documentación relevante.
tiempo desarrollar un
prototipo.

JAD (Joint Application


Development)
Técnica que involucra a los La elección de las técnicas más adecuadas dependerá
usuarios en el proceso de de diversos factores, como:
desarrollo del software.
Permite asegurar que el El tipo de proyecto.
software cumpla con las Las necesidades de los usuarios.
necesidades de los usuarios. El tiempo y el presupuesto disponibles.
Puede ser costoso y llevar
tiempo organizar sesiones de
JAD.
Por: Cristian David Romero

ENTREVISTA
Se utiliza para comprender las necesidades de los usuarios y
stakeholders. A través de conversaciones guiadas, se recolecta
información crucial para definir el alcance y las
funcionalidades del software a desarrollar.

Identificar y comprender las necesidades del negocio, los


usuarios y el sistema.
Obtener información sobre el problema a resolver, los
objetivos del software y las expectativas de los
stakeholders.
Validar y complementar la información obtenida por otras
técnicas de elicitación.
Por: Cristian David Romero

¿CÓMO SE REALIZA UN A ENTREVISTA PARA ELICITACIÓN DE


RE QUERIMIENTOS?

Preparación: Desarrollo:

Definir objetivos: ¿Qué Introducción: Presentación, objetivos de la


información se busca obtener? entrevista, preguntas.
Identificar entrevistados: Preguntas abiertas: Indagar necesidades,
¿Quiénes son las personas clave opiniones y expectativas.
con información relevante? Preguntas de seguimiento: Profundizar en
Preparar preguntas: Abiertas, puntos específicos.
cerradas, de seguimiento. Escuchar activamente: Mostrar interés,
Planificar la entrevista: Duración, tomar notas, aclarar dudas.
lugar, materiales. Validar la información: Resumir lo que se ha
dicho y confirmar con el entrevistado.
Por: Cristian David Romero

¿CÓMO SE REALIZA UN A ENTREVISTA PARA ELICITACIÓN DE


RE QUERIMIENTOS?

Cierre: Tipos de preguntas:

Agradecer la participación del Abiertas: ¿Qué?, ¿Por qué?, ¿Cómo?


entrevistado. Cerradas: Sí/No, opciones de respuesta.
Resumir los puntos clave de la De seguimiento: ¿Podría explicar más
entrevista. sobre…?
Acordar próximos pasos. De escenario: ¿Qué haría si…?
Por: Cristian David Romero

ENCUESTA
Permite recolectar información de un gran número de
usuarios y stakeholders de forma rápida y económica. Son
útiles para obtener información general sobre:

Necesidades y expectativas del software.


Prioridades de los usuarios y stakeholders.
Opiniones sobre funcionalidades, diseño y usabilidad.
Información demográfica de los participantes.
Por: Cristian David Romero

¿CÓMO SE REALIZA UN A ENCUESTA PARA ELICITACIÓN DE


RE QUERIMIENTOS?

Preparación: Realización:

Definir objetivos : ¿Qué información se Distribuir la encuesta: Correo electrónico, redes


busca obtener? sociales, página web.
Identificar público objetivo: ¿Quiénes Monitorizar la participación: Tasa de respuesta,
deben responder la encuesta? tiempo de respuesta.
Diseñar preguntas: Claras, concisas y sin Realizar análisis de datos: Tabular resultados,
sesgos. identificar tendencias.
Seleccionar tipo de preguntas: Cerradas,
abiertas, escalas de Likert. Cierre:
Elegir la plataforma de encuesta: Google
Forms, SurveyMonkey, etc. Comunicar los resultados a los participantes.
Definir periodo de respuesta. Utilizar la información para definir los requerimientos
del software.
Por: Cristian David Romero

GRUPOS FOCALES
Permite obtener información detallada y profunda de un
grupo pequeño de usuarios y stakeholders a través de una
discusión moderada.

Es una reunión con 5 a 10 personas guiada por un moderador


que busca:

Explorar en profundidad las necesidades, opiniones y


expectativas del público objetivo.
Identificar puntos de vista diversos sobre el software.
Generar ideas y soluciones creativas.
Obtener feedback sobre funcionalidades, diseño y
usabilidad.
Por: Cristian David Romero

¿CÓMO SE REALIZA UN GRUPO FOCAL PARA ELICITACIÓN DE


RE QUERIM IENTOS?

Preparación: Desarrollo:
Introducción: Presentación del moderador, objetivos

Definir objetivos: ¿Qué información se busca del grupo focal.

obtener? Discusión: Preguntas abiertas, debate entre

Reclutar participantes: Representativos del participantes.

público objetivo. Moderación: Mantener el foco, estimular la

Desarrollar una guía de preguntas: Abiertas y participación, registrar ideas.

que inviten a la reflexión. Cierre: Resumen de la discusión, próximos pasos.

Preparar materiales: Sala de reuniones,


materiales de apoyo. Análisis:

Seleccionar un moderador: Experimentado en Transcribir la grabación del grupo focal.

la conducción de grupos focales. Identificar temas y patrones en la discusión.


Analizar las ideas y opiniones expresadas.
Extraer conclusiones relevantes para la elicitación de
requerimientos.
Por: Cristian David Romero

OBSERVACIONES
Permite comprender el comportamiento y las necesidades de los
usuarios en su contexto natural. Se basa en observar y registrar cómo
los usuarios interactúan con el sistema actual, identificando
problemas y oportunidades de mejora.

Es una técnica que consiste en:


Observar directamente cómo los usuarios trabajan con el
sistema actual.
Identificar necesidades y expectativas no expresadas por
los usuarios.
Comprender el contexto en el que se utiliza el sistema.
Detectar problemas de usabilidad y eficiencia.
Por: Cristian David Romero

¿CÓMO SE REALIZA LA OBSERV ACIÓN PARA ELICITACIÓN DE


RE QUERIM IENTOS?

Preparación: Desarrollo:
Observar a los usuarios mientras trabajan con el
Definir objetivos: ¿Qué información se busca sistema.
obtener? Tomar notas detalladas de lo que se observa y se
Seleccionar usuarios: Representativos del escucha.
público objetivo. Preguntar a los usuarios sobre su experiencia y sus
Definir el método de observación: Participante, necesidades.
no participante. Ser objetivo y evitar sesgos en la observación.
Preparar instrumentos de registro: Notas,
grabaciones, fotos. Análisis:
Analizar las notas y registros de la observación.
Identificar patrones y tendencias en el
comportamiento de los usuarios.
Extraer conclusiones relevantes para la elicitación de
requerimientos.
Por: Cristian David Romero

Análisis de Stakeholders

Es una técnica para identificar, comprender y


gestionar a las personas o grupos que pueden
afectar o verse afectados por el proyecto.

Herramientas para el análisis de stakeholders:


Matriz de stakeholders.
Matriz de poder-interés.
Matriz de saliencia.
Mapa de stakeholders.
Por: Cristian David Romero

PRIORIZACIÓN DE REQUISITOS
Se utiliza para determinar qué funcionalidades se
implementarán y en qué orden. El objetivo es asegurar que el
software se desarrolle de acuerdo a las necesidades más
importantes de los usuarios y stakeholders, maximizando el
valor del proyecto con los recursos disponibles.

Es un proceso que consiste en:


Identificar todos los requisitos del proyecto.
Clasificar los requisitos por su importancia y urgencia.
Seleccionar los requisitos que se implementarán en cada
fase del proyecto.
Comunicar la priorización a los stakeholders
Por: Cristian David Romero

¿Cómo se realiza la priorización de requisitos?

1. Criterios de priorización
Impacto en el negocio: Valor que aporta el requisito al negocio.
Necesidad del usuario: Importancia del requisito para la satisfacción
del usuario.
Factibilidad técnica: Dificultad y costo de implementar el requisito.
Riesgos: Impacto potencial del requisito en el proyecto.
Dependencias: Relación del requisito con otros requisitos.

2. Técnicas de priorización
Matriz de priorización: Ponderación de criterios y clasificación de
requisitos.
MoSCoW: Clasificación de requisitos en "Must have", "Should have",
"Could have" y "Won't have".
Votación: Participación de stakeholders en la priorización.
Puja por puntos: Asignación de puntos a requisitos por stakeholders.
Por: Cristian David Romero

¿Cómo se realiza la priorización de requisitos?

3. Consideraciones adicionales
Restricciones del proyecto: Tiempo, presupuesto, recursos humanos.
Visión del producto: Alineación con los objetivos estratégicos del
producto.
Riesgos del proyecto: Impacto potencial de los requisitos en el éxito
del proyecto.

La priorización de requisitos es una tarea compleja y crítica que requiere un análisis cuidadoso de las necesidades de los
stakeholders, las características del proyecto y las limitaciones del mismo.
Por: Cristian David Romero

ESPECIFICACIÓN DE
REQUISITOS
Por: Cristian David Romero

ESPECIFICACIÓN DE REQUISITOS (SRS)

Es un documento fundamental en la ingeniería de software


que describe de forma precisa y completa las
funcionalidades y características que debe tener un software
para cumplir con las necesidades de los usuarios y
stakeholders.
Por: Cristian David Romero

Características de una buena SRS

Lenguaje sencillo y Debe incluir todos los Posibilidad de verificar si el


requisitos del software. Definición clara y concisa de
comprensible para todos los software cumple con los
Funcionalidades, interfaces, los requisitos.
stakeholders. requisitos.
datos, rendimiento, Evitar vaguedades o
Evitar tecnicismos y Criterios de aceptación claros
seguridad, etc. interpretaciones subjetivas.
ambigüedades. y medibles.
Considerar diferentes tipos de Especificar detalles técnicos
Estructura organizada y Pruebas de aceptación
usuarios y escenarios de uso. relevantes.
lógica. definidas.

1. Claridad 2. Completitud 3. Precisión 4. Verificabilidad

Posibilidad de modificar la
Debe ser útil para el equipo
Coherencia entre los SRS en caso de cambios en
de desarrollo y los
diferentes requisitos. los requisitos.
stakeholders.
Evitar contradicciones o Facilidad para actualizar la
Facilitar la comprensión del
duplicidades. información.
software a desarrollar.
Trazabilidad entre requisitos Control de versiones para
Servir como base para la
y funcionalidades. mantener un historial de
planificación, desarrollo y
cambios.
pruebas.

5. Consistencia 6. Modificabilidad 7. Usabilidad


Por: Cristian David Romero

FORMATO DE UNA SRS

Introducción
Descripción general del software
Requisitos funcionales
Requisitos no funcionales
Apéndices (glosario, casos de uso, etc.)
Por: Cristian David Romero

Requisitos funcionales y no funcionales

Elaborado por Cristian David Romero en https://app.pixton.com/


Por: Cristian David Romero

Requisitos funcionales y no funcionales

Elaborado por Cristian David Romero en https://app.pixton.com/


Por: Cristian David Romero

LENGUAJES NATURALES V S. LENGUAJES FORMALES

Son los lenguajes que utilizamos en la vida diaria, Son lenguajes creados para expresar ideas de forma
como el español, inglés, etc. Son ambiguos, precisa y sin ambigüedades. Se utilizan en matemáticas,
imprecisos y dependientes del contexto. Su informática y otras áreas donde la exactitud es
significado puede variar según la cultura, la fundamental. Sus reglas son definidas y su significado es
persona que lo habla y la situación en la que se único e independiente del contexto.
utiliza.

Caracteristica Lenguaje natural Lenguaje formal

Ambigüedad Alto Baja

Precisión Bajo Alto

Dependencia del contexto Alta Baja

Reglas No definidas Definidas

Significado Variable Único


Por: Cristian David Romero

Diagramas UML
El Lenguaje de Modelado Unificado (UML) es un conjunto de diagramas y herramientas que permiten a los
ingenieros de software visualizar, especificar, construir y documentar un sistema de software.

Diagramas de Casos de Uso


Representan la interacción entre los usuarios y el sistema.
Identifican los diferentes roles de los usuarios (actores).
Describen las funcionalidades del sistema desde la perspectiva del
usuario.

Diagramas de Clases
Muestran la estructura estática del sistema.
Definen las clases y sus atributos, métodos y relaciones.
Permiten comprender la organización del código fuente.
Por: Cristian David Romero

Diagramas UML

Otros diagramas UML


Diagramas de Secuencia: Muestran la secuencia de interacción entre
objetos.
Diagramas de Actividad: Representan el flujo de trabajo del sistema.
Diagramas de Estado: Muestran los diferentes estados por los que
pasa un objeto.
Diagramas de Despliegue: Muestran la arquitectura física del sistema.

Beneficios de usar UML


Mejora la comunicación entre el equipo de desarrollo.
Facilita la comprensión del diseño del sistema.
Permite detectar errores y problemas de diseño en etapas tempranas.
Sirve como documentación del sistema.

Un buen ingeniero de software debe ser capaz de usar UML para representar el diseño de un sistema de software de
forma clara, precisa y completa.
Por: Cristian David Romero

PROTOTIPOS VS. MOCKUPS

Un prototipo es una implementación Un mockup es una representación visual de la


funcional de un software, aunque sea interfaz de usuario de un software. No es

simplificada o incompleta. Permite a los funcional, pero permite visualizar la apariencia


usuarios interactuar con el sistema y y el diseño del sistema.
experimentar su comportamiento.
Bocetos a mano: Dibujos rápidos para explorar
De baja fidelidad: Simulaciones simples o ideas de diseño.
bosquejos interactivos. Mockups digitales: Archivos de imagen o
De alta fidelidad: Implementaciones más herramientas online para crear interfaces.
completas con mayor funcionalidad.
Por: Cristian David Romero

PROTOTIPOS V S. MOCKUPS

Caracteristica Prototipo Mockup

Funcionalidad Si No

Fidelidad Bajo o alto Bajo

Probar la funcionalidad y
Objetivo Visualizar el diseño
la usabilidad

Software de desarrollo,
Software de diseño,
Herramientas herramientas de
herramientas online
prototipado

¿Cuándo usar un prototipo o un mockup?


Prototipo: Cuando necesitas probar la funcionalida d y la usabilidad del software.
Mockup: Cuando necesitas visualizar el diseño del software y obtener feedback sobre la estética.
Por: Cristian David Romero

VALIDACIÓN Y VERIFICACIÓN
DE REQUISITOS
Por: Cristian David Romero

Técnicas de Validación y Verificación

La validación y la verificación son dos


actividades en la ingeniería de software que se
utilizan para garantizar que los requisitos del
software sean correctos y completos.
Por: Cristian David Romero

VALIDACIÓN V S. VERIFICACIÓN

Asegurar que los requisitos satisfacen las Asegurar que el software cumple con los requisitos
necesidades de los usuarios y stakeholders. especificados.
Responder a la pregunta "¿Estamos Responder a la pregunta "¿Estamos construyendo el
construyendo el producto correcto?" producto correctamente?"
Se realiza a través de técnicas como: Se realiza a través de técnicas como:
Revisión de requisitos: Análisis manual de Inspecciones de código: Análisis manual del código
los documentos de requisitos. fuente para detectar errores.
Prototipos: Implementación de versiones Pruebas unitarias: Pruebas automatizadas de cada
simplificadas del software para probar la módulo del software.
usabilidad y funcionalidad. Pruebas de integración: Pruebas automatizadas de
Encuestas y entrevistas: Recopilación de la interacción entre diferentes módulos del
feedback de usuarios y stakeholders. software.
Por: Cristian David Romero
VALIDACIÓN V S. VERIFICACIÓN

Caracteristica Validación Verificación

Asegurar que el software


Asegurar que los
Objetivo cumple con los
requisitos sean correctos.
requisitos.

¿Estamos construyendo
¿Estamos construyendo el
Preguntas el producto
producto correcto?
correctamente?

Revisión de requisitos, Inspecciones de código,


Técnicas prototipos, encuestas y pruebas unitarias,
entrevistas. pruebas de integración.

La validación y la verificación ayudan a prevenir errores y defect o s en el software.


Permiten identificar y corregir problemas en etapas tempranas del desarrollo, lo que reduce costos y tiempo.
Aseguran la calidad del software y la satisfacción de los usuarios .
Por: Cristian David Romero

PRUEBAS DE REQUISITOS, ANÁLISIS ESTÁTICO Y


REVISIONES

En la ingeniería de software, las pruebas de requisitos,


el análisis estático y las revisiones son tres técnicas
esenciales para asegurar la calidad del software. Estas
técnicas se utilizan para detectar y corregir errores en

diferentes etapas del ciclo de vida del desarrollo.


Por: Cristian David Romero

TÉCNICAS
PRUEBAS DE
REQUISITOS Pruebas de caja negra
Análisis de los requisitos sin conocer la implementación
interna del software.
Verificación de que los requisitos sean completos,
consistentes y correctos.

Detección de errores en los requisitos antes de que


se implementen en el software. Pruebas de caja blanca
Análisis de los requisitos utilizando el conocimiento de la
implementación interna del software.
Por: Cristian David Romero

HERRAMIENTAS

ANÁLISIS ESTÁTICO
Linters
Detectan errores de codificación comunes.

Análisis del código fuente del software sin


ejecutarlo.
Detección de errores de codificación, seguridad y
rendimien
Herramientas de análisis de
código estático
Detectan errores más complejos.
Por: Cristian David Romero

TIPOS

REVISIONES
Inspecciones
Revisiones formales con un equipo de revisores.

Evaluación manual del código fuente, los requisitos


u otros documentos del software.

Detección de errores y oportunidades de mejora.

Caminatas de código
Revisiones informales con un pequeño grupo de personas.
Por: Cristian David Romero

Caracteristica Pruebas de Requisitos Análisis Estático Revisiones

Verificar la corrección de Detectar errores en el Encontrar errores y mejorar


Objetivo
los requisitos. código fuente. la calidad del software.

Antes de la Durante la
Momento Durante la implementación.
implementación. implementación.

Análisis de código
Pruebas, análisis de caja Inspecciones y caminatas de
Técnicas estático con
negra y caja blanca. código.
herramientas.

Importancia:
Previenen errores y defectos en el software.
Ahorran tiempo y dinero al corregir errores en etapas tempranas.
Mejoran la calidad del software y la satisfacción de los usuarios
Por: Cristian David Romero

GESTIÓN DE CAMBIOS EN LOS REQUISITOS

En el desarrollo de software, los cambios en los requisitos


son inevitables. Los clientes pueden cambiar de opinión,
las necesidades del mercado pueden evolucionar o pueden
surgir nuevos errores o problemas. Es fundamental contar

con un proceso de gestión de cambios en los requisitos


para manejar estos cambios de manera eficiente y efectiva.

La gestión de cambios es un proceso para identificar, evaluar, aprobar e implementar cambios en los
requisitos del software. Este proceso ayuda a:
Controlar los cambios: Asegurar que solo se implementen los cambios necesarios y beneficiosos.
Minimizar el impacto: Reducir el impacto negativo de los cambios en el desarrollo del software.
Mantener la calidad: Asegurar que el software final cumpla con las necesidades de los usuarios.
Por: Cristian David Romero

Proceso de gestión de cambios en los requisitos

Identificación del Evaluación del Aprobación del


cambio cambio cambio

Implementación del Pruebas del cambio Cierre del cambio


cambio
Por: Cristian David Romero

HERRAMIENTAS PARA LA
INGENIERÍA DE REQUISITOS
Por: Cristian David Romero

Tipos de herramientas CASE para ingeniería


de requerimientos

Herramientas CASE (Computer- Herramientas de gestión de requisitos: Permiten


documentar, rastrear y gestionar los requisitos.
Aided Software Engineering) Herramientas de modelado: Permiten crear modelos visuales
de los requisitos.
Son herramientas informáticas que ayudan a los
Herramientas de análisis de requisitos: Permiten analizar
ingenieros de software a realizar las tareas los requisitos para detectar inconsistencias y errores.
relacionadas con la ingeniería de requisitos. Estas Herramientas de generación de prototipos: Permiten crear
prototipos del software para probar los requisitos.
herramientas pueden:
Automatizar tareas repetitivas
Mejorar la comunicación entre los stakeholders
Facilitar la gestión de los requisitos.
Por: Cristian David Romero

Tipos de herramientas de gestión de requisitos

Herramientas de gestión de requisitos tradicionales: Permiten


Herramientas de gestión de documentar, rastrear y gestionar los requisitos de forma
centralizada.
requisitos
Herramientas de gestión de requisitos ágiles: Permiten gestionar
los requisitos de forma flexible y adaptable a los cambios.
Las herramientas de gestión de requisitos son
Herramientas de gestión de requisitos basadas en la nube:
herramientas informáticas que ayudan a los ingenieros Permiten acceder a los requisitos desde cualquier lugar y en
cualquier momento.
de software a:
Documentar
Rastrear
Gestionar
los requisitos del software.
Por: Cristian David Romero

Herramientas de Colaboración Tipos de herramientas de colaboración


Herramientas de comunicación: Permiten a los equipos
comunicarse en tiempo real o asíncronamente. Ejemplos: Slack,
Microsoft Teams, Zoom.
Las herramientas de colaboración son esenciales para
Herramientas de gestión de tareas: Permiten a los equipos
el trabajo en equipo en el desarrollo de software. organizar y gestionar tareas, proyectos y flujos de trabajo.

Permiten a los ingenieros de software: Ejemplos: Trello, Asana, Jira.


Herramientas de almacenamiento en la nube: Permiten a los
Comunicarse equipos compartir y acceder a archivos de forma segura desde
Compartir información cualquier lugar. Ejemplos: Google Drive, Dropbox, OneDrive.
Herramientas de control de versiones: Permiten a los equipos
Trabajar juntos de manera eficiente y efectiva.
rastrear los cambios en el código fuente y colaborar en el
desarrollo del software. Ejemplos: Git, GitHub, Bitbucket.
Herramientas de videoconferencia: Permiten a los equipos
realizar reuniones y llamadas virtuales. Ejemplos: Zoom, Google
Meet, Microsoft Teams.
Por: Cristian David Romero

Elaborado por Cristian David Romero en https://app.pixton.com/

La definición de los requerimientos de software es un proceso que requiere mucha comunicación y colaboración entre el cliente y el
equipo de desarrollo. Es importante ser realista y tener en cuenta las limitaciones técnicas y el presupuesto. A veces, hay que
sacrificar algunas ideas para obtener un software funcional y útil.
Por: Cristian David Romero

CONCL US I ONES

La ingeniería de requisitos no es un gasto, es una inversión. La definición y gestión de requisitos puede


ahorrar tiempo y dinero en el desarrollo del software.

La ingeniería de requisitos es un proceso en constante desarrollo. Los requisitos deben revisarse y


actualizarse continuamente para adaptarse a las necesidades de los stakeholders.

La ingeniería de requisitos es un proceso en el que todos trabajan juntos. Todos los interesados deben
involucrarse en la creación y gestión de los requisitos.

El proceso de ingeniería de requisitos es fundamental para la calidad del software. Un software con
requisitos claros y gestionados será de mayor calidad y satisfacerá mejor las necesidades de los
interesados.
Por: Cristian David Romero

BIBLIOGRAFIA

https://es.vecteezy.com/arte-vectorial/7413163-el-modelo-de-cascada-infografico-vector-se-utiliza-en-
ingenieria-de-software-o-procesos-de-desarrollo-de-software-la-ilustracion-tiene-6-pasos-como-
metodologia-agil-o-pensamiento-de-diseno-para-sistema-de-aplicaciones
https://www.lifeder.com/modelo-espiral/
https://www.cognodata.com/blog/principios-metodologia-agile-desarrollo-proyectos/
https://www.codingdojo.la/2023/06/16/guia-del-ciclo-de-vida-del-desarrollo-de-software/
https://asana.com/es/resources/requirements-management
https://www.iebschool.com/blog/herramientas-gestion-agil-proyectos-agile-agile-scrum/
https://gobiernodigital.mintic.gov.co/692/articles-150523_G4_Roles_responsabilidades.pdf
https://visuresolutions.com/es/gu%C3%ADa-de-trazabilidad-de-gesti%C3%B3n-de-requisitos/
https://thedigitalprojectmanager.com/es/tools/herramientas-gestion-requisitos/
https://programacionymas.com/blog/tipos-de-testing-en-desarrollo-de-software
https://visuresolutions.com/es/blog/requirements-engineering-process/
https://es.wikipedia.org/wiki/Wikipedia:Portada

También podría gustarte