Acciones
(Importando una nueva versión desde fuente externa)
Línea 5: Línea 5:
 
{| style="border: none;"
 
{| style="border: none;"
 
|style="background-color:#ffffff" valign="top" |[[Image:Icono_requisitos.png|class=icon]]
 
|style="background-color:#ffffff" valign="top" |[[Image:Icono_requisitos.png|class=icon]]
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Ingenier&iacute;a de requisitos'''. NRP (''Next Release Problem'') es un destacado problema que consiste en seleccionar el conjunto &oacute;ptimo de requisitos a desarrollar en la siguiente iteraci&oacute;n de un proyecto, sujeto a diversas restricciones (Pitangueira ''et al.'', 2015). Uno de los desaf&iacute;os es resolver eficazmente la versi&oacute;n multi-objetivo del problema, minimizando el coste de los requisitos a la vez que se maximiza el beneficio esperado (Del Sagrado ''et al''., 2015). Otros retos son la aplicaci&oacute;n de algoritmos exactos y estudiar c&oacute;mo influyen los posibles errores en la estimaci&oacute;n de los requisitos (Harman ''et al''., 2014). El problema NRP puede extenderse para considerar varias versiones anticipadamente, incorporar la asignaci&oacute;n de recursos, etc., lo que da lugar a problemas muy complejos pero de gran aplicabilidad pr&aacute;ctica.</font>
+
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Requirements Engineering'''. The Next Release Problem (NRP) is a well-known SBSE problem that aims at selecting the optimal set of requirements to be implemented in the next project iteration, subject to diverse constraints (Pitanguera ''et al''., 2015). One challenge here is to address the multi-objective version of the problem, where the costs associated to the requirements should be minimized while maximizing the expected benefit (Del Sagrado ''et al''., 2015). Other challenges include the application of exact algorithms and the study of influence of estimation errors (Harman ''et al''., 2014). NRP can be also extended to consider incoming releases, to integrate resource allocation, etc., leading to complex scenarios but with great applicability in practice.</font>
 
|-
 
|-
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_diseño.png|class=icon]]
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_diseño.png|class=icon]]
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Dise&ntilde;o autom&aacute;tico de software'''. Las tareas de an&aacute;lisis y dise&ntilde;o del software est&aacute;n fuertemente vinculadas a decisiones humanas, por lo que el &eacute;xito en su realizaci&oacute;n recae en la experiencia y habilidades de los expertos. A pesar de las dificultades que plantea, SBSE tambi&eacute;n ha comenzado a abordar su resoluci&oacute;n de manera autom&aacute;tica (Räihä, 2010). Actualmente se est&aacute;n realizando importantes esfuerzos en tareas como la ingenier&iacute;a inversa para l&iacute;neas de producto (Lopez-Herrejon ''et al''., 2015), el dise&ntilde;o de servicios web (Parejo ''et al''., 2014) o la optimizaci&oacute;n de arquitecturas software (Ram&iacute;rez ''et al''., 2015b). En este ámbito se hace necesario considerar la construcci&oacute;n de modelos metaheur&iacute;sticos destinados a dar soporte al ingeniero, m&aacute;s que a sustituirlo, con el fin de apoyarle durante la concepci&oacute;n, modificaci&oacute;n y mejora del software desde una fase temprana de su desarrollo.</font>
+
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Automatic software design'''. Tasks belonging to the analysis and design phases are clearly related to human decisions, so their success strongly depends on the engineer’s expertise and abilities. Despite the related difficulties, SBSE has started to face the automatic design of software in an automatic way (R&auml;ih&auml;, 2010). Great efforts are made to address tasks like reverse engineering for software product lines (Lopez-Herrejon ''et al''., 2015), web services design (Parejo ''et al''., 2014) or software architecture optimization (Ram&iacute;rez ''et al''., 2015b). In this scenario, metaheuristic models should be viewed as a support to software engineers, instead of their replacement. Therefore, the objective is to assist them during the conception, modification and enhancement of software since its very early development.</font>
 
|-
 
