15/1/21 · Investigación

Una nueva herramienta permite que el diseño del software sea más rápido y con menos errores

Una investigación liderada por la UOC presenta una nueva técnica de verificación de modelos de software

La herramienta permite la detección temprana de errores a lo largo de todo el proceso de modelado y no solo al final, como hasta ahora
Hack Capital / Unsplash

Hack Capital / Unsplash

Antes de empezar cualquier edificación, hace falta diseñar unos planos que sirvan de base y de guía para todo el proceso. Con el software sucede algo parecido: más en concreto, con la modelización. «Es un proceso equivalente a la preparación de los planos de un edificio antes de su construcción», compara Robert Clarisó, profesor de los Estudios de Informática, Multimedia y Telecomunicación de la Universitat Oberta de Catalunya (UOC) y miembro del grupo de investigación SOM Research Lab, del Internet Interdisciplinary Institute (IN3).

Gracias a la modelización, los ingenieros describen un sistema de software desde una perspectiva concreta, como pueden ser los datos que usará, sus componentes o el comportamiento que esperan de él. Si volvemos al ejemplo del edificio, los planos serían lo que se denomina «modelos», que se pueden usar como guía durante la etapa de desarrollo y para hacer simulaciones o pruebas.

«El tipo de modelo más conocido es el diagrama de clases en notación UML (unified modeling language), que se usa para describir la estructura de un sistema de software», explica el investigador. La ventaja de trabajar con estos modelos es que son más abstractos que el código fuente, que contiene muchos detalles específicos de la tecnología usada. «Los modelos pueden ser más concisos, más fáciles de producir y de comprender», afirma Clarisó.

Por tanto, en lugar de una alternativa al código fuente, la modelización sería más bien un paso previo. Por un lado, los modelos sirven para entender mejor el sistema que se está desarrollando y, por otro, pueden usarse para generar parte de la implementación, automatizando las partes más repetitivas del proceso de programación.

El papel de las herramientas de verificación

Para evitar errores que podrían repercutir en el propio código y, por tanto, en la implementación final del sistema, los ingenieros utilizan herramientas de verificación. «Es clave poder asegurar que los modelos son correctos para minimizar posibles errores en el software que se produzca a partir de ellos», recalca Clarisó.

En un estudio publicado en la revista Journal of Object Technology, Clarisó, Carlos A. González (investigador en el Gran Telescopio Canarias) y Jordi Cabot (investigador ICREA) han diseñado una nueva técnica de verificación en modelos UML/OCL que resuelve un problema muy común. Cada vez que un diseñador hace un cambio en el modelo —como añadir, borrar o modificar información—, hay que volver a analizarlo por completo. Por eso la verificación se suele hacer solo al final del proceso, cuando ya hay un modelo definitivo.

«En el artículo proponemos métodos de verificación incremental, es decir, reducimos el esfuerzo necesario para verificar un modelo después de hacer cambios en él», señala Clarisó, uno de los autores del estudio. Esto permite que se pueda verificar el modelo no solo al final, como hasta ahora, sino también a medida que se va construyendo, sin tener que empezar desde cero, lo que facilita la detección temprana de errores.

Una comunidad muy activa a escala nacional e internacional

Otra novedad del método es que se basa en el uso de certificados, que son ejemplos que ilustran el funcionamiento correcto del modelo. «Cuando modificamos un modelo, podríamos ahorrarnos verificarlo si tuviéramos un nuevo certificado para él», mantiene el investigador.

La clave está en que adaptar un certificado es mucho menos costoso que repetir la verificación. El artículo explica cómo realizar este proceso: en lugar de verificar el nuevo modelo, los autores proponen adaptar un certificado del modelo original al nuevo. El mayor reto que tienen ahora por delante es integrar estas técnicas en herramientas y entornos de modelado de software.

En cuanto a la situación del sector, Clarisó, que coordinó durante dos años la Red de Excelencia en Ingeniería del Software Dirigida por Modelos en España, resalta que «la comunidad española de modelado sigue muy activa y participa en diversos proyectos de investigación a escala nacional e internacional».

De hecho, aunque la red haya finalizado, la comunidad continúa trabajando y colaborando gracias a un congreso anual, las Jornadas de Ingeniería del Software y Bases de Datos, donde hay un espacio dedicado a la ingeniería del software dirigida por modelos.

La investigación forma parte del proyecto europeo «MegaM@Rt2: MegaModelling at Runtime» (2020 ECSEL Joint Undertaking Project, 737494) y del proyecto «Open Data for All: an API-based infrastructure for exploiting online data sources» (TIN2016-75944-R), financiado por el Plan estatal de I+D+i del Ministerio de Ciencia e Innovación. 

Esta investigación favorece el objetivo de desarrollo sostenible (ODS) 9, industria, innovación e infraestructura.

Artículo de referencia

Clarisó, R.; González, C. A.; Cabot, J. «Incremental Verification of UML/OCL Models». Journal of Object Technology. DOI: 10.5381/jot.2020.19.3.a7.

UOC R&I 

La investigación e innovación (RI) de la UOC contribuye a solucionar los retos a los que se enfrentan las sociedades globales del siglo xxi, mediante el estudio de la interacción de las TIC con la actividad humana, con un foco específico en el aprendizaje en línea y la salud digital. Los más de 400 investigadores y 50 grupos de investigación se articulan en torno a los siete estudios de la UOC y dos centros de investigación: el Internet Interdisciplinary Institute (IN3) y el eHealth Center (EHC).

Los objetivos de la Agenda 2030 de Desarrollo Sostenible de las Naciones Unidas y el conocimiento abierto son ejes estratégicos de la docencia, la investigación y la innovación de la UOC. Más información: research.uoc.edu #25añosUOC

Expertos UOC

Contacto de prensa

También te puede interesar

Más leídos

Ver más sobre Investigación