Análisis de los Métodos de Selección de Componentes COTS desde una Perspectiva Ágil Fredy Navarrete, Pere Botella, Xavier Franch Universitat Politècnica de Catalunya {fjnavarrete, botella, franch}@lsi.upc.edu http://www.lsi.upc.edu/~gessi Resumen Los métodos ágiles de construcción de software como eXtreme Programming y Scrum conciben el proceso de construcción como un ejercicio de desarrollo de software a medida. Sin embargo en la actualidad, muchos sistemas software están compuestos parcial o incluso totalmente por componentes COTS (Commercial Off-The-Shelf), debidamente personalizados e integrados. En este tipo de sistemas, el énfasis se desplaza de las actividades propias del desarrollo a medida, a los procesos de selección e integración de COTS. Existen diferentes propuestas basadas en la selección de COTS (pocas tratan de integración), y en este artículo estudiamos cómo se comportan desde un punto de vista ágil. Concretamente, introducimos los principios ágiles en el contexto de selección de COTS y analizamos bajo esta perspectiva algunas de las propuestas de selección de COTS más aceptadas. Como resultado, identificamos algunas prácticas que pueden dotar de mayor agilidad a los procesos de selección de COTS. 1. Introduction En la actualidad, los métodos ágiles [1, 2] juegan un rol importante en las prácticas de la ingeniería del software. Métodos como eXtreme Programming (XP) [3] y Scrum [4], entre otros, han sido adoptados por organizaciones y equipos de desarrollo, que han informado de diversos resultados satisfactorios (asimismo, se han informado de experiencias no tan satisfactorias, como es habitual en todo tipo de método). Sin embargo, en nuestra opinión, el problema de los métodos ágiles es que tienden a centrarse únicamente en sistemas software desarrollados a medida por un equipo de programadores, donde la reutilización esta limitada a repositorios de componentes de software, manejados básicamente por el mismo equipo (o por otra parte de la organización). Si por ejemplo consideramos las prácticas de XP, tales como la programación por pares o la simplicidad del diseño, puede ser complicado extrapolarlas a otro contexto que no sea el del desarrollo a medida. Sin embargo, esta perspectiva no tiene en cuenta una gran porción del mercado software, tales como los sistemas de información cooperativos o software de comunicación, donde la construcción de sistemas se basa en la adquisición e integración de componentes COTS (Commercial Off-The-Shelf). La pregunta que aparece de inmediato es si los métodos ágiles pueden ser aplicados al contexto de la construcción de software basado en COTS. La contribución de nuestro artículo se enfoca en esta dirección. Hemos identificado dos estados en nuestra investigación: en la primera fase nos proponemos analizar la agilidad de los procesos locales relacionados con COTS, básicamente selección e integración, y luego nos centraremos en la agilidad del proceso global de construcción de sistemas basados en COTS. En este artículo nos hemos centrado en el proceso selección de COTS. El resto del artículo esta estructurado como sigue. Primero identificamos los principios ágiles que pueden ser aplicados en el contexto de los COTS (sección 2). A continuación, analizamos algunos de los métodos de selección de COTS más aceptados en relación con dichos principios ágiles (sección 3). Finalmente, a partir de nuestras experiencias, sugerimos algunas prácticas que pueden mejorar la perspectiva ágil de los métodos de selección de COTS (sección 4). Finalmente, citamos el trabajo relacionado y las conclusiones de nuestro artículo (sección 5).