A state diagram is a type of diagram used in computer science and related fields to describe the behaviour of systems. The base assumption is that the system can only take a finite number of states, which are represented together with the path (usually an action) needed to reach that state. These diagrams are usually used for representing object-based systems where each diagram usually represents objects of a single class and track the different states of its objects through the system [1]. State-transition diagrams describe all of the states that an object can have, the events under which an object changes state (transitions), the conditions that must be fulfilled before the transition will occur (guards), and the activities undertaken during the life of an object (actions). [2]