Adaptación de Software de Aplicación al Paradigma de la Ingeniería de Línea de Productos de Software

En el actual mercado globalizado las grandes compañías de desarrollo de software están entregando a sus clientes distinta variedad de productos y con cada vez menos distancia de tiempo entre un producto y otro. Esto se debe a gran parte en la reutilización de sus productos para la generación de los nuevos. Esto responde a una creciente demanda por la variedad en los productos o su customización. Para llevar esto a cabo, las empresas de tecnología desarrollan lo que se conoce como “familia de productos” que se generan a partir de un paradigma de desarrollo conocido como SPL o línea de productos de software. Sus ventajas son la de tener un bajo Time to Market, además de disminuir los costos de producción y mejorar la mantenibilidad de los productos, entre muchas otras. Se pretende aplicar este paradigma en base a dos aplicaciones que actualmente comparten gran parte de su implementación. Estas aplicaciones son “Face animator” y “Tree grow simulator”, las cuales básicamente son aplicaciones que permiten visualizar mallas geométricas y manipularlas según distintos parámetros y algoritmos. “Face animator” es una aplicación pensada en la manipulación de mallas geométricas que modelan rostros humanos, permitiendo el movimiento de distintas partes del rostro. Por otro lado la aplicación “Tree grow simulator” está pensada para la manipulación de mallas geométricas que modelan troncos de árboles, permitiendo crear una animación para ver su crecimiento mediante la distribución de una hormona. Para lograr generar una familia de productos en base a estas dos aplicaciones, se tuvo que estudiar el código fuente de ambos y hacer correcciones en el código fuente de una de estas, para poder hacer una aplicación genérica. Para esto se identificaron los puntos en común (commonalities) y las distintas opciones para una funcionalidad (puntos de variabilidad). Para esto se utilizó una herramienta web llamada “S.P.L.O.T.”, que permite generar un modelo de características o “features” y aplicar reglas lógicas entre las distintas opciones para mantener la consistencia de los productos. Esta herramienta también cuenta con un catalogo o configurador de productos, donde se permite elegir las opciones (variantes) de los puntos de variabilidad, así generando una configuración para una aplicación especifica. El paso siguiente fue la creación de una nueva aplicación, que permite seleccionar las variantes para los puntos variables pre definidos. Luego esta herramienta compila el código fuente y genera un archivo de configuración y un ejecutable, que es la nueva aplicación configurada con las opciones seleccionadas. Dentro de las dificultades encontradas, el actual diseño no permite la separación de componentes de manera de que estos sean independientes, importante al momento de compilar, por lo que se propone como un futuro desarrollo la restructuración en las clases de la interfaz grafica y donde se implementan los distintos puntos de variabilidad. También se puede agregar funcionalidades como lectura de un archivo XML directamente desde la herramienta “S.P.L.O.T.” cargando así automáticamente la selección de opciones. También se hace necesario agregar funcionalidades que existen en la aplicación “Tree grow simulator” y no se encuentran implementados en el código fuente de “Face Animator”.