State-Transition Modeling

Don Hussey
A free video tutorial from Don Hussey
Business Analyst Training
4.4 instructor rating • 7 courses • 71,136 students

Learn more from the full course

Fundamentals of Business Analysis

Get the foundation in business analysis you need to solve your organization's biggest problems.

06:03:50 of on-demand video • Updated March 2018

  • Learn the foundations of business analysis
  • Learn how to gather requirements from stakeholders and documentary sources
  • Learn how to analyze, diagram and model requirements
  • Learn how to present requirements effectively and gain acceptance
  • Learn how to manage requirements assets after the project is complete
English [Auto] Let's say you get home one evening you unlock your door and you walk in your home and it's dark inside right. That's because the lights are off. What do you do. You flip the light switch and after you do that the lights are on before you go to bed. You flip the light switch again and the lights are once again off. This kind of reasoning simple as it may seem is called State Transition modeling. And in this lecture we are going to talk about how we use it in business analysis. I will say that this is probably my favorite type of modeling not because the diagrams local but because it probably helps me to catch more requirement errors than any other type of modeling. So let's take a look at it. So what does a state transition diagram. It is a model that shows you the various states that object of whatever kind can be in. And it shows how the objects can be transitioned from one state to another that begs the question What is the state where you can think of a state as being a status of some kind or a phase. For example water can be in one of three phases. It can be solid liquid or gas and it can only be in one state at a time. For example it can't be solid and liquid at the same time going back to the light switch. It could be off or on. It can't be kind of off it's just in one state or the other. Let's look at their building blocks what state transition models are made of component wise state transition diagrams are very simple. We only have four elements. First we have circles with text on them and they represent states. The name of the state goes inside the shape and then we have flow lines that go from state to state and they are called transitions and they are labeled with whatever the transition is. If you're a grammar person you can think of states as being adjectives. And if you really really love grammar it's best to think of a state as being an adjectival phrase and transitions are verbs or verb phrases. The last two shapes are start and finish starts to look very familiar because we first started talking about them back in the flowcharts lecture the start points to the initial state that the object is in when it's first created the finished state points to the final state that it gets to. By the way and this is kind of silly but it's helpful if you can remember which symbol is the start and which is the finish. Here's a little mnemonic for you. Think of the filled in circle as being a person's head. At the beginning of their life they're a baby and they have a little head. So they get a little filled in circle. That's the start as they grow up their head gets bigger. Those are the intermediate states and then at the end of their life they die and become an angel and their head gets a halo. That's the finish. Yes it's a silly example but it's the only way I found I remember this and it's silly enough that you'll never forget. Yes you're welcome. So that's it. All the pieces you need to make just about any state transition diagram. Now let's go ahead and make a couple ourselves. I always start with the light switch because it's about as simple as it gets. So let's start by figuring out what the states are what statuses can a light switch have while we already talked about it. It can be off or on. So let's put those states on the board. Our next step will be to figure out how the light switch transitions from state to state. So let's ask some questions. Is it possible for a light switch to transition from off to on. Yes it can. How. By turning the lights on. So we had that transition. Next we have the reverse. Can a light switch go from on to off. Yes again. And that's done by turning the lights off and we have that transition to finish the model. We just need to place a Star State and point it to the first state that the object him be in. This is actually not very obvious with the light switch as it does it start off in the on position or off position. I'm going to propose that it should be off my reasoning is that when you install a light switch you're going to need to power down the circuit and you don't want the light switch to be on or else something might blow up. I don't know I'm not an electrician so let's add the start state and point it to off. We also need to place a final state. So what should that final state be. I'm going to use the same reasoning here if we're going to uninstall a light switch we will once the circuit and everything to be off also so we can make that the final state as well. So just so you know it is very rare for an object to start and finish with the same state usually they're at different ends of the diagram and that's what you'll see next. So let's do it an example that is a little bit more business analysis related and a little bit more challenging. A typical situation where we have to do state transition modeling is when we have some kind of request that's moving through a workflow I'm sure you've seen this concept in systems you use. You enter request it goes to a manager for approval and so on. So let's map out one of these. Remember this some of the flowchart Well it's going to be the example we use here. Remember though we have a sequester that creates an order in the system and then the system sends it to an approver for review and the approver can either approve or reject the order. And then the process is done. So how would we model this. Well the first step is going to be to figure out what the states are. So at the very beginning of the flow the order doesn't exist yet and it doesn't seem to exist until the requestor creates it and as soon as it's created it's going to have some kind of state value. So let's just call the state new. That's pretty typical for an object that is newly created. Let's see what else we have here. The next thing that I see is that the system routes the order to the approver it is presumably then sitting in their review queue. So let's go ahead and put a state for that we can call it pending review. After that the reviewer looks at it and either approves it or rejects it. And either one of those paths will require a state as well. So let's create a state for each one. OK so right off the bat we have four states new pending review approved and rejected. And it's very likely that you've seen various statuses like this in the past. So let's put together our initial model first. The four states which we have here and then the transitions for each one and where the start and finish States will be here you see that we have two final states that's absolutely fine. You can have any number of Vinals States but only one initial state or final step is going to be to examine this model and make sure that we aren't missing any transitions from state to state. That could indicate missing requirements for example or model currently shows that the approving action is a one time thing that cannot be undone. And the same goes for rejecting a request. It's a one time action that cannot be undone if this is going to end up being a requirement that we can undo an approval or a rejection then we're going to need to catch up with our stakeholders to understand what exactly the behavior should be. And this is one of the reasons I love state transition diagrams because they highlight situations like this if you don't have any requirements stating something to the effect of the system will enable a user to reverse a prior approval that it won't be developed by the technology team. And you might run into problems once your product gets to the real world. So this is one of my favorite examples of how modeling can help to validate requirements. OK. So that's it for state transition modeling. We are now going to move into a modeling method that shows how data flows around organizations systems and processes. It's called data flow modeling and it's coming up next.