Ingeniería de software basada en búsqueda

En general, podemos encontrar problemas de optimización en cualquier disciplina de la ingeniería. En estos problemas, intentamos encontrar los mejores valores para las variables que intervienen en los mismos. Con frecuencia, los problemas de optimización pertenecen a la clase de complejidad NP-difícil, lo que quiere decir que no se conoce un método que los pueda resolver de forma eficiente. Para problemas pequeños, existen métodos que los pueden resolver de forma exacta. Sin embargo, conforme el tamaño del problema aumenta, lo que sucede en problemas reales, el tiempo de ejecución de estos métodos incrementa de forma considerable. Esta es la principal razón por la cual comúnmente se utilizan métodos heurísticos para resolver problemas de optimización, los cuales, a pesar de no ofrecer una garantía de desempeño, usualmente encuentran soluciones buenas y practicas.

En la ingeniería de software, de ahora en adelante IS, como en cualquier otra disciplina de la ingeniería, también surgen problemas de optimización, previamente, durante y después del desarrollo de software, los cuales tienen que ser resueltos de la mejor forma posible. Precisamente, la ingeniera de software basada en búsqueda, a la que nos referiremos como ISBB, considera a los problemas que aparecen en la IS como problemas de optimización y los intenta resolver mediante métodos heurísticos.

Una variedad de métodos se han usado en la ISBB, dentro de los cuales podemos encontrar métodos de búsqueda local y algunas metaheurísticas como recocido simulado y búsqueda tabu. Es mi particular interés aplicar heurísticas bioinspiradas, debido a su simplicidad de implementación y a los resultados favorables que se han obtenido mediante ellos en otras disciplinas de la ingeniera.