3.16.4 SE/Ingeniería de Requisitos (1 horas Core-Tier1, 3 horas Core-Tier2)
El propósito de la ingeniería de requisitos es desarrollar un entendimiento común de las necesidades, prioridades y restricciones pertinentes a un sistema de software. Muchos fallos de software surgen de una comprensión incompleta de los requisitos para el software a desarrollar o manejo inadecuado de esos requisitos.
Especificaciones de los requisitos varían en trámite desde completamente informal (por ejemplo, habla) a rigor matemático (por ejemplo, escrito en un lenguaje de especificación formal, como Z o lógica de primer orden). En la práctica, los esfuerzos de ingeniería de software exitosos usan especificaciones de requisitos para reducir la ambigüedad y mejorar la coherencia y la integridad de la comprensión del equipo de desarrollo de la visión de los programas informáticos destinados. Enfoques del plan impulsado tienden a producir documentos formales con los requisitos numerados. Enfoques ágiles tienden a favorecer a las especificaciones menos formales que incluyen historias de usuario, casos de uso y casos de prueba.
Temas:
Core Tier1
- Al describir los requisitos funcionales utilizando, por ejemplo, los casos de uso o historias de los usuarios.
- Propiedades de requisitos, incluyendo la consistencia, validez, integridad y viabilidad.
Core Tier2
- Requisitos de software elicitatión.
- Descripción de datos del sistema utilizando, por ejemplo, los diagramas de clases o diagramas entidad-relación.
- Requisitos no funcionales y su relación con la calidad del software.
Ref: Seguridad en Ingeniería de Software
- Evaluación y uso de especificaciones de requisitos.
Electivo
- Requisitos de las técnicas de modelado de análisis.
- La aceptabilidad de las consideraciones de certeza/incertidumbre sobre el comportamiento del software/sistema.
- Prototipos.
- Conceptos básicos de la especificación formal de requisitos.
- Especificación de requisitos.
- Validación de requisitos.
- Rastreo de requisitos.
Objetivos de Aprendizaje:
Core-Tier1:
- Enumerar los componentes clave de un caso de uso o una descripción similar de algún comportamiento que es requerido para un sistema [Familiarizarse]
- Describir cómo el proceso de ingeniería de requisitos apoya la obtención y validación de los requisitos de comportamiento [Familiarizarse]
- Interpretar un modelo de requisitos dada por un sistema de software simple [Familiarizarse]
Core-Tier2:
- Describir los retos fundamentales y técnicas comunes que se utilizan para la obtención de requisitos [Familiarizarse]
- Enumerar los componentes clave de un modelo de datos (por ejemplo, diagramas de clases o diagramas ER) [Familiarizarse]
- Identificar los requisitos funcionales y no funcionales en una especificación de requisitos dada por un sistema de software [Usar]
- Realizar una revisión de un conjunto de requisitos de software para determinar la calidad de los requisitos con respecto a las características de los buenos requisitos [Usar]
Elective:
- Aplicar elementos clave y métodos comunes para la obtención y el análisis para producir un conjunto de requisitos de software para un sistema de software de tamaño medio [Usar]
- Comparar los métodos ágiles y el dirigido por planes para la especificación y validación de requisitos y describir los beneficios y riesgos asociados con cada uno [Familiarizarse]
- Usar un método común, no formal para modelar y especificar los requisitos para un sistema de software de tamaño medio [Usar]
- Traducir al lenguaje natural una especificación de requisitos de software (por ejemplo, un contrato de componentes de software) escrito en un lenguaje de especificación formal [Usar]
- Crear un prototipo de un sistema de software para reducir el riesgo en los requisitos [Usar]
- Diferenciar entre el rastreo (tracing) hacia adelante y hacia atrás y explicar su papel en el proceso de validación de requisitos [Familiarizarse]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM