Credit: CC0 Public Domain

Any building project requires the formulation of a series of initial plans prior to starting construction to serve as a basis and guide for the whole process. A similar procedure is followed in software development, with the inclusion of a specific step known as modeling. "The process is equivalent to the production of a set of plans for a building before its construction," explained Universitat Oberta de Catalunya (UOC) Faculty of Computer Science, Multimedia and Telecommunications professor and member of the SOM Research Lab research group from the Internet Interdisciplinary Institute (IN3), Robert Clarisó.

Engineers use modeling to describe a software system from a specific perspective, such as the data it will use, its components or the way they expect it to function. Going back to the building project example, the plans would be the models, which can be used for guidance during the development stage, as well as for carrying out simulations and tests.

According to the researcher, "The model type most frequently used is the UML (Unified modeling Language) class diagram notation, which is used to describe the structure of a software system." The advantage of working with these models is that they are more abstract than source code, which contains a lot of specific details about the technology being used. In the words of Clarisó, "Models can be more concise, easier to produce and understand."

As such, modeling would serve more as a preliminary step rather than an alternative to source code. The models make it easier to understand the system being developed and can also be used to generate certain implementation elements, automating the most repetitive parts of the programming process.

The role of verification tools

Engineers use verification tools to prevent errors that could affect the code itself and, therefore, the final implementation of the system. Emphasizing the importance of this process, Clarisó said, "We need to ensure the models are correct in order to minimize possible errors in the software that could occur as a result."

As part of a study published in the Journal of Object Technology, Clarisó, along with his colleagues, Carlos A. González (Gran Telescopio Canarias researcher) and Jordi Cabot (ICREA researcher), has come up with a new verification technique for UML/OCL models that solves a common problem. Every time a designer makes a change—such as adding, deleting, or modifying information—to the model it means that the whole system has to be re-analyzed, which is the why verification is usually only carried out once a definitive model has been produced at the end of the process.

As Clarisó explained, "Our article outlines the application of incremental methods of verification, that is, we make it easier to verify a model any time changes are made." Rather than only being able to verify the model at the end of the process, as is currently the case, this permits it to be verified during construction, without having to start from scratch, which facilitates the early detection of errors.

An active community, both nationally and globally

This method is also innovative with regard to its use of certificates, the examples that illustrate the correct operation of the model. As the researcher pointed out, "When we modify a model, having a new certificate would remove the need for its verification.

It's far less costly to adapt a certificate than it is to rerun the verification process." Explaining the process, the authors propose that, rather than verifying the new model, a certificate from the original could be adapted to the new one. The biggest challenge they now face is integrating these techniques into existing modeling tools and environments.

Commenting on the sector in general, Clarisó, who acted as the coordinator of the Spanish Network of Excellence in Model-driven Software Engineering , stressed that, "the Spanish modeling community is still very active and participates in a variety of national and international research projects."

In fact, although the network is no longer operational, the community still works together and collaborates as part of the annual Software and Database Engineering Conference, which has a space dedicated to Model-driven Software Engineering.

More information: Robert Clarisó et al. Incremental Verification of UML/OCL Models., The Journal of Object Technology (2020). DOI: 10.5381/jot.2020.19.3.a7

Provided by Universitat Oberta de Catalunya