Análisis y corrección de software

Un grupo de investigación integrado por docentes de Computación y Matemática de la Facultad de Ciencias Exactas, Físico-Químicas y Naturales de la URNC, desarrolla técnicas y herramientas para el análisis de software, con el objetivo de detectar y resolver problema de verificación, validación y seguridad.

Con técnicas y metodologías de base matemática, el grupo de investigación trabaja en la corrección de software para evitar fallas y mejorar su confiabilidad. “Lo que tratamos de hacer es diseñar herramientas que nos permitan encontrar fallas o errores en los programas”, contó el doctor en Ciencias de la Computación, Renzo Degiovanni.

Esta línea de investigación de los informáticos y matemáticos de nuestra Facultad adquiere especial importancia si consideramos que en nuestra vida cotidiana estamos permanentemente interactuando con software y aplicaciones. Lo hacemos todo el tiempo, basta con llevar el celular a la palma de la mano y ya estamos conectados al mundo digital signado por los sistemas y aplicaciones informáticas.

También cumplen un rol importante en las actividades diarias otro tipo de software que son los denominados críticos, tales como: los sistemas de ABS o de estacionamiento computarizado que tienen los autos, los sistemas médicos, etc. Con sólo pensar qué podría pasar si uno de ellos falla nos podemos dar cuenta de la importancia de analizar y chequear la fiabilidad y seguridad de los sistemas informáticos.

“Lo que tratamos de hacer nosotros es desarrollar técnicas para detectar fallas, errores, que en principio las que los usarían son los desarrolladores de software. El aporte indirecto de los investigadores de Computación es hacer que esos programas sean más seguros y menos probables de fallar”, expresó Renzo Degiovanni.

También destacó que para una empresa que se dedica al desarrollo de software, “si uno puede identificar esas fallas antes de empezar a utilizarlo es muy importante porque gana tiempo, mejora la calidad de sus productos, logra una mayor valoración de los clientes y eso redunda en mejores ventas”.

Leer la letra chica

En el día a día muchas personas sufren las consecuencias de softwares que no son seguros y terminan compartiendo información confidencial.

Según el doctor en Ciencias de la Computación, “lo que se observa con más frecuencia es que muchas personas instalan aplicaciones en sus teléfonos móviles y sin mirar apretamos ´acepto las condiciones´ y quizá esa aplicación le está dando datos como las claves privadas o responder un email entregando claves. Eso es lo más común”.

Ante esta situación, lo importante es tomarse un tiempo para leer las condiciones y luego responder los requerimientos para utilizar la aplicación o responder el mensaje.

“Android es open source, entonces cualquiera puede descargar el código fuente y generar sus propias aplicaciones. Ahí uno puede encontrar huecos que pueden usarse para extraer datos de otras personas”, explicó Renzo Degiovanni.

Buscando fallas

Según el investigador de Exactas, detectar los errores en una etapa temprana “permite que los desarrolladores de software ahorren tiempo y dinero”, a la vez, hace que el producto sea más seguro para los usuarios. Eso “nos garantizará la calidad del producto” y genera una mejor imagen en la marca o empresa que desarrolla dicho software.

El proceso de análisis y busca de errores en un software tiene distintas etapas. “Lo primero que uno hace es identificar un problema que tiene un cliente”, indicó Renzo Degiovanni. Señaló que el objetivo es entender el problema. Esta etapa se llama de análisis o requisitos. El objetivo es saber cuál es el problema, cuáles son las expectativas del software, costo y analizar si puede ser realizable o no. Todo eso se documenta para luego empezar la solución, la etapa de diseño.

“En esta segunda etapa uno define los componentes que tendrá el software, los recursos humanos (cuánta gente hará falta), el tiempo de realización, etc.”, describió el doctor en Ciencias de la Computación, quien agregó que “posteriormente sigue la implementación y testeo”.

Según el docente del Departamento de Computación de la Facultad de Ciencias Exactas, todas estas tareas -mencionadas anteriormente- forman parte de distintas etapas en las cuales uno se puede desenvolver como profesional. “Algunos trabajan en la implementación, yo analizo los requisitos del software tratando de observar los errores del mismo. Esto se hace en una etapa temprana ya que permite ahorrar tiempo y dinero”.

Degiovanni manifestó que las técnicas que utilizan para el análisis de software tienen una fuerte base matemática. “Explotamos ramas como la lógica para analizar programas o modelos de programas”, indicó el informático.

 

Equipo de trabajo

El grupo de investigación se llama Métodos Formales e Ingeniería de Software y está integrado por: Nazareno Aguirre, Pablo Castro, Marcelo Arroyo, Germán Regis, Francisco Bavera, Pablo Ponzio, Valeria Bengolea, Cecilia Kilmurray, Simón Gutiérrez, Marcelo Uva, Gastón Scilingo, Maria Marta Novaira, Sonia Permigiani, César Cornejo, Mariano Politano, Facundo Molina, Luciano Putruele y Renzo Degiovanni.

Check Also

Pasantía rentada para estudiantes avanzados de Microbiología

La Secretaría de Extensión de la Facultad de Ciencias Exactas informa que la empresa Bioetanol …