Abstract
With the popularity of model-driven methodologies and the abundance of modelling languages, a major question for a requirements engineer is: which language is suitable for modelling a system under study? We address this question from a semantic point-of-view for big-step modelling languages (BSMLs). BSMLs are a class of popular behavioural modelling languages in which a model can respond to an input by executing multiple transitions, possibly concurrently. We deconstruct the operational semantics of a large class of BSMLs into eight high-level, mostly orthogonal semantic aspects and their common semantic options. We analyse the characteristics of each semantic option. We use feature diagrams to present the design space of BSML semantics that arises from our deconstruction, as well as to taxonomize the syntactic features of BSMLs that exhibit semantic variations. We enumerate the dependencies between syntactic and semantic features. We also discuss the effects of certain combinations of semantic options when used together in a BSML semantics. Our goal is to empower a requirements engineer to compare and choose an appropriate BSML from the plethora of existing BSMLs, or to articulate the semantic features of a new desired BSML when such a BSML does not exist.






















Similar content being viewed by others
Notes
Big steps and small steps are often called macro steps and micro steps, respectively. We adopt new terms to avoid association with the fixed semantics of the languages that use those terms. The big-step/small-step terminology has been used in the study of the operational semantics of programming languages in a similar spirit as we use them here [40].
We have adopted the term “helpful environment” from a similar notion in Interface Automata [11].
This example is adopted from [33], where a more elaborate version of it is used as the running example of the paper.
This example is adopted from [27].
In Esterel [1], the value parameter of an event can be of type array, which means that, in effect, an event can have more than one value parameter, each of which being an element of a single array.
It is possible to define a non-total new_small operator that returns a value for a variable, only if it is assigned a value in the current small step. Such an operator would be in the spirit of the “next” operator in SMV language [34], which is an input language for a family of model checkers with the same name. However in the semantics of SMV, unlike in BSMLs, even if a variable is not assigned a value during a small step, it is assigned a non-deterministic value, which, in effect, makes the “next” operator a total operator.
Internal variables are often called “private variables”. We use the term “internal variables” to keep the terminology of variables consistent with that for events.
The GC Strong Synchronous Variable and RHS Strong Synchronous Variable semantic options for interface variables, described in Sects. 3.4.2 and 3.5.1, respectively, can also introduce dataflow orders.
As pointed out by one of our reviewers, choosing the Take Many big-step maximality semantics, the Many concurrency semantics, the Present in Next Combo Step event lifeline semantics (or the Present in Remainder event lifeline semantics), and the RHS Small Step assignment memory protocol, also yields the correct behaviour. While such an equivalence of behaviours holds for some models, it does not always hold. For example, if there is a possibility for race conditions (e.g., in Example 20) or if it is important whether a model can reach certain configuration of control states or not, then it is not possible to replace the Single concurrency semantics with the Many concurrency semantics.
This example is inspired by the motivating example in [2], where sequence diagrams are used for modelling an aspect of the operation of a nuclear power plant.
References
The Esterel v7 reference manual version v7.30, initial IEEE standardization proposal (2005)
Alur R, Etessami K, Yannakakis M (2003) Inference of message sequence charts. IEEE Trans Softw Eng 29(7):623–633
Alur R, Henzinger TA (1999) Reactive modules. Form Method Syst Des 15(1):7–48
Berry G (1992) A hardware implementation of pure Esterel. Sadhana Acad Proc Eng Sci Indian Acad Sci 17(1):95–130
Berry G (1993) Preemption in concurrent systems. In: Foundations of software technology and theoretical computer science, vol 761 of LNCS. Springer, pp 72–93
Berry G, Gonthier G (1992) The Esterel synchronous programming language: design, semantics, implementation. Sci Comp Programm 19(2):87–152
Boussinot F (1998) Sugarcubes implementation of causality. Technical Report RR-3487, Inria, Institut National de Recherche en Informatique et en Automatique
Chapiro DM (1984) Globally-asynchronous locally-synchronous systems. PhD thesis, Stanford University
Dabney J, Harman TL (2004) Mastering simulink. Pearson Prentice Hall, New Jersey
Day N (1993) A model checker for statecharts: linking CASE tools with formal methods. Master’s thesis, University of British Columbia
de Alfaro L, Henzinger TA (2001) Interface automata. In: Proceedings of the joint 8th European software engineering conference and 9th ACM SIGSOFT symposium on the foundation of software engineering (ESEC/FSE-01), Software engineering notes, vol 26. ACM Press, pp 109–120
Esmaeilsabzali S, Day NA (2010) Prescriptive semantics for big-step modelling languages. In: Fundamental approaches to software engineering, volume 6013 of LNCS. Springer, pp 158–172
Esmaeilsabzali S, Day NA, Atlee JM, Niu J (2009) Big-step semantics. Technical Report CS-2009-05, University of Waterloo, Cheriton School of Computer Science
Esmaeilsabzali S, Day NA, Atlee JM, Niu J (2009) Semantic criteria for choosing a language for big-step models. In: 17th IEEE international requirements engineering conference. IEEE Computer Society Press, pp 181–190
Fidge C (1994) A comparative introduction to CSP, CCS and LOTOS. Technical Report 93-24, The university of Queensland, Department of Computer Science
Halbwachs Nicolas (1993) Synchronous programming of reactive systems. Kluwer, Dordrecht
Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comp Programm 8(3):231–274
Harel D, Kugler H (2004) The RHAPSODY semantics of statecharts (or, on the executable core of the UML). In: Integration of software specification techniques for application in engineering, volume 3147 of LNCS. Springer, pp 325–354
Harel D, Naamad A (1996) The STATEMATE semantics of statecharts. ACM Trans Softw Eng Methodol 5(4):293–333
Harel D, Pnueli A (1985) On the development of reactive systems. In: Logics and models of concurrent systems. Springer
Harel D, Pnueli A, Schmidt JP, Sherman R (1987) On the formal semantics of statecharts. In: IEEE symposium on logic in computation. pp 54–64
Heitmeyer CL, Jeffords RD, Labaw BG (1996) Automated consistency checking of requirements specifications. ACM Trans Softw Eng Methodol 5(3):231–261
Heninger KL, Kallander JW, Parnas DL, Shore JE (1978) Software requirements for the A-7E aircraft. Technical Report 3876, United States Naval Research Laboratory
Hoare T (1985) Communicating sequential processes. Prentice Hall, New Jersey
Hoare T, Jifeng H (1998) Unifying theories of programming. Prentice Hall, New Jersey
Huizing C, Gerth R (1992) Semantics of reactive systems in abstract time. In: REX Workshop, volume 600 of LNCS. Springer, pp 291–314
i Logix Inc (1991) Statemate 4.0 analyzer user and reference manual
Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, SEI, Carnegie Mellon University
Lamport L, Schneider FB (1989) Pretending atomicity. Technical Report 44, Digital Equipment Corporation
Leveson NG, Heimdahl MPE, Hildreth H, Reese JD (1994) Requirements specification for process-control systems. IEEE Trans Softw Eng 20(9):684–707
Lipton RJ (1975) Reduction: a method of proving properties of parallel programs. Commun ACM 18:717–721
Maggiolo-Schettini A, Peron A, Tini S (1996) Equivalences of statecharts. In: International concurrency theory conference, volume 1119 of LNCS. Springer, pp 687–702
Maraninchi F, Rémond Y (2001) Argos: an automaton-based synchronous language. Comp Lang 27(1/3):61–92
McMillan K (1993) Symbolic model checking: an approach to the state explosion problem. Kluwer, Dordrecht
Milner R (1983) Calculi for synchrony and asynchrony. Theor Comp Sci 25(3):267–310 (Fundamental study)
Milner R (1989) Communication and concurrency. Prentice Hall, New Jersey
Niu J, Atlee JM, Day NA (2003) Template semantics for model-based notations. IEEE Trans Softw Eng 29(10):866–882
OMG (2007) OMG unified modeling language (OMG UML), superstructure, v2.1.2. Formal/2007-11-01
Parnas DL, Madey J (1995) Functional documents for computer systems. Sci Comp Programm 25(1):19–23
Pierce BC (2002) Types and programming languages. MIT Press, Cambridge
Pnueli A, Shalev M (1989) What is in a step? In: De Bakker JW (ed) Liber Amicorum. CWI, Amsterdam, pp 373–400
Pnueli A, Shalev M (1991) What is in a step: on the semantics of statecharts. In: Theoretical aspects of computer Software, volume 526 of LNCS. Springer, pp 244–264
Sassone V, Nielsen M, Winskel G (1996) Models for concurrency: towards a classification. Theor Comp Sci 170(1–2):297–348
Shukla SK, Theobald M (2006) Special issue on formal methods for globally asynchronous and locally synchronous (GALS) systems. Formal Methods Syst Des 28(2):91–92
Silver SJ, Brzozowski JA (2003) True concurrency in models of asynchronous circuit behavior. Formal Methods Syst Des 22(3):183–203
Taleghani A, Atlee JM (2006) Semantic variations among UML StateMachines. In: Model driven engineering languages and systems, 9th international conference, volume 4199 of LNCS. Springer, pp 245–259
Tardieu O (2007) A deterministic logical semantics for pure Esterel. ACM Trans Programm Lang Syst 29(2):8:1–8:26
van Glabbeek R. The linear time—branching time spectrum. In: International concurrency theory conference, volume 458 of LNCS
von der Beeck M (1994) A comparison of statecharts variants. In: Formal techniques in real-time and fault-tolerant systems, volume 863 of LNCS. Springer, pp 128–148
Zave P, Jackson M (1997) Four dark corners of requirements engineering. ACM Trans Softw Eng Methodol 6(1):1–30
Acknowledgments
We thank the reviewers for their insightful, detailed comments, which have improved our paper. We also thank the anonymous reviewers of our RE’09 paper, as well as Patrick Heymans, for their helpful comments that have influenced this paper.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Esmaeilsabzali, S., Day, N.A., Atlee, J.M. et al. Deconstructing the semantics of big-step modelling languages. Requirements Eng 15, 235–265 (2010). https://doi.org/10.1007/s00766-010-0102-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-010-0102-z