|-
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_interactividad.png|class=icon]]
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_interactividad.png|class=icon]]
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Algoritmos interactivos (''human-in-the-loop'')'''. Existen tareas que son complejas de simular, y cuyas soluciones son dif&iacute;ciles de evaluar por la m&aacute;quina. Por ejemplo, se podr&iacute;a pensar en el an&aacute;lisis de un sistema. Es por ello fundamental considerar la participaci&oacute;n del ingeniero en el propio proceso de optimizaci&oacute;n, com&uacute;nmente llamado ''human-in-the-loop'', con el fin de incorporar sus habilidades y as&iacute; lograr resultados m&aacute;s satisfactorios. Aunque se han realizado aportaciones en el &aacute;mbito del dise&ntilde;o software (Simons and Parmee, 2012; Simons ''et al''., 2014) y la generaci&oacute;n de pruebas (Marculescu ''et al''., 2015), la interacci&oacute;n entre los algoritmos de b&uacute;squeda y los expertos a&uacute;n requiere un estudio profundo, ya que entran en juego aspectos como el rol del experto en la b&uacute;squeda, las necesidades espec&iacute;ficas del problema a resolver o la fatiga asociada al proceso (Ram&iacute;rez ''et al''., 2015a).</font>
+
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Interactive algorithms (''human-in-the-loop'')'''. Software Engineering tasks can be complex to simulate, especially those when the automatic evaluation of the quality of solutions is not possible. The system analysis phase might be an example. In this scenario, the active participation of the expert in the optimization process is a must, implying the consideration of the ''human-in-the-loop''. This kind of approaches allows integrating expert's abilities with the search process in order to obtain more satisfactory results. Although there are some proposals in areas like software design (Simons and Parmee, 2012; Simons ''et al''., 2014) and testing (Marculescu ''et al''., 2015), interactive mechanisms still require an in-depth analysis. Factors usually involved in interactive approaches are the role of the expert in the search process, the specific requirements of the problem under study or the user fatigue (Ram&iacute;rez ''et al''., 2015a).</font>
 
|-
 
|-
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_pruebas.png|class=icon]]
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_pruebas.png|class=icon]]
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Pruebas software'''. ''Search Based Software Testing'' (SBST) constituye una de las ramas m&aacute;s estudiadas y fruct&iacute;feras de SBSE (Dom&iacute;nguez-Jim&eacute;nez ''et al''., 2011; Lopez-Herrejon ''et al''., 2014; Ferrer ''et al''., 2015). Recientemente se han identificado tres l&iacute;neas de investigaci&oacute;n prometedoras en SBST (Harman ''et al''., 2015): la automatizaci&oacute;n de pruebas no funcionales, con especial atenci&oacute;n al consumo energ&eacute;tico; la b&uacute;squeda de estrategias de prueba, en oposici&oacute;n a los casos de prueba; y la optimizaci&oacute;n de varios objetivos simult&aacute;neamente (optimizaci&oacute;n multi-objetivo), tales como la cobertura, el tiempo de ejecuci&oacute;n, o la memoria requerida. Harman ''et al''. auguran un futuro prometedor a herramientas basadas en b&uacute;squeda que sean capaces de encontrar errores en el software, resolverlos y verificar las soluciones, todo autom&aacute;ticamente (''FiFiVerify tools'').</font>
+
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Software testing'''. Search Based Software Testing (SBST) represents one of the most studied and fruitful areas of SBSE (Dom&iacute;nguez-Jim&eacute;nez ''et al.'', 2011; Lopez-Herrejon ''et al.'', 2014; Ferrer ''et al.'', 2015). Recently, three promising research lines have been identified (Harman ''et al''., 2015): the automation of non-functional test cases, putting especial attention into energy consumption; the search of testing strategies in constrast to the generation of test cases; or the joint optimization of several objectives (multi-objective optimization), such as test coverage, execution time or required memory. Harman ''et al''. already announced a promising future for those  search-based tools capable of finding bugs, solving them and verifying solutions in a fully automatic way (''FiFiVerify tools'').</font>
 
|-
 
|-
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_costes.png|class=icon]]
 
