To cope with complex software, programmers use formal design methodologies to analyze and document software design before writing code. Statecharts are commonly used to portray the behavior of a state-based system while describing its behavior at a level higher than code. Some design tools can also generate code, allowing execution, testing and validation of the design logic. For programmers starting to use statecharts, there is tendency to use them to a limited
extent. Statecharts are used to describe high-level logic; whereas details are hard-coded using a favorite programming language either within the charts or as externally coded modules. This paper describes how to develop statecharts that result in a portable design, while minimizing the amount of handwritten code. It also shows how frequently used logical constructs can be represented using statecharts by providing examples using a commercial statechart design tool.