A continuación se mencionan las siguientes definiciones de un requerimiento:
-
Según Benet (2003:110) “Los requisitos son la especificación de lo que debe hacer el software, son descripciones del comportamiento, propiedades y restricciones del software que hay que desarrollar”.
- “Un requisito del software es una característica que debe exhibir para solucionar cierto problema del mundo real. Por lo tanto, un requisito del software es una característica que se debe exhibir por el software desarrollado o adaptado para solucionar un problema particular.” (SWEBOK, 2004: 2-1).
- Según la norma ISO/IEC/IEEE(2010), define los requerimientos como:
- Una condición o capacidad de un sistema solicitada por un usuario para resolver un problema o alcanzar una meta.
- Un a condición o capacidad que debe cumplirse para que una solución satisfaga un contrato, especificaciones, estándar o cualesquiera otros documentos formales impuestos.
- Representación de la documentación de las condiciones o capacidades presentada en los dos puntos anteriores.
- Una condición o capacidad que debe poseer el sistema, producto, servicio o componente resultante para satisfacer un contrato, norma, especificación u otro documento formalmente impuesto. Los requisitos incluyen las necesidades cuantificadas y documentadas, deseos, expectativas de patrocinador, clientes y otros interesados.
- Lo que se espera que haga el sistema (¿qué?)
- Su justificación (¿por qué ha de ser así? ¿quién lo propuso?) y,
- Los criterios de aceptación que sean aplicables (¿cómo se verifica su cumplimiento?).
De acuerdo a lo que indica Johnson 1995: 2(1):41-47.“La correcta obtención de los requisitos es uno de los aspectos más críticos de un proyecto software, independientemente del tipo de proyecto que se trate, dado que una mala captura de los mismos es la causa de la mayor parte de los problemas que surgen a lo largo del ciclo de vida”.
El no definir los requisitos correctamente tiene un precio bastante alto ya que se ocasionan requisitos mal definidos; estos errores pueden causar requisitos incompletos, incorrectos o requisitos contradictorios, lo que lleva a que se puedan generar lo siguiente: Reprocesos, sobrecosto, Mala calidad, retraso en las fechas de la entrega, clientes no satisfechos, el equipo se encuentran agotados y desmoralizados.
La importancia de tener requisitos de correctos y de calidad radica en lo siguiente:
-
Involucran del 10 al 15% del coste total del proyecto.
-
Tener un error en los requerimientos es el costos más alto que un error en el código y esto conlleva a dicho error se transfiera a todas las demás etapas del proceso de desarrollo del software.
-
Para que un proyecto de software sea exitoso y se eviten los altos costos, es necesario definir correctamente los requisitos en el inicio del proceso del desarrollo del software para lo cual se debe realizar una estimación lo más real posible del tiempo que se necesita para realizar esta etapa.
Uno de los principales problemas al que nos enfrentamos como ingenieros de software en el desarrollo de sistemas es la ingeniería de requisitos, ya que de este proceso depende el éxito del producto de software; considerando que si hay algún error en esta fase el resto de fases del ciclo de vida también se verán afectados y por ende el resultado es un producto de software que no cumple con las necesidades de los cliente/interesados.
Resumiendo, las principales dificultades que se presentan en el proceso de recolección de requerimientos podemos mencionar algunas:
- Realizar cambios sobre los requisitos ya definidos es muy costoso.
- No identifican correcta las necesidades reales de los clientes
- Son incompletos, no son consistentes, ambiguos, lo que provoca que sea interpretado de diferentes formas por los interesados.
- Pueden existir malentendidos entre los stakeholders, y los ingenieros de software.
- Frecuentemente no está clara la frontera entre requisitos y diseño.