Software Engineering Research Project Description
Updated on 02/22/2004
Contact Info
Anoop Mathew [email protected]
http://www.geocities.com/snpdg804
Project Type
- SE MS Project (SE690 & SE696), supervised by Dr. Jia
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
- Phase 1: Analysis
- Milestone 0: Project Web page (Spring 03)
- Milestone 1: Develop project proposal (Spring 03)
- Milestone 2: Technology & tools review (Spring 03)
- Milestone 3: Test UML state chart description syntax (Spring 03)
- Milestone 4: Initial Presentation (Spring 03)
- Phase 2: Design & Development
- Milestone 0: Develop meta-model (Spring 03/Summer03)
- Milestone 1: Develop architectural framework (Summer 03)
- Milestone 2: Unit tests (Spring 03/Summer03)
- Phase 3: Integration
- Milestone 0: Unit tests (Fall 03)
- Milestone 1: Intermediate Presentation/Demo (Fall 03)
- Milestone 2: Integration Testing (Fall 03)
- Milestone 2: Final Demo/Presentation (Fall 03)
- Completion: Winter 04
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
- Gamma et al, Design Patterns, Addison-Wesley, 1995.
- ...