Authors:
Omar Badreddin
1
;
Timothy C. Lethbridge
1
;
Andrew Forward
1
;
Maged Elaasar
2
;
Hamoud Aljamaan
1
and
Miguel A. Garzon
1
Affiliations:
1
University of Ottawa, Canada
;
2
Carleton University, Canada
Keyword(s):
State Machine, Code Generation, Reverse Engineering, Model Oriented Programming, Model Driven Architecture, Model Driven Development, Umple.
Related
Ontology
Subjects/Areas/Topics:
General-Purpose Modeling Languages and Standards
;
Languages, Tools and Architectures
;
MetaModeling
;
Methodologies, Processes and Platforms
;
Model Transformation
;
Model Transformations and Generative Approaches
;
Model-Driven Architecture
;
Model-Driven Software Development
;
Models
;
Paradigm Trends
;
Software Engineering
;
Syntax and Semantics of Modeling Languages
Abstract:
UML modelling tools provide poor support for composite state machine code generation. Generated code is typically complex and large, especially for composite state machines. Existing approaches either do not handle this case at all or handle it by flattening the composite state machine into a simple one with a combinatorial explosion of states, and excessive generated code. This paper presents a new approach that transforms a composite state machine into an equivalent set of simple state machines before code generation. This avoids the combinatorial explosion and leads to more concise and scalable generated code. We implement our approach in Umple. We report on a case study, comparing our approach to others in terms of code size and scalability.