Execution and Verification of UML State Machines with Erlang
Validation of a system design enables to discover specification errors before it is implemented (or tested), thus hopefully reducing the development cost and time. The Unified Modelling Language (UML) is becoming widely accepted for the early specification and analysis of requirements for safety-critical systems, although a better balance between UML’s undisputed flexibility, and a precise unambiguous semantics, is needed. In this paper we introduce UMerL, a tool that is capable of executing and formally verifying UML diagrams (namely, UML state machine, class and object diagrams) by means of a translation of its behavioural information into Erlang. The use of the tool is illustrated with an example in embedded software design.
KeywordsObject Constraint Language State Machine Interpreter Object Diagram Linear Temporal Logic Property Erlang Process
Unable to display preview. Download preview PDF.
- 1.Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang. Prentice-Hall (1996)Google Scholar
- 2.Liu, S., Liu, Y., Sun, J., Zheng, M., Wadhwa, B., Dong, J.S.: USMMC: A Self-contained Model Checker for UML State Machines. In: Proc. of the 2013 Meeting on Foundations of Software Engineering, pp. 623–626. ACM, New York (2013)Google Scholar
- 5.Arts, T., Hughes, J., Johansson, J., Wiger, U.: Testing Telecoms Software with Quviq QuickCheck. In: ACM SIGPLAN Int. Erlang Workshop. ACM (2006)Google Scholar
- 6.Fredlund, L.Å., Svensson, H.: McErlang: a model checker for a distributed functional programming language. In: 12th ACM SIGPLAN ICFP. ACM (2007)Google Scholar
- 7.Pnueli, A.: The Temporal Logic of Programs. In: FOCS, pp. 46–57 (1977)Google Scholar