Acciones
m
m
Línea 1: Línea 1:
Existen multitud de desafíos de investigación dentro del dominio de SBSE. Los participantes de SEBASENet tienen experiencia en afrontar con éxito alguno de los siguientes:
+
Existen multitud de desafíos de investigación dentro del dominio de SBSE. Los participantes de SEBASENet tienen experiencia en afrontar con éxito, entre otros, los siguientes problemas:
  
* '''Software testing'''. En un reciente trabajo, Harman, Jia y Zhang (2015) analizan la tendencia de la investigación en software testing basado en búsqueda (''Search Based Software Testing'') e identifican tres líneas de investigación prometedoras: la automatización de pruebas no funcionales con especial atención en el consumo energético de los programas; la búsqueda de estrategias de prueba, en oposición a los casos de prueba que han sido el foco de la investigación en SBST hasta ahora; y la optimización de varios objetivos relacionados con las pruebas simultáneamente (optimización multi-objetivo), tales como la maximización de la cobertura y del tiempo de ejecución, o la memoria requerida por el programa. Harman ''et al.'' auguran un prometedor futuro a herramientas basadas en búsqueda que encuentran errores en el software, los resuelven y verifican las soluciones, todo automáticamente (''FiFiVerify tools'').
+
* '''Ingeniería de requisitos'''. NRP (''Next Release Problem''), es un destacado problema que consiste en seleccionar óptimamente el conjunto de requisitos a desarrollar en la siguiente iteración de un proyecto, sujeto a diversas restricciones. Uno de los desafíos a abordar es la consecución de algoritmos “eficientes” para resolver la versión multi-objetivo del problema, que trata de minimizar el coste de los requisitos a desarrollar a la vez que se maximiza el beneficio esperado. En este sentido, es importante analizar ejemplos industriales de aplicación para obtener una formulación realista. Dado que todas las versiones de interés práctico corresponden a problemas de optimización NP-difíciles, resulta fundamental el análisis detallado del dominio de aplicación para aprovechar su estructura y proporcionar algoritmos perfectamente adaptados a ella. También resulta interesante el estudio de algoritmos exactos, en contraste con el empleo predominante de algoritmos metaheurísticos. Para ello es necesario conseguir algoritmos que compitan en eficiencia con dichas técnicas, a la par que garanticen la optimalidad de las soluciones. Otro reto es el estudio de la robustez de las soluciones obtenidas por los algoritmos exactos, es decir, cómo influyen en la solución los errores en la estimación de los requisitos. Algunos participantes han iniciado trabajos en colaboración con otros grupos internacionales, como (Harman et al., 2014), que culminó con una conferencia invitada en la British Computer Society (BCS). Por último, el problema NRP puede extenderse para considerar varias versiones anticipadamente, incorporar la asignación de recursos, etc., lo que da lugar a problemas muy complejos pero de gran aplicabilidad práctica.
 
+
* '''Algoritmos interactivos (''human-in-the-loop'')'''. La resolución de ciertas tareas de manera automática constituye un importante reto porque la toma de decisiones, por ejemplo durante el análisis y diseño del software, no son sólo difíciles de simular, sino también de evaluar por la máquina. Por ello, es fundamental considerar la participación del ingeniero en el propio proceso de optimización, comúnmente llamado ''human-in-the-loop'', con el fin de incorporar sus habilidades y así lograr resultados más satisfactorios. Aunque se han realizado aportaciones en el ámbito del diseño software (Simons and Parmee, 2012; Bavota ''et al.'', 2012), la interacción entre los algoritmos de búsqueda y los expertos aún requiere un estudio profundo, ya que entran en juego aspectos como el rol del experto en la búsqueda, las necesidades específicas del problema a resolver o la fatiga asociada al proceso (Ramírez et al., 2015a). Recientemente, los enfoques interactivos se están comenzando a aplicar en otros dominios, como la generación de pruebas (Marculescu ''et al.'', 2015). También se está abordando su integración con diferentes técnicas metaheurísticas, como la optimización basada en colonias de hormigas (Simons ''et al.'', 2014).
+
  
 
* '''Diseño de software automático'''. Las tareas de análisis y diseño del software están fuertemente vinculadas a decisiones humanas, por lo que el éxito en su realización recae en la experiencia y habilidades de los expertos. Además, las decisiones más relevantes para la calidad final del software son aquellas tomadas al comienzo de su construcción. A pesar de las dificultades que ambos aspectos plantean, SBSE también ha comenzado a abordar su resolución de manera automática (Räihä, 2010). Actualmente, se realizan importantes esfuerzos en tareas como el análisis orientado a objetos (Simons and Parmee, 2012), la ingeniería inversa (Lopez-Herrejon ''et al.'', 2015), el diseño de servicios (Parejo ''et al.'', 2014), el despliegue óptimo en la nube (Frey ''et al.'', 2013) o la optimización de arquitecturas software (Aleti ''et al.'', 2013; Ramírez ''et al.'', 2015b). En este ámbito se hace necesario considerar la construcción de modelos metaheurísticos destinados a dar soporte al ingeniero, más que a sustituirlo, con el fin de apoyarle durante la concepción, modificación y mejora del software desde una fase temprana de su desarrollo.  
 
