Graphical State Machine
Editor
|
|
Sponsor Information: |
Dave Swanson <daveswan@us.ibm.com>
Phil Dudas <pdudas@us.ibm.com>
Magstar Microcode Development
IBM Tucson
|
|
Project Overview:
In our work, we utilize a number of different models of state machines,
which need to be updated and changed from time to time. The task for you
is to produce a program which allows easy graphical manipulation of state
machines as they are represented in source code. The requirements for
this program are:
- Extremely modular design -- complete and true OO implementation
- Open existing source files
- Intelligently place states and route transitions for visual clarity
- Allow user to change layout (drag and drop)
- Graphically create and delete states and transitions
- Display and edit code content of any state
- Print state machine diagrams
- View file change history as stored in source code comments
- Save files with embedded layout information
There is additional functionality that we want to have:
- Gracefully handle badly-formed data files
- Configuration file to define representation of state machines in source
code
- Ability to create new state machine source files, starting from scratch
|
Knowledge, skills,
and expertise required for this project: |
Knowledge of parsing, object-oriented design, graphics programming
(simple line drawing, drag and drop, etc.).
|
|
Equipment Requirements: |
The software produced must run on UNIX (AIX in particular) and
under Windows. In holding with the first requirement, abstracting
out the window/line/text drawing specifics is required, so the bulk
of the source code can be compiled for multiple environments. Using
the boxes in the Sun lab, or personal Linux and/or Windows machines
for development is acceptable.
|
|
Deliverables: |
Fully commented source code, functional software, final document
describing architecture as implemented (programmer's guide / interface
documentation).
|
|