Acciones
(Se marcó esta sección para su traducción)
 
(No se muestran 4 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 +
<translate>
 +
<!--T:2-->
 
<h1>Desaf&iacute;os</h1>
 
<h1>Desaf&iacute;os</h1>
  
 +
<!--T:3-->
 
Existen multitud de desaf&iacute;os de investigaci&oacute;n dentro del dominio de SBSE. Los participantes de SEBASENet tienen experiencia en afrontar con &eacute;xito, entre otros, los siguientes problemas:
 
Existen multitud de desaf&iacute;os de investigaci&oacute;n dentro del dominio de SBSE. Los participantes de SEBASENet tienen experiencia en afrontar con &eacute;xito, entre otros, los siguientes problemas:
  
 +
<!--T:4-->
 
{| style="border: none;"
 
{| style="border: none;"
|style="background-color:#ffffff" valign="top" |[[Image:Icono_requisitos.png|600px]]
+
|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 eficientemente 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). Otro reto es el estudio de la robustez de las soluciones obtenidas por los algoritmos exactos, es decir, c&oacute;mo influyen en la soluci&oacute;n los 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>'''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" valign="top" |[[Image:Icono_diseño.png|600px]]
+
| 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&auml;ih&auml;, 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írez ''et al.'', 2015b). En este &aacute;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>'''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" valign="top" |[[Image:Icono_interactividad.png|600px]]
+
| 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, especialmente las relacionadas con las fases de an&aacute;lisis y dise&ntilde;o, que son complejas de simular, y cuyas soluciones son dif&iacute;ciles de evaluar por la m&aacute;quina. 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írez et al., 2015a).</font>
+
| 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" valign="top" |[[Image:Icono_pruebas.png|600px]]
+
| 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 en el 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ón multi-objetivo), tales como la maximizaci&oacute;n de la cobertura y del tiempo de ejecuci&oacute;n, o la memoria requerida por el programa. Harman ''et al.'' auguran un prometedor futuro a herramientas basadas en b&uacute;squeda que encuentran errores en el software, los resuelven y verifican las soluciones, todo autom&aacute;ticamente (''FiFiVerify tools'').</font>
+
| 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" valign="top" |[[Image:Icono_costes.png|600px]]
+
| 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 se ha demostrado absolutamente superior a otros 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). Es deseable en este sentido disponer del mayor n&uacute;mero posible de modelos para poder realizar una valoraci&oacute;n exhaustiva. Por otro lado, los modelos basados en SBSE proporcionan una amplia variaci&oacute;n de par&aacute;metros, lo que hace necesario explorar nuevas propuestas de modelos de estimaci&oacute;n de costes, as&iacute; como su evaluaci&oacute;n.</font>
+
| 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>
 
|}
 
|}
  
 +
<!--T:5-->
 
<hr />
 
<hr />
 
'''Referencias'''
 
'''Referencias'''
Línea 29: Línea 34:
 
#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.
 
#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.
 
#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.
 
#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.
#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.
 
 
#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.
 
#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.
 +
#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.
 
#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.
 
#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.
 
#Parejo, J.A., Segura, S., Fern&aacute;ndez, P., Ruiz-Cort&eacute;s, A. (2014). "QoS-aware web services composition using GRASP with Path Relinking". Expert Systems with Applications 41(9): 4211-4233.
 
#Parejo, J.A., Segura, S., Fern&aacute;ndez, P., Ruiz-Cort&eacute;s, A. (2014). "QoS-aware web services composition using GRASP with Path Relinking". Expert Systems with Applications 41(9): 4211-4233.
Línea 39: Línea 44:
 
#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.
 
#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.
 
#Simons, C.L., Smith, J., White, P. (2014). ''Interactive Ant Colony Optimization (iACO) for Early Lifecycle Software Design''. Swarm Intelligence 8(2):139-157.
 
#Simons, C.L., Smith, J., White, P. (2014). ''Interactive Ant Colony Optimization (iACO) for Early Lifecycle Software Design''. Swarm Intelligence 8(2):139-157.
 +
</translate>

Revisión actual del 12:25 12 jun 2016

Desafíos

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:

Icono requisitos.png Ingeniería de requisitos. NRP (Next Release Problem) es un destacado problema que consiste en seleccionar el conjunto óptimo de requisitos a desarrollar en la siguiente iteración de un proyecto, sujeto a diversas restricciones (Pitangueira et al., 2015). Uno de los desafíos es resolver eficazmente la versió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ón de algoritmos exactos y estudiar cómo influyen los posibles errores en la estimación de los requisitos (Harman et al., 2014). 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.
Icono diseño.png Diseño automático de software. 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. A pesar de las dificultades que plantea, SBSE también ha comenzado a abordar su resolución de manera automática (Räihä, 2010). Actualmente se están realizando importantes esfuerzos en tareas como la ingeniería inversa para líneas de producto (Lopez-Herrejon et al., 2015), el diseño de servicios web (Parejo et al., 2014) o la optimización de arquitecturas software (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.
Icono interactividad.png Algoritmos interactivos (human-in-the-loop). Existen tareas que son complejas de simular, y cuyas soluciones son difíciles de evaluar por la máquina. Por ejemplo, se podría pensar en el análisis de un sistema. Es por ello 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; Simons et al., 2014) y la generación de pruebas (Marculescu et al., 2015), 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).
Icono pruebas.png Pruebas software. Search Based Software Testing (SBST) constituye una de las ramas más estudiadas y fructíferas de SBSE (Domínguez-Jiménez et al., 2011; Lopez-Herrejon et al., 2014; Ferrer et al., 2015). Recientemente se han identificado tres líneas de investigación prometedoras en SBST (Harman et al., 2015): la automatización de pruebas no funcionales, con especial atención al consumo energético; la búsqueda de estrategias de prueba, en oposición a los casos de prueba; y la optimización de varios objetivos simultáneamente (optimización multi-objetivo), tales como la cobertura, el tiempo de ejecución, o la memoria requerida. Harman et al. auguran un futuro prometedor a herramientas basadas en búsqueda que sean capaces de encontrar errores en el software, resolverlos y verificar las soluciones, todo automáticamente (FiFiVerify tools).
Icono costes.png Estimación de costes software. La estimación de costes es un aspecto de gran importancia durante el desarrollo del software que también puede abordarse desde la perspectiva de SBSE (Dolado, 2001). En este campo se han propuesto diversos modelos metaheurísticos, aunque su efectividad todavía no ha demostrado ser superior a los 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 (Dolado et al, 2014). En este sentido, sería necesario disponer del mayor número posible de modelos para poder realizar una valoración exhaustiva.

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.