{"id":4395,"date":"2026-01-19T11:45:42","date_gmt":"2026-01-19T03:45:42","guid":{"rendered":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/"},"modified":"2026-01-26T15:31:38","modified_gmt":"2026-01-26T07:31:38","slug":"state-machine-diagrams","status":"publish","type":"docs","link":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/","title":{"rendered":"State Machine Diagrams"},"content":{"rendered":"<h2 dir=\"auto\"><strong>Capturing the event-ordered behavior and lifecycle of reactive objects<\/strong><\/h2>\n<figure id=\"attachment_5138\" aria-describedby=\"caption-attachment-5138\" style=\"width: 290px\" class=\"wp-caption alignnone\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-5138\" src=\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png\" alt=\"Car engine UML state diagram example\" width=\"290\" height=\"280\" srcset=\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png 290w, https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example-150x145.png 150w\" sizes=\"(max-width: 290px) 100vw, 290px\" \/><figcaption id=\"caption-attachment-5138\" class=\"wp-caption-text\">Car engine UML state diagram example<\/figcaption><\/figure>\n<p dir=\"auto\"><strong>State machine diagrams<\/strong> (also called <strong>statechart diagrams<\/strong>) in UML 2.5 model the <strong>event-driven, reactive behavior<\/strong> of individual objects, subsystems, components, or even the entire system. They focus on the <strong>lifecycle<\/strong>: the different <strong>states<\/strong> an object can be in, the <strong>events<\/strong> that cause transitions between states, the <strong>conditions<\/strong> (guards) that must be true for a transition to fire, and the <strong>actions<\/strong> or <strong>activities<\/strong> performed during transitions, on entry\/exit to states, or while in a state (do activity).<\/p>\n<p dir=\"auto\">Key elements:<\/p>\n<ul dir=\"auto\">\n<li><strong>State<\/strong> \u2014 Rounded rectangle (simple or composite). Composite states contain substates (orthogonal regions for concurrency).<\/li>\n<li><strong>Transition<\/strong> \u2014 Arrow labeled <strong>event [guard] \/ action<\/strong> (e.g., paymentApproved [amount &gt; 0] \/ sendConfirmation()).<\/li>\n<li><strong>Initial Pseudostate<\/strong> \u2014 Black filled circle (starting point).<\/li>\n<li><strong>Final State<\/strong> \u2014 Bullseye circle (end of lifecycle).<\/li>\n<li><strong>Event<\/strong> \u2014 Trigger (signal, call, time, change event).<\/li>\n<li><strong>Guard<\/strong> \u2014 Boolean condition in [].<\/li>\n<li><strong>Action<\/strong> \u2014 Behavior executed during transition.<\/li>\n<li><strong>Entry \/ Exit \/ Do<\/strong> \u2014 Activities inside a state (entry\/ on entry, exit\/ on exit, do\/ while in state).<\/li>\n<li><strong>Self-transition<\/strong> \u2014 Arrow looping back to same state.<\/li>\n<li><strong>History pseudostate<\/strong> \u2014 Shallow\/deep history to remember substate on re-entry.<\/li>\n<li><strong>Choice \/ Junction<\/strong> \u2014 Pseudo-nodes for complex branching.<\/li>\n<\/ul>\n<p dir=\"auto\">In Agile &amp; use-case-driven development, state machines are used to:<\/p>\n<ul dir=\"auto\">\n<li>Model the lifecycle of key domain objects (Order, Account, Ride, PatientRecord, Device)<\/li>\n<li>Reveal invalid or missing state transitions early (prevents bugs like shipping unpaid orders)<\/li>\n<li>Clarify concurrency and parallelism (orthogonal regions)<\/li>\n<li>Serve as basis for code generation (state patterns, switch-based implementations)<\/li>\n<li>Validate complex business rules and edge cases with stakeholders<\/li>\n<li>Support testing (state coverage, transition coverage)<\/li>\n<\/ul>\n<h3 dir=\"auto\">Practical Examples of State Machine Diagrams in Real Projects<\/h3>\n<p dir=\"auto\">Here are numerous concrete examples showing state machines modeling real-world reactive lifecycles:<\/p>\n<ul dir=\"auto\">\n<li><strong>E-commerce \u2013 Order Lifecycle<\/strong> States: PendingPayment, PaymentAuthorized, PaymentFailed, InPreparation, Shipped, Delivered, Returned, Cancelled Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 PendingPayment<\/li>\n<li>payReceived [amount matches] \/ reserveStock() \u2192 PaymentAuthorized<\/li>\n<li>payFailed \/ notifyCustomer() \u2192 PaymentFailed<\/li>\n<li>PaymentAuthorized \u2192 InPreparation \/ packOrder()<\/li>\n<li>InPreparation \u2192 Shipped \/ handoverToCarrier()<\/li>\n<li>Shipped \u2192 Delivered (after deliveryConfirmed event)<\/li>\n<li>Delivered \u2192 Returned (returnRequested [within 30 days]) \/ initiateRefund()<\/li>\n<li>Any state (except Delivered\/Returned) \u2192 Cancelled (cancelRequested) \/ releaseStock() Practical benefit: Prevents shipping before payment; used to generate acceptance tests for each transition.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Mobile Banking \u2013 Account States<\/strong> States: Active, Frozen, Locked, Closed, Dormant Composite state Active contains substates: Normal, Overdrawn, PendingVerification Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 Active.Normal<\/li>\n<li>overdraftDetected \u2192 Active.Overdrawn<\/li>\n<li>suspiciousActivity [3 failed logins] \u2192 Locked \/ notifyUser()<\/li>\n<li>fraudConfirmed \u2192 Frozen \/ alertComplianceTeam()<\/li>\n<li>inactivity &gt; 365 days \u2192 Dormant<\/li>\n<li>reactivateRequested [with MFA] \u2192 Active.Normal<\/li>\n<li>closeAccount \u2192 Closed (final) Practical: Captures security and compliance rules; orthogonal region for \u201cNotification Status\u201d (Unsent, Sent, Acknowledged).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Ride-Sharing \u2013 Ride Object Lifecycle<\/strong> States: Requested, Accepted, DriverEnRoute, ArrivedAtPickup, InProgress, Completed, CancelledByRider, CancelledByDriver Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 Requested<\/li>\n<li>driverAccepted \u2192 Accepted \/ startNavigation()<\/li>\n<li>driverArrived \u2192 ArrivedAtPickup<\/li>\n<li>riderInCar \u2192 InProgress<\/li>\n<li>destinationReached \u2192 Completed \/ processPayment()<\/li>\n<li>cancelBeforePickup [either party] \u2192 CancelledByRider or CancelledByDriver \/ notifyOtherParty() Practical: Shows time-sensitive transitions; guards like [riderConfirmedPickup] prevent premature completion.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Healthcare \u2013 Patient Appointment States<\/strong> States: Scheduled, Confirmed, InProgress, Completed, Cancelled, NoShow, Rescheduled Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 Scheduled<\/li>\n<li>patientConfirmed \u2192 Confirmed \/ sendReminder()<\/li>\n<li>doctorStarted \u2192 InProgress<\/li>\n<li>consultationEnded \u2192 Completed \/ generateReport()<\/li>\n<li>patientNoShow [after 15 min past start] \u2192 NoShow \/ chargeFee()<\/li>\n<li>rescheduleRequested \u2192 Rescheduled<\/li>\n<li>cancel [before 24h] \u2192 Cancelled Practical: Enforces business rules (e.g., no-show penalties); used in workflow simulation.<\/li>\n<\/ul>\n<\/li>\n<li><strong>IoT Smart Thermostat<\/strong> States: Off, Idle, Heating, Cooling, EmergencyOverride Composite state Idle contains substates: EcoMode, ComfortMode Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 Off<\/li>\n<li>powerOn \u2192 Idle.ComfortMode<\/li>\n<li>temperature &lt; setpoint &#8211; 1\u00b0C \u2192 Heating \/ activateHeater()<\/li>\n<li>temperature &gt; setpoint + 1\u00b0C \u2192 Cooling \/ activateAC()<\/li>\n<li>emergencyButtonPressed \u2192 EmergencyOverride \/ maxHeat()<\/li>\n<li>powerOff \u2192 Off (from any state) Practical: Models real-time reactivity; do activity in Heating: \u201cmonitor temperature every 30s\u201d.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Task Management \u2013 Task \/ Card States<\/strong> States: Backlog, ToDo, InProgress, Review, Done, Blocked Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 Backlog<\/li>\n<li>movedToSprint \u2192 ToDo<\/li>\n<li>startedWork \u2192 InProgress \/ assignDeveloper()<\/li>\n<li>needsReview \u2192 Review<\/li>\n<li>approved \u2192 Done<\/li>\n<li>blockerFound [in any state except Done] \u2192 Blocked \/ notifyTeam()<\/li>\n<li>blockerResolved \u2192 previous state Practical: Simple yet powerful for Kanban\/Scrum tooling; orthogonal region for \u201cApproval Status\u201d.<\/li>\n<\/ul>\n<\/li>\n<li><strong>ATM \u2013 Session Lifecycle<\/strong> States: CardInserted, PINEntered, SelectingTransaction, Processing, DispensingCash, PrintingReceipt, CardEjected, Error Transitions:\n<ul dir=\"auto\">\n<li>Initial \u2192 CardInserted<\/li>\n<li>validPIN \u2192 SelectingTransaction<\/li>\n<li>withdrawSelected \u2192 Processing \/ checkBalance()<\/li>\n<li>sufficientFunds \u2192 DispensingCash<\/li>\n<li>cashTaken \u2192 PrintingReceipt \u2192 CardEjected (final)<\/li>\n<li>invalidPIN [3 attempts] \u2192 Error \/ retainCard() Practical: Classic example; guards and counters prevent brute-force attacks.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p dir=\"auto\">In Visual Paradigm:<\/p>\n<ul dir=\"auto\">\n<li>Draw states, drag transitions, add event\/guard\/action labels.<\/li>\n<li>Use composite states and orthogonal regions for complex objects.<\/li>\n<li>Simulate state machines (animate transitions, trigger events).<\/li>\n<li>Link states to class attributes or use case scenarios.<\/li>\n<li>Semantic backplane ensures consistency with sequence\/activity diagrams and class operations.<\/li>\n<\/ul>\n<p dir=\"auto\">State machine diagrams excel at making <strong>lifecycle rules explicit<\/strong>, <strong>invalid sequences impossible by design<\/strong>, and <strong>reactive behavior predictable<\/strong>\u2014critical for reliable, maintainable systems in Agile environments.<\/p>\n<p dir=\"auto\">This prepares you for high-level behavioral orchestration with <a href=\"https:\/\/guides.visual-paradigm.com\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/interaction-overview-diagrams\/\"><strong>Interaction Overview Diagrams<\/strong><\/a> next.<\/p>\n","protected":false},"featured_media":0,"parent":4388,"menu_order":3,"comment_status":"open","ping_status":"closed","template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_eb_attr":"","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"doc_tag":[],"class_list":["post-4395","docs","type-docs","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>State Machine Diagrams - Visual Paradigm Guides French<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"State Machine Diagrams - Visual Paradigm Guides French\" \/>\n<meta property=\"og:description\" content=\"Capturing the event-ordered behavior and lifecycle of reactive objects State machine diagrams (also called statechart diagrams) in UML 2.5 model the event-driven, reactive behavior of individual objects, subsystems, components, or even the entire system. They focus on the lifecycle: the different states an object can be in, the events that cause transitions between states, the conditions (guards) that must be true for a transition to fire, and the actions or activities performed during transitions, on entry\/exit to states, or while in a state (do activity). Key elements: State \u2014 Rounded rectangle (simple or composite). Composite states contain substates (orthogonal regions for concurrency). Transition \u2014 Arrow labeled event [guard] \/ action (e.g., paymentApproved [amount &gt; 0] \/ sendConfirmation()). Initial Pseudostate \u2014 Black filled circle (starting point). Final State \u2014 Bullseye circle (end of lifecycle). Event \u2014 Trigger (signal, call, time, change event). Guard \u2014 Boolean condition in []. Action \u2014 Behavior executed during transition. Entry \/ Exit \/ Do \u2014 Activities inside a state (entry\/ on entry, exit\/ on exit, do\/ while in state). Self-transition \u2014 Arrow looping back to same state. History pseudostate \u2014 Shallow\/deep history to remember substate on re-entry. Choice \/ Junction \u2014 Pseudo-nodes for complex branching. In Agile &amp; use-case-driven development, state machines are used to: Model the lifecycle of key domain objects (Order, Account, Ride, PatientRecord, Device) Reveal invalid or missing state transitions early (prevents bugs like shipping unpaid orders) Clarify concurrency and parallelism (orthogonal regions) Serve as basis for code generation (state patterns, switch-based implementations) Validate complex business rules and edge cases with stakeholders Support testing (state coverage, transition coverage) Practical Examples of State Machine Diagrams in Real Projects Here are numerous concrete examples showing state machines modeling real-world reactive lifecycles: E-commerce \u2013 Order Lifecycle States: PendingPayment, PaymentAuthorized, PaymentFailed, InPreparation, Shipped, Delivered, Returned, Cancelled Transitions: Initial \u2192 PendingPayment payReceived [amount matches] \/ reserveStock() \u2192 PaymentAuthorized payFailed \/ notifyCustomer() \u2192 PaymentFailed PaymentAuthorized \u2192 InPreparation \/ packOrder() InPreparation \u2192 Shipped \/ handoverToCarrier() Shipped \u2192 Delivered (after deliveryConfirmed event) Delivered \u2192 Returned (returnRequested [within 30 days]) \/ initiateRefund() Any state (except Delivered\/Returned) \u2192 Cancelled (cancelRequested) \/ releaseStock() Practical benefit: Prevents shipping before payment; used to generate acceptance tests for each transition. Mobile Banking \u2013 Account States States: Active, Frozen, Locked, Closed, Dormant Composite state Active contains substates: Normal, Overdrawn, PendingVerification Transitions: Initial \u2192 Active.Normal overdraftDetected \u2192 Active.Overdrawn suspiciousActivity [3 failed logins] \u2192 Locked \/ notifyUser() fraudConfirmed \u2192 Frozen \/ alertComplianceTeam() inactivity &gt; 365 days \u2192 Dormant reactivateRequested [with MFA] \u2192 Active.Normal closeAccount \u2192 Closed (final) Practical: Captures security and compliance rules; orthogonal region for \u201cNotification Status\u201d (Unsent, Sent, Acknowledged). Ride-Sharing \u2013 Ride Object Lifecycle States: Requested, Accepted, DriverEnRoute, ArrivedAtPickup, InProgress, Completed, CancelledByRider, CancelledByDriver Transitions: Initial \u2192 Requested driverAccepted \u2192 Accepted \/ startNavigation() driverArrived \u2192 ArrivedAtPickup riderInCar \u2192 InProgress destinationReached \u2192 Completed \/ processPayment() cancelBeforePickup [either party] \u2192 CancelledByRider or CancelledByDriver \/ notifyOtherParty() Practical: Shows time-sensitive transitions; guards like [riderConfirmedPickup] prevent premature completion. Healthcare \u2013 Patient Appointment States States: Scheduled, Confirmed, InProgress, Completed, Cancelled, NoShow, Rescheduled Transitions: Initial \u2192 Scheduled patientConfirmed \u2192 Confirmed \/ sendReminder() doctorStarted \u2192 InProgress consultationEnded \u2192 Completed \/ generateReport() patientNoShow [after 15 min past start] \u2192 NoShow \/ chargeFee() rescheduleRequested \u2192 Rescheduled cancel [before 24h] \u2192 Cancelled Practical: Enforces business rules (e.g., no-show penalties); used in workflow simulation. IoT Smart Thermostat States: Off, Idle, Heating, Cooling, EmergencyOverride Composite state Idle contains substates: EcoMode, ComfortMode Transitions: Initial \u2192 Off powerOn \u2192 Idle.ComfortMode temperature &lt; setpoint &#8211; 1\u00b0C \u2192 Heating \/ activateHeater() temperature &gt; setpoint + 1\u00b0C \u2192 Cooling \/ activateAC() emergencyButtonPressed \u2192 EmergencyOverride \/ maxHeat() powerOff \u2192 Off (from any state) Practical: Models real-time reactivity; do activity in Heating: \u201cmonitor temperature every 30s\u201d. Task Management \u2013 Task \/ Card States States: Backlog, ToDo, InProgress, Review, Done, Blocked Transitions: Initial \u2192 Backlog movedToSprint \u2192 ToDo startedWork \u2192 InProgress \/ assignDeveloper() needsReview \u2192 Review approved \u2192 Done blockerFound [in any state except Done] \u2192 Blocked \/ notifyTeam() blockerResolved \u2192 previous state Practical: Simple yet powerful for Kanban\/Scrum tooling; orthogonal region for \u201cApproval Status\u201d. ATM \u2013 Session Lifecycle States: CardInserted, PINEntered, SelectingTransaction, Processing, DispensingCash, PrintingReceipt, CardEjected, Error Transitions: Initial \u2192 CardInserted validPIN \u2192 SelectingTransaction withdrawSelected \u2192 Processing \/ checkBalance() sufficientFunds \u2192 DispensingCash cashTaken \u2192 PrintingReceipt \u2192 CardEjected (final) invalidPIN [3 attempts] \u2192 Error \/ retainCard() Practical: Classic example; guards and counters prevent brute-force attacks. In Visual Paradigm: Draw states, drag transitions, add event\/guard\/action labels. Use composite states and orthogonal regions for complex objects. Simulate state machines (animate transitions, trigger events). Link states to class attributes or use case scenarios. Semantic backplane ensures consistency with sequence\/activity diagrams and class operations. State machine diagrams excel at making lifecycle rules explicit, invalid sequences impossible by design, and reactive behavior predictable\u2014critical for reliable, maintainable systems in Agile environments. This prepares you for high-level behavioral orchestration with Interaction Overview Diagrams next.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Guides French\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-26T07:31:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png\" \/>\n\t<meta property=\"og:image:width\" content=\"290\" \/>\n\t<meta property=\"og:image:height\" content=\"280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/\",\"url\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/\",\"name\":\"State Machine Diagrams - Visual Paradigm Guides French\",\"isPartOf\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png\",\"datePublished\":\"2026-01-19T03:45:42+00:00\",\"dateModified\":\"2026-01-26T07:31:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#primaryimage\",\"url\":\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png\",\"contentUrl\":\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png\",\"width\":290,\"height\":280,\"caption\":\"Car engine UML state diagram example\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/guides.visual-paradigm.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mastering UML 2.5: A Use Case Driven Approach to Agile Modeling\",\"item\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Module 4: The Heartbeat \u2013 The 7 Behavioral UML Diagrams\",\"item\":\"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"State Machine Diagrams\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/guides.visual-paradigm.com\/fr\/#website\",\"url\":\"https:\/\/guides.visual-paradigm.com\/fr\/\",\"name\":\"Visual Paradigm Guides French\",\"description\":\"Smart guides for an AI-driven world\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/guides.visual-paradigm.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"State Machine Diagrams - Visual Paradigm Guides French","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:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/","og_locale":"fr_FR","og_type":"article","og_title":"State Machine Diagrams - Visual Paradigm Guides French","og_description":"Capturing the event-ordered behavior and lifecycle of reactive objects State machine diagrams (also called statechart diagrams) in UML 2.5 model the event-driven, reactive behavior of individual objects, subsystems, components, or even the entire system. They focus on the lifecycle: the different states an object can be in, the events that cause transitions between states, the conditions (guards) that must be true for a transition to fire, and the actions or activities performed during transitions, on entry\/exit to states, or while in a state (do activity). Key elements: State \u2014 Rounded rectangle (simple or composite). Composite states contain substates (orthogonal regions for concurrency). Transition \u2014 Arrow labeled event [guard] \/ action (e.g., paymentApproved [amount &gt; 0] \/ sendConfirmation()). Initial Pseudostate \u2014 Black filled circle (starting point). Final State \u2014 Bullseye circle (end of lifecycle). Event \u2014 Trigger (signal, call, time, change event). Guard \u2014 Boolean condition in []. Action \u2014 Behavior executed during transition. Entry \/ Exit \/ Do \u2014 Activities inside a state (entry\/ on entry, exit\/ on exit, do\/ while in state). Self-transition \u2014 Arrow looping back to same state. History pseudostate \u2014 Shallow\/deep history to remember substate on re-entry. Choice \/ Junction \u2014 Pseudo-nodes for complex branching. In Agile &amp; use-case-driven development, state machines are used to: Model the lifecycle of key domain objects (Order, Account, Ride, PatientRecord, Device) Reveal invalid or missing state transitions early (prevents bugs like shipping unpaid orders) Clarify concurrency and parallelism (orthogonal regions) Serve as basis for code generation (state patterns, switch-based implementations) Validate complex business rules and edge cases with stakeholders Support testing (state coverage, transition coverage) Practical Examples of State Machine Diagrams in Real Projects Here are numerous concrete examples showing state machines modeling real-world reactive lifecycles: E-commerce \u2013 Order Lifecycle States: PendingPayment, PaymentAuthorized, PaymentFailed, InPreparation, Shipped, Delivered, Returned, Cancelled Transitions: Initial \u2192 PendingPayment payReceived [amount matches] \/ reserveStock() \u2192 PaymentAuthorized payFailed \/ notifyCustomer() \u2192 PaymentFailed PaymentAuthorized \u2192 InPreparation \/ packOrder() InPreparation \u2192 Shipped \/ handoverToCarrier() Shipped \u2192 Delivered (after deliveryConfirmed event) Delivered \u2192 Returned (returnRequested [within 30 days]) \/ initiateRefund() Any state (except Delivered\/Returned) \u2192 Cancelled (cancelRequested) \/ releaseStock() Practical benefit: Prevents shipping before payment; used to generate acceptance tests for each transition. Mobile Banking \u2013 Account States States: Active, Frozen, Locked, Closed, Dormant Composite state Active contains substates: Normal, Overdrawn, PendingVerification Transitions: Initial \u2192 Active.Normal overdraftDetected \u2192 Active.Overdrawn suspiciousActivity [3 failed logins] \u2192 Locked \/ notifyUser() fraudConfirmed \u2192 Frozen \/ alertComplianceTeam() inactivity &gt; 365 days \u2192 Dormant reactivateRequested [with MFA] \u2192 Active.Normal closeAccount \u2192 Closed (final) Practical: Captures security and compliance rules; orthogonal region for \u201cNotification Status\u201d (Unsent, Sent, Acknowledged). Ride-Sharing \u2013 Ride Object Lifecycle States: Requested, Accepted, DriverEnRoute, ArrivedAtPickup, InProgress, Completed, CancelledByRider, CancelledByDriver Transitions: Initial \u2192 Requested driverAccepted \u2192 Accepted \/ startNavigation() driverArrived \u2192 ArrivedAtPickup riderInCar \u2192 InProgress destinationReached \u2192 Completed \/ processPayment() cancelBeforePickup [either party] \u2192 CancelledByRider or CancelledByDriver \/ notifyOtherParty() Practical: Shows time-sensitive transitions; guards like [riderConfirmedPickup] prevent premature completion. Healthcare \u2013 Patient Appointment States States: Scheduled, Confirmed, InProgress, Completed, Cancelled, NoShow, Rescheduled Transitions: Initial \u2192 Scheduled patientConfirmed \u2192 Confirmed \/ sendReminder() doctorStarted \u2192 InProgress consultationEnded \u2192 Completed \/ generateReport() patientNoShow [after 15 min past start] \u2192 NoShow \/ chargeFee() rescheduleRequested \u2192 Rescheduled cancel [before 24h] \u2192 Cancelled Practical: Enforces business rules (e.g., no-show penalties); used in workflow simulation. IoT Smart Thermostat States: Off, Idle, Heating, Cooling, EmergencyOverride Composite state Idle contains substates: EcoMode, ComfortMode Transitions: Initial \u2192 Off powerOn \u2192 Idle.ComfortMode temperature &lt; setpoint &#8211; 1\u00b0C \u2192 Heating \/ activateHeater() temperature &gt; setpoint + 1\u00b0C \u2192 Cooling \/ activateAC() emergencyButtonPressed \u2192 EmergencyOverride \/ maxHeat() powerOff \u2192 Off (from any state) Practical: Models real-time reactivity; do activity in Heating: \u201cmonitor temperature every 30s\u201d. Task Management \u2013 Task \/ Card States States: Backlog, ToDo, InProgress, Review, Done, Blocked Transitions: Initial \u2192 Backlog movedToSprint \u2192 ToDo startedWork \u2192 InProgress \/ assignDeveloper() needsReview \u2192 Review approved \u2192 Done blockerFound [in any state except Done] \u2192 Blocked \/ notifyTeam() blockerResolved \u2192 previous state Practical: Simple yet powerful for Kanban\/Scrum tooling; orthogonal region for \u201cApproval Status\u201d. ATM \u2013 Session Lifecycle States: CardInserted, PINEntered, SelectingTransaction, Processing, DispensingCash, PrintingReceipt, CardEjected, Error Transitions: Initial \u2192 CardInserted validPIN \u2192 SelectingTransaction withdrawSelected \u2192 Processing \/ checkBalance() sufficientFunds \u2192 DispensingCash cashTaken \u2192 PrintingReceipt \u2192 CardEjected (final) invalidPIN [3 attempts] \u2192 Error \/ retainCard() Practical: Classic example; guards and counters prevent brute-force attacks. In Visual Paradigm: Draw states, drag transitions, add event\/guard\/action labels. Use composite states and orthogonal regions for complex objects. Simulate state machines (animate transitions, trigger events). Link states to class attributes or use case scenarios. Semantic backplane ensures consistency with sequence\/activity diagrams and class operations. State machine diagrams excel at making lifecycle rules explicit, invalid sequences impossible by design, and reactive behavior predictable\u2014critical for reliable, maintainable systems in Agile environments. This prepares you for high-level behavioral orchestration with Interaction Overview Diagrams next.","og_url":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/","og_site_name":"Visual Paradigm Guides French","article_modified_time":"2026-01-26T07:31:38+00:00","og_image":[{"width":290,"height":280,"url":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/","url":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/","name":"State Machine Diagrams - Visual Paradigm Guides French","isPartOf":{"@id":"https:\/\/guides.visual-paradigm.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#primaryimage"},"image":{"@id":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#primaryimage"},"thumbnailUrl":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png","datePublished":"2026-01-19T03:45:42+00:00","dateModified":"2026-01-26T07:31:38+00:00","breadcrumb":{"@id":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#primaryimage","url":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png","contentUrl":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/car-engine-uml-state-diagram-example.png","width":290,"height":280,"caption":"Car engine UML state diagram example"},{"@type":"BreadcrumbList","@id":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/state-machine-diagrams\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/guides.visual-paradigm.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Mastering UML 2.5: A Use Case Driven Approach to Agile Modeling","item":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/"},{"@type":"ListItem","position":3,"name":"Module 4: The Heartbeat \u2013 The 7 Behavioral UML Diagrams","item":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/"},{"@type":"ListItem","position":4,"name":"State Machine Diagrams"}]},{"@type":"WebSite","@id":"https:\/\/guides.visual-paradigm.com\/fr\/#website","url":"https:\/\/guides.visual-paradigm.com\/fr\/","name":"Visual Paradigm Guides French","description":"Smart guides for an AI-driven world","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/guides.visual-paradigm.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"comment_count":0,"_links":{"self":[{"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/comments?post=4395"}],"version-history":[{"count":5,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4395\/revisions"}],"predecessor-version":[{"id":5268,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4395\/revisions\/5268"}],"up":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4388"}],"next":[{"title":"Interaction Overview Diagrams","link":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/interaction-overview-diagrams\/","href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4396"}],"prev":[{"title":"Communication Diagrams","link":"https:\/\/guides.visual-paradigm.com\/fr\/docs\/mastering-uml-2-5-a-use-case-driven-approach-to-agile-modeling\/module-4-the-heartbeat-the-7-behavioral-uml-diagrams\/communication-diagrams\/","href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4393"}],"wp:attachment":[{"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/media?parent=4395"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/doc_tag?post=4395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}