Software engineering, software architecture and design, and architecture-implementation mapping. I am also interested in the area of mobile computing and dynamic reconfiguration.
I have been involved with several research projects at UC Irvine, including 1.x-way architecture-implementation mapping, CREST Demo, and a Myx-style lunar lander video game. 1.x-way mapping is my PhD dissertation work that I am currently working on. In this project, I started from a survey of model-implementation mapping in model-based software development, proposed a new approach that specifically addresses identified research challenges, and finally implemented and evaluated the developed approach in ArchStudio 4. CREST and the Myx-style lunar lander game were two projects that I participated earlier. Both of them were implementation oriented, and generated some interesting research results.
1.x-way mapping is a new approach of architecture-implementation mapping, a process of converting architecture to and from implementation with the goal of maintaining their conformance with respect to certain criteria. It separates the implementation of each architecture component into two independent elements: architecture-prescribed code and user-defined code. Significantly, 1.x-way mapping requires that manual changes be only initiated in the architecture (“1”) and user-defined code (“.x”), with architecture-prescribed code updated solely through code generation. In this way, accidental changes of architecture-prescribed code are suppressed. User-defined code is also prevented from being overwritten during code regeneration. To further support the mapping of architecture changes to code, we have developed an architecture change model that can automatically record, classify, and refine changes made to the architecture. Based on the change model, most architecture changes (e.g. connection changes) can be automatically mapped to the code through an architecture-based code regeneration mechanism. For architecture changes that may require modifications to user-defined code (e.g. component changes), architecture change notifications are also generated and automatically sent across the separation boundary. To this end, we have implemented and evaluated 1.x-way mapping in an Eclipse-based architecture modeling environment, ArchStudio 4.
1.x-way mapping was featured in the Fall/Winter 2011 issue of the ISR Connector.
Computational REST (CREST) is a new architecture style of the web that emphasizes computational exchange on the Internet. In this project, I collaborated with three of my colleagues (Justin Erenkrantz, Michael Gorlick, and Alegria Baquero), and built a CREST demo application, a dynamic feed reader. I was responsible for developing the front end of the application (basically the portion that you can see in the demo video below). The technologies of Dojo and AJAX were extensively used in my development work. The demo was presented in Justin Erenkrantz's PhD final defense and the keynote talk that Prof. Richard N. Taylor gave at ESEC/FSE 2009.
The code of the lunar lander video game was originally written by a group of UC Irvine undergraduates in one of their class projects. An architecture was also created at that time, but it did not match the code in many places. In this project, I refactored the game code based on the Myx framework, re-created the game's architecture that exactly matches the code, and finally established the connections between the architecture and the code. In particular, two different architectures were created: a flat architecture and a hierarchical architecture. The developed Myx style lunar lander video game can be run in the ArchStudio architecture development environment right from the game's architecture, instead of the code. The Myx style lunar lander game now serves as an example application of ArchStudio. It was also used in an undergraduate software architecture class for students to work with.
