Personally I think that the VisualState tool is very useful. VisualSTATE is a suite of graphical tools for design of embedded systems and event-driven systems; use it for any 8-, 16- or 32-bit target microcontroller and even Windows applications.
With visualSTATE, each development phase becomes much easier. The benefits of model-driven design are:
• Design an embedded application by drawing objects, events, actions etc, using the powerful notation of hierarchical UML state charts and state machines.
• Discuss the design and exchange ideas with others thanks to the model-driven design approach and the graphical design representation.
• Simulate and visualize your application to find mistakes early in the design cycle.
• Verify the logical consistency of your designs run-time model with the extremely powerful formal verificator.
• Perform extensive tests continously and iteratively throughout your development: validation of the application behavior, regression testing and automatic test coverage reporting.
• Use the power of executable UML and RealLink to execute and visualize your applications behavior on the target system.
• Automatically generate error-free micro-tight C/C++ code that is 100%consistent with your design.
• Develop incrementally, reusing code and prototyping.
• Add new functionality to an existing application as market requirements change.
• Maintain an existing application thanks to the accurate, structured documentation that is always in-sync with the final design.
Regards, svicent