{"id":544,"date":"2010-06-06T14:33:31","date_gmt":"2010-06-06T19:33:31","guid":{"rendered":"http:\/\/www.watermarklearning.com\/blog\/?p=544"},"modified":"2024-08-26T10:19:01","modified_gmt":"2024-08-26T15:19:01","slug":"state-diagrams","status":"publish","type":"post","link":"https:\/\/www.watermarklearning.com\/blog\/state-diagrams\/","title":{"rendered":"State Diagrams: They Don&#8217;t Just State the Obvious"},"content":{"rendered":"<p>In my continuing coverage of BABOK\u00ae techniques, I plan to comment on all of the general and task-specific techniques. This week\u2019s entry is about state diagrams, a fairly specific technique you may not be familiar with, but could be a source of CBAP\u00ae exam questions. It\u2019s 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\u00a0know.)<img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-552\" title=\"Wuzzle - State Diagram\" src=\"https:\/\/www.watermarklearning.com\/blog\/wp-content\/uploads\/2010\/06\/Wuzzle-State-Diagram3-150x150.png\" alt=\"Wuzzle - State Diagram\" width=\"150\" height=\"150\" \/><\/p>\n<p>I\u2019m giving a presentation at an upcoming conference called \u201c<strong>BA Toolkit: <em>Essential Tools for an Agile Project (or any other for that matter.)<\/em><\/strong>\u201d I\u2019m 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\u00ae notes that these diagrams go by different names such as State Machine Diagram, State Transition Diagram, and Entity Life Cycle Diagram.<\/p>\n<p>It proved helpful for a number of reasons:<\/p>\n<ol>\n<li>A state diagram maps the official \u201cstates\u201d 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.<\/li>\n<li>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 (\u201cOffer Made\u201d and \u201cEmp. Is Eligible\u201d) as well as the process to respond to those events (\u201cAccepts Job\u201d and \u201cEmployee Retires,\u201d 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.<\/li>\n<li>There may be specific things that should be performed when the entity reaches a new state. For instance, when a New Hire \u201cBegins Work\u201d in the example below, the process of \u201cIntake New Employee\u201d gets performed to manage the transition such as election of benefits and recording of personal details.<\/li>\n<li>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\u00a0uncovering additional data requirements. I love it when that happens!<\/li>\n<li>Before an entity leaves one state for another, there may be some \u201cclean up\u201d activity to be performed. In the example, when transitioning out of the \u201cFormer Employee\u201d state, the process of archiving the employee is done.\u00a0For simplicity\u2019s sake, our example doesn&#8217;t show what happens after that.<\/li>\n<\/ol>\n<p>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.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-572\" title=\"State Diagram Example\" src=\"https:\/\/www.watermarklearning.com\/blog\/wp-content\/uploads\/2010\/06\/State-Diagram-Example1.jpg\" alt=\"State Diagram Example\" width=\"609\" height=\"263\" srcset=\"https:\/\/www.watermarklearning.com\/blog\/wp-content\/uploads\/2010\/06\/State-Diagram-Example1.jpg 609w, https:\/\/www.watermarklearning.com\/blog\/wp-content\/uploads\/2010\/06\/State-Diagram-Example1-300x129.jpg 300w, https:\/\/www.watermarklearning.com\/blog\/wp-content\/uploads\/2010\/06\/State-Diagram-Example1-500x215.jpg 500w\" sizes=\"auto, (max-width: 609px) 100vw, 609px\" \/><\/p>\n<h4 style=\"text-align: center;\">Example State Diagram<\/h4>\n<p>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 \u201clife cycles.\u201d They can help discover missing data attributes and processes involved in the various transitions.<\/p>\n<p>You don\u2019t 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\u00ae exam, so add studying it to your preparation!<\/p>\n<p>For more information, check out <a href=\"https:\/\/en.wikipedia.org\/wiki\/State_diagram\" target=\"_blank\" rel=\"noopener\">Wikipedia\u2019s page on state diagrams<\/a>. Make sure to scroll past the obscure entries like the \u201cDirected graph\u201c and \u201cMealy machine.\u201d We also cover state diagrams in our <a href=\"https:\/\/www.watermarklearning.com\/course\/business-process-modeling-27.php\" target=\"_blank\" rel=\"noopener\">Business Process Modeling class<\/a> and <a href=\"https:\/\/www.watermarklearning.com\/blog\/state-diagrams\/\" target=\"_blank\" rel=\"noopener\">Data Modeling class<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my continuing coverage of BABOK\u00ae techniques, I plan to comment on all of the general and task-specific techniques. This week\u2019s entry is about state diagrams, a fairly specific technique you may not be familiar with, but could be a source of CBAP\u00ae exam questions. It\u2019s also a practical tool. Hopefully my word puzzle on [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":10810,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[44,26,8,1],"tags":[47,213,34],"coauthors":[138],"class_list":["post-544","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-babok","category-business-analysis","category-cbap","category-watermark-learning","tag-babok-techniques","tag-business-analysis","tag-cbap-certification"],"_links":{"self":[{"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/posts\/544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/comments?post=544"}],"version-history":[{"count":3,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/posts\/544\/revisions"}],"predecessor-version":[{"id":11317,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/posts\/544\/revisions\/11317"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/media\/10810"}],"wp:attachment":[{"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/media?parent=544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/categories?post=544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/tags?post=544"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.watermarklearning.com\/blog\/wp-json\/wp\/v2\/coauthors?post=544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}