5.7.4.21 Ingeniería de Requisitos (2 horas) [Habilidades AG-C02,AG-C08,AG-C12]

Referencias Bibliográficas: [Brookshear and Brylow, 2019b]

Temas

  1. Describir requisitos funcionales usando, por ejemplo, casos de uso o historias de usuario.
    1. Usar al menos un método para documentar y estructurar requisitos funcionales.
    2. Comprender cómo el método apoya el diseño y la implementación.
    3. Fortalezas y debilidades de usar un enfoque específico.

  2. Obtención (elicitation) de requisitos.
    1. Fuentes de requisitos, por ejemplo, usuarios, administradores o personal de soporte.
    2. Métodos de recopilación de requisitos, por ejemplo, encuestas, entrevistas o análisis de comportamiento.
  3. Requisitos no funcionales, por ejemplo, seguridad, usabilidad o rendimiento, también llamados Atributos de Calidad. Sociedad, ética y la Profesión (SEP) -Sustainability
  4. Identificación y gestión de riesgos, incluyendo consideraciones éticas en torno al producto propuesto. Sociedad, ética y la Profesión (SEP) -ProfessionalEthics
  5. Comunicar y/o formalizar especificaciones de requisitos.

  6. Prototipado de una herramienta tanto para obtener como para validar/confirmar requisitos.
  7. Evolución del producto: cuando cambian los requisitos, cómo entender qué efecto tiene eso y qué cambios deben realizarse.
  8. Estimación de esfuerzo:
    1. Aprender técnicas para estimar mejor el esfuerzo requerido para completar una tarea;
    2. Practicar la estimación y compararla con cuánto tiempo toman las tareas;
    3. La estimación de esfuerzo es bastante difícil, por lo que es probable que los estudiantes se equivoquen en muchos casos, pero ver el proceso desarrollarse con su propio trabajo es valioso.

Aprendizaje esperado (Learning Outcomes)

  1. Comparar diferentes métodos de obtención de requisitos a lo largo de múltiples ejes [Comparar]
  2. Identificar diferencias entre dos métodos de describir requisitos funcionales (por ejemplo, entrevistas con clientes, estudios de usuarios) y las situaciones donde se preferiría cada uno [Analizar]
  3. Identificar qué comportamientos son requeridos, permitidos o prohibidos a partir de un conjunto dado de requisitos y una lista de comportamientos candidatos [Analizar]
  4. Recopilar un conjunto de requisitos para un sistema de software simple [Analizar]
  5. Identificar áreas de un sistema de software que deben cambiarse, dada una descripción del sistema y un conjunto de nuevos requisitos a implementar [Analizar]
  6. Identificar los requisitos funcionales y no funcionales en un conjunto de requisitos [Analizar]

  7. Estimar el tiempo para completar un conjunto de tareas, luego comparar las estimaciones con el tiempo real tomado [Estimar]
  8. Determinar una secuencia de implementación para un conjunto de tareas, respetando las dependencias entre ellas, con el objetivo de retirar el riesgo lo antes posible [Determinar]
  9. Escribir una especificación de requisitos para un sistema de software simple [Escribir]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM