Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA DE
REQUISITOS
POR: CRISTIAN DAVID ROMERO
CONTENIDO 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]
INTRODUCCIÓN A LA
INGENIERÍA DE REQUISITOS
Por: Cristian David Romero
¿QUÉ ES LA INGENIERÍA?
¿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?
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.
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
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
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 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
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.
Beneficios
OBTENCIÓN DE REQUISITOS
Por: Cristian David Romero
Elicitación
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
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.
Preparación: Desarrollo:
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:
Preparación: Realización:
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.
Preparación: Desarrollo:
Introducción: Presentación del moderador, objetivos
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.
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
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.
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
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
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.
Introducción
Descripción general del software
Requisitos funcionales
Requisitos no funcionales
Apéndices (glosario, casos de uso, etc.)
Por: Cristian David Romero
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.
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 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
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 V S. MOCKUPS
Funcionalidad Si No
Probar la funcionalidad y
Objetivo Visualizar el diseño
la usabilidad
Software de desarrollo,
Software de diseño,
Herramientas herramientas de
herramientas online
prototipado
VALIDACIÓN Y VERIFICACIÓN
DE REQUISITOS
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
¿Estamos construyendo
¿Estamos construyendo el
Preguntas el producto
producto correcto?
correctamente?
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.
HERRAMIENTAS
ANÁLISIS ESTÁTICO
Linters
Detectan errores de codificación comunes.
TIPOS
REVISIONES
Inspecciones
Revisiones formales con un equipo de revisores.
Caminatas de código
Revisiones informales con un pequeño grupo de personas.
Por: Cristian David Romero
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
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
HERRAMIENTAS PARA LA
INGENIERÍA DE REQUISITOS
Por: Cristian David Romero
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 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