{"id":6643,"date":"2022-01-20T11:33:56","date_gmt":"2022-01-20T11:33:56","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=6643"},"modified":"2023-08-30T12:53:05","modified_gmt":"2023-08-30T07:23:05","slug":"fsm-lecture-11-uml-state-machine-types-of-transitions","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/","title":{"rendered":"FSM Lecture 11- UML state machine types of Transitions"},"content":{"rendered":"<div class=\"boldgrid-section\" style=\"background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 35px; padding-bottom: 0px; background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"col-md-1 col-sm-12 col-xs-12 col-lg-1\">\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"col-md-10 col-sm-12 col-xs-12 col-lg-10\">\n<h1 class=\"\" style=\"text-align: center; font-size: 30px; border-width: 0px; line-height: 50px;\"><span style=\"color: #000080;\"><b>UML state machine types of Transitions<\/b><\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\" style=\"border-width: 0px; margin-top: -25px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<p>&nbsp;<\/p>\n<div class=\"bg-hr bg-hr-10 color2-color\" style=\"border-style: solid; border-width: 0px 0px 3px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In UML (Unified Modeling Language), state machine transitions are categorized into different types based on their behavior and conditions. <\/span><\/p>\n<h3 class=\"\" style=\"font-size: 23px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong><span style=\"text-decoration: underline;\">Transitions:<\/span><\/strong><\/span><\/h3>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Transition signifies a change of state or an object\u2019s situation in the object\u2019s life cycle.<\/span><\/p>\n<p class=\"\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 24px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong><span style=\"text-decoration: underline;\">Types of Transitions:<\/span><\/strong><\/span><\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">Here are the commonly used types of transitions in UML state machines:<\/span><\/p>\n<ul class=\"\" style=\"background-color: #f9e1ec; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><strong>External Transition:<\/strong> An external transition occurs when an event causes a transition from one state to another. It represents a change of state in response to an event triggered from outside the system or from an external source.<\/li>\n<li><strong>Internal Transition:<\/strong> An internal transition represents a self-transition within a state. It occurs when an event triggers a transition, but the state itself remains unchanged. In other words, the transition stays within the same state.<\/li>\n<li><strong>Local Transition:<\/strong> A local transition occurs within a composite state. It represents a transition between two substates within the same composite state. It is not visible outside the composite state and is used to model internal behavior.<\/li>\n<li><strong>Self-transition:<\/strong> A self-transition represents a transition from a state back to the same state. It is useful when there are specific actions or events associated with returning to the current state.<\/li>\n<li><strong>Transition with a Guard Condition:<\/strong> A transition can have a guard condition associated with it. A guard condition specifies a condition that must be true for the transition to be taken. It is represented by a Boolean expression, and the transition occurs only if the guard condition evaluates to true.<\/li>\n<li><strong>Transition with a Trigger Event:<\/strong> Transitions can be triggered by specific events. The trigger event represents an occurrence or stimulus that causes the transition to take place. Events can be internal or external, and they can have parameters associated with them.<\/li>\n<li><strong>Transition with a Effect:<\/strong> A transition can have an associated effect, which represents the actions or behaviors that occur when the transition is taken. The effect can be a single action or a set of actions performed during the transition.<\/li>\n<\/ul>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">These are some of the common types of transitions in UML state machines. They provide flexibility in modeling the behavior and dynamics of a system by capturing the state transitions and associated conditions or actions.<\/span><\/p>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In the <span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"http:\/\/fastbitlab.com\/fsm-lecture-10-uml-state-machine-internal-state-activities-entry-exit-do\/\" target=\"_blank\" rel=\"noopener\">previous article<\/a><\/span>, we explore the internal activities and the \u2018entry,\u2019 \u2018exit,\u2019 \u2018do\u2019 all these internal activities of a state. Now let\u2019s understand the internal transition.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong><span style=\"text-decoration: underline;\">Internal transition<\/span><\/strong><\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Each item has the following syntax<\/span><\/li>\n<\/ul>\n<p class=\"\" style=\"padding-left: 30px; border-width: 0px; font-size: 17px;\"><span style=\"font-weight: 400;\">&nbsp;<span style=\"color: #ff0000;\">&nbsp;<\/span><\/span><span style=\"color: #ff0000;\"><i><span style=\"font-weight: 400;\">{&lt;trigger&gt;}* [&#8216;[&#8216; &lt;guard&gt;&#8217;]&#8217;] [\/&lt;behavior-expression&gt;]<\/span><\/i><\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">If the event occurrence matches the \u2018trigger\u2019 and \u2018guard\u2019 of the internal transition evaluates to be TRUE, then behavior identified by <\/span><i><span style=\"font-weight: 400;\">&lt; behavior-expression&gt;<\/span><\/i><span style=\"font-weight: 400;\"> will be executed without exiting or re-entering the state in which it is defined. <\/span><\/span><\/li>\n<\/ul>\n<figure id=\"attachment_6646\" aria-describedby=\"caption-attachment-6646\" style=\"width: 1208px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-6646\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/internal-transition-example.png\" alt=\"Figure 1. Internal transition compartment example\" width=\"1208\" height=\"560\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example.png 1208w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-300x139.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-768x356.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-1024x475.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-600x278.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-120x56.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-500x232.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-200x93.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-400x185.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-800x371.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/internal-transition-example-1200x556.png 1200w\" sizes=\"(max-width: 1208px) 100vw, 1208px\" \/><figcaption id=\"caption-attachment-6646\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. Internal transition compartment example<\/span><\/figcaption><\/figure>\n<p class=\"\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Look at Figure 1, it is one example of Internal transition. We have a state called IDLE. In this compartment, the red color line shows the internal transition compartment. All the internal activity entries are mentioned first, and then the internal transition compartment.&nbsp;<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">In this example, TIME_TICK is a \u2018trigger,\u2019 [e-&gt;ss==5] is the \u2018guard,\u2019 and do_beep is the \u2018action.\u2019&nbsp;&nbsp;<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">When the \u2018trigger\u2019 happens or when the \u2018event\u2019 happens in the system, and if the \u2018guard\u2019 turns out to be TRUE, then only the action will be taken without exiting or re-entering the state. There is no exit from the state. So, that\u2019s what we call the internal transition.&nbsp;<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">TIME_TICK [e-&gt;ss == 5]\/ do_beep()<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">This statement says that whenever the TIME_TICK happens and if some variables value is 5, then do a beep. That\u2019s it.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"text-decoration: underline; color: #000080;\"><b>Internal : <\/b><\/span><span style=\"font-weight: 400;\">internal is a special case of a local Transition that is a self-transition (i.e., with the same source and target States), such that the State is never exited (and, thus, not re-entered), which means that no exit or entry Behaviors are executed when this Transition is executed. <\/span><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">This kind of Transition can only be defined if the source Vertex is a State [OMG\u00ae UML 2.5.1]<\/span><\/span><\/p>\n<figure id=\"attachment_6655\" aria-describedby=\"caption-attachment-6655\" style=\"width: 1127px\" class=\"wp-caption alignnone\"><img decoding=\"async\" class=\"wp-image-6655 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/Internal-transition.png\" alt=\"Figure 9. Internal transition\" width=\"1127\" height=\"423\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition.png 1127w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-300x113.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-768x288.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-1024x384.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-600x225.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-120x45.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-500x188.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-200x75.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-400x150.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Internal-transition-800x300.png 800w\" sizes=\"(max-width: 1127px) 100vw, 1127px\" \/><figcaption id=\"caption-attachment-6655\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Internal transition<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">In this example(Figure 2), TIME_TICK, INC_TIME,DEC_TIME are an internal transition.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 36px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong><span style=\"text-decoration: underline;\">External Transition:<\/span><\/strong><\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">In external transition, the source state is exited due incident of a trigger, the optional action associated with the transition is executed followed by execution of exit action of the state<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">An external transition signifies a change of state or an object\u2019s situation in the object\u2019s life cycle.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">When the state is changed, now the object is ready to process a new set of events and execute a new set of actions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Transitions are denoted by lines with arrowheads leading from a source state to a target state<\/span><\/li>\n<\/ul>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 23px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 32px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><span style=\"font-weight: 400;\">Example Tranistion<\/span><\/span><\/p>\n<figure id=\"attachment_6647\" aria-describedby=\"caption-attachment-6647\" style=\"width: 1205px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"size-full wp-image-6647\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/Example-tranistion.png\" alt=\"Figure 2. Example transition\" width=\"1205\" height=\"638\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion.png 1205w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-300x159.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-768x407.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-1024x542.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-600x318.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-500x265.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-200x106.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-400x212.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-800x424.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Example-tranistion-1200x635.png 1200w\" sizes=\"(max-width: 1205px) 100vw, 1205px\" \/><figcaption id=\"caption-attachment-6647\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. Example transition<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">When the object&#8217;s current state is COUNTDOWN and if the event START_PAUSE is received, then the object transitions to state PAUSE(updates its state to PAUSE).&nbsp;<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Transition in a program is nothing but updating a state variable. One a variable state changes to PAUSE.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_6649\" aria-describedby=\"caption-attachment-6649\" style=\"width: 1721px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-6649\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/figure-1-1.png\" alt=\"Figure 3. Transition example\" width=\"1721\" height=\"363\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1.png 1721w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-300x63.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-768x162.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-1024x216.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-600x127.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-120x25.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-500x105.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-200x42.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-400x84.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-800x169.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/figure-1-1-1200x253.png 1200w\" sizes=\"(max-width: 1721px) 100vw, 1721px\" \/><figcaption id=\"caption-attachment-6649\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. Transition example<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">After the Transition, the exit action of the COUNTDOWN state will be executed\u2014exit action of the source state. <\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Look at figure 4, T represents the trigger or just an event. There is no guard condition, and there is no action, such transitions are possible; the guard and these actions are all optional, even the trigger is optional. So, any combination could be possible.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_6648\" aria-describedby=\"caption-attachment-6648\" style=\"width: 1226px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6648 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/External-transition-example.png\" alt=\"Transitions\" width=\"1226\" height=\"439\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example.png 1226w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-300x107.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-768x275.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-1024x367.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-600x215.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-120x43.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-500x179.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-200x72.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-400x143.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-800x286.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example-1200x430.png 1200w\" sizes=\"(max-width: 1226px) 100vw, 1226px\" \/><figcaption id=\"caption-attachment-6648\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 5. External transition example<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">Consider this example(figure 5), and here there are two states, IDLE and TIME_SET. Let\u2019s assume the object is currently in the IDLE state, and when it is in the IDLE state, the INC_TIME event happens. If this event happens, there is no guard condition, so the object has to exit from the IDLE state and go to the new state, i.e., TIME_SET.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">As per the UML specification, first, the object has to exit from its current state. In this case, the object has first to exit the IDLE state. Exit means completing its exit actions. When the exit actions are completed, that means the object has safely exited from its state.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">That\u2019s why first, the exit action will be executed. Second, INC_TIME will be executed, followed by the execution of the transition action, and third, followed by executing the entry action of the newly entered state. That\u2019s how the transition takes place. This is also mentioned in the UML specification.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_6651\" aria-describedby=\"caption-attachment-6651\" style=\"width: 1687px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6651 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/specification-diagram.png\" alt=\"Transitions\" width=\"1687\" height=\"813\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram.png 1687w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-300x145.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-768x370.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-1024x493.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-600x289.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-120x58.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-500x241.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-200x96.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-400x193.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-800x386.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/specification-diagram-1200x578.png 1200w\" sizes=\"(max-width: 1687px) 100vw, 1687px\" \/><figcaption id=\"caption-attachment-6651\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 6. Compound transition example<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">Figure 6 shows the compound transition example. Here, S11 is a simple state. Let\u2019s assume that the object is<\/span> <span style=\"color: #000000;\">currently in an S11 simple state, and the trigger happens; the trigger is \u2018sig .\u2019 When \u2018sig\u2019 happens, the object has to leave the S11 state.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">xS11;t1;xS1;t2;eT1;eT11;t3;eT111, this is an order of execution of actions.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">First, xS11 is executed. xS11 is nothing but its exit action executed first followed by the transition action t1. The t1 is executed next. And after that, it goes out of this composite state S1. So, S1 is a parent, or it\u2019s a super state of S11. Exiting this composite state also means exiting from this S1 composite state. That\u2019s why the exit action of the S1 state is executed. That is xS1 here.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">The exit actions are executed right from the innermost state as per the specification. S11 is an innermost state. So, exit actions are executed beginning from the innermost state to the outermost state. And after that, it goes to the exit point.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">And after that, it goes to t2. And now it enters the new composite state, t1, and its target is T111. That\u2019s the target state. Before reaching the target state, it has to go through all other intermediate states, and it executes all the entry actions which come along the way. First it executes the entry action eT1,eT11,t3 (that\u2019s a transition action), and eT111.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">From this picture, you can understand that the actions executed are right from the outermost state towards the innermost state during entry into a composite state. Exiting a composite state involves executing exit actions from the innermost state towards the outermost state.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_6652\" aria-describedby=\"caption-attachment-6652\" style=\"width: 1920px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-6652\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True.png\" alt=\"Figure 6. External transition example(condition TRUE)\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True.png 1920w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-300x169.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-768x432.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-1024x576.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-600x338.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-120x68.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-500x281.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-200x113.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-400x225.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-800x450.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/External-transition-example1condition-True-1200x675.png 1200w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption id=\"caption-attachment-6652\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 7. External transition example(condition TRUE)<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Let\u2019s see one more example. Let\u2019s consider Figure 6. Let\u2019s assume the object is currently in a PAUSE state, and the decrement time event happens. When a DEC_TIME event happens, it is guarded by the guard condition\u2013(2). Guard condition is written inside the square brackets. And Guard is nothing but it\u2019s a Boolean expression and must evaluate to TRUE for transitions to fire. If this condition becomes TRUE, then only the transition will fire. That means, first, the exit action will be executed\u2013(1), then the transition actions\u2013(2), then the entry actions\u2013(3), only if the Guard condition is evaluated to be TRUE.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_6653\" aria-describedby=\"caption-attachment-6653\" style=\"width: 1920px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6653 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False.png\" alt=\"Transitions\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False.png 1920w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-300x169.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-768x432.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-1024x576.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-600x338.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-120x68.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-500x281.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-200x113.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-400x225.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-800x450.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Extenal-transition-example-2condition-False-1200x675.png 1200w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption id=\"caption-attachment-6653\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 8. External transition example(condition FALSE)<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">If the Guard condition evaluates to FALSE, if the DEC_TIME event happens, there is no transition. The object will not leave the state. So, no exit from the state. No exit means no execution of transition actions. No entry to the new state. It&#8217;s just like this event is ignored.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_6654\" aria-describedby=\"caption-attachment-6654\" style=\"width: 1156px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6654 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/only-trigger.png\" alt=\"Transitions\" width=\"1156\" height=\"408\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger.png 1156w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-300x106.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-768x271.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-1024x361.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-600x212.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-120x42.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-500x176.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-200x71.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-400x141.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/only-trigger-800x282.png 800w\" sizes=\"(max-width: 1156px) 100vw, 1156px\" \/><figcaption id=\"caption-attachment-6654\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 9. External transition Example<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">And sometimes, an external transition may happen just because of a trigger. The guards and the transition actions are optional. Look at Figure 9; there is a trigger, only trigger. That may also cause the transition.<\/span><br \/>\n<span style=\"color: #000000;\">And sometimes transition may happen just because of trigger and guard. The transition guard may be absent. Whenever the TIME_TICK event happens, the transition happens only if the guard condition evaluates to be TRUE.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><strong><span style=\"font-size: 20px;\">Local transition:<\/span><\/strong><\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li><span style=\"font-weight: 400; color: #000000;\">Local: local is the opposite of external, meaning that the Transition does not exit its containing state (and, hence, the exit Behavior of the containing State will not be executed). However, for local Transitions, the target Vertex must be different from its source Vertex. A local Transition can only exist within a composite State. [OMG\u00ae UML 2.5.1]<\/span><\/li>\n<\/ul>\n<figure id=\"attachment_6656\" aria-describedby=\"caption-attachment-6656\" style=\"width: 535px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6656 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/Local-transition.png\" alt=\"Transitions\" width=\"535\" height=\"386\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png 535w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition-300x216.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition-120x87.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition-500x361.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition-200x144.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition-400x289.png 400w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><figcaption id=\"caption-attachment-6656\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 10. Local transition<\/span><\/figcaption><\/figure>\n<p data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">In the diagram(figure 10), you are seeing S1, which is a composite state. And this composite state has three substates. S1_0, S1_1,S1_2 are 3 substates and&nbsp; e1, e2, e3 are local transitions of S1.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><span style=\"font-weight: 400;\">Few Points to remember:<\/span><\/span><\/p>\n<ul class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">doActivity behavior commences execution when the state is entered only after the state entry behavior has completed<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">entry , exit , do , cannot be associated with any transitions<\/span><\/li>\n<\/ul>\n<p class=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6657 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2022\/01\/few-points-to-remember.png\" alt=\"Transitions\" width=\"1125\" height=\"437\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember.png 1125w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-300x117.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-768x298.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-1024x398.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-600x233.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-120x47.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-500x194.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-200x78.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-400x155.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/few-points-to-remember-800x311.png 800w\" sizes=\"(max-width: 1125px) 100vw, 1125px\" \/><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 20px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><b>FastBit Embedded Brain Academy Courses<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px;\"><span style=\"color: #000000;\"><span style=\"color: #000000;\">Click here: <\/span><span style=\"color: #3366ff;\"><a style=\"color: #3366ff;\" href=\"http:\/\/fastbitlab.com\/course1\" target=\"_blank\" rel=\"noopener\"><span style=\"text-decoration: underline;\">https:\/\/fastbitlab.com\/course1<\/span><\/a><\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; UML state machine types of Transitions &nbsp; &nbsp; In UML (Unified Modeling Language), state machine transitions are categorized into different types based on their behavior and conditions. Transitions: Transition signifies a change of state or an object\u2019s situation in the object\u2019s life cycle. &nbsp; Types of Transitions: Here are the commonly used types of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6656,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[17],"class_list":["post-6643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-finite-state-machine","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>UML State Machine Transition Types: External, Internal, Local, &amp; More<\/title>\n<meta name=\"description\" content=\"Learn about the different types of transitions in UML state machines. Understand the concepts of internal, external, and local transitions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UML State Machine Transition Types: External, Internal, Local, &amp; More\" \/>\n<meta property=\"og:description\" content=\"Learn about the different types of transitions in UML state machines. Understand the concepts of internal, external, and local transitions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-20T11:33:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-30T07:23:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png\" \/>\n\t<meta property=\"og:image:width\" content=\"535\" \/>\n\t<meta property=\"og:image:height\" content=\"386\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"FSM Lecture 11- UML state machine types of Transitions\",\"datePublished\":\"2022-01-20T11:33:56+00:00\",\"dateModified\":\"2023-08-30T07:23:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/\"},\"wordCount\":1845,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Local-transition.png\",\"keywords\":[\"Finite state Machine(FSM)\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/\",\"name\":\"UML State Machine Transition Types: External, Internal, Local, & More\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Local-transition.png\",\"datePublished\":\"2022-01-20T11:33:56+00:00\",\"dateModified\":\"2023-08-30T07:23:05+00:00\",\"description\":\"Learn about the different types of transitions in UML state machines. Understand the concepts of internal, external, and local transitions.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Local-transition.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Local-transition.png\",\"width\":535,\"height\":386,\"caption\":\"Figure 10. Local transition\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/fsm-lecture-11-uml-state-machine-types-of-transitions\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FSM Lecture 11- UML state machine types of Transitions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UML State Machine Transition Types: External, Internal, Local, & More","description":"Learn about the different types of transitions in UML state machines. Understand the concepts of internal, external, and local transitions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/","og_locale":"en_US","og_type":"article","og_title":"UML State Machine Transition Types: External, Internal, Local, & More","og_description":"Learn about the different types of transitions in UML state machines. Understand the concepts of internal, external, and local transitions.","og_url":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2022-01-20T11:33:56+00:00","article_modified_time":"2023-08-30T07:23:05+00:00","og_image":[{"width":535,"height":386,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"FSM Lecture 11- UML state machine types of Transitions","datePublished":"2022-01-20T11:33:56+00:00","dateModified":"2023-08-30T07:23:05+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/"},"wordCount":1845,"commentCount":2,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png","keywords":["Finite state Machine(FSM)"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/","url":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/","name":"UML State Machine Transition Types: External, Internal, Local, & More","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png","datePublished":"2022-01-20T11:33:56+00:00","dateModified":"2023-08-30T07:23:05+00:00","description":"Learn about the different types of transitions in UML state machines. Understand the concepts of internal, external, and local transitions.","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2022\/01\/Local-transition.png","width":535,"height":386,"caption":"Figure 10. Local transition"},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/fsm-lecture-11-uml-state-machine-types-of-transitions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"FSM Lecture 11- UML state machine types of Transitions"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/6643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=6643"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/6643\/revisions"}],"predecessor-version":[{"id":10737,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/6643\/revisions\/10737"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/6656"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=6643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=6643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=6643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}