Software Engineering Research Project Description

Updated on 02/22/2004

Contact Info

Anoop Mathew [email protected]

http://www.geocities.com/snpdg804

Project Type

Project Title: ZOOM Project - Automatic Code Generation: UML Statecharts to Executable Java Code
Meta-model and Finite State Machine framework design

Design of software that is of high quality, easily extensible and reusable are key requirements of any software project. Dynamic code generation has been touted as a promising emerging technique for achieving these software development goals. The overall goal of this project is develop tools/software to translate UML state charts and state implementations into executable Java code. As part of a team working on this project, my individual responsibilities include development of a meta-model that describes UML state charts and design of an executable state machine framework that supports execution of UML state charts

Abstract

As a sub-group of the ZOOM project, the team has the task of implementing a translation engine and providing a framework that will produce executable java code from UML state charts. The translation engine will use the state chart and action semantics provided by the developer, along with the meta-model, to develop executable java code which conforms to the FSM framework.

The overall objectives of this project are as follows:
1. Test UML state chart specification syntax.
2. Develop a meta-model to describe UML state chart specifications.
3. Develop a translation engine to translate UML state chart specifications into executable Java code.
4. Develop an executable finite state machine framework with support for advanced UML state chart constructs.
5. Provide a framework to allow application developers to specify the actions semantics associated with the UML state charts.

My goals as part of the ZOOM project are to design an FSM framework to allow users to specify and execute behavioral models in ZOOM. This framework is compliant with UML Semantics for state charts specified in v.1.5 of the Object Management Group (OMG) UML specification and will support advanced features of UML state charts. I will also be creating a meta-model for the state machine framework. This meta-model would be based on the OMG state machine and event abstract syntax but would have enhancements/customizations specific to the ZOOM project.

Current Status

Design, implementation and testing completed
Demonstration completed
Current Task: Working on final presentation

Plan and Target Dates

Project Description

In the first phase of this project, I will be investigating other software development tools/methodologies that support automatic code generation using UML state charts. Specifically, I will be investigating Executable UML (xUML) to understand the benefits/drawbacks of this methodology. This will enable the project team and I solidify the requirements and provide some context for this project. As part of this endeavor, I have already researched Executable UML in great detail and given a detailed presentation on the topic to the SE690 class.

The second phase of this project that I will be working on is testing the UML state chart specification syntax for completeness and ease of use. This phase of the project is currently ongoing. This task entails understanding the UML state chart specification 1.4 provided by the OMG and ensuring that the syntax that has been designed is sufficient to cover all aspects of dynamic state chart description. The test process involves writing sample state chart descriptions using the supplied syntax, running the test files through a parser (which has been provided) and analyzing the output.

In the third phase of this project, I will be involved in developing a meta-model that completely and succinctly describes UML state charts. This meta-model will be used as input to the translation engine.

In the fourth phase of the project, I will be developing an executable finite state machine framework with built in support for state machine life cycle management and execution, simple states, events – including signal, change and time events, transitions, transition action, transition priority, guards, deferred events, initial/final states, shallow and deep state history, composite/concurrent states, and synch states.

Documents

References

  1. Gamma et al, Design Patterns, Addison-Wesley, 1995.
  2. ...
Hosted by www.Geocities.ws

1