An Eclipse-based Visual State Chart XML editor/debuger that generates SCXML documents

Student Name: Xunlong Gui

Student Email: <ustbcoder AT gmail DOT com>

Organization/Project:Apache/Commons SCXML

Assigned Mentor:not yet


Proposal Abstract:

State Chart XML (SCXML) provides a generic state-machine based execution environment based on Harel State Tables.It is very useful to handler complex status transfer logic,but if a SCXML file is really so huge and complex,it will become too difficult to maintain and refactor or to test its logic validity.This project aims to provide a Eclipse and GMF based Visual Editor and Debugger for SCXML,and we can also use it to generate SCXML document and specific codes according to a State Chart XML.

Detailed Description:

State Chart XML is very useful to handler complex status transfer logic. Commons SCXML is an implementation aimed at creating and maintaining a Java SCXML engine capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces. Now,more and more developers use it to help handler complex program logic,but edit a State Chart XML is so boring and mistakable.If a SCXML file is really so huge and complex,it will become too difficult to maintain and refactor or to test its logic validity.For example,if a SCXML flow has more than 20 States,it is possible to form an dead loop due to developer's glitch. In fact, the archives of the Apache Commons SCXML user mailing list will show many queries asking for it over the years.Obviously, Eclipse is the most power and popular Integration Develop Environment for developers, if it supplies an editor or even debuger for State Chart XML, isn't it cool ?

In fact, an open-source Eclipse-based plugin that uses visual state chart editors and generates SCXML documents is much needed -- the archives of the Apache Commons user mailing list show many queries asking for it over the years. And SCXML commiters told me it is a good topic for a open source and GSoC endeavor.

This project aims to develop an GMF based Eclipse plunge-in visual editor which is capable of showing a graphical representation of the process model and allows for adding breakpoints to activities, variable modifications and managing the debugging process for SCXML.I have already done some work on both SCXML and Eclipse GMF,even i tried to implement a SCXML editor using GMF and got a little achievement,so i want to develop this editor with GMF and have enough confidence to finish it.

Usually,State Chart XML file will be running on a SCXML engine,such as our Commons SCXML,if some one only want to achieve the SCXML file's business logic,but do not want to or can not use some SCXML engine due to some reasons(for example,some guy want to run scxml on web page,but he can not find JavaScript SCXML engine),this code generation module will leverage the Commons SCXML APIs and assume those jars are available. In my plan, i will implement Java,JavaScript,C++ and python support for it.

So,I want to mainly complete the following funcitons:

  1. Create a Eclipse plunge-in and GMF based Visual editor for SCXML. This editor can be used to add or edit State Chart Diagram by drap and drop operations, and user can modify State properties of SCXML in Eclipes property view.
  2. State Chart XML export function. State Chart Diagram can be saved as a SCXML file.
  3. Implement debug function for the editor. This SCXML editor will integrate Apache Commons SCXML engine to run State Chart XML file, show context attributes and variables at the breakpoints.Implement step by step,state by state debug function.
  4. Code generation function. I will finish Java code generation module. And in the future,this tool will can generate Java,C++,JavaScript and Python codes according to State Chart Diagram. But as we know,i have only more than two months to finish a GSoC project,so, i will hold this as a long term open source project under Apache,during this summer,i will finish Java code generation job.In the short run, i will implement JavaScript,C++ and Python code generation jobs.

Additional Information:

Things i have done already:

I have been studying W3C's recommendation specification about SCXML, read some code generation relative documents,subscribe Eclipse plunge-in develop,GMF and Apache Commons SCXML mail list,discuss technology details in the mail lists. As GSoC suggested it, mail list is really a good place to discuss project ideas and some other details. I use the mail lists whenever possible to clarify the doubts by asking questions from the expertsFeedback that i received from mail lists helps me so much, thanks for self-giving open source developers and open source spirit.

If i want to start my project, background information about Eclipse plunge-in and GMF is prerequisite. Fortunately, i have more than three years Eclipse plunge-in development experience and be familar with GMF. In fact, i have developed a GMF based SCXML editor rudiment already.

In order to implement code generation for Java, i must know well about Java code generation relative theory. In fact, i have several years Java development experience,and so familiar with It. So, in the future, i have confidence to do it well.

Time Schedule:

Something about me

My name is Xunlong Gui.My major is computer scienece and technology,and i am a postgraduate student of University of Science and Technology Beijing.I am familar with Eclipse,Java,GMF,SCXML,XML,XSL and some other open source projects,such as struts,spring,jstl,dojo and so on and have several years of Java development experience.I am familiar with many project in Apache Foundation,Eclipse Foundation as well as Dojo Foundation .

My e-mail is , and my mobile phone number is 861013488831434. When i was working in IBM China,my mentor helped me a lot and know me well, if you are interested, my mentors may give you some impersonal evaluation about my ability and others. My mentor in IBM China Research Lab: Ping Pan/ My mentor in IBM China Develop Lab: Qian Liang/

My open source development experience:

What i did in my student period


SCXML/GSoC2010EclipsePluginProposal (last edited 2010-04-03 12:52:32 by 221)