Software product line model for the meshing tool domain

Una malla es una discretización de la geometría de un cierto dominio. Las mallas pueden estar compuestas de diversos elementos: triángulos, cuadriláteros, tetraedros, etc. Una herramienta para la generación de mallas es un aplicación que permite crear, refinar, desrefinar, mejorar, suavizar, visualizar y posprocesar mallas y/o una región particular de ella, como también asignar valores físicos a los elementos de la malla (temperatura, concentración, etc.). Las herramientas para la generación de mallas son complejas y sofisticadas, y construir una herramienta nueva desde cero o mantener una existente, demanda un esfuerzo enorme. Existe una necesidad y oportunidad para usar enfoques nuevos en el desarrollo de estas herramientas, de manera de reducir tanto el tiempo como los costos de desarrollo, sin comprometer la calidad. La experiencia en el desarrollo de estas herramientas provee la motivación para la construcción de otras nuevas mediante la reutilización del trabajo realizado durante los desarrollos previos. Estas herramientas comparten varias características y sus variaciones pueden ser manejadas sistemáticamente. Esto hace que el desarrollo de estas herramientas sea una buena oportunidad para aplicar el enfoque de Línea de Productos de Software (LPS). Los procesos existentes de LPS son generales y requieren usualmente una serie de pasos y documentación innecesaria en el dominio de las herramientas para la generación de mallas. Así, esta tesis propone un modelo de proceso de LPS específico para este tipo de herramientas. Un proceso de desarrollo de LPS está centrado en la reutilización de software, e involucra principalmente dos fases: la ingeniería del dominio (ID) y la ingeniería de la aplicación (IA). El proceso presentado en este trabajo está centrado en dos etapas de la ID: el análisis del dominio (AD) y el diseño del dominio (DD). En el AD se define el modelo del dominio y el alcance de la LPS. En el DD la arquitectura de la línea de productos (ALP) es creada; esta arquitectura es válida y compartida por todos los productos en la LPS. Un modelo de características es comúnmente usado para modelar el dominio. En este trabajo, el AD también ocupa un diccionario, escenarios, acciones y metas para proveer el razonamiento utilizado para la construcción del modelo de características. Esta tesis presenta un proceso riguroso para obtener el modelo del dominio. Este modelo es formalizado mediante condiciones de consistencia y completitud. El proceso de definición del alcance es presentado a través de un diagrama de actividad. Además, el enfoque presentado en esta tesis presenta explícitamente los diferentes productos de la LPS, estableciendo relaciones entre productos y las características de la LPS, lo que permite administrar el desarrollo del producto. La etapa de DD se centra en la creación de la ALP, artefacto esencial para la construcción de productos de la LPS. Para ello, este trabajo provee un proceso deductivo y otro transformacional. En el primero, una ALP explícita es desarrollada, usando los artefactos producidos en el AD. Además, tanto la vista arquitectónica estructural como la de comportamiento son establecidas. Ambas vistas son generales y permiten la representación de cualquier producto dentro del alcance de la LPS. En el proceso transformacional, una ALP implícita es desarrollada usando reglas de transformación, las que han sido creadas usando artefactos producidos en el AD. En este proceso se produce la arquitectura para productos específicos, y la ALP es definida como la suma de todas las arquitecturas de los productos. Tanto el AD como el DD son descritos en detalle, y la aplicación del modelo de la LPS es ilustrado a través de un ejemplo bien documentado en el dominio de las herramientas para la generación de mallas, el que tiene un grado relativamente alto de complejidad. En este ejemplo, un modelo del dominio formalizado es introducido, y la arquitectura es definida tanto para el proceso deductivo como para el transformacional.