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. id:67132
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.
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.
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.
Los investigadores
Robert Clarisó, Investigador del grupo SOM Research Lab, del IN3, y de los Estudios de Informática, Multimedia y Telecomunicación de la UOC.
Jordi Cabot, Profesor de investigación ICREA y líder del grupo SOM Research Lab, del IN3 de la UOC.