Using statecharts increases the number of libraries—is it worth it?
Anecdotal evidence indicates that it does: The benefits of a correctly functioning and maintainable codebase outweighs the relatively small size of the added libraries. Writing programs in a bottom-up approach, adding variables to a component to know “what is happening” almost always results in software that not only is buggy, but is difficult to change.