Investigadores del ICC colaboraron en el proyecto de apertura de las especificaciones de software de Microsoft, que se realizó entre 2008 y 2013, a partir de un fallo antimonopolio hacia la compañía. El trabajo de revisión de los protocolos, documentación y prueba generalizada de productos por parte de los investigadores, hizo surgir interesantes casos de estudio y trabajos de doctorado que continúan en la actualidad en el Grupo de Ingeniería de Software del Instituto.
El software es uno de los objetos más complejos que construyen los seres humanos. En la actualidad, dependemos cada vez más del software pero no contamos con técnicas adecuadas para comprender su comportamiento emergente.
Sin embargo, aún con este panorama, investigadores en Ingeniería de Software del ICC trabajan desde hace años en algoritmos que permitan entender el comportamiento subyacente de un software en cierto nivel de abstracción y trazar el mapa de ruta de un programa o una especificación compleja. “Una de nuestras líneas de trabajo consiste en proponer soluciones novedosas para la ingeniería reversa: extraer el comportamiento que se conoce como el ‘espacio de estados” de un software y reducirlo de un modo que sea procesable por un ser humano, en este caso un ingeniero de software, y que le posibilite descubrimientos y preguntas más finas sobre el mismo”, puntualiza Víctor Braberman, investigador del ICC en el grupo LAFHIS (Laboratorio de Fundamentos y Herramientas de Ingeniería de Software) y doctor en Ciencias de la Computación. En este contexto, conseguir el comportamiento abstracto “navegable” del software es una tarea conceptual y algorítmica ardua, porque se trata de espacios de estado infinitos o enormes.
Lograr esta navegabilidad y visualización del comportamiento permitiría contrastar el comportamiento real del programa contra el modelo mental del revisor de software, de modo de poder confrontar sus hipótesis, indagar si son correctas o erróneas, de una manera que no está soportada actualmente por ninguna herramienta automática existente. ¿Cómo surge esta visión? A través de la participación del investigador en un proyecto global de auditoría que data de más de 10 años.
Algunos antecedentes
En 2007 el Tribunal de Primera Instancia de la Unión Europea respaldó al grueso de la Comisión Europea para sancionar a Microsoft por prácticas anticompetitivas, confirmando una histórica multa de 497 millones de euros. La Comisión Europea consideró que Microsoft “se aprovechó del virtual monopolio de su sistema operativo Windows para expulsar a otros competidores del mercado, a los que, además, no habría facilitado la información necesaria para fabricar productos compatibles”. Este dictamen sentó algunos precedentes respecto a cómo actuar frente a grandes compañías.
Más allá de los costos económicos y de recursos humanos, este fallo significó para Microsoft un giro en su estrategia, que se reconvirtió en compartir información esencial sobre su tecnología. Los cambios buscaron permitir a los desarrolladores Open Source acceder a protocolos para desarrollos que no sean comerciales, licenciar patentes para distribución comercial en términos razonables y no discriminatorios, cobrando royalties accesibles, y favorecer la interoperabilidad y mayor posibilidad de elección entre clientes y desarrolladores. Esto fue condensado en lo que en la actualidad se conoce como que el Programa de Especificaciones Abiertas (Open Specifications) del software de Microsoft.
Al hablar de “Especificación” de un software, nos referimos a la descripción completa del comportamiento del sistema que se va a desarrollar, que incluye un conjunto de casos de uso que describe todas las interacciones entre componentes externas y roles del protocolo.
No obstante, para poder lograr este giro, durante aproximadamente 5 años, Microsoft realizó una exhaustiva documentación del comportamiento de los protocolos que la compañía tenía en su complejo software. Esto implicó el testeo de un conjunto de casos de prueba (test suite) derivados de la documentación para la verificación de correspondencia entre el contenido de la misma y el comportamiento real de cada protocolo en sus productos.
El grupo LAFHIS en la auditoría del software
“Llegué al proyecto cuando la documentación estaba siendo desarrollada y mi trabajo consistió en una auditoría interna de la forma en que se estaba validando la documentación del software. Desde una perspectiva académica terminé liderando a un grupo de revisores de Microsoft para asegurarnos de entender mejor el comportamiento del software, detectar problemas en la documentación o en la forma que se estaba testeando”, subraya Braberman.
El investigador trabajó alrededor de 2 años en la auditoría del software. Fue convocado por Nicolás Kicillof, quien en ese momento estaba trabajando en Microsoft (Redmond, EE.UU.) y con quien ya había desarrollado proyectos académicos en Exactas-UBA. Además, colaboraron en el proyecto otros investigadores del Grupo LAFHIS y estudiantes de la carrera.
“Saber si la documentación/especificación de los protocolos era fiel al producto resultó una tarea muy compleja porque me enfrentaba con muchos modelos mentales: desde lo que yo u otros desarrolladores entendían del documento hasta las posibles desviaciones entre lo que testeaban los casos de prueba y lo que decía realmente el documento, ya que quizás no estaban reflejando lo que estaba especificado”, explica el investigador del ICC.
Braberman destaca que este tipo de proyectos le abrió al grupo toda una filosofía de trabajo. “Esta idea de cómo podemos construir un modelo a partir de abstracciones fue una característica (feature) esencial de una herramienta inicial que implementamos y nos ayudó también a desarrollar casos de estudio académicos e identificar oportunidades de colaboración con la industria”, aclara. Al mismo tiempo, a partir del proyecto surgieron diversos trabajos de doctorado, entre los que se destacan los aportes de Guido de Caso e Iván Postolski.