Caracterización de las Técnicas de Adquisición de Requisitos Autor: Dante Carrizo Moreno Tutora: Natalia Juristo Juzgado Resumen Los profesionales del desarrollo de software se enfrentan frecuentemente a la necesidad de planificar sus actividades, y generalmente, la planificación resultante es de “grano grueso” y no permite programar en detalle cada etapa del proceso. Es el caso de la denominada Ingeniería de Requisitos, en la que difícilmente es posible obtener un plan de acción para adquirir los requisitos del sistema-software a construir desde sus fuentes. Esto se debe a que el proceso de adquisición de requisitos carece aún de sistematización formal que permita su planificación. La mayoría de los profesionales utiliza dos o tres técnicas que son las que conoce o que popularmente se aplican en esta etapa. Sin embargo, existe una gran cantidad de técnicas que provienen de otras ciencias como la sicología o la etnografía que han sido exitosamente probadas y utilizadas en la captura de requisitos. Esta brecha entre la investigación y la práctica ha merecido especial atención, siendo su eliminación el objetivo principal de diversos eventos y publicaciones creados en los últimos años. Este trabajo establece el estado del arte en la caracterización de las técnicas de adquisición de requisitos y, sobre la base de estos resultados, explorar la posibilidad de contribuir a la planificación de la etapa de requisitos estableciendo un esquema de caracterización de las técnicas existentes que guíe a los profesionales en la selección de qué técnicas aplicar en un determinado desarrollo de sistema-software. Inicialmente se establece el área de estudio, describiéndose la estructura del proceso, participantes y problemas de la Etapa (Ingeniería) de Requisitos y, en particular, la actividad de Adquisición de Requisitos. Se destaca el consenso sobre el carácter iterativo de las actividades de la etapa y de la relevancia de los factores humanos en el proceso. Pero el objetivo principal del trabajo fue investigar en publicaciones previas, resultados relacionados con la caracterización cualitativa o cuantitativa de técnicas de adquisición. La búsqueda fue infructuosa, encontrándose información parcial y poco estructurada de todas las técnicas de adquisición existentes en Ingeniería Informática. Caracterizaciones informales y subjetivas fueron encontradas en muchas páginas web de Internet, de carácter académico, que son utilizadas como conocimiento tácito de enseñanza pero que carece de fundamento científico. Algunos investigadores han advertido esta necesidad y han expuesto que “futuras investigaciones deben centrarse en proveer herramientas y métodos automáticas y noautomáticas que apoyen la toma de decisión durante la planificación de actividades, por ejemplo una herramienta que asista en decidir qué actividades ejecutar y durante cuánto tiempo” [El Emam and Madhavji 1995a]. Entre los resultados en esta dirección está el de [Stair and Lamothe 1991] que propone seguir algunas técnicas o enfoques dependiendo de otras contingencias como la experiencia y certidumbre, pero es muy simple y parcial. Un trabajo más global pero, por lo mismo, menos aplicable, es el de [Sutcliffe 1996] que presenta algunas guías de orientaciones del proceso de IR y algunas recomendaciones de técnicas de modelación para tipos de productos diferentes. [Robertson and Robertson 1999] dicen que ”se debe seleccionar la técnica de captura que mejor encaja en cada situación”. Así, presentan una guía para ayudar a la selección de la técnica de “Pesca” para cada caso. Pero es una guía que más bien caracteriza algunas técnicas, en lugar de orientar en casos particulares. Otra estrategia de trabajos se orienta a la realización de taxonomías. [Hughes et al. 1994], por ejemplo, presenta una taxonomía de las aplicaciones basada en dos dimensiones: características de comportamiento (visión del usuario) y características técnicas (visión del desarrollador). Sin embargo, sólo entrega algunas ideas estratégicas para el proceso de IR. Por otro lado, [Bickerton and Siddiqi 1992] presentan una taxonomía basada en un enfoque social de la organización y de sus integrantes, y a continuación presenta una clasificación de métodos y técnicas de IR, principalmente de modelación. Aunque la taxonomía es relativamente clara, no considera todos los aspectos que son relevantes en la utilización de una técnica. El trabajo más práctico, en esta dirección, es el presentado por [Davis 1993] que presenta una taxonomía de aplicaciones que utiliza luego para clasificar las técnicas de modelación según sus ventajas para ser aplicadas en cada caso. Un trabajo más extenso sobre la etapa de adquisición es el de [Chatzoglou and Macaulay 1995a], cuyo estudio muestra que los factores humanos afectan la productividad en las tres primeras iteraciones del proceso de Captura y Análisis de Requisitos (CAR). Su finalidad fue entender la naturaleza del proceso CAR y entonces desarrollar un modelo que asista a los jefes de proyectos en la planificación del proceso [Chatzoglou and Macaulay 1995b]. Entre los resultados del estudio se obtuvo un modelo de planificación mediante un enfoque basado en reglas, debido a que es mejor que los modelos matemáticos para describir problemas difusos o pobremente definidos como el proceso CAR y es más apropiado para el formato de los datos obtenidos. Otro estudio presentado por [Keil and Carmel 1995] presenta las relaciones entre los clientes y los desarrolladores. Estas relaciones se refieren a técnicas o canales entre ellos para el intercambio de información. El estudio se realizó sobre 30 proyectos de dos entornos: de desarrollo de paquetes (para ventas), y de clientes (in house, o desarrollo externo para terceros). Entre los resultados destacan: Mientras más canales entre cliente y desarrollador, más éxito en el proyecto. Se debe utilizar técnicas directas (sin intermediario) para reducir la distorsión o pérdida de información. Hay técnicas más adecuadas para cada entorno. A pesar de que considera entornos escasos, la idea de que existen técnicas que pueden ser óptimas para diferentes situaciones es comprobada. El único trabajo que considera un número importante de técnicas de adquisición y estudia sus características, es el efectuado por [Maiden and Rugg 1996]. Estos autores presentan ACRE, un marco para asistir a los ingenieros de requisitos en la selección de métodos o técnicas para la adquisición de requisitos. Intenta proveer una guía para seleccionar de un amplio rango de diferentes métodos con diferentes características y de diferentes orígenes. Provee métodos para adquisición de requisitos de los interesados, más que para extraer requisitos de documentos. Estos métodos adquieren requisitos tanto del sistema software como del dominio y entorno de él. ACRE ha sido diseñado para ayudar a seleccionar métodos para una sesión de adquisición, esto es, varios métodos pueden ser seleccionados para una sesión. El modelo considera 12 técnicas de adquisición, para las cuales define 6 facetas o características sobre el problema. La guía consiste en responder a las consultas de las facetas y decidir sobre los métodos a elegir. Se pretende desarrollar un Sistema Experto para soportar el método (el trabajo se ha discontinuado). Pese a lo relevante de este trabajo, sigue utilizando un subconjunto de técnicas, y solo para personas pero no para fuentes escritas. También, no existe completitud con respecto a los factores que influyen en el proceso, incluso, muchos de ellos son difícil de determinar al inicio del proyecto de desarrollo. Estos factores o facetas definen más características de las técnicas, que del entorno del sistema, por lo que necesita más conocimiento de sobre ellas para elegir. Esto es poco aplicable, ya que son los factores externos los que deben perfilar las técnicas adecuadas. Finalmente no hay justificaciones claras de la pertinencia de cada técnica, solamente asignación cualitativa y subjetiva. Como resultado de la investigación se concluye que no existen estudios suficientemente completos para guiar en la selección de técnicas de adquisición. Tampoco existen estudios científicos sobre la caracterización de las técnicas. Esto implica que, antes de poder establecer una guía para la selección de técnicas, se debe establecer un marco para la caracterización de las técnicas. Este marco debe contemplar aquellos factores que están involucrados en la selección de técnicas tales como: las características de las técnicas, las características de las fuentes de requisitos, características de los Ingenieros de Requisitos, y características de la aplicación y del problema a solucionar. Esta conclusión abre la posibilidad de iniciar una línea de investigación que permita contribuir a solucionar la problemática expuesta y que será el objetivo de la tesis doctoral.