Drawing statechart diagram from a problem statement
Consider the development of a medium-scale software in, say, C++. In a software development life cycle typically four phased could be observed. It begins with planning and design, after which the development work starts. Once the required features have been implemented, the software is tested. If testing is successful, the software is released. If there is even a single failure, that is to be fixed, and tested again. However, certain bugs might become apparent only after someone uses the software in real scenario. As such, the software again enters into development phase, followed by testing, and then another release.
Step