Ingeniería de requerimientos de software
La ingeniería de software es un procesos de recopilación, análisis y verificación de las necesidades del cliente de un sistema de software, su objetivo es mejorar la comprensión y la definición del sistema.
El estándar IEEE lo define como: "Condición o capacidad que debe de satisfacer o poseer un sistema o un componente de un sistema para satisfacer un contrato, un standard, una especificación u otro documento formalmente impuesto"
Pressman indica 5 etapas en el análisis de requerimientos de software:
- Reconocimiento del problema: Estudiar las especificaciones del sistema y plan del proyecto de software, comprensión el software dentro del contexto del sistema, canales de comunicación con todos los involucrados dentro del proyecto, reconocer los elementos del problema como los percibe el usuario.
- Evaluación y síntesis: Centrarse en el flujo y estructura de la información, definición de las funciones del software, factores que afectan el desarrollo del software, características de la interfaz del sistema y restricciones de diseño, determinación del problema de forma sintetizada.
- Modelización: Comprensión del proceso funcional operativo y de contenido de la información.
- Especificación: Proporcionar una representación del software para determinar si se ha comprendido.
- Revisión: Criterios de validación para determinar si se ha llegado al entendimiento para implementar con éxito el software, revisión del cliente y modificación a las funciones del sistema.
- Entrevistas: Es la más utilizada, consta de tres fases:
- Preparación: Estudiar el dominio del problema, seleccionar a las personas que se van a entrevistar y determinar el objetivo y contenido de las entrevistas y planificar las entrevistas.
- Realización de entrevistas: La apertura que es informar sobre la razón de la entrevista, el desarrollo donde el tiempo se debe de distribuir entre un 20 % para el entrevistador y un 80% el entrevistado y la terminación es el agradecimiento y estudio de la información recopilada.
- Análisis: Análisis de los resultados de la entrevista.
- Brainstorming: Técnica de reuniones en un grupo cuyo objetivo es la generación de ideas en un ambiente libre de críticas o juicios, se busca que los involucrados desarrollen su creatividad, promoviendo la introducción de los principios creativos.
- Preparación: Requieren la selección de los participantes
- Generación: Se expone un enunciado general del problema a tratar, los participantes aportan nuevas ideas.
- Consolidación: Organizar y evaluar las ideas generadas durante la fase anterior, se revisan las ideas, descartan y priorizan las ideas.
- Documentación: Contenido de las ideas priorizadas y comentarios generados durante la consolidación.
- Casos de uso: Especificación de requerimientos funcionales propuestas por Jacobson y forman parte de la propuesta de UML. Describe la secuencia de interacciones entre el sistema y su comportamiento.
- JAD (Desarrollo conjunto de aplicaciones): Promueve la cooperación y trabajo entre usuarios y analistas, realiza sesiones en la que participan los usuarios expertos del dominio junto a los analistas de software.
Interacción entre requerimientos
Es la dependencia y relaciones lógicas entre diferentes funcionalidades o comportamientos de un sistema, los tipos de interacción son:
- Dependencia funcional: Un requerimiento no puede ser ejecutado a menos de que otro se cumpla primero.
- Concurrencia: Dos o más requerimientos pueden ejecutarse al mismo tiempo sin interferir entre si.
- Inclusión/Extensión: Clave en los diagramas de uso, un requerimiento puede incluir o extender la funcionalidad de otro
Orden cronológico o temporal que se ejecuta para cumplir con los requerimientos. La captura de la interacción y la secuencialidad se realiza a través de:
- Diagramas de casos de uso: Interacción de alto nivel entre los usuarios y el sistema.
- Diagramas de secuencia: Moldean la secuencialidad, muestran el orden cronológico de los mensajes que se envían entre los objetos del sistema para terminar una tarea.
- Diagramas de actividad: Flujo de trabajo o pasos lógicos de una actividad, se moldea la secuencialidad de procesos de negocio complejos.
Comprender la interacción y secuencialidad es importante para:
- Identificar inconsistencias y dependencias
- Diseño de arquitectura.
- Casos de prueba
Se pueden clasificar en funcionales y no funcionales:
- Funcionales: Funciones del sistema, entradas, salidas y excepciones.
- No funcionales: Interfaces externas (hardware, software y personas), desempeño (tiempo de repuesta, disponibilidad, tiempo de recuperación), atributos (confiabilidad, seguridad, usabilidad, portabilidad), restricciones de diseño (estándares, lenguaje de implementación, políticas de integridad, ambiente de operación)
Conclusiones
La ingeniería de software es un
proceso para la recopilación, análisis y verificación de las necesidades de un
sistema con el objetivo de mejorar su compresión y definición. Para recopilar
los requerimientos del sistema se utilizan técnicas como las entrevistas, casos
de uso o JAD, también es importante entender el flujo de trabajo que tiene nuestro
sistema utilizando diagramas de casos de uso, diagramas de secuencia y diagramas
de actividad.
Referencias
Dirección General de Cómputo y de Tecnologías de
Información y Comunicación. (s.f.). Prácticas para el desarrollo de
software. Recuperado el 30 de Noviembre de 2025, de TIC UNAM:
https://www.red-tic.unam.mx/desarrollo-de-software
Guerra, C. (s.f.). Obtención
de Requerimientos. Técnicas y Estrategia. Recuperado el 30 de Noviembre de
2025, de SG:
https://sg.com.mx/revista/17/obtencion-requerimientos-tecnicas-y-estrategia
Repositorio
Institucional de la UNLP. (s.f.). Ingeniería de Requerimientos.
Recuperado el 30 de Noviembre de 2025, de Repositorio Institucional de la
UNLP:
https://sedici.unlp.edu.ar/bitstream/handle/10915/4057/2_-_Ingenier%C3%ADa_de_requerimientos.pdf?sequence=4




Comentarios
Publicar un comentario