In my continuing coverage of BABOK® techniques, I plan to comment on all of the general and task-specific techniques. This week’s entry is about state diagrams, a fairly specific technique you may not be familiar with, but could be a source of CBAP® exam questions. It’s also a practical tool. Hopefully my word puzzle on the right makes sense. Minnesota is a state, plus the word diagram = State Diagram. (Hokey, I know.)
I’m giving a presentation at an upcoming conference called “BA Toolkit: Essential Tools for an Agile Project (or any other for that matter.)” I’m basing the presentation on a recent project that built our CBAP Online Study Exam. One of the tools I used on that project was the State Diagram. The BABOK® notes that these diagrams go by different names such as State Machine Diagram, State Transition Diagram, and Entity Life Cycle Diagram.
It proved helpful for a number of reasons:
- A state diagram maps the official “states” or statuses that an entity can have, which is to say from initial creation to final disposal. It visually diagrams what would otherwise be a complicated verbal narrative or list. Whenever I map out one of these diagrams, it invariably leads me to find some more subtle states that I might have otherwise have missed.
- It specifies a sequence of states or statuses that an entity goes through during its lifetime. If an entity changes states, there is always an event that triggers the change. The example below shows sample events (“Offer Made” and “Emp. Is Eligible”) as well as the process to respond to those events (“Accepts Job” and “Employee Retires,” respectively). The triggers and responses are often hidden requirements and the state diagram helps us uncover them. For example, the processes often become use cases and the triggers are an important pre-condition to them.
- There may be specific things that should be performed when the entity reaches a new state. For instance, when a New Hire “Begins Work” in the example below, the process of “Intake New Employee” gets performed to manage the transition such as election of benefits and recording of personal details.
- Each state might have its own unique data associated with it. For instance, a New Hire would have less data than an Employee who has started work. Retirees have even more attributes because of their retirement status. The discovery of new states will usually lead to uncovering additional data requirements. I love it when that happens!
- Before an entity leaves one state for another, there may be some “clean up” activity to be performed. In the example, when transitioning out of the “Former Employee” state, the process of archiving the employee is done. For simplicity’s sake, our example doesn’t show what happens after that.
Here is an example state diagram. It shows 1) Five example states for a Human Resources application, 2) Transitions that reflect the business process in moving from state to state, 3) The event or trigger that causes a move to a new state, and 4) Activities that can take place upon entering or exiting a given state.
Example State Diagram
To sum up, State Diagrams show the various states which an entity or class flows through during its lifetime (i.e., from creation to deletion). It also shows the events or triggers that prompt from one state to another, and formally labels the transitions. This type of analysis would normally be done only for complex entities that have multiple states or “life cycles.” They can help discover missing data attributes and processes involved in the various transitions.
You don’t need to be a proponent of UML or a specific methodology such as Object Oriented Analysis and Design to use these. They have value for most IT projects, and can help uncover missing requirements quickly. You might also get asked a question on the CBAP® exam, so add studying it to your preparation!
For more information, check out Wikipedia’s page on state diagrams. Make sure to scroll past the obscure entries like the “Directed graph“ and “Mealy machine.” We also cover state diagrams in our Business Process Modeling class and Data Modeling class.