Modelling Recursive Calls with UML State Diagrams
One of the principal uses of UML is the modelling of synchronous object-oriented software systems, in which the behaviour of each of several classes is modelled using a state diagram. UML permits a transition of the state diagram to show both the event which causes the transition (typically, the fact that the object receives a message) and the object’s reaction (typically, the fact that the object sends a message). UML’s semantics for state diagrams is “run to completion”. We show that this can lead to anomalous behaviour, and in particular that it is not possible to model recursive calls, in which an object receives a second message whilst still in the process of reacting to the first. Drawing on both ongoing work by the UML2.0 submitters and recent theoretical work ,, we propose a solution to this problem using state diagrams in two complementary ways.
- R. Alur, K. Etessami, and M. Yannakakis. Analysis of recursive state machines. In Computer Aided Verification, pages 207–220, 2001.Google Scholar
- M. Benedikt, P. Godefroid, and T.W. Reps. Model checking of unrestricted hierarchical state machines. In Automata, Languages and Programming, pages 652–666, 2001.Google Scholar
- Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guide. Addison Wesley Longman, 1998.Google Scholar
- E. Börger, A. Cavarra, and E. Riccobene. A precise semantics of UML state machines: making semantic variation points and ambiguities explicit. In Proc. of Semantic Foundations of Engineering Design Languages (SFEDL), Satellite Workshop of ETAPS 2002, 2002.Google Scholar
- M. Gogolla and F. Parisi-Presicce. State diagrams in UML: A formal semantics using graph transformations. In Manfred Broy, Derek Coleman, Tom S. E. Maibaum, and Bernhard Rumpe, editors, Proceedings PSMT’98 Workshop on Precise Semantics for Modeling Techniques. Technische Universität München, TUM-I9803, 1998.Google Scholar
- R. Grosu, Yanhon A. Liu, S.A. Smolka, S.D. Stoller, and J. Yan. Automated software engineering using concurrent class machines. In Proc. of the 16th IEEE International Conference on Automated Software Engineering, ASE’01. IEEE, 2001.Google Scholar
- S. Kuske. A formal semantics of UML state machines based on structured graph transformation. In Martin Gogolla and Cris Kobryn, editors, UML 2001-The Unified Modeling Language. Modeling Languages, Concepts, and Tools, volume 2185 of Lecture Notes in Computer Science, pages 241–256, 2001.CrossRefGoogle Scholar
- D. Latella, I. Majzik, and M. Massink. Towards a formal operational semantics of UML statechart diagrams. In Proc. FMOODS’99, IFIP TC6/WG6.1 Third International Conference on Formal Methods for Open Object-Based Distributed Systems, Florence, Italy, February 15-18, 1999. Kluwer, 1999.Google Scholar
- OMG. Unified Modeling Language Specification version 1.4, September 2001. OMG document formal/01-09-67 available from http://www.omg.org/technology/documents/formal/uml.htm.
- Perdita Stevens with Rob Pooley. Using UML: software engineering with objects and components. Addison Wesley Longman, 1999 (updated edition).Google Scholar