Model-Driven Engineering

Model-Driven Engineering

From SSRG Annoki

Jump to: navigation, search


Blerina Bazelli (M.Sc. 2015)

Victor Guana (Ph.D. Candidate): Victor is interested in supporting developers that build model-based code-generators using model-driven engineering technologies. In his PhD thesis Victor is building ChainTarcker, a visualization and trace analysis environment for model-transformation compositions. Victor has also focused his work on developing PhyDSL, a code generator for mobile 2D physics-based games. He actively collaborates with the Faculty of Rehabilitation Medicine at the University of Alberta, the Glenrose Rehabilitation Hospital in Edmonton, AB, and the Knowledge Media Design Institute at the University of Toronto, providing an agile and cost effective way of creating serious games for rehabilitation purposes.

In 2013 Victor worked as a visiting researcher at the NASA Langley Research Center in Hampton, VA. Victor's work was mainly framed on continuing the development of a change impact analysis algorithm to reduce the state space of programs for regression testing. Victor has been awarded the Doctoral Entrance Award, the Graduate Student Teaching Award of the Faculty of Science, and the Izaak Walton Killam Memorial Scholarship at the University of Alberta.


ChainTracker: A Traceability Analysis Environment for Model-based Code Generators (Victor Guana)

Model-based code generators have emerged as a new mechanism for building software systems in a systematic manner. At their core, model-driven engineering technologies such as model-to-model and model-to-text transformations are effectively used to build generation engines. However, due to the complexity of model-to-model and model-to-text transformation scripts, which is exacerbated as they are composed in complex transformation chains, developers face technical and cognitive challenges when architecting, implementing, and maintaining model-based code generators. We have developed ChainTracker, an integrated visualization and trace analysis environment for model-to-model and model-to-text transformation compositions. ChainTracker aims to support developers of model-based code generators by making the usage of model-driven engineering technologies more efficient, less error prone, and less cognitively challenging.

Find more information about ChainTracker, including video demos and publications here: [1].

PhyDSL: A Code-generation Environment for 2D Physics-based Games (Victor Guana)

Video-game design and development involves a variety of professionals working together to create games with engaging content, and an efficient and flexible software architecture. However, more often than not, video-game development environments are designed for software developers, supporting programming tasks agnostic of the needs of the non-computer experts on the team. Code-generation environments offer an alternative methodology to building families of software systems that systematically differ from each other. They provide high-level domain-specific languages that express the domain concepts and features of interest, and isolate the low-level implementation concerns, so that even non-programming experts can prototype and efficiently create software systems. PhyDSL is a code-generation environment for the creation of mobile physics-based games in 2D. We have used PhyDSL for the rapid prototyping of customizable and cost effective games based on physics.

Find more information about PhyDSL, including video demos and publications here: [2]

WL++: Code Generation of Multi-platform Mobile Clients (Blerina Bazelli)

With the proliferation of mobile devices and the adoption of mobile applications in most daily-life activities, it is necessary for mobile-application construction to become more efficient and systematic and less costly. WL++ is a code-generation environment for mobile applications accessing Restful back-ends. Our framework (a) extracts the data models of the to-be-generated application from the back-end APIs or from existing resource schemas, (b) enables developers to extend the application model and annotate it with information regarding the application's user-interaction behavior through a graphical editor, and (c) transforms it into a mobile application, through a template-refinement process, that can be deployed on a variety of platforms.