Ingeniería de requisitos

  • Jordi Pradel Miquel

     Jordi Pradel Miquel

    Ingeniero de Informática por la Universidad Politécnica de Cataluña. Socio fundador e ingeniero de software en Agilogy, profesor en el Departamento de Ingeniería de Servicios y Sistemas de Información de la UPC, consultor de los Estudios de Informática y Multimedia en la Universitat Oberta de Catalunya y miembro del Grupo de Investigación de Ingeniería del Software para Sistemas de Información de la UPC, en el que ha publicado varios artículos de investigación en el campo de la ingeniería del software y de la aplicación a sistemas de información.

  • Jose Raya Martos

     Jose Raya Martos

    Ingeniero de Informática por la Universidad Politécnica de Cataluña. Compagina su actividad como ingeniero de software en Agilogy (empresa de la cual es socio fundador) con la de consultor en el Área de Ingeniería del Software en la UOC y la de profesor a tiempo parcial en el Departamento de Ingeniería de Servicios y Sistemas de Información de la UPC. A lo largo de los años ha trabajado en proyectos de sectores varios, como el financiero, la Administración pública o las telecomunicaciones, ejerciendo tareas técnicas y de gestión, lo que le ha dado una amplia perspectiva sobre el mundo del desarrollo de software y de su diversidad.

PID_00191247
Primera edición: septiembre 2012
© Jordi Pradel Miquel, Jose Raya Martos
Todos los derechos reservados
© de esta edición, FUOC, 2012
Av. Tibidabo, 39-43, 08035 Barcelona
Diseño: Manel Andreu
Realización editorial: Eureca Media, SL

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de Reconocimiento-Compartir igual (BY-SA) v.3.0 España de Creative Commons. Se puede modificar la obra, reproducirla, distribuirla o comunicarla públicamente siempre que se cite el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), y siempre que la obra derivada quede sujeta a la misma licencia que el material original. La licencia completa se puede consultar en: https://creativecommons.org/licenses/by-sa/3.0/es/legalcode.ca

Introducción

Esta asignatura tiene como finalidad que los futuros ingenieros del software profundicen en el estudio de las problemáticas, herramientas y técnicas relacionadas con los requisitos del software. A la hora de presentar los contenidos en estos materiales, nos hemos marcado dos objetivos principales:
Hemos querido presentar la disciplina de la ingeniería de requisitos desde un punto de vista práctico, dando mucha importancia a las técnicas y herramientas que los estudiantes podrán aplicar en su vida profesional.
También hemos querido dar una visión lo más amplia posible sobre la ingeniería de requisitos, viendo aspectos tan variados como la gestión de productos o la implementación de las pruebas automatizadas de aceptación.
Estos materiales asumen que el estudiante está familiarizado con la ingeniería de requisitos (en el caso de los estudiantes de la UOC, asumiremos que se ha cursado Ingeniería del software). Por tanto, estos materiales profundizan y amplían algunos conceptos que ya se han estudiado, al mismo tiempo que introducen nuevas técnicas y herramientas para la gestión de requisitos.
En el primer módulo, haremos una pequeña introducción a la ingeniería de requisitos y aprovecharemos para presentar el caso práctico que iremos desarrollando a lo largo del resto de los módulos.
En el segundo módulo, repasaremos las técnicas de obtención de requisitos que ya conocemos y presentaremos nuevas. En el tercer módulo, veremos nuevas técnicas para la gestión de requisitos, sobre todo desde el punto de vista de gestión del software como producto.
Dedicaremos el cuarto módulo a la documentación de requisitos. Veremos varios estilos de documentación y cómo los diferentes estilos tienen ventajas e inconvenientes que los hacen ideales para situaciones diferentes.
Finalmente, en el quinto módulo veremos cómo podemos verificar la corrección del trabajo hecho. Hablaremos primero sobre cómo validar que los requisitos que hemos recogido son los requisitos correctos y, a continuación, hablaremos sobre cómo podemos asegurar que el software desarrollado cumple los requisitos.

Objetivos

Los objetivos que el estudiante tiene que lograr en esta asignatura son los siguientes:
  1. Situar la ingeniería de requisitos dentro del contexto de la ingeniería del software.

  2. Conocer el proceso de la ingeniería de requisitos, así como las diferentes tareas involucradas en ella.

  3. Conocer las principales técnicas de obtención de requisitos.

  4. Conocer técnicas para descubrir requisitos que los stakeholders todavía no saben que tienen.

  5. Saber crear una lista priorizada y estimada de requisitos candidatos.

  6. Saber elegir de la lista de requisitos candidatos, cuáles son los más adecuados y prioritarios para el producto de software que hemos de desarrollar.

  7. Saber elegir entre los diferentes estilos de documentación (ágil/exhaustivo, formal/no formal) para un proyecto de software determinado.

  8. Saber evitar los errores más frecuentes en la utilización de los casos de uso.

  9. Saber cómo validar la corrección y la calidad de los requisitos.

Bibliografía

Cockburn, A. (2001). Writing Effective Use Cases. Addison-Wesley.
Cohn, M. (2004). User Stories Applied. Addison Wesley.
Cohn, M. (2006). Agile estimating and planning. Prentice Hall Professional Technical Reference.
Davis, A. M. (2005). Just Enough Requirements Management. Dorset House.
Diversos autores (2004). SWEBOK. Software Engineering Body Of Knowledge Guide. IEEE Computer Society.
Leffingwell, D. (2011). Agile Software Requirements. Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley.
Pradel, J.; Raya, J. Enginyeria del Programari. Editorial UOC.