Code generation and parallel code execution from business UML models: A case study for an algorithmic trading system

In this paper we discuss several capstone student projects conducted by the students at University of British Columbia, Okanagan campus (UBCO) and at Okanagan College in different years. The aim of the projects was to demonstrate how end-users could update code for an industrial application (an algorithmic trading system) without any programming skills and programming experience. Another goal was to improve performance for the applications collection of stock information from online public sources by introducing parallel code execution on multi-core personal computers. Real algorithmic trading system requirements were used as a case study. An Eclipse Modelling Framework was used to generate Java code from a UML business model, which can be modified by unexperienced business users. Moreover, code execution can be scaled to a specific computer architecture and hardware for better performance and better computer resources utilization, especially if a business user wants to collect and analyze a long list of stocks. The last section of the paper focuses on performance optimization and analysis.

[1]  Gaetan Hains,et al.  Performance analysis of the parallel code execution for an algorithmic trading system, generated from UML models by end users , 2015, 2015 National Conference on Parallel Computing Technologies (PARCOMPTECH).

[2]  Steffen Zschaler,et al.  Towards modular code generators using symmetric language-aware aspects , 2011 .

[3]  Jean-Marc Jézéquel,et al.  Code generation from UML models with semantic variation points , 2005, MoDELS'05.

[4]  Martin C. Rinard,et al.  Example-driven program synthesis for end-user programming: technical perspective , 2012, CACM.

[5]  Da He,et al.  Closing the gap between UML-based modeling, simulation and synthesis of combined HW/SW systems , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[6]  Chong Li,et al.  A simple bridging model for high-performance computing , 2011, 2011 International Conference on High Performance Computing & Simulation.

[7]  Lirong Dai,et al.  Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach , 2010, Sci. Comput. Program..

[8]  Chong Li,et al.  Automatic code generation within student's software engineering projects , 2012, WCCCE '12.

[9]  Chong Li,et al.  SGL: towards a bridging model for heterogeneous hierarchical platforms , 2012, Int. J. High Perform. Comput. Netw..

[10]  HENRY LIEBERMAN,et al.  End-User Development: An Emerging Paradigm , 2006, End User Development.

[11]  Margaret M. Burnett,et al.  SIG: end-user programming , 2012, CHI Extended Abstracts.

[12]  Youry Khmelevsky,et al.  SW development projects in academia , 2009 .

[13]  Youry Khmelevsky,et al.  Generating a Real-Time Algorithmic Trading System Prototype from Customized UML Models (a case study) , 2012 .

[14]  Youry Khmelevsky,et al.  Research and teaching strategies integration at post-secondary programs , 2011, WCCCE '11.

[15]  Tai-hoon Kim,et al.  UJECTOR: A Tool for Executable Code Generation from UML Models , 2008, 2008 Advanced Software Engineering and Its Applications.