Los requisitos de software [1] para un sistema son la descripción de lo que el sistema debe hacer, el servicio o los servicios que proporciona y las restricciones sobre su funcionamiento. El Glosario estándar IEEE de terminología de ingeniería de software define un requisito como: [2]
- Una condición o capacidad que necesita un usuario para resolver un problema o lograr un objetivo.
- Una condición o capacidad que debe cumplirse o poseer un sistema o un componente del sistema para satisfacer un contrato, estándar, especificación u otro documento impuesto formalmente.
- Una representación documentada de una condición o capacidad como en 1 o 2
Las actividades relacionadas con el trabajo con requisitos de software se pueden dividir en general en obtención, análisis, especificación y gestión. [3]
Tenga en cuenta que la redacción Requisitos de software también se utiliza en las notas de lanzamiento de software para explicar qué paquetes de software se requieren para crear, instalar o utilizar un determinado software. [1]
Sonsacamiento
La elicitación es la recopilación y el descubrimiento de requisitos de las partes interesadas y otras fuentes. Se pueden utilizar diversas técnicas, como sesiones de diseño conjunto de aplicaciones (JAD), entrevistas, análisis de documentos, grupos de discusión, etc. La elicitación es el primer paso del desarrollo de requisitos.
Análisis
El análisis es el desglose lógico que procede de la obtención de información. El análisis implica alcanzar una comprensión más rica y precisa de cada requisito y representar conjuntos de requisitos de múltiples formas complementarias.
La clasificación o priorización de requisitos es otra actividad que a menudo sigue al análisis. [4] Esto se relaciona con el desarrollo de software ágil en la fase de planificación, por ejemplo, mediante Planning poker , sin embargo, puede que no sea lo mismo dependiendo del contexto y la naturaleza del proyecto y los requisitos o el producto/servicio que se está construyendo.
Especificación
La especificación implica representar y almacenar el conocimiento de los requisitos recopilados de una manera persistente y bien organizada que facilite la comunicación eficaz y la gestión de cambios. Los casos de uso, las historias de usuario, los requisitos funcionales y los modelos de análisis visual son opciones populares para la especificación de requisitos.
Validación
La validación implica técnicas para confirmar que se ha especificado el conjunto correcto de requisitos para construir una solución que satisfaga los objetivos comerciales del proyecto.
Gestión
Los requisitos cambian durante los proyectos y, a menudo, son muchos. La gestión de estos cambios se vuelve fundamental para garantizar que se cree el software correcto para las partes interesadas.
Soporte de herramientas para ingeniería de requisitos
Herramientas para la obtención, análisis y validación de requisitos
Teniendo en cuenta que estas actividades pueden involucrar algunos artefactos tales como informes de observación ( observación de usuario ), cuestionarios ( entrevistas , encuestas y sondeos), casos de uso , historias de usuario ; actividades tales como talleres de requisitos ( charrettes ), lluvia de ideas , mapas mentales , juegos de roles ; e incluso, creación de prototipos ; [5] los productos de software que proporcionan algunas o todas estas capacidades se pueden utilizar para ayudar a lograr estas tareas.
Hay al menos un autor que aboga, explícitamente, por el uso de herramientas de mapas mentales como FreeMind ; y, alternativamente, por el uso de herramientas de especificación por ejemplo como Concordion . [6] Además, las ideas y afirmaciones resultantes de estas actividades pueden recopilarse y organizarse con wikis y otras herramientas de colaboración como Trello . Las características realmente implementadas y el cumplimiento de los estándares varían de un producto a otro.
Herramientas para la especificación de requisitos
Un documento de especificación de requisitos de software (SRS) se puede crear utilizando un software de uso general, como un procesador de textos o una de varias herramientas especializadas. Algunas de estas herramientas pueden importar, editar, exportar y publicar documentos SRS. Puede resultar útil crear documentos SRS siguiendo una estructura y una metodología estandarizadas, como ISO/IEC/IEEE 29148:2018. Del mismo modo, el software puede utilizar o no algún estándar para importar o exportar requisitos (como ReqIF ) o no permitir estos intercambios en absoluto.
Herramientas para la verificación de documentos de requisitos
Las herramientas de este tipo verifican si existen errores en un documento de requisitos de acuerdo con alguna estructura o estándar esperado.
Herramientas para la comparación de requisitos
Las herramientas de este tipo comparan dos conjuntos de requisitos de acuerdo con una estructura y un estándar de documento esperados.
Herramientas para la fusión y actualización de requisitos
Herramientas de este tipo permiten la fusión y actualización de documentos de requisitos.
Herramientas para la trazabilidad de requisitos
Las herramientas de este tipo permiten rastrear requisitos hasta otros artefactos, como modelos y código fuente (trazabilidad hacia adelante) o hasta otros anteriores, como reglas de negocio y restricciones (trazabilidad hacia atrás).
Herramientas para ingeniería de requisitos de sistemas o software basada en modelos
La ingeniería de sistemas basada en modelos (MBSE) es la aplicación formalizada de modelos para respaldar las actividades de diseño, verificación, validación, análisis y requisitos del sistema, que comienzan en la fase de diseño conceptual y continúan durante el desarrollo y las fases posteriores del ciclo de vida. También es posible adoptar un enfoque basado en modelos para algunas etapas de la ingeniería de requisitos y, uno más tradicional, para otras. Pueden ser posibles muchas combinaciones.
El nivel de formalidad y complejidad depende de la metodología subyacente involucrada (por ejemplo, i* es mucho más formal que SysML e incluso más formal que UML ).
Herramientas para ingeniería de requisitos generales
Las herramientas de esta categoría pueden ofrecer una combinación de las capacidades mencionadas anteriormente y otras, como la gestión de la configuración de requisitos y la colaboración. Las funciones realmente implementadas y el cumplimiento de los estándares varían de un producto a otro.
Existen herramientas aún más capaces o de carácter general que dan soporte a otras etapas y actividades, y que se clasifican como herramientas ALM .
Véase también
- Requisito
- Ingeniería de requisitos
- Especificación de requisitos de software (SRS)
- Proceso de especificación de requisitos completo y sólido
- Lista de herramientas de ingeniería de requisitos
- Requisito no funcional
- Requisitos de rendimiento que están cubiertos por las pruebas de rendimiento del software
- Requisitos de seguridad
- Requisitos de seguridad
Referencias
- ^ ab "Linux kernel release 5.x — The Linux Kernel documentation" (Versión 5.x del kernel de Linux: documentación del kernel de Linux). www.kernel.org . Consultado el 25 de marzo de 2021 .
- ^ IEEE Computer Society (1990). «Glosario estándar IEEE de terminología de ingeniería de software». Estándar IEEE . Archivado desde el original el 2018-06-15 . Consultado el 2013-01-11 .
- ^ "Guía del conjunto de conocimientos de ingeniería de software". IEEE Computer Society. Archivado desde el original el 7 de diciembre de 2014. Consultado el 11 de enero de 2013 .
- ^ Davis, Alan Mark. (2005). Gestión de requisitos suficientes: donde el desarrollo de software se encuentra con el marketing. Nueva York: Dorset House Pub. ISBN 0-932633-64-1.OCLC 57211148 .
- ^ "7 herramientas para recopilar mejores requisitos de software". 22 de julio de 2015.
- ^ Laplante, Phillip A. (2009). "Ingeniería de requisitos para software y sistemas". CRC Press.
{{cite web}}: Falta o está vacío|url=( ayuda )
Lectura adicional
- Wiegers, Karl ; Beatty, Joy (2013). Requisitos de software (3.ª ed.). Microsoft Press . ISBN 978-0-7356-7966-5.
- Cockburn, Alistair (2001). Cómo escribir casos de uso eficaces . Pearson Education . ISBN 0-201-70225-8.
- Leffingwell, Dean (2000). Gestión de requisitos de software: un enfoque unificado . Addison-Wesley Professional . ISBN 0-201-61593-2.
- Burek, Paul (2008). Creación de requisitos de proyecto claros que diferencien el "qué" del "cómo". Ponencia en conferencia. Gestión de requisitos, análisis de negocio, gestión del alcance.
- Koopman, Philip (2020). Requisitos de software integrado. Conferencias de otoño.
- Búsqueda en IEEE Xplore. "Requisitos del software".