* '''Diseño de software automático'''. Las tareas de análisis y diseño del software están fuertemente vinculadas a decisiones humanas, por lo que el éxito en su realización recae en la experiencia y habilidades de los expertos. Además, las decisiones más relevantes para la calidad final del software son aquellas tomadas al comienzo de su construcción. A pesar de las dificultades que ambos aspectos plantean, SBSE también ha comenzado a abordar su resolución de manera automática (Räihä, 2010). Actualmente, se realizan importantes esfuerzos en tareas como el análisis orientado a objetos (Simons and Parmee, 2012), la ingeniería inversa (Lopez-Herrejon ''et al.'', 2015), el diseño de servicios (Parejo ''et al.'', 2014), el despliegue óptimo en la nube (Frey ''et al.'', 2013) o la optimización de arquitecturas software (Aleti ''et al.'', 2013; Ramírez ''et al.'', 2015b). En este ámbito se hace necesario considerar la construcción de modelos metaheurísticos destinados a dar soporte al ingeniero, más que a sustituirlo, con el fin de apoyarle durante la concepción, modificación y mejora del software desde una fase temprana de su desarrollo.  
  
* '''Ingeniería de requisitos'''. Un destacado problema en ingeniería de requisitos es el problema de la siguiente versión (Next Release Problem o NRP), que consiste en seleccionar óptimamente el conjunto de requisitos a desarrollar en la siguiente iteración de un proyecto, sujeto a diversas restricciones. Uno de los desafíos a abordar es la consecución de algoritmos “eficientes” para resolver la versión multi-objetivo del problema, que trata de minimizar el coste de los requisitos a desarrollar a la vez que se maximiza el beneficio esperado. En este sentido, es importante analizar ejemplos industriales de aplicación para obtener una formulación realista. Dado que todas las versiones de interés práctico corresponden a problemas de optimización NP-difíciles, resulta fundamental el análisis detallado del dominio de aplicación para aprovechar su estructura y proporcionar algoritmos perfectamente adaptados a ella. También resulta interesante el estudio de algoritmos exactos, en contraste con el empleo predominante de algoritmos metaheurísticos. Para ello es necesario conseguir algoritmos que compitan en eficiencia con dichas técnicas, a la par que garanticen la optimalidad de las soluciones. Otro reto es el estudio de la robustez de las soluciones obtenidas por los algoritmos exactos, es decir, cómo influyen en la solución los errores en la estimación de los requisitos. Algunos participantes han iniciado trabajos en colaboración con otros grupos internacionales, como (Harman et al., 2014), que culminó con una conferencia invitada en la British Computer Society (BCS). Por último, el problema NRP puede extenderse para considerar varias versiones anticipadamente, incorporar la asignación de recursos, etc., lo que da lugar a problemas muy complejos pero de gran aplicabilidad práctica.
+
* '''Algoritmos interactivos (''human-in-the-loop'')'''. La resolución de ciertas tareas de manera automática constituye un importante reto porque la toma de decisiones, por ejemplo durante el análisis y diseño del software, no son sólo difíciles de simular, sino también de evaluar por la máquina. Por ello, es fundamental considerar la participación del ingeniero en el propio proceso de optimización, comúnmente llamado ''human-in-the-loop'', con el fin de incorporar sus habilidades y así lograr resultados más satisfactorios. Aunque se han realizado aportaciones en el ámbito del diseño software (Simons and Parmee, 2012; Bavota ''et al.'', 2012), la interacción entre los algoritmos de búsqueda y los expertos aún requiere un estudio profundo, ya que entran en juego aspectos como el rol del experto en la búsqueda, las necesidades específicas del problema a resolver o la fatiga asociada al proceso (Ramírez et al., 2015a). Recientemente, los enfoques interactivos se están comenzando a aplicar en otros dominios, como la generación de pruebas (Marculescu ''et al.'', 2015). También se está abordando su integración con diferentes técnicas metaheurísticas, como la optimización basada en colonias de hormigas (Simons ''et al.'', 2014).
 +
 
 +
