La transformación del paradigma de ingeniería de software con la síntesis
Desde hace mucho tiempo, investigadores y expertos en computación han considerando la síntesis como el “santo grial” de la ingeniería de software. Sin embargo, la mayoría de los profesionales ni siquiera han oído esta palabra. En líneas generales, la síntesis (en el contexto de software) equivale al problema de crear una aplicación correcta de software ejecutable directamente a partir de las necesidades. En el sentido más puro, significa que no es necesaria la intervención humana en ninguna fase del proceso y que el software creado es correcto en función de la satisfacción de necesidades.
Las necesidades, por lo tanto, se encuentran en el centro de este problema. Las necesidades válidas deben ser fáciles de entender y de trabajar con ellas, pero a su vez deben ser formales; una cualidad que carece de muchos lenguajes de modelización general como por ejemplo UML. No sólo deberían establecer lo que el software debería realizar sino también lo que no debería realizar. Las síntesis abiertas necesitan que se consideren los funcionamientos externos como aquellos producidos por usuarios, hardware y otros interventores ajenos al control del software. Los algoritmos de síntesis determinan en primer lugar si es posible incluso satisfacer las necesidades. En tal caso, se construye al menos una solución que satisface las necesidades.
Esta visión, que alguna vez fue un sueño, ya se ha hecho realidad al menos para ciertos dominios de software. Durante algún tiempo, han existido las denominadas herramientas de generación de códigos las cuales exigen “sintetizar” el software; en realidad, estas solo generan partes de una aplicación, a veces únicamente con código estructural, y sin garantía de exactitud. Mientras que la exactitud puede parecer un requisito obvio que no merece mucha atención, en la realidad puede determinar la diferencia entre un software con errores a uno sin ellos. En un mundo en el que los usuarios han llegado casi a esperar errores periódicos y fallas, cualquier variación de esta norma podría considerarse perfectamente un avance. Para los productores de software, podría significar que los esfuerzos de desarrollo de software permanezcan más cerca de un costo inferior a los anteriores.
Pero la síntesis es otra área de investigación activa por parte de los expertos de Prolifogy. Resolver con eficiencia constituye un problema difícil y para el caso general no se ha hallado solución. Sin embargo, se ha obtenido éxito al aplicar técnicas de síntesis a aplicaciones con ciertos funcionamientos bien comprendidos. Prolifogy ha estado trabajando con clientes para que la investigación de síntesis sea implementada en aplicaciones de la vida real. Los profesionales de software con visión de futuro que estén interesados en obtener más información sobre la tecnología de avanzada en síntesis, deberían ponerse en contacto de forma gratuita con Prolifogy al 855-PROLIFOGY (855-776-5436).