| style="background-color:#ffffff" valign="top" |[[Image:Icono_costes.png|class=icon]]
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Estimación de costes software'''. La estimaci&oacute;n de costes es un aspecto de gran importancia durante el desarrollo del software que tambi&eacute;n puede abordarse desde la perspectiva de SBSE (Dolado, 2001). En este campo se han propuesto diversos modelos metaheur&iacute;sticos, aunque su efectividad todav&iacute;a no ha demostrado ser superior a los m&eacute;todos cl&aacute;sicos. Varios participantes en esta Red han realizado evaluaciones de los modelos de estimaci&oacute;n utilizando t&eacute;cnicas de an&aacute;lisis de equivalencia (Dolado et al, 2014). En este sentido, ser&iacute;a necesario disponer del mayor n&uacute;mero posible de modelos para poder realizar una valoraci&oacute;n exhaustiva. </font>
+
| style="background-color:#ffffff; text-align:justify;" | <font size=3>'''Software cost estimation'''. Software cost estimation is a key aspect throughout the software life cycle that can be also addressed from a SBSE perspective (Dolado, 2001). Within this field, there are several proposals using metaheuristic models, though their effectiveness has not been demonstrated to be higher than classic methods. Some participants of the SEBASENet consortium have performed evaluations of estimation models using equivalence analysis techniques (Dolado ''et al''., 2014). It would be desirable to count with a greater number of models in order to complete a more comprehensive assessment.</font>
 
|}
 
|}
  

Revisión del 12:33 12 jun 2016

Desafíos

There are still many research challenges to face within the SBSE field. Among others, the consortium counts with great experience on addressing the following problems:

Icono requisitos.png Requirements Engineering. The Next Release Problem (NRP) is a well-known SBSE problem that aims at selecting the optimal set of requirements to be implemented in the next project iteration, subject to diverse constraints (Pitanguera et al., 2015). One challenge here is to address the multi-objective version of the problem, where the costs associated to the requirements should be minimized while maximizing the expected benefit (Del Sagrado et al., 2015). Other challenges include the application of exact algorithms and the study of influence of estimation errors (Harman et al., 2014). NRP can be also extended to consider incoming releases, to integrate resource allocation, etc., leading to complex scenarios but with great applicability in practice.
Icono diseño.png Automatic software design. Tasks belonging to the analysis and design phases are clearly related to human decisions, so their success strongly depends on the engineer’s expertise and abilities. Despite the related difficulties, SBSE has started to face the automatic design of software in an automatic way (Räihä, 2010). Great efforts are made to address tasks like reverse engineering for software product lines (Lopez-Herrejon et al., 2015), web services design (Parejo et al., 2014) or software architecture optimization (Ramírez et al., 2015b). In this scenario, metaheuristic models should be viewed as a support to software engineers, instead of their replacement. Therefore, the objective is to assist them during the conception, modification and enhancement of software since its very early development.
Icono interactividad.png Interactive algorithms (human-in-the-loop). Software Engineering tasks can be complex to simulate, especially those when the automatic evaluation of the quality of solutions is not possible. The system analysis phase might be an example. In this scenario, the active participation of the expert in the optimization process is a must, implying the consideration of the human-in-the-loop. This kind of approaches allows integrating expert's abilities with the search process in order to obtain more satisfactory results. Although there are some proposals in areas like software design (Simons and Parmee, 2012; Simons et al., 2014) and testing (Marculescu et al., 2015), interactive mechanisms still require an in-depth analysis. Factors usually involved in interactive approaches are the role of the expert in the search process, the specific requirements of the problem under study or the user fatigue (Ramírez et al., 2015a).
Icono pruebas.png Software testing. Search Based Software Testing (SBST) represents one of the most studied and fruitful areas of SBSE (Domínguez-Jiménez et al., 2011; Lopez-Herrejon et al., 2014; Ferrer et al., 2015). Recently, three promising research lines have been identified (Harman et al., 2015): the automation of non-functional test cases, putting especial attention into energy consumption; the search of testing strategies in constrast to the generation of test cases; or the joint optimization of several objectives (multi-objective optimization), such as test coverage, execution time or required memory. Harman et al. already announced a promising future for those search-based tools capable of finding bugs, solving them and verifying solutions in a fully automatic way (FiFiVerify tools).
Icono costes.png Software cost estimation. Software cost estimation is a key aspect throughout the software life cycle that can be also addressed from a SBSE perspective (Dolado, 2001). Within this field, there are several proposals using metaheuristic models, though their effectiveness has not been demonstrated to be higher than classic methods. Some participants of the SEBASENet consortium have performed evaluations of estimation models using equivalence analysis techniques (Dolado et al., 2014). It would be desirable to count with a greater number of models in order to complete a more comprehensive assessment.

Referencias

  1. Del Sagrado, J., del Águila, I.M., Orellana, F.J. (2015). Multi-objective Ant Colony Optimization for Requirements Selection. Empirical Software Engineering 20(3): 577-610.
  2. Dolado, J.J. (2001). On the problem of the software cost function. Information and Software Technology 43(1): 61-72.
  3. Dolado, J.J., Otero, M.C., Harman, M. (2014) Equivalence hypothesis testing in experimental software engineering. Software Quality Journal 22(2): 215-238.
  4. Domínguez-Jiménez, J. J., Estero-Botero, A., García-Domínguez, A., Medina-Bulo, I. (2011). Evolutionary Mutation Testing. Information and Software Technology 53(10): 1108-1123.
  5. Ferrer, J., Kruse, P.M., Chicano, F., Alba, E. (2015). Search based algorithms for test sequence generation in functional testing. Information and Software Technology 58: 419-432.
  6. Harman, M., Jia, Y., Zhang, Y. (2015). Achievements, open problems and challenges for search based software testing. Proc. of the IEEE International Conference on Software Testing, Verification and Validation (ICST'15), pp. 1-12.
  7. Harman, M., Krinke, J., Medina-Bulo, I., Palomo-Lozano, F., Ren, J., Yoo, S. (2014). “Exact scalable sensitivity for the next release problem”. ACM Transactions on Software. Engineering and Methodology 23(2): 19.
  8. Lopez-Herrejon, R.E., Ferrer J., Chicano F., Haslinger E.N., Egyed A., Alba E. (2014). A parallel evolutionary algorithm for prioritized pairwise testing of software product lines. Proc. of the Genetic and Evolutionary Computation Conference (GECCO '14), pp. 1255-1262.
  9. Lopez-Herrejon, R.E., Linsbauer, L., Galindo, J.A., Parejo J.A., Benavides, D., Segura, S., Egyed, A. (2015). An assessment of search-based techniques for reverse engineering feature models. Journal of Systems and Software 103: 353-369.
  10. Marcurlescu, B., Feldt, R., Torkar, R., Poulding, S. (2015). An initial industrial evaluation of interactive search-based testing for embedded software. Applied Soft Computing 29: 26-30.
  11. Parejo, J.A., Segura, S., Fernández, P., Ruiz-Cortés, A. (2014). "QoS-aware web services composition using GRASP with Path Relinking". Expert Systems with Applications 41(9): 4211-4233.
  12. Pitangueira, A.M., Maciel, R.S.P, de Oliveira Barros, M. (2015). Softrare requirements selection and prioritization using SBSE approaches: A systematic review and mapping of the literature. Journal of Systems and Software 103: 267-280.
  13. Räihä, O. (2010). Search-based software design. Computer Science Review 4: 203-249.
  14. Ramírez, A., Romero, J.R., Ventura, S. (2015a). Interactividad en el descubrimiento evolutivo de arquitecturas software. Actas de XX Jornadas españolas de Ingeniería del Software y Bases de Datos (JISBD), Santander.
  15. Ramírez, A., Romero, J.R., Ventura, S. (2015b). An evolutionary approach for the evolutionary discovery of software architectures. Information Sciences 305: 234-255.
  16. Simons, C.L., Parmee, I.C. (2012). Elegant Object-Oriented Software Design via Interactive, Evolutionary Computation. IEEE Transactions on Systems, Man and Cybernetics, part C: Applications and Reviews 42(6): 1797-1805.
  17. Simons, C.L., Smith, J., White, P. (2014). Interactive Ant Colony Optimization (iACO) for Early Lifecycle Software Design. Swarm Intelligence 8(2):139-157.