Abstract
An important use of the Unified Modelling Language (UML) is modelling synchronous object-oriented software systems. State diagrams are used to model interesting object behaviour, including method invocation. However, almost all previous work formalising state diagrams has assumed asynchronous communication. We show that UML’s “run to completion” semantics leads to anomalous behaviour in the synchronous case, and in particular that it is not possible to model recursive calls, in which an object receives a second synchronous message whilst still in the process of reacting to the first. We propose a solution using state diagrams in two complementary ways.
Similar content being viewed by others
References
Alur R, Etessami K, Yannakakis M (2001) Analysis of recursive state machines. In: Proceedings of computer aided verification, CAV’01. LNCS; vol 2102. Springer; Berlin Heidelberg New York, pp 207–220
The Argo UML Project. Website at http://argouml.tigris.org/
Börger E, Cavarra A, Riccobene E (2002) A precise semantics of UML state machines: making semantic variation points and ambiguities explicit. In: Proceedings of semantic foundations of engineering design languages, SFEDL, Satellite workshop of ETAPS’02
Benedikt M, Godefroid P, Reps TW (2001) Model checking of unrestricted hierarchical state machines. In: Proceedings of automata, languages and programming, ICALP’01. LNCS; vol 2076; Springer; Berlin Heidelberg New York, pp 652–666
Booch G, Rumbaugh J, Jacobson I (1998). The unified modeling language user guide. Addison Wesley Longman, Essex
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison Wesley, Reading
Grosu R, Liu YA, Smolka SA, Stoller SD, Yan J (2001) Automated software engineering using concurrent class machines. In: Proceeding‘s of automated software engineering, ASE’01. IEEE, Los Alamitos
Gogolla M, Parisi-Presicce F (1998) State diagrams in UML: a formal semantics using graph transformations. In: Proceedings of the workshop on precise semantics for modeling techniques, PSMT’98. Technische Universität München, TUM-I9803
Grand M (1998) Patterns in Java, vol 1. Wiley, Newyork
Gruntz D (2002) Java design: on the observer pattern. Java Report,February Harel D, Gery E (1997) Executable object modeling with statecharts. IEEE Comput 30:7:31–42
Harel D, Gery E (1997) Executable object modeling with statecharts. IEEE Comput 30:7:31–42
Kuske S (2001) A formal semantics of UML state machines based on structured graph transformation. In: Proceedings of the 4th international conference on the unified modeling language, UML’01. LNCS, vol 2185. Springer, Berlin Heidelberg Newyork, pp 241–256
Latella D, Majzik I, Massink M (1999) Towards a formal operational semantics of UML statechart diagrams. In: Proceedings of formal methods for open object-based distributed systems, FMOODS’99, IFIP, vol 139 Kluwer, Dordrecht
Mikhajlov L, Sekerinski E, Laibinis L (1999) Developing components in the presence of re-entrance. In: Proceedings of formal methods—FM’99. LNCS, vol 1709 . Springer, Berlin Heidelberg Newyork, pp 1301–1320
Object Management Group OMG (2003) Unified modeling language specification version 1.5, March 2003. Available from http://www.omg.org/uml/ as formal/03-03-01
Object Management~Group OMG (2004) UML2.0 superstructure specification, October 2004. Available from http://www.omg. org/uml/ as ptc/04-10-02
Utwo Partners (2003) Unified modeling language 2.0 proposal, version 2.0, April 2003. Available from http://www.u2-partners.org/.
Reggio G, Astesiano E, Choppy C, Hussmann H (2000) Analysing UML active classes and associated state machines —a lightweight formal approach. In: Proceedings of fundamental approaches to software engineering, FASE’00. LNCS, vol 1783. Springer, Berlin Heidelberg Newyork, pp 127–146
Szyperski C (1998) Component software: beyond object-oriented programming. ACM Press, Addison Wesley, Reading
Tenzer J, Stevens P (2003) Modelling recursive calls with UML state diagrams. In: Proceedings of fundamental approaches to software engineering. LNCS, vol 2621. Springer, Berlin Heidelberg Newyork pp 135–149
von der Beeck, M (2001) Formalization of UML-statecharts. In: Proceedings of the 4th international conference on the unified modeling language, UML’01. LNCS, vol 2185. Springer, Berlin Heidelberg Newyork, pp 406–421
Warmer J, Kleppe A (1999) The object constraint language: precise modeling with UML. Addison Wesley,
Stevens P,Pooley R (1999) Using UML: software engineering with objects and components (updated edition). Addison Wesley Longman,Essex
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Tenzer, J., Stevens, P. On modelling recursive calls and callbacks with two variants of Unified Modelling Language state diagrams. Form Asp Comp 18, 397–420 (2006). https://doi.org/10.1007/s00165-006-0003-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-006-0003-6