Desarrollo de un marco comparativo para la evaluación de lenguajes de modelado de requisitos para Líneas de Productos de Software

  1. Sepúlveda Cuevas, Samuel Eduardo
Dirigida por:
  1. Cristina Cachero Castro Directora

Universidad de defensa: Universitat d'Alacant / Universidad de Alicante

Fecha de defensa: 22 de enero de 2016

Tribunal:
  1. César Emilio Insfrán Pelozo Presidente/a
  2. Irene Garrigós Fernández Secretaria
  3. José Ambrosio Toval Álvarez Vocal
Departamento:
  1. LENGUAJES Y SISTEMAS INFORMATICOS

Tipo: Tesis

Teseo: 400564 DIALNET

Resumen

1. Introducción. El ritmo creciente al que los clientes están demandando nuevos productos y servicios de software ha forzado a la comunidad de desarrollo software a buscar nuevas propuestas que les ayuden a incrementar la productividad de sus procesos sin mermar su calidad. Entre estas propuestas se encuentran las Líneas de Productos Software (LPS), definidas como una familia de sistemas que comparten un conjunto común de activos con extensiones y variaciones que están orientadas a las necesidades de clientes específicos o un segmento particular de mercado [1]. Entre los múltiples beneficios de las LPS reportados por la literatura destaca la reducción en los ciclos para desarrollar el producto, el incremento de la productividad, la reducción de costos y una mejora substancial en la calidad de los productos desarrollados. [2, 3]. Uno de los conceptos clave dentro de las LPS es el de variabilidad, que se define como la habilidad de una LPS para ser modificada, personalizada, configurada o extendida y ser así usada en un contexto específico, permitiendo de este modo la diferenciación y diversificación de los productos a desarrollar [7]. La variabilidad en las LPS se introduce a través de la definición de un conjunto de elementos reutilizables (p. ej. arquitecturas, componentes) que permiten la generación de diferentes productos [4]. El objetivo que persigue la variabilidad para las LPS es maximizar el retorno de la inversión en la construcción y mantenimiento de software dentro de un período específico de tiempo o para un número determinado de productos [5]. En función de las características de la LPS, la gestión de la variabilidad puede convertirse en una tarea extremadamente compleja. La mayor parte de esta complejidad radica en la relación que se da entre características propias de cada LPS: algunas pueden depender de otras para su inclusión, mientras que la presencia de ciertas características puede impedir la selección de otras [6]. Para dicha gestión, que constituye uno de los aspectos centrales que distinguen a las LPS de otras propuestas de desarrollo de software, se han propuesto una serie de procesos, técnicas y herramientas específicas [7]. A nivel de requisitos, la variabilidad de una LPS se suele representar mediante un Modelo de Características (MC) [8]. Un MC tiene una estructura de árbol, donde su raíz representa a la LPS que se desea modelar. Las características de la LPS están organizadas dentro del árbol. Las hojas de dicho árbol representan componentes individuales o configurados que pueden ser ensamblados con el fin de generar una aplicación particular [9]. El MC fue presentado por primera vez como parte del método FODA [10]. A día de hoy, podemos encontrar distintas versiones de este modelo en prácticamente todos los métodos de LPS que se basan en la representación visual de las características del producto. Sin embargo, cada versión ha incorporado matices semánticos y sintácticos que están dificultando la comunicación entre los profesionales [11]. Hasta el momento, el único intento conocido de resolver este conflicto es el meta modelo propuesto por [12] y, a pesar de los esfuerzos de la comunidad científica, no ha sido posible definir ningún tipo de estándar. Un segundo problema de los MC es que, si bien la mayoría de las propuestas en torno a los MC declaran cubrir aspectos semánticos, estos se asocian a ciertos puntos de vista erróneos sobre lo que se entiende por semántica, por ejemplo el relacionar directamente aspectos semánticos con la definición de meta modelos o cualquier otra representación matemática formal [13]. Por último, el nivel de inmadurez de la comunidad de LPS con respecto a los MC se refleja en la falta de datos relativos a elementos tan importantes como los niveles de madurez y expresividad de los distintos lenguajes, así como en la falta de un acervo empírico que valide el uso de estos lenguajes. El proveer estos datos empíricos es de suma importancia para apoyar a los administradores y jefes de proyectos de cara a realizar una toma de decisiones informada que permita una selección apropiada de las técnicas y herramientas más adecuadas para la captura de requisitos en LPS, dadas las características y restricciones en torno a cada proyecto. 2. Objetivos El objetivo principal de esta investigación es el desarrollo de un marco comparativo para la evaluación de lenguajes gráficos de MC para LPS. Este marco incluirá aspectos sintácticos, semánticos y pragmáticos. Cada uno de estos aspectos será estudiado por separado sobre las distintas propuestas de MC. Para el abordaje de los aspectos sintácticos se estudiarán tanto los metamodelos –sintaxis abstracta- como las notaciones. Para el análisis de la parte semántica nos apoyaremos en marcos formales extraídos del campo de la filosofía de la ciencia. Por último, para el estudio de los aspectos pragmáticos recopilaremos o, en su caso, definiremos medidas para evaluar aspectos como la madurez del lenguaje, su nivel de expresividad, su uso en la industria o su grado de validación empírica, entre otros. Como último paso, se aplicará el marco desarrollado en el contexto de una revisión sistemática de lenguajes de modelado de variabilidad en LPS que proporcione una visión actualizada de su grado de desarrollo y madurez. Como segundo objetivo se plantea la definición de un meta modelo unificado que subsane las principales carencias sintácticas y semánticas detectadas en la revisión sistemática realizada. 3. Metodología Tal y como hemos apuntado en la sección anterior, esta tesis tiene dos objetivos principales de naturaleza bien distinta. El primero, la evaluación y comparación sintáctica, semántica y pragmática de los principales lenguajes de modelado de características, es de tipo científico, y su desarrollo se enmarca en un paradigma de investigación evaluativo-deductivo o positivista [14]. Como principales métodos de investigación pretendemos realizar un análisis conceptual para la elaboración del marco comparativo y una revisión sistemática de la literatura [15] para su aplicación. El segundo objetivo por el contrario (la propuesta de meta modelo que palíe las carencias detectadas en este tipo de lenguajes y preserve sus puntos fuertes) es de tipo ingenieril, y su desarrollo sigue un paradigma formulario [14]. Para su desarrollo pretendemos realizar un análisis conceptual para la propuesta de meta modelo y una implementación de concepto para su validación. El proyecto incluye además actividades que se enmarcan dentro del paradigma descriptivo, es decir, que pretenden proporcionar una visión general de tipo aproximativo respecto a determinados aspectos de los lenguajes de modelado de características, como puedan ser sus deficiencias semánticas. Según [14], estos paradigmas y métodos de investigación están dentro de los más utilizados en la disciplina de Ingeniería de Software. La elección de estos métodos de investigación viene condicionada por la falta de madurez del campo de modelado de requisitos de las LPS, que dificulta enormemente la formulación de hipótesis precisas o de cierta generalidad con respecto a aspectos como la calidad o la utilidad de este tipo de lenguajes, y que por tanto merma las posibilidades de aplicabilidad de otros tipos de métodos como experimentos o casos de estudio. 4. Conclusiones En esta tesis se ha desarrollado un marco comparativo para la evaluación de lenguajes de modelado de características para LPS. Este marco ha sido aplicado para evaluar el estado de la investigación con respecto a este tipo de lenguajes. A partir de esta evaluación hemos mostrado que existen problemas a nivel sintáctico y semántico en los lenguajes usados para la representación de MC en LPS. Con el fin de paliar los problemas detectados a nivel sintáctico, dentro del desarrollo de este trabajo se ha definido un meta modelo para la creación de MC. Este meta modelo incorpora un conjunto de conceptos que permite ampliar el poder expresivo de los MC. Además, la incorporación de un conjunto de restricciones OCL permite prevenir la formación de MC que atenten contra la lógica de los mismos. Respecto de los aspectos semánticos, como parte de este trabajo se han identificado un conjunto de cuatro anomalías semánticas: (polisemia, ambigüedad, idealismo y limitación simbólica). Además se han planteado ejemplos de cada una de estas categorías para mostrar que efectivamente los MC presentan este tipo de problemas. Por último, se han planteado hipótesis de solución a dos de estas categorías (ambigüedad y polisemia). A partir de los bajos niveles de validación empírica observados para los lenguajes de modelado podemos establecer la urgente necesidad de mejorar las formas en las cuales se validan las propuestas de lenguajes de modelado para MC en LPS. Del mismo modo, debe ser mejorada la documentación y publicación de estas validaciones. Nos atrevemos a plantear que es muy posible que el bajo nivel de adopción de los lenguajes de modelado se vea amplificado por la falta de validación empírica, que puede devaluar su utilidad para la industria.