La ingeniería de requisitos es la disciplina que trata de desarrollar el software correcto, trantando de obtener el producto que realmente quiere o necesita el cliente.
Aunque tiene mucha relación con la ingeniería del software, no entra en detalle de como desarrollar la aplicación sino solamente de que cualidades tiene que tener para ser la aplicación que necesita el cliente.
Obviamente, antes de comenzar a desarrollar un determinado software tendremos que evaluar que requisitos tiene ese software y el coste de cada uno de esos requisitos para determinar el coste final que puede tener el producto.
Así pues, la ingeniería de requisitos tiene como objeto identificar y gestionar el conjunto de requisitos que darán como resultado el software que vamos a desarrollar.
Stakeholders y requisitos
Los stakeholders son todas las personas, usuarios y entidades que tienen algún interés en el producto.
Los requisitos son todas las características que algun stakeholders puede esperar del producto.
Ingeniería de requisitos
Está formado por el conjunto de las siguientes tareas
- Obtención de requisitos.
- Gestión de requisitos
- Documentación de requisitos
- Validación de requisitos
- Verificación de requisitos
Problemas que nos encontramos en la ingeniería de requisitos
- Diferencias entre los requisitos de los diferentes stakeholders
- Limitaciones de los diferentes lenguajes de comunicación
- Dificultad para elegir los requisitos que pueden ser mejores
Los tipos de Requisitos
Dentro de los requisitos que podemos encontrar vamos a hacer una lista de los más frecuentes y como agruparlos:
- Requisitos
- Requisitos de producto
- Requisitos Funcionales
- Requisitos de funcionalidad
- Requisitos de datos
- Requisitos No funcionales
- Requisitos de Presentación
- Requisitos de usabilidad
- Requisitos de Cumplimiento
- Requisitos de entorno
- Requisitos Culturales
- Requisitos Legales
- Requisitos Funcionales
- Requisitos de proceso
- Requisitos de producto
Obtención de requisitos
En esta etapa obtendremos todos los requisitos que pueden necesitar los distintos stakeholders,
en muchos casos estos requisitos serán iguales para distintos stakeholders, en otros casos entrarán en conflicto por que no será viable realizar ambos requisitos,
no obstante en esta parte de obtención de requisitos vamos a intentar recopila el mayor número de requisitos.
Todos los requisitos que hayamos obtenido en esta parte serán requisitos candidatos que más tarde veremos si seguirán adelante en el desarrollo de la aplicación.
Gestión de requisitos
En esta fase vamos a ver cuales de esos requisitos candidatos pasarán a formar parte de los requisitos de producto, primero con un buen analisis de requisitos que consisten en identificar bien los requisitos, ver dependencias y solapamientos entre ellos.
Después habrá que priorizar cuales son los requisitos por orden de importancia ya que muchas veces no se pueden desarrollar absolutamente todos los requisitos que necesita un cliente.
Ahora pasaríamos al momento de la estimación de estos requisitos, para poder valorar económicamente cual es el precio de desarrollar cada requisito.
Por último pasaríamos a seleccionar los requisitos que queremos desarrollar, una vez que tenemos todas las ideas claras, es el momento de seleccionar los requisitos.
Acabadas estas fases, lo lógico es que volvamos a hacer otra estimación sobre los requisitos, y empecemos de nuevo a repasar desde la fase uno de la gestión de requisitos, para estar seguro de que hemos escogido lo que finalmente queremos desarrollar,
Documentación de requisitos
En esta fase vamos a documentar los requisitos que finalmente se desarrollarán. Es muy importante documentar bien esta parte porque será de alguna manera el contrato entre lo que los desarrolladores y los stakeholders trabajarán.
Para la documentación de requisitos será muy útil utilizar las historias de usuario, los casos de uso y el lenguaje UML, que nos valdrán para describir el nivel de detalle de los requisitos.
Validación de requisitos
Llegados a esta fase ya tendremos los requisitos seleccionados y documentados. En la documentación se reflejará las necesidades de los stakeholders.
Para estar seguros de que esos requisitos son finalmente los que vamos a desarrollar nos reuniremos de nuevo con los stakeholders y explicaremos a modo de validación lo que finalmente se va a desarrollar.
Verificación de requisitos
Después del desarrollo del software es necesario validar con los stakeholders que los requisitos funcionan tal y como habíamos documentado y validado en las fases anteriores.
Por lo que se realizarán las pruebas necesarias para lograr la verificación de los requisitos.