Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3652620.3687822acmconferencesArticle/Chapter ViewAbstractPublication PagesmodelsConference Proceedingsconference-collections
short-paper
Open access

Verifying UML Models Annotated with OCL Strings

Published: 31 October 2024 Publication History

Abstract

The Object Constraint Language (OCL) is a specification language that allows users to write precise constraints or rules over models that are built using the Unified Modeling Language (UML). Many OCL constraints used in real-world models specify a set of rules over string data types. This makes reasoning about UML models that are annotated with OCL string constraints very challenging. In this short paper, we demonstrate the feasibility of using Satisfiability Modulo Theories (SMT) solvers for verifying OCL string-type constraints. Specifically, we compare the string reasoning capabilities of three SMT solvers in terms of their usability, performance, and the diversity of instances generated. We believe that the Model-Driven Engineering (MDE) community can benefit from our preliminary results in identifying the strength and limitations of the state-of-the-art SMT solvers for OCL string verification.

References

[1]
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukáš Holík, Ahmed Rezine, and Philipp Rümmer. 2018. Trau: SMT solver for string constraints. In 2018 Formal Methods in Computer Aided Design (FMCAD). 1--5.
[2]
Daniel Baier, Dirk Beyer, and Karlheinz Friedberger. 2021. JavaSMT 3: Interacting with SMT solvers in Java. In International Conference on Computer Aided Verification. Springer, 195--208.
[3]
Haniel Barbosa, Clark Barrett, Martin Brain, Gereon Kremer, Hanna Lachnitt, Makai Mann, Abdalrhman Mohamed, Mudathir Mohamed, Aina Niemetz, Andres Nötzli, et al. 2022. cvc5: A versatile and industrial-strength SMT solver. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 415--442.
[4]
Wahiba Ben Abdessalem Karaa, Zeineb Ben Azzouz, Aarti Singh, Nilanjan Dey, Amira S. Ashour, and Henda Ben Ghazala. 2016. Automatic builder of class diagram (ABCD): an application of UML generation from functional requirements. Software: Practice and Experience 46, 11 (2016), 1443--1458.
[5]
Murphy Berzish, Vijay Ganesh, and Yunhui Zheng. 2017. Z3str3: A String Solver with Theory-aware Heuristics. In 2017 Formal Methods in Computer Aided Design (FMCAD). 55--59.
[6]
Murphy Berzish, Mitja Kulczynski, Federico Mora, Florin Manea, Joel D. Day, Dirk Nowotka, and Vijay Ganesh. 2021. An SMT Solver for Regular Expressions and Linear Arithmetic over String Length. In Computer Aided Verification, Alexandra Silva and K. Rustan M. Leino (Eds.). Springer International Publishing, Cham, 289--312.
[7]
Nikolaj Bjørner and Lev Nachmanson. 2020. Navigating the Universe of Z3 Theory Solvers. In Formal Methods: Foundations and Applications, Gustavo Carvalho and Volker Stolz (Eds.). Springer International Publishing, Cham, 8--24.
[8]
Alexandra Bugariu and Peter Müller. 2020. Automatically testing string solvers. In Proceedings of the ACM/IEEE 42nd international conference on software engineering. 1459--1470.
[9]
Loli Burgueño, Antonio Vallecillo, and Martin Gogolla. 2018. Teaching UML and OCL models and their validation to software engineering students: an experience report. Computer Science Education 28, 1 (2018), 23--41.
[10]
Fabian Büttner and Jordi Cabot. 2012. Lightweight string reasoning for OCL. In Modelling Foundations and Applications: 8th European Conference, ECMFA 2012, Kgs. Lyngby, Denmark, July 2--5, 2012. Proceedings 8. Springer, 244--258.
[11]
Jordi Cabot, Robert Clarisó, and Daniel Riera. 2009. Verifying UML/OCL operation contracts. In International conference on integrated formal methods. Springer, 40--55.
[12]
Jordi Cabot and Martin Gogolla. 2012. Object constraint language (OCL): a definitive guide. In International school on formal methods for the design of computer, communication and software systems. Springer, 58--90.
[13]
Taolue Chen, Matthew Hague, Anthony W. Lin, Philipp Rümmer, and Zhilin Wu. 2019. Decision procedures for path feasibility of string-manipulating programs with complex operations. Proc. ACM Program. Lang. 3, POPL, Article 49 (jan 2019), 30 pages.
[14]
Yu-Fang Chen, David Chocholatỳ, Vojtěch Havlena, Lukáš Holík, Ondřej Lengál, and Juraj Síč. 2024. Z3-noodler: An automata-based string solver. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 24--33.
[15]
Angelo Chiappini, Alessandro Cimatti, Luca Macchi, Oscar Rebollo, Marco Roveri, Angelo Susi, Stefano Tonetta, and Berardino Vittorini. 2010. Formalization and validation of a subset of the European Train Control System. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 2. 109--118.
[16]
Andreas A Falkner, Alois Haselböck, Gerfried Krames, Gottfried Schenner, Herwig Schreiner, and Richard Taupe. 2020. Solver Requirements for Interactive Configuration. J. Univers. Comput. Sci. 26, 3 (2020), 343--373.
[17]
Alessio Ferrari, Alessandro Fantechi, Stefania Gnesi, and Gianluca Magnani. 2013. Model-Based Development and Formal Methods in the Railway Industry. IEEE Software 30, 3 (2013), 28--34.
[18]
Enrico Franconi, Alessandro Mosca, Xavier Oriol, Guillem Rull, and Ernest Teniente. 2019. OCL FO: first-order expressive OCL constraints for efficient integrity checking. Software & Systems Modeling 18, 4 (2019), 2655--2678.
[19]
Weiwei Gong and Xu Zhou. 2017. A survey of SAT solver. In AIP Conference Proceedings, Vol. 1836. AIP Publishing.
[20]
The Object Management Group. 2014. https://www.omg.org/spec/OCL/2.4/PDF
[21]
Anthony W Lin and Pablo Barceló. 2016. String solving with word equations and transducers: towards a logic for analysing mutation XSS. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 123--136.
[22]
Kevin Lotz, Amit Goel, Bruno Dutertre, Benjamin Kiesl-Reiter, Soonho Kong, Rupak Majumdar, and Dirk Nowotka. 2023. Solving string constraints using SAT. In International Conference on Computer Aided Verification. Springer, 187--208.
[23]
Beatriz Pérez and Ivan Porres. 2019. Reasoning about UML/OCL class diagrams using constraint logic programming and formula. Information Systems 81 (2019), 152--177.
[24]
Andrew Reynolds, Andres Nötzli, Clark Barrett, and Cesare Tinelli. 2019. HighLevel Abstractions for Simplifying Extended String Constraints in SMT. In Computer Aided Verification, Isil Dillig and Serdar Tasiran (Eds.). Springer International Publishing, Cham, 23--42.
[25]
Andrew Reynolds, Andres Nötzli, Clark Barrett, and Cesare Tinelli. 2020. A decision procedure for string to code point conversion. In International Joint Conference on Automated Reasoning. Springer, 218--237.
[26]
Hao Wu and Marie Farrell. 2021. A formal approach to finding inconsistencies in a metamodel. Software and Systems Modeling 20, 4 (2021), 1271--1298.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MODELS Companion '24: Proceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems
September 2024
1261 pages
ISBN:9798400706226
DOI:10.1145/3652620
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 October 2024

Check for updates

Author Tags

  1. OCL
  2. SMT solver
  3. string constraints

Qualifiers

  • Short-paper

Conference

MODELS Companion '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 144 of 506 submissions, 28%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 55
    Total Downloads
  • Downloads (Last 12 months)55
  • Downloads (Last 6 weeks)13
Reflects downloads up to 23 Feb 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media