* '''Software testing'''. En un reciente trabajo, Harman, Jia y Zhang (2015) analizan la tendencia de la investigación en software testing basado en búsqueda (''Search Based Software Testing'') e identifican tres líneas de investigación prometedoras: la automatización de pruebas no funcionales con especial atención en el consumo energético de los programas; la búsqueda de estrategias de prueba, en oposición a los casos de prueba que han sido el foco de la investigación en SBST hasta ahora; y la optimización de varios objetivos relacionados con las pruebas simultáneamente (optimización multi-objetivo), tales como la maximización de la cobertura y del tiempo de ejecución, o la memoria requerida por el programa. Harman ''et al.'' auguran un prometedor futuro a herramientas basadas en búsqueda que encuentran errores en el software, los resuelven y verifican las soluciones, todo automáticamente (''FiFiVerify tools'').  
  
 
* '''Estimación de costes software'''. En este campo se han propuesto diversos modelos metaheurísticos, aunque su efectividad todavía no se ha demostrado absolutamente superior a otros métodos clásicos. Varios participantes en esta Red han realizado evaluaciones de los modelos de estimación utilizando técnicas de análisis de equivalencia. Es deseable en este sentido disponer del mayor número posible de modelos para poder realizar una valoración exhaustiva. Los modelos basados en SBSE proporcionan una amplia variación de parámetros. En esta línea se están explorando nuevas propuestas de modelos de estimación de costes software basados en SBSE, así como la evaluación de esos modelos.
 
* '''Estimación de costes software'''. En este campo se han propuesto diversos modelos metaheurísticos, aunque su efectividad todavía no se ha demostrado absolutamente superior a otros métodos clásicos. Varios participantes en esta Red han realizado evaluaciones de los modelos de estimación utilizando técnicas de análisis de equivalencia. Es deseable en este sentido disponer del mayor número posible de modelos para poder realizar una valoración exhaustiva. Los modelos basados en SBSE proporcionan una amplia variación de parámetros. En esta línea se están explorando nuevas propuestas de modelos de estimación de costes software basados en SBSE, así como la evaluación de esos modelos.

Revisión del 22:46 11 abr 2016

Existen multitud de desafíos de investigación dentro del dominio de SBSE. Los participantes de SEBASENet tienen experiencia en afrontar con éxito, entre otros, los siguientes problemas:

  • Ingeniería de requisitos. NRP (Next Release Problem), es un destacado problema que consiste en seleccionar óptimamente el conjunto de requisitos a desarrollar en la siguiente iteración de un proyecto, sujeto a diversas restricciones. Uno de los desafíos a abordar es la consecución de algoritmos “eficientes” para resolver la versión multi-objetivo del problema, que trata de minimizar el coste de los requisitos a desarrollar a la vez que se maximiza el beneficio esperado. En este sentido, es importante analizar ejemplos industriales de aplicación para obtener una formulación realista. Dado que todas las versiones de interés práctico corresponden a problemas de optimización NP-difíciles, resulta fundamental el análisis detallado del dominio de aplicación para aprovechar su estructura y proporcionar algoritmos perfectamente adaptados a ella. También resulta interesante el estudio de algoritmos exactos, en contraste con el empleo predominante de algoritmos metaheurísticos. Para ello es necesario conseguir algoritmos que compitan en eficiencia con dichas técnicas, a la par que garanticen la optimalidad de las soluciones. Otro reto es el estudio de la robustez de las soluciones obtenidas por los algoritmos exactos, es decir, cómo influyen en la solución los errores en la estimación de los requisitos. Algunos participantes han iniciado trabajos en colaboración con otros grupos internacionales, como (Harman et al., 2014), que culminó con una conferencia invitada en la British Computer Society (BCS). Por último, el problema NRP puede extenderse para considerar varias versiones anticipadamente, incorporar la asignación de recursos, etc., lo que da lugar a problemas muy complejos pero de gran aplicabilidad práctica.
  • Diseño de software automático. Las tareas de análisis y diseño del software están fuertemente vinculadas a decisiones humanas, por lo que el éxito en su realización recae en la experiencia y habilidades de los expertos. Además, las decisiones más relevantes para la calidad final del software son aquellas tomadas al comienzo de su construcción. A pesar de las dificultades que ambos aspectos plantean, SBSE también ha comenzado a abordar su resolución de manera automática (Räihä, 2010). Actualmente, se realizan importantes esfuerzos en tareas como el análisis orientado a objetos (Simons and Parmee, 2012), la ingeniería inversa (Lopez-Herrejon et al., 2015), el diseño de servicios (Parejo et al., 2014), el despliegue óptimo en la nube (Frey et al., 2013) o la optimización de arquitecturas software (Aleti et al., 2013; Ramírez et al., 2015b). En este ámbito se hace necesario considerar la construcción de modelos metaheurísticos destinados a dar soporte al ingeniero, más que a sustituirlo, con el fin de apoyarle durante la concepción, modificación y mejora del software desde una fase temprana de su desarrollo.
  • Algoritmos interactivos (human-in-the-loop). La resolución de ciertas tareas de manera automática constituye un importante reto porque la toma de decisiones, por ejemplo durante el análisis y diseño del software, no son sólo difíciles de simular, sino también de evaluar por la máquina. Por ello, es fundamental considerar la participación del ingeniero en el propio proceso de optimización, comúnmente llamado human-in-the-loop, con el fin de incorporar sus habilidades y así lograr resultados más satisfactorios. Aunque se han realizado aportaciones en el ámbito del diseño software (Simons and Parmee, 2012; Bavota et al., 2012), la interacción entre los algoritmos de búsqueda y los expertos aún requiere un estudio profundo, ya que entran en juego aspectos como el rol del experto en la búsqueda, las necesidades específicas del problema a resolver o la fatiga asociada al proceso (Ramírez et al., 2015a). Recientemente, los enfoques interactivos se están comenzando a aplicar en otros dominios, como la generación de pruebas (Marculescu et al., 2015). También se está abordando su integración con diferentes técnicas metaheurísticas, como la optimización basada en colonias de hormigas (Simons et al., 2014).
  • Software testing. En un reciente trabajo, Harman, Jia y Zhang (2015) analizan la tendencia de la investigación en software testing basado en búsqueda (Search Based Software Testing) e identifican tres líneas de investigación prometedoras: la automatización de pruebas no funcionales con especial atención en el consumo energético de los programas; la búsqueda de estrategias de prueba, en oposición a los casos de prueba que han sido el foco de la investigación en SBST hasta ahora; y la optimización de varios objetivos relacionados con las pruebas simultáneamente (optimización multi-objetivo), tales como la maximización de la cobertura y del tiempo de ejecución, o la memoria requerida por el programa. Harman et al. auguran un prometedor futuro a herramientas basadas en búsqueda que encuentran errores en el software, los resuelven y verifican las soluciones, todo automáticamente (FiFiVerify tools).
  • Estimación de costes software. En este campo se han propuesto diversos modelos metaheurísticos, aunque su efectividad todavía no se ha demostrado absolutamente superior a otros métodos clásicos. Varios participantes en esta Red han realizado evaluaciones de los modelos de estimación utilizando técnicas de análisis de equivalencia. Es deseable en este sentido disponer del mayor número posible de modelos para poder realizar una valoración exhaustiva. Los modelos basados en SBSE proporcionan una amplia variación de parámetros. En esta línea se están explorando nuevas propuestas de modelos de estimación de costes software basados en SBSE, así como la evaluación de esos modelos.