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

Student Name: Xunlong Gui

Student Email: <<MailTo(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:

  • March 29 - April 9: Submitting the project proposal
  • April 26 - May 24:Community Bonding Period (April 26 - May 24): Get to know mentors, read documentation, and prepare development environment.
  • May 25 - Jun 8: Implement GMF based basic visual editor for State Chart XML
  • Jun 9 - Jun 16: Implement properties edit operations in Eclipse property view, finish SCXML file export function
  • Jun 17 - Jun 24: Finish SCXML document export design job,including generation guidance UI design and generate system design
  • Jun 25 - Jun 28:Finish SCXML document generation coding job
  • Jun 29 - Jul 2:SCXML debuger design and validate
  • Jul 3 - Jul 12: Intergate with Apache Commons SCXML engine, implement debugor function coding job
  • Jul 13 -Jul 31: Design Java code generation module, finish Java code generation module
  • Aug 1 - Aug 9: Write test cases to test generator,fix bugs do some improvement jobs
  • Aug 10 -Aug 16: Scrub code, write tests, improve documentation, etc
  • Aug 17 - Aug 20: Submit all my work

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/Email:panping@cn.ibm.com My mentor in IBM China Develop Lab: Qian Liang/Email:liangq@cn.ibm.com

My open source development experience:

  • Built a tool for struts2 to generate XML config file
  • Develop a Eclipse plugin for Apache SCXML engine which was a visualizing tool for navigating and editing complex SCXML state description XML.

What i did in my student period

  • 2005: Won China Computer World Scholarship (relative info:http://www.etiri.com.cn/publish/article_show.php?id=~26536529455)
  • 2007.1 - 2009.7 : Work in IBM China Research Laborary,my team focus on telecom J2EE solution,get lots of XML relative knowledge
  • 2009.8 - 2010.3 : Work in IBM China Development Laborary as a intern

CategoryHomepage

  • No labels