Investigadores de Valladolid buscan un uso eficiente de los ordenadores
Marta Dompablo/DICYT El profesor del Departamento de Informática de la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Valladolid, Miguel Ángel Laguna, es el coordinador de un grupo de investigación que en la actualidad realiza un proyecto que pretende mejorar la fabricación de sistemas informáticos tanto en su calidad, como en su competitividad.
Esta iniciativa, que se desarrolla desde el año 2004 y finalizará en este ejercicio, se denomina Diesel (Desarrollo, integración y evolución de sistemas software: un enfoque de las líneas de producto) y está financiada por el Ministerio de Educación y Ciencia.
El proyecto se desarrolla en dos líneas: la primera consiste en la creación de sistemas informáticos de calidad y que contemplen todos los problemas de variabilidad. La segunda pretende conseguir una evolución del software ya existente para que alcance la calidad necesaria. El concepto de calidad en ingeniería de software engloba “en primer lugar la idea de corrección, es decir que el software realice las acciones que debe, lo que no siempre ocurre; y además debe ser robusto, no fallar y ser fácil de usar”, precisa Miguel Ángel Laguna.
En este sentido el investigador destaca que “la idea es que una pyme de diez o quince empleados trabaje también en el desarrollo de líneas de producto, del mismo modo que lo hacen otras grandes compañías”. Otro ejemplo práctico de desarrollo de un software con variabilidad es la creación de una herramienta de comunicación para personas con discapacidad que se adapte al usuario, de forma que permita el uso de la herramienta adaptada a cada necesidad. Este estudio se realiza sobre la base del trabajo de los alumnos de la Universidad de Valladolid mediante proyectos fin de carrera.
En este caso se cuenta con herramientas como PDAs que serán utilizadas por personas con parálisis cerebral con problemas de comunicación. A la hora de resolver este problema lo primero es analizar los diferentes grados de discapacidad, explica el investigador, ya que por ejemplo existen personas con dificultades al hablar pero que ven perfectamente, mientras que otras no oyen. “La cantidad de problemas que puede tener una persona para interaccionar es muy grande y a la vez también existen distintos dispositivos con los que es posible comunicarse”, indica el investigador.
En este caso, el diseño del software es muy variado, ya que se puede desarrollar un sistema que utilice el método de barrido, que agrupe letras o que busque palabras en el diccionario. Así, si la persona sólo presenta discapacidad a la hora de realizar la marcación, se puede diseñar un sistema que va mostrando letras y así, el afectado puede ir pulsando. “Al final se termina realizando un análisis de la persona para encontrar el software más adecuado”, corrobora el investigador.
Mejorar el software
Por otro lado, la segunda línea del proyecto Diesel consiste en la mejora del software ya existente, esta parte la dirige la investigadora Yania Crespo González-Carvajal. Para ello se utiliza el concepto “refactorizar” que no se encuentra en el diccionario. Según Laguna refactorizar “es el proceso de cambiar un sistema software para mejorar su estructura interna, preservando su comportamiento externo”.
“Desde el punto de vista del trabajo que tienen que realizar los ingenieros de software es mucho más complicado trabajar con un producto mal diseñado que con uno bien diseñado”, continúa explicando.
Se trata de cambiar la estructura para que funcione exactamente igual, pero mejorando la calidad interna para que el mantenimiento sea más sencillo. Para ello hay que “descubrir dónde se encuentran estos defectos y arreglarlos”. El grupo trabaja en dos líneas de investigación: soporte de la reutilización desde los momentos iniciales y evolución de sistemas. En el primer caso de lo que se trata de es de conocer mejor el problema, para poder crear una especificación del software más adecuada. En el segundo, se habla de la evolución de estos sistemas para su adaptación a las necesidades.