Una especificación de requisitos de software ( SRS ) es una descripción del sistema de software que se va a desarrollar . Se basa en la especificación de requisitos de negocio (CONOPS) . La especificación de requisitos de software establece los requisitos funcionales y no funcionales , y puede incluir un conjunto de casos de uso que describen las interacciones que el software debe proporcionar al usuario para una interacción óptima.
Las especificaciones de requisitos de software establecen la base para un acuerdo entre clientes y contratistas o proveedores sobre cómo debe funcionar el producto de software (en un proyecto impulsado por el mercado, estos roles pueden ser desempeñados por las divisiones de marketing y desarrollo). La especificación de requisitos de software es una evaluación rigurosa de los requisitos antes de las etapas más específicas del diseño del sistema, y su objetivo es reducir el rediseño posterior. También debe proporcionar una base realista para estimar los costos, riesgos y cronogramas del producto. [ 1 ] Utilizadas adecuadamente, las especificaciones de requisitos de software pueden ayudar a prevenir el fracaso de un proyecto de software. El documento de especificación de requisitos de software enumera los requisitos suficientes y necesarios para el desarrollo del proyecto. [ 2 ] Para derivar los requisitos, el desarrollador necesita tener una comprensión clara y completa de los productos en desarrollo. Esto se logra a través de una comunicación detallada y continua con el equipo del proyecto y el cliente durante todo el proceso de desarrollo de software.
El SRS puede ser una de las descripciones de elementos de datos entregables de un contrato [ 3 ] o tener otras formas de contenido requerido por la organización.
Por lo general, un SRS es escrito por un redactor técnico , un arquitecto de sistemas o un programador de software . [ 4 ]
Historia
Las especificaciones de requisitos de software ya se utilizan en los procesos de desarrollo de software desde 1975. [ 5 ]
El propósito y el contenido de las especificaciones de requisitos de software fueron formalizados en 1983 por el IEEE . El estándar fue publicado en 1984 como IEEE-830-1984 y aprobado por ANSI . [ 6 ] Fue revisado en 1993 y 1998, antes de ser reemplazado por un estándar internacional. [ 7 ] [ 8 ] Este estándar tenía como objetivo proporcionar criterios para un buen SRS y recomendaciones sobre su contenido. Reconoció los beneficios del prototipado para la ingeniería de requisitos. Propone un ejemplo de estructura y varias variantes.
La norma ISO /IEC/IEEE 29148 «Ingeniería de sistemas y software: procesos del ciclo de vida: ingeniería de requisitos» sustituyó a la IEEE 830 en 2011. [ 8 ] La revisión actual es de 2018. Esta norma es más amplia, ya que también abarca criterios de calidad de requisitos, procesos de gestión de requisitos y especificación de requisitos empresariales (BRS), así como especificación de requisitos de las partes interesadas (StRS). [ 9 ] Propone una estructura de ejemplo ligeramente modificada.
Estructura
Un ejemplo de organización de un SRS es el siguiente: [ 10 ]
- Objetivo
- Definiciones
- Fondo
- Descripción general del sistema
- Referencias
- Descripción general
- Perspectiva del producto
- Restricciones de diseño
- Operaciones
- Requisitos de adaptación del sitio
- Funciones del producto
- Características del usuario
- Restricciones, supuestos y dependencias
- Requisitos específicos
- Requisitos de interfaz externa
- Requisitos de rendimiento
- Requisito lógico de la base de datos
- Atributos del sistema de software
- Fiabilidad
- Disponibilidad
- Seguridad
- Mantenibilidad
- Portabilidad
- Requisitos funcionales
- Características del entorno
- Otro
Se recomienda abordar también los enfoques de verificación planificados para calificar el software según los requisitos, por ejemplo, con una sección específica cuya estructura refleje la sección sobre requisitos específicos. [ 9 ]
Calidad del requisito
Los requisitos deben centrarse estrictamente en lo que se necesita, independientemente del diseño del sistema, y no en cómo el software debe hacerlo. [ 9 ] Por lo tanto, los requisitos individuales deben ser necesarios, apropiados e inequívocos. Además, un conjunto de requisitos debe ser completo, coherente, factible y comprensible.
Siguiendo la idea de los olores de código , se ha propuesto la noción de olor de requisitos para describir problemas en la especificación de requisitos donde el requisito no es necesariamente incorrecto, pero podría ser problemático. [ 11 ] Ejemplos de olores de requisitos son el lenguaje subjetivo , los adverbios y adjetivos ambiguos , los superlativos y las afirmaciones negativas . [ 11 ] También deben evitarse las frases comparativas, los términos no verificables o los términos que implican totalidad. [ 9 ]
Véase también
Referencias
- ↑ Bourque, P.; Fairley, RE (2014). "Guía del Cuerpo de Conocimientos de Ingeniería de Software (SWEBOK)" . IEEE Computer Society. Archivado del original el 28 de diciembre de 2014. Recuperado el 17 de julio de 2014 .
- ↑ Pressman, Roger (2010). Ingeniería de software: Un enfoque práctico . Boston: McGraw Hill. pág. 123. ISBN 9780073375977.
- ↑ "DI-IPSC-81433A, DESCRIPCIÓN DEL ELEMENTO DE DATOS ESPECIFICACIÓN DE REQUISITOS DE SOFTWARE (SRS)" . everyspec.com. 15 de diciembre de 1999. Consultado el 4 de abril de 2013 .
- ↑ Donn Le Vie, Jr. "Redacción de especificaciones de requisitos de software (SRS)" . 2010.
- ↑ Ramamoorthy, CV; Ho, SF (1975-04-01). "Pruebas de software a gran escala con sistemas automatizados de evaluación de software" . ACM SIGPLAN Notices . 10 (6): 382– 394. doi : 10.1145/390016.808461 . ISSN 0362-1340 .
- ↑ "Asociación de Estándares IEEE - IEE-830-1984" . Asociación de Estándares IEEE . Consultado el 30 de diciembre de 2024 .
- ↑ "Asociación de Estándares IEEE - IEEE 839-1993" . Asociación de Estándares IEEE . Consultado el 30 de diciembre de 2024 .
- 1 2 "Asociación de Estándares IEEE IEEE 830-1998" . Asociación de Estándares IEEE . Consultado el 30 de diciembre de 2024 .
- 1 2 3 4 "ISO/IEC/IEEE 29148:2018" . ISO . Consultado el 30 de diciembre de 2024 .
- ↑ Stellman, Andrew y Greene, Jennifer (2005). Gestión de proyectos de software aplicada . O'Reilly Media, Inc. pág. 308. ISBN 978-0596009489.
- 1 2 Femmer, Henning; Méndez Fernández, Daniel; Wagner, Stefan; Eder, Sebastian (2017). "Aseguramiento rápido de la calidad con Requirements Smells". Journal of Systems and Software . 123 : 190– 213. arXiv : 1611.08847 . doi : 10.1016/j.jss.2016.02.047 . S2CID 9602750 .
Enlaces externos
- Guía IEEE para especificaciones de requisitos de software . 1984. doi : 10.1109/IEEESTD.1984.119205 . ISBN 978-0-7381-4418-4.
- Práctica recomendada de IEEE para especificaciones de requisitos de software . 1994. doi : 10.1109/IEEESTD.1994.121431 . ISBN 978-0-7381-4723-9.
- Práctica recomendada de IEEE para especificaciones de requisitos de software . 1998. doi : 10.1109/IEEESTD.1998.88286 . ISBN 978-0-7381-0332-7. S2CID 8674647 .
- Ingeniería de sistemas y software - Procesos del ciclo de vida - Ingeniería de requisitos . ISO/IEC/IEEE 29148:2018(E). 2018. pp. 1–94 . doi : 10.1109/IEEESTD.2011.6146379 . ISBN 978-0-7381-6591-2.("Esta norma reemplaza a IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998 -")
- Leffingwell, Dean; Widrig, Don (2003). Gestión de requisitos de software: Un enfoque basado en casos de uso (2.ª ed.). Addison-Wesley. ISBN 978-0321122476.
- Gottesdiener, Ellen (2009). The Software Requirements Memory Jogger: A Desktop Guide to Help Business and Technical Teams Develop and Manage Requirements . Addison-Wesley. ISBN 978-1576811146.
- Wiegers, Karl; Beatty, Joy (2013). Requisitos de software, tercera edición . Microsoft Press. ISBN 9780735679665.
- "Plantilla IEEE SRS - rick4470/IEEE-SRS-Tempate" . GitHub . Consultado el 27 de diciembre de 2017 .
- ¿Cómo redactar una especificación de requisitos de software para ahorrar costes?
- ↑ Taaffe, Ed. "Sr." . thebridger . Consultado el 2 de febrero de 2019 .
- Requisitos de software
- Documentación del software
- estándares IEEE