An Optimized Compilation of UML State Machines

Due to the definition of fUML (Foundational Subset for Executable UML Models) along with its action language Alf (Action Language for fUML), UML (Unified Modeling Language) allows the production of executable models on which early verification and validation activities can be conducted. Despite this effort of standardization and the large use of UML in industry, developers still hand tune the code generated from models to correct, enhance or optimize it. This results in a gap between the model and the generated code. Manual code tuning except from being error prone can invalidate all the analysis and validations already done in the model. To avoid the code hand tuning drawbacks and, since UML is becoming an executable language, we propose a new Model Based Development (MBD) approach that skips the code generation step by compiling directly UML models. The biggest challenge for this approach - tackled in this paper is to propose a model compiler that is more efficient than a code compiler for UML models. Our model compiler performs optimizations that code compilers are unable to perform resulting in a more compact assembly code.

[1]  Luciano Lavagno,et al.  Hardware-Software Co-Design of Embedded Systems , 1997 .

[2]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[3]  Sébastien Gérard,et al.  Validation and automatic test generation on UML models: the AGATHA approach , 2003, International Journal on Software Tools for Technology Transfer.

[4]  Andrzej Wasowski On efficient program synthesis from statecharts , 2003, LCTES '03.

[5]  Qing Li,et al.  Unified Modeling Language , 2009 .

[6]  Bernhard Schätz,et al.  Model-Based Development of Embedded Systems , 2002, OOIS Workshops.

[7]  Gabriele Taentzer,et al.  Precise Semantics of EMF Model Transformations by Graph Transformation , 2008, MoDELS.

[8]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[9]  Michelle L. Crane,et al.  Towards a UML virtual machine: implementing an interpreter for UML 2 actions and activities , 2008, CASCON '08.

[10]  H. Wada,et al.  DESIGN AND IMPLEMENTATION OF THE MATILDA DISTRIBUTED UML VIRTUAL MACHINE , 2006 .

[11]  Dirk Riehle,et al.  The architecture of a UML virtual machine , 2001, OOPSLA '01.

[12]  Tim Schattkowsky,et al.  A UML Virtual Machine for Embedded Systems , 2005 .

[13]  Andrzej Wasowski On efficient program synthesis from statecharts , 2003 .

[14]  Anatoly A. Shalyto,et al.  Tools for support of automata-based programming , 2007, Programming and Computer Software.

[15]  Miro Samek,et al.  Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems , 2002 .

[16]  Pierre Boulet,et al.  Does Code Generation Promote or Prevent Optimizations? , 2010, 2010 13th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[17]  Pierre Boulet,et al.  Toward optimized code generation through model-based optimization , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[18]  Diego Novillo GCC—An Architectural Overview, Current Status, and Future Directions , 2010 .

[19]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[20]  Bran Selic New Methods and Tools for Developing Real-Time Software , 2009, 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.