¿Requisitos o Requerimientos?

Introducción

La discusión sobre el uso de las palabras requisito y requerimiento en la ingeniería de software lleva varios años y, dada la difusión de ambos términos (como sinónimos o no), seguramente seguirá por mucho tiempo más. Un análisis de las discusiones existentes (ver referencias) permite observar que la mayoría está cargada de sesgos cognitivos, lo que genera la necesidad de un análisis objetivo.

Un análisis preliminar en Google nos permite observar que las referencias a Ingeniería de requerimientos son un 30% mayores que las referencias a Ingeniería de requisitos. Pero en lo que respecta al análisis la relación se invierte ya que las referencias al análisis de requisitos son 9 veces (900%) mayores que las referencias al análisis de requerimientos. Más allá de la cuestión cuantitativa, esto solo aumenta la incertidumbre con respecto al término a utilizar.

Req vs Req

En el presente artículo se analizarán ambos conceptos y las implicancias que tienen sus usos dentro de la ingeniería de software.

 

Importancia de una correcta definición

Uno de los principios que debe cumplir una ciencia es que el conocimiento científico esté definido por un lenguaje que sea claro y preciso. Las imprecisiones, según Schuchardt, son para la ciencia como la niebla para la navegación. Y en lo que respecta al lenguaje, sobre la ingeniería pesan los mismos principios que sobre la ciencia, ya que esta última es base de la primera.

La necesidad de evitar imprecisiones se hace aún más evidente en esta disciplina (ingeniería de requisitos/requerimientos), ya que uno de sus objetivos es generar una salida libre de ambigüedad. Pero a los fines prácticos la especificación de la ingeniería (sea en ingeniería de requerimientos o ingeniería de requisitos) no debería tener ninguna influencia en sus procesos y resultados.

Si bien lo dicho en el párrafo anterior minimiza la importancia del objeto de este artículo, tenemos que considerar las implicancias de una expresión ambigua o incorrecta. Más allá de cuestiones de ética y moral profesional, con una expresión incorrecta estaríamos atentando contra uno de los principios del conocimiento científico como es la comunicabilidad.

 

Diferenciación de conceptos

Un análisis semántico de los conceptos de requerimiento y requisito permite observar que no tienen relación directa entre ellos. Según la RAE, requerimiento es un sinónimo de necesidad, es decir, un concepto orientado hacia la carencia o falta de algo. Requisito es, en cambio, una circunstancia o condición necesaria para algo.

Ya este primer análisis permite observar que la definición precisa sería requisito, ya que lo que se pretende estudiar es el conjunto de condiciones que debe cumplir el software, de forma tal que sirvan como guía para el desarrollo de software.

Más allá de lo antedicho, deberíamos considerar valida la existencia de variedades lingüísticas, ninguna de las cuales debe ser censurable ya que cada una de ellas sirve al propósito comunicativo dentro de sus límites, sean estos impuestos por la localización geográfica, la situación concreta en la que se produce la comunicación o el grupo social al que pertenecen los interlocutores. Pero requerimiento no sólo no es una variedad lingüística de requisito sino que tampoco es un sinónimo. Aún dentro del contexto de sistemas, apuntan a conceptos diferentes e incluso valiosos de forma independiente.

Analizando el uso de estos términos en otros idiomas, notamos que los mismos son ajenos a esta situación. Y es en este análisis en donde encontramos el posible origen del problema ya que la palabra requirement (requisito en inglés) puede fácilmente ser mal traducida como requerimiento. Esto último asumiendo como corolario que el origen de este concepto (como cuerpo de conocimiento) surge del inglés.

A continuación se presenta un cuadro comparativo con la traducción de ambos conceptos a diferentes idiomas:

Español requerimiento requisito
Inglés request requirement
Alemán beantragen Anforderung
Italiano richiedere requisiti
Francés demander exigence
Latín requirĕre requīsitus

Revisando el cuerpo de investigaciones en otros idiomas, observamos también que en todos los casos el uso adecuado de la expresión apunta siempre a requisito y no a requerimiento: Requirements analysis (en inglés), Anforderungsanalyse (en alemán), Analisi dei requisiti (en italiano) y Analyse des exigences (en francés).

Es importante aclarar otro punto más del uso en otro idiomas: la palabra requirement, además de su acepción válida como traducción de requisito (condición), es en inglés un sinónimo de necesidad (need). Si bien esto podría generar una mayor confusión en el uso de los términos, debemos limitarnos a las acepciones en nuestro idioma.

Requerimientos y requisitos, otras acepciones

Existe una diferenciación muy presente en la literatura de la materia que es necesario analizar. La misma define los conceptos de la siguiente manera:

  • requerimiento: son todas las necesidades y deseos pedidos por el cliente y las personas involucradas en el software
  • requisito: todas las funcionalidades, características y restricciones que debería tener el software

Si bien esta diferenciación es muy interesante por su riqueza, de todas formas sería un error hablar de requerimientos dentro de las tareas contempladas en el estándar IEEE 830-1998, que apunta de forma precisa a la especificación de requisitos de software.

Estas acepciones, que de ninguna forma contradicen lo expuesto anteriormente, presentan la versatilidad de recurrir a los requerimientos (en lenguaje del negocio) para modelar la necesidad del cliente y a los requisitos para modelar las características del software (en lenguaje propio de la ingeniería).

 

Resumen

Cuando se realizan tareas enmarcadas dentro del estándar IEEE 830-1998 se debe hablar de requisitos y no de requerimientos. Si bien la acepción de requerimientos orientada a las necesidades del usuario es válida, es intrínsecamente ajena a la especificación de requisitos de software. Por este motivo también debería evitarse hablar de la Ingeniería de Requerimientos o del Análisis de Requerimientos ya que no representan lo que se busca representar.

 

Referencias

  • Escobar, G. Á. (2007) Importancia del lenguaje en el conocimiento y la ciencia.
  • Bunge, M. (1972) La ciencia: su método y su filosofía. Siglo veinte.
  • http://rae.es/
  • http://lema.rae.es/dpd/

Discusiones sobre este tema