Unified Modeling Language (UML) is recognized as a de facto standard for modeling various typesof systems. However, its lack of formal semantics hinders the ability to perform formal verification, which is crucial to ensure the correctness of the models throughout the modeling process. Rebeca isan actor-based modeling language designed to formally verify reactive concurrent systems. Previous work has attempted to bridge the gap and provide a translation to take advantage of both UML and Rebeca’s benefits. These methods either require multiple UML diagrams and an understanding of Rebeca, or lack implementation solutions. We conducted experiments to explore the potential of zero-shot and few-shot learning with ChatGPT-4 as a tool for automating the translation from UML state diagrams to Rebeca code. The results indicated that the translation from UML state diagrams to Rebeca code can be partially made and they are not sufficient to derive correct Rebeca models. To mitigate this, we augment state diagrams with metadata, which resulted in the generated code having minor errors and requiring slight adjustments to be able to be compiled in the Rebeca model checking tool, Afra. The conclusion is that ChatGPT-4 can potentially facilitate the process of transforming UML state diagrams into executable Rebeca code with minimal additional information. We provide a translation procedure of Rebeca code to UML state diagrams, a conceptual mapping of them in reverse, and a dataset that can be used for further research. The dataset and the results are published in the GitHub repositoryof our project
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:mdh-67526 |
Date | January 2024 |
Creators | Eriksson, Kevin, Alm Johansson, Albin |
Publisher | Mälardalens universitet, Akademin för innovation, design och teknik |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0019 seconds