Enhanced Code Generation from UML Composite State Machines

Omar Badreddin, Timothy C. Lethbridge, Andrew Forward, Maged Elaasar, Hamoud Aljamaan, Miguel A. Garzon


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.


  1. Badreddin O., Lethbridge T. C. and Elassar M., 2013. "Modeling Practices in Open Source Software." Open Source Software: Quality Verification. Springer. 127- 139.
  2. Badreddin O., 2010. "Umple: A Model-Oriented Programming Language," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering,Vol. 2, pp. 337-338.
  3. Badreddin O., Forward A. and Lethbridge T.C., 2012. "Model oriented programming: an empirical study of comprehension." 2012 Conference of the Center for Advanced Studies on Collaborative Research. IBM Corp.
  4. Badreddin O., Forward A., and Lethbridge T. C., 2014. "Exploring a Model-Oriented and Executable Syntax for UML Attributes." Software Engineering Re-search, Management and Applications. Springer, 33-53.
  5. Badreddin O., Forward A., and Lethbridge T. C., 2014. "Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity." Software Engineering Research, Management and Applications. Springer, 129-149.
  6. Badreddin O., Lethbridge T. C., 2013. “Model Oriented Programming: Bridging the Code-Model Divide”. ICSE Workshop on Modeling in Software Engineering (MiSE), 2013 5th International Workshop, 10.1109/MiSE.2013.6595299. Pages: 69 - 75.
  7. Badreddin O., Lethbridge T. C., Lethbridge T. C., 2012. "Combining experiments and grounded theory to evaluate a research prototype: Lessons from the umple model-oriented programming technology", User Evaluation for Software Engineering Researchers (USER), 2012. 10.1109/USER.2012.6226575. Page(s): 1- 4.
  8. Badreddin O.,2013. "Empirical evaluation of research proto-types at variable stages of maturity", User Evaluations for Software Engineering Researchers (USER), 2013 2nd International Workshop, 10.1109/ USER.2013.6603076. Pages: 1- 4.
  9. Forward A., Badreddin O., Lethbridge T.C.,. "Perceptions of Software Modeling: A Survey of Software Practitioners," in 5th Workshop from Code Centric to Model Centric: Evaluating the Effectiveness of MDD (C2M:EEMDD), 2010. Available: www.esi.es/ modelplex/c2m/papers.php.
  10. Gill G.K., Kemerer C.F., 1991. “Cyclomatic complexity density and software maintenance productivity”, IEEE Transactions on Software Engineering, 17(12).
  11. Gold N. E., Mohan A. M., Layzell P. J., 2005. “Spatial complexity metrics: an investigation of utility”, IEEE Trans. on Software Engineering,.31(3), pp. 203-212.
  12. Lano K., Clark D., 2007. "Direct Semantics of Extended State Machines". TOOLS'07, pp. 35-51.
  13. Lethbridge T.C., Badreddin O., 2011. "Umple - Associations and Generalizations". Accessed 2012, http://www.youtube.com/watch?v=HIBo0ErCVtU.
  14. Lethbridge T. C., Badreddin O., 2011. "Umple - State Machines Details". http://www. Youtube. com/ watch?v=mFczzVkTZ9g.
  15. Lethbridge T. C., Mussbacher G., Forward A. and Badreddin O., 2011. "Teaching UML using Umple: Applying Model-Oriented Programming in the Classroom", CSEE&T, pp. 421-428.
  16. Lethbridge T. C., Forward A., Badreddin O., 2010. "Umplification: Refactoring to Incrementally Add Abstraction to a Program," in Working Conf. on Reverse Eng, pp. 220-224.
  17. Lethbridge T. C., Forward A., Badreddin O., 2012. "Umple Google Code Project". Available: http://code.umple. org.
  18. Mentor Graphics Corporation, 2010. "Mentor Graphics Bridge-Point", accessed 2012, http://www.mentor. com/products/sm/model_development/bridgepoint/.
  19. Niaz I. A., Tanaka I. A., 2003. "Code Generation from UML Statecharts" in Proc. 7 Th IASTED International Conf. on Software Engineering and Application (SEA 2003). pp. 315-321.
  20. OMG, 2010. "UML Specifications", accessed 2011, http://www.omg.org/spec/UML/.
  21. Schaumont P.R., 2010. A Practical Introduction to hardware/software Codesign. Springer Verlag.
  22. UmpleOnline, 2013. "Umple Online", accessed 2013, http://try.umple.org.
  23. Wagner F., Wolstenholme P., 2004. "Misunderstandings about State Machines". Computing and Control Eng, vol 15, pp. 40-45.
  24. Wasowski A., 2004. "Flattening State Machines without Explosions", ACM Sigplan Notices, vol 39, ACM. 257-266.

Paper Citation

in Harvard Style

Badreddin O., Lethbridge T., Forward A., Elaasar M., Aljamaan H. and A. Garzon M. (2014). Enhanced Code Generation from UML Composite State Machines . In Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-007-9, pages 235-245. DOI: 10.5220/0004699602350245

in Bibtex Style

author={Omar Badreddin and Timothy C. Lethbridge and Andrew Forward and Maged Elaasar and Hamoud Aljamaan and Miguel A. Garzon},
title={Enhanced Code Generation from UML Composite State Machines},
booktitle={Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},

in EndNote Style

JO - Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - Enhanced Code Generation from UML Composite State Machines
SN - 978-989-758-007-9
AU - Badreddin O.
AU - Lethbridge T.
AU - Forward A.
AU - Elaasar M.
AU - Aljamaan H.
AU - A. Garzon M.
PY - 2014
SP - 235
EP - 245
DO - 10.5220/0004699602350245