Authors:
Kjetil Andresen
;
Birger Møller-Pedersen
and
Ragnhild Kobro Runde
Affiliation:
University of Oslo, Norway
Keyword(s):
State Machine, Design Pattern, Modelling, Programming.
Related
Ontology
Subjects/Areas/Topics:
Frameworks for Model-Driven Development
;
General-Purpose Modeling Languages and Standards
;
Languages, Tools and Architectures
;
Methodologies, Processes and Platforms
;
Model-Driven Software Development
;
Software Engineering
Abstract:
Most modelling languages support full state machine modelling, including especially composite states.
Existing approaches to programming with states (state design patterns) either represent composite states by
means of inheritance between state classes, or do not support composite states, and instead use inheritance
for specialization of extensible state machines. In this paper, we present 1) a state design pattern using
delegation to support composite states and inheritance together with virtual classes to support extensible
state machines, and 2) a framework, implemented in Java, which also supports history and entry/exit
actions. Together, these form the basis for developing support for state machines in a combined modelling
and programming language.