{"id":4393,"date":"2026-01-19T11:45:33","date_gmt":"2026-01-19T03:45:33","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\/communication-diagrams\/"},"modified":"2026-01-26T15:31:14","modified_gmt":"2026-01-26T07:31:14","slug":"communication-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\/communication-diagrams\/","title":{"rendered":"Communication Diagrams"},"content":{"rendered":"<h2 dir=\"auto\"><strong>Emphasizing the structural organization of objects that send and receive messages<\/strong><\/h2>\n<figure id=\"attachment_5141\" aria-describedby=\"caption-attachment-5141\" style=\"width: 771px\" class=\"wp-caption alignnone\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-5141\" src=\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png\" alt=\"Shipping cart checkout communication diagram example\" width=\"771\" height=\"447\" srcset=\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png 771w, https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example-300x174.png 300w, https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example-768x445.png 768w, https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example-150x87.png 150w\" sizes=\"(max-width: 771px) 100vw, 771px\" \/><figcaption id=\"caption-attachment-5141\" class=\"wp-caption-text\">Shipping cart checkout communication diagram example<\/figcaption><\/figure>\n<p dir=\"auto\"><strong>Communication diagrams<\/strong> (formerly called <strong>collaboration diagrams<\/strong> in UML 1.x) provide a different lens on interactions compared to sequence diagrams. While sequence diagrams prioritize <strong>time ordering<\/strong> (vertical progression), communication diagrams emphasize the <strong>structural organization<\/strong>\u2014the <strong>links<\/strong> and <strong>relationships<\/strong> between participating objects\u2014and show message flow via <strong>numbered sequence labels<\/strong>.<\/p>\n<p dir=\"auto\">Key characteristics and elements:<\/p>\n<ul dir=\"auto\">\n<li>Participants (objects or roles) are shown as rectangles (often :ClassName or instanceName:ClassName).<\/li>\n<li><strong>Links<\/strong> (solid lines) represent structural associations or navigable paths (reflecting associations from class diagrams).<\/li>\n<li><strong>Messages<\/strong> are numbered arrows along the links (1, 1.1, 1.2, 2, etc.), with the numbering indicating sequence and nesting (e.g., 1.2 is a nested call within 1).<\/li>\n<li>No explicit lifelines or time axis\u2014time is implied only by message numbers.<\/li>\n<li>Can use <strong>guards<\/strong> [condition], <strong>iteration<\/strong> *, <strong>asynchronous<\/strong> ^, and <strong>return<\/strong> values.<\/li>\n<li>Often more compact than sequence diagrams when the focus is on <strong>who talks to whom<\/strong> rather than strict chronology.<\/li>\n<\/ul>\n<p dir=\"auto\">In Agile &amp; use-case-driven projects, communication diagrams are particularly useful when:<\/p>\n<ul dir=\"auto\">\n<li>The <strong>topology<\/strong> or <strong>object relationships<\/strong> are more important than precise timing (e.g., understanding coupling, dependencies, or message paths).<\/li>\n<li>You want a compact view of an interaction that fits on one page.<\/li>\n<li>You are exploring alternative designs or refactoring opportunities (e.g., reducing coupling by changing links).<\/li>\n<li>You need to show complex nested calls or branching without long vertical sprawl.<\/li>\n<li>You are reverse-engineering legacy code or documenting existing object interactions.<\/li>\n<\/ul>\n<p dir=\"auto\">They complement sequence diagrams: use communication when structure matters most, sequence when timing or duration is critical.<\/p>\n<h3 dir=\"auto\">Practical Examples of Communication Diagrams in Real Projects<\/h3>\n<p dir=\"auto\">Here are numerous concrete examples showing how communication diagrams highlight structural organization:<\/p>\n<ul dir=\"auto\">\n<li><strong>E-commerce \u2013 Place Order with Payment Authorization<\/strong>\n<ul dir=\"auto\">\n<li>Objects:\n<ul dir=\"auto\">\n<li>:Customer, :ShoppingCart, :OrderService, :PaymentGateway, :BankAdapter<\/li>\n<\/ul>\n<\/li>\n<li>Links:\n<ul dir=\"auto\">\n<li>Customer \u2014 ShoppingCart (association)<\/li>\n<li>ShoppingCart \u2014 OrderService<\/li>\n<li>OrderService \u2014 PaymentGateway<\/li>\n<\/ul>\n<\/li>\n<li>Messages\n<ul dir=\"auto\">\n<li>PaymentGateway \u2014 BankAdapter Messages:\n<ul dir=\"auto\">\n<li>1: proceedToCheckout() \u2192 ShoppingCart \u2192 OrderService<\/li>\n<li>1.1: createOrder(items) \u2192 OrderService \u2192 PaymentGateway<\/li>\n<li>1.1.1: authorize(amount, card) \u2192 PaymentGateway \u2192 BankAdapter<\/li>\n<li>1.1.1.1: approved \u2192 BankAdapter \u2192 PaymentGateway<\/li>\n<li>1.1.2: confirmOrder() \u2192 OrderService \u2192 ShoppingCart<\/li>\n<li>alt [1.1.1 declined]<\/li>\n<li>1.1.1.2: declined \u2192 BankAdapter \u2192 PaymentGateway<\/li>\n<li>1.2: showError(&#8220;Payment failed&#8221;) \u2192 OrderService \u2192 Customer end<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Practical benefit: Quickly reveals the structural chain from UI to external bank\u2014useful for spotting tight coupling to PaymentGateway.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Mobile Banking \u2013 Authenticate &amp; Transfer Funds<\/strong>\n<ul dir=\"auto\">\n<li>Objects:\n<ul dir=\"auto\">\n<li>:User, :MobileApp, :AuthService, :TokenStore, :CoreBanking, :NotificationService<\/li>\n<\/ul>\n<\/li>\n<li>Links:\n<ul dir=\"auto\">\n<li>MobileApp connected to AuthService, TokenStore, CoreBanking, NotificationService<\/li>\n<\/ul>\n<\/li>\n<li>Messages:\n<ul dir=\"auto\">\n<li>1: initiateTransfer() \u2192 User \u2192 MobileApp<\/li>\n<li>2: requestOTP() \u2192 MobileApp \u2192 AuthService<\/li>\n<li>2.1: generateOTP() \u2192 AuthService \u2192 TokenStore<\/li>\n<li>3: sendOTP() \u2192 AuthService \u2192 NotificationService<\/li>\n<li>4: enterOTP(code) \u2192 User \u2192 MobileApp<\/li>\n<li>5: validate(code) \u2192 MobileApp \u2192 AuthService<\/li>\n<li>5.1: valid \u2192 AuthService \u2192 MobileApp<\/li>\n<li>6: executeTransfer() \u2192 MobileApp \u2192 CoreBanking<\/li>\n<\/ul>\n<\/li>\n<li>Practical: Shows MobileApp as central hub (high fan-in\/fan-out)- flags potential god-object risk for refactoring.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Ride-Sharing \u2013 Ride Request &amp; Acceptance<\/strong>\n<ul dir=\"auto\">\n<li>Objects:\n<ul dir=\"auto\">\n<li>:RiderApp, :MatchingService, :DriverApp, :Ride, :GPSService<\/li>\n<\/ul>\n<\/li>\n<li>Links:\n<ul dir=\"auto\">\n<li>RiderApp \u2014 MatchingService \u2014 DriverApp<\/li>\n<li>MatchingService \u2014 Ride DriverApp \u2014 GPSService<\/li>\n<\/ul>\n<\/li>\n<li>Messages:\n<ul dir=\"auto\">\n<li>1: requestRide(pickup, dest) \u2192 RiderApp \u2192 MatchingService<\/li>\n<li>2: findNearbyDrivers() \u2192 MatchingService \u2192 MatchingService (self)<\/li>\n<li>3: notifyRequest(ride) \u2192 MatchingService \u2192 DriverApp<\/li>\n<li>4: accept() \u2192 DriverApp \u2192 MatchingService<\/li>\n<li>4.1: assignDriver() \u2192 MatchingService \u2192 Ride<\/li>\n<li>5: startTracking() \u2192 MatchingService \u2192 GPSService<\/li>\n<\/ul>\n<\/li>\n<li>Practical: Emphasizes MatchingService as mediator\u2014makes it obvious why it\u2019s a good candidate for scaling independently.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Healthcare \u2013 Schedule Appointment with Availability Check<\/strong>\n<ul dir=\"auto\">\n<li>Objects:\n<ul dir=\"auto\">\n<li>:PatientPortal, :AppointmentService, :Calendar, :EHRAdapter, :Doctor<\/li>\n<\/ul>\n<\/li>\n<li>Links:\n<ul dir=\"auto\">\n<li>PatientPortal \u2014 AppointmentService \u2014 Calendar AppointmentService \u2014 EHRAdapter \u2014 Doctor Messages:<\/li>\n<li>1: findSlots(doctor, date) \u2192 PatientPortal \u2192 AppointmentService<\/li>\n<li>1.1: queryAvailability() \u2192 AppointmentService \u2192 Calendar<\/li>\n<li>1.1.1: slots \u2192 Calendar \u2192 AppointmentService<\/li>\n<li>1.2: verifyInsurance() \u2192 AppointmentService \u2192 EHRAdapter<\/li>\n<li>1.2.1: checkCoverage() \u2192 EHRAdapter \u2192 Doctor<\/li>\n<li>1.2.1.1: covered \u2192 Doctor \u2192 EHRAdapter<\/li>\n<li>2: reserveSlot(slot) \u2192 PatientPortal \u2192 AppointmentService<\/li>\n<\/ul>\n<\/li>\n<li>Practical: Highlights structural dependency on external EHR\u2014useful for integration planning and mock strategy.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Library \u2013 Self-Checkout Book Loan<\/strong>\n<ul dir=\"auto\">\n<li>Objects:\n<ul dir=\"auto\">\n<li>:Patron, :Kiosk, :LibrarySystem, :BookInventory, :LoanRecord<\/li>\n<\/ul>\n<\/li>\n<li>Links:\n<ul dir=\"auto\">\n<li>Patron \u2014 Kiosk \u2014 LibrarySystem LibrarySystem \u2014 BookInventory LibrarySystem \u2014 LoanRecord<\/li>\n<\/ul>\n<\/li>\n<li>Messages:\n<ul dir=\"auto\">\n<li>1: scanCard() \u2192 Patron \u2192 Kiosk<\/li>\n<li>2: authenticate() \u2192 Kiosk \u2192 LibrarySystem<\/li>\n<li>3: scanBook(isbn) \u2192 Patron \u2192 Kiosk<\/li>\n<li>4: requestLoan(isbn) \u2192 Kiosk \u2192 LibrarySystem<\/li>\n<li>4.1: checkAvailability() \u2192 LibrarySystem \u2192 BookInventory<\/li>\n<li>4.2: createLoan() \u2192 LibrarySystem \u2192 LoanRecord<\/li>\n<\/ul>\n<\/li>\n<li>Practical: Compact view shows Kiosk delegating most work\u2014easy to see where business logic lives.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Task Management \u2013 Move Card Between Lists<\/strong>\n<ul dir=\"auto\">\n<li>Objects:\n<ul dir=\"auto\">\n<li>:User, :WebFrontend, :TaskService, :Board, :ListA, :ListB, :NotificationService<\/li>\n<\/ul>\n<\/li>\n<li>Links: WebFrontend \u2014 TaskService \u2014 Board<\/li>\n<li>Board \u2014 ListA, ListB TaskService \u2014 NotificationService<\/li>\n<li>Messages:\n<ul dir=\"auto\">\n<li>1: dragCard(cardId, newListId) \u2192 User \u2192 WebFrontend<\/li>\n<li>2: updateCardPosition(cardId, newListId) \u2192 WebFrontend \u2192 TaskService<\/li>\n<li>2.1: moveCard() \u2192 TaskService \u2192 Board<\/li>\n<li>2.1.1: removeFromList() \u2192 Board \u2192 ListA<\/li>\n<li>2.1.2: addToList() \u2192 Board \u2192 ListB<\/li>\n<li>3: notifySubscribers() \u2192 TaskService \u2192 NotificationService<\/li>\n<\/ul>\n<\/li>\n<li>Practical: Shows structural hierarchy (Board owns Lists) and notification side-effect\u2014helps when optimizing event propagation.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p dir=\"auto\">In Visual Paradigm:<\/p>\n<ul dir=\"auto\">\n<li>Lifelines and links can be auto-generated from class associations.<\/li>\n<li>Numbering is automatic; drag messages along links.<\/li>\n<li>Use as alternative\/complement to sequence diagrams for the same scenario.<\/li>\n<li>Semantic backplane keeps communication messages consistent with sequence, class operations, and use case flows.<\/li>\n<li>Good for printing compact interaction overviews.<\/li>\n<\/ul>\n<p dir=\"auto\">Communication diagrams shine when the <strong>&#8220;who knows whom&#8221;<\/strong> question is more important than &#8220;when exactly does each step happen&#8221;\u2014making them excellent for architectural reviews, dependency analysis, and understanding object collaboration structure in Agile teams.<\/p>\n<p dir=\"auto\">This prepares you for high-level 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\/state-machine-diagrams\/\"><b class=\"ng-star-inserted\" data-start-index=\"2740\">State Machine Diagrams<\/b><\/a>\u00a0next.<\/p>\n","protected":false},"featured_media":0,"parent":4388,"menu_order":2,"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-4393","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>Communication 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\/communication-diagrams\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Communication Diagrams - Visual Paradigm Guides French\" \/>\n<meta property=\"og:description\" content=\"Emphasizing the structural organization of objects that send and receive messages Communication diagrams (formerly called collaboration diagrams in UML 1.x) provide a different lens on interactions compared to sequence diagrams. While sequence diagrams prioritize time ordering (vertical progression), communication diagrams emphasize the structural organization\u2014the links and relationships between participating objects\u2014and show message flow via numbered sequence labels. Key characteristics and elements: Participants (objects or roles) are shown as rectangles (often :ClassName or instanceName:ClassName). Links (solid lines) represent structural associations or navigable paths (reflecting associations from class diagrams). Messages are numbered arrows along the links (1, 1.1, 1.2, 2, etc.), with the numbering indicating sequence and nesting (e.g., 1.2 is a nested call within 1). No explicit lifelines or time axis\u2014time is implied only by message numbers. Can use guards [condition], iteration *, asynchronous ^, and return values. Often more compact than sequence diagrams when the focus is on who talks to whom rather than strict chronology. In Agile &amp; use-case-driven projects, communication diagrams are particularly useful when: The topology or object relationships are more important than precise timing (e.g., understanding coupling, dependencies, or message paths). You want a compact view of an interaction that fits on one page. You are exploring alternative designs or refactoring opportunities (e.g., reducing coupling by changing links). You need to show complex nested calls or branching without long vertical sprawl. You are reverse-engineering legacy code or documenting existing object interactions. They complement sequence diagrams: use communication when structure matters most, sequence when timing or duration is critical. Practical Examples of Communication Diagrams in Real Projects Here are numerous concrete examples showing how communication diagrams highlight structural organization: E-commerce \u2013 Place Order with Payment Authorization Objects: :Customer, :ShoppingCart, :OrderService, :PaymentGateway, :BankAdapter Links: Customer \u2014 ShoppingCart (association) ShoppingCart \u2014 OrderService OrderService \u2014 PaymentGateway Messages PaymentGateway \u2014 BankAdapter Messages: 1: proceedToCheckout() \u2192 ShoppingCart \u2192 OrderService 1.1: createOrder(items) \u2192 OrderService \u2192 PaymentGateway 1.1.1: authorize(amount, card) \u2192 PaymentGateway \u2192 BankAdapter 1.1.1.1: approved \u2192 BankAdapter \u2192 PaymentGateway 1.1.2: confirmOrder() \u2192 OrderService \u2192 ShoppingCart alt [1.1.1 declined] 1.1.1.2: declined \u2192 BankAdapter \u2192 PaymentGateway 1.2: showError(&#8220;Payment failed&#8221;) \u2192 OrderService \u2192 Customer end Practical benefit: Quickly reveals the structural chain from UI to external bank\u2014useful for spotting tight coupling to PaymentGateway. Mobile Banking \u2013 Authenticate &amp; Transfer Funds Objects: :User, :MobileApp, :AuthService, :TokenStore, :CoreBanking, :NotificationService Links: MobileApp connected to AuthService, TokenStore, CoreBanking, NotificationService Messages: 1: initiateTransfer() \u2192 User \u2192 MobileApp 2: requestOTP() \u2192 MobileApp \u2192 AuthService 2.1: generateOTP() \u2192 AuthService \u2192 TokenStore 3: sendOTP() \u2192 AuthService \u2192 NotificationService 4: enterOTP(code) \u2192 User \u2192 MobileApp 5: validate(code) \u2192 MobileApp \u2192 AuthService 5.1: valid \u2192 AuthService \u2192 MobileApp 6: executeTransfer() \u2192 MobileApp \u2192 CoreBanking Practical: Shows MobileApp as central hub (high fan-in\/fan-out)- flags potential god-object risk for refactoring. Ride-Sharing \u2013 Ride Request &amp; Acceptance Objects: :RiderApp, :MatchingService, :DriverApp, :Ride, :GPSService Links: RiderApp \u2014 MatchingService \u2014 DriverApp MatchingService \u2014 Ride DriverApp \u2014 GPSService Messages: 1: requestRide(pickup, dest) \u2192 RiderApp \u2192 MatchingService 2: findNearbyDrivers() \u2192 MatchingService \u2192 MatchingService (self) 3: notifyRequest(ride) \u2192 MatchingService \u2192 DriverApp 4: accept() \u2192 DriverApp \u2192 MatchingService 4.1: assignDriver() \u2192 MatchingService \u2192 Ride 5: startTracking() \u2192 MatchingService \u2192 GPSService Practical: Emphasizes MatchingService as mediator\u2014makes it obvious why it\u2019s a good candidate for scaling independently. Healthcare \u2013 Schedule Appointment with Availability Check Objects: :PatientPortal, :AppointmentService, :Calendar, :EHRAdapter, :Doctor Links: PatientPortal \u2014 AppointmentService \u2014 Calendar AppointmentService \u2014 EHRAdapter \u2014 Doctor Messages: 1: findSlots(doctor, date) \u2192 PatientPortal \u2192 AppointmentService 1.1: queryAvailability() \u2192 AppointmentService \u2192 Calendar 1.1.1: slots \u2192 Calendar \u2192 AppointmentService 1.2: verifyInsurance() \u2192 AppointmentService \u2192 EHRAdapter 1.2.1: checkCoverage() \u2192 EHRAdapter \u2192 Doctor 1.2.1.1: covered \u2192 Doctor \u2192 EHRAdapter 2: reserveSlot(slot) \u2192 PatientPortal \u2192 AppointmentService Practical: Highlights structural dependency on external EHR\u2014useful for integration planning and mock strategy. Library \u2013 Self-Checkout Book Loan Objects: :Patron, :Kiosk, :LibrarySystem, :BookInventory, :LoanRecord Links: Patron \u2014 Kiosk \u2014 LibrarySystem LibrarySystem \u2014 BookInventory LibrarySystem \u2014 LoanRecord Messages: 1: scanCard() \u2192 Patron \u2192 Kiosk 2: authenticate() \u2192 Kiosk \u2192 LibrarySystem 3: scanBook(isbn) \u2192 Patron \u2192 Kiosk 4: requestLoan(isbn) \u2192 Kiosk \u2192 LibrarySystem 4.1: checkAvailability() \u2192 LibrarySystem \u2192 BookInventory 4.2: createLoan() \u2192 LibrarySystem \u2192 LoanRecord Practical: Compact view shows Kiosk delegating most work\u2014easy to see where business logic lives. Task Management \u2013 Move Card Between Lists Objects: :User, :WebFrontend, :TaskService, :Board, :ListA, :ListB, :NotificationService Links: WebFrontend \u2014 TaskService \u2014 Board Board \u2014 ListA, ListB TaskService \u2014 NotificationService Messages: 1: dragCard(cardId, newListId) \u2192 User \u2192 WebFrontend 2: updateCardPosition(cardId, newListId) \u2192 WebFrontend \u2192 TaskService 2.1: moveCard() \u2192 TaskService \u2192 Board 2.1.1: removeFromList() \u2192 Board \u2192 ListA 2.1.2: addToList() \u2192 Board \u2192 ListB 3: notifySubscribers() \u2192 TaskService \u2192 NotificationService Practical: Shows structural hierarchy (Board owns Lists) and notification side-effect\u2014helps when optimizing event propagation. In Visual Paradigm: Lifelines and links can be auto-generated from class associations. Numbering is automatic; drag messages along links. Use as alternative\/complement to sequence diagrams for the same scenario. Semantic backplane keeps communication messages consistent with sequence, class operations, and use case flows. Good for printing compact interaction overviews. Communication diagrams shine when the &#8220;who knows whom&#8221; question is more important than &#8220;when exactly does each step happen&#8221;\u2014making them excellent for architectural reviews, dependency analysis, and understanding object collaboration structure in Agile teams. This prepares you for high-level orchestration with State Machine Diagrams\u00a0next.\" \/>\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\/communication-diagrams\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Guides French\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-26T07:31:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png\" \/>\n\t<meta property=\"og:image:width\" content=\"771\" \/>\n\t<meta property=\"og:image:height\" content=\"447\" \/>\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\/communication-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\/communication-diagrams\/\",\"name\":\"Communication 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\/communication-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\/communication-diagrams\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png\",\"datePublished\":\"2026-01-19T03:45:33+00:00\",\"dateModified\":\"2026-01-26T07:31:14+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\/communication-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\/communication-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\/communication-diagrams\/#primaryimage\",\"url\":\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png\",\"contentUrl\":\"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png\",\"width\":771,\"height\":447,\"caption\":\"Shipping cart checkout communication 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\/communication-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\":\"Communication 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":"Communication 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\/communication-diagrams\/","og_locale":"fr_FR","og_type":"article","og_title":"Communication Diagrams - Visual Paradigm Guides French","og_description":"Emphasizing the structural organization of objects that send and receive messages Communication diagrams (formerly called collaboration diagrams in UML 1.x) provide a different lens on interactions compared to sequence diagrams. While sequence diagrams prioritize time ordering (vertical progression), communication diagrams emphasize the structural organization\u2014the links and relationships between participating objects\u2014and show message flow via numbered sequence labels. Key characteristics and elements: Participants (objects or roles) are shown as rectangles (often :ClassName or instanceName:ClassName). Links (solid lines) represent structural associations or navigable paths (reflecting associations from class diagrams). Messages are numbered arrows along the links (1, 1.1, 1.2, 2, etc.), with the numbering indicating sequence and nesting (e.g., 1.2 is a nested call within 1). No explicit lifelines or time axis\u2014time is implied only by message numbers. Can use guards [condition], iteration *, asynchronous ^, and return values. Often more compact than sequence diagrams when the focus is on who talks to whom rather than strict chronology. In Agile &amp; use-case-driven projects, communication diagrams are particularly useful when: The topology or object relationships are more important than precise timing (e.g., understanding coupling, dependencies, or message paths). You want a compact view of an interaction that fits on one page. You are exploring alternative designs or refactoring opportunities (e.g., reducing coupling by changing links). You need to show complex nested calls or branching without long vertical sprawl. You are reverse-engineering legacy code or documenting existing object interactions. They complement sequence diagrams: use communication when structure matters most, sequence when timing or duration is critical. Practical Examples of Communication Diagrams in Real Projects Here are numerous concrete examples showing how communication diagrams highlight structural organization: E-commerce \u2013 Place Order with Payment Authorization Objects: :Customer, :ShoppingCart, :OrderService, :PaymentGateway, :BankAdapter Links: Customer \u2014 ShoppingCart (association) ShoppingCart \u2014 OrderService OrderService \u2014 PaymentGateway Messages PaymentGateway \u2014 BankAdapter Messages: 1: proceedToCheckout() \u2192 ShoppingCart \u2192 OrderService 1.1: createOrder(items) \u2192 OrderService \u2192 PaymentGateway 1.1.1: authorize(amount, card) \u2192 PaymentGateway \u2192 BankAdapter 1.1.1.1: approved \u2192 BankAdapter \u2192 PaymentGateway 1.1.2: confirmOrder() \u2192 OrderService \u2192 ShoppingCart alt [1.1.1 declined] 1.1.1.2: declined \u2192 BankAdapter \u2192 PaymentGateway 1.2: showError(&#8220;Payment failed&#8221;) \u2192 OrderService \u2192 Customer end Practical benefit: Quickly reveals the structural chain from UI to external bank\u2014useful for spotting tight coupling to PaymentGateway. Mobile Banking \u2013 Authenticate &amp; Transfer Funds Objects: :User, :MobileApp, :AuthService, :TokenStore, :CoreBanking, :NotificationService Links: MobileApp connected to AuthService, TokenStore, CoreBanking, NotificationService Messages: 1: initiateTransfer() \u2192 User \u2192 MobileApp 2: requestOTP() \u2192 MobileApp \u2192 AuthService 2.1: generateOTP() \u2192 AuthService \u2192 TokenStore 3: sendOTP() \u2192 AuthService \u2192 NotificationService 4: enterOTP(code) \u2192 User \u2192 MobileApp 5: validate(code) \u2192 MobileApp \u2192 AuthService 5.1: valid \u2192 AuthService \u2192 MobileApp 6: executeTransfer() \u2192 MobileApp \u2192 CoreBanking Practical: Shows MobileApp as central hub (high fan-in\/fan-out)- flags potential god-object risk for refactoring. Ride-Sharing \u2013 Ride Request &amp; Acceptance Objects: :RiderApp, :MatchingService, :DriverApp, :Ride, :GPSService Links: RiderApp \u2014 MatchingService \u2014 DriverApp MatchingService \u2014 Ride DriverApp \u2014 GPSService Messages: 1: requestRide(pickup, dest) \u2192 RiderApp \u2192 MatchingService 2: findNearbyDrivers() \u2192 MatchingService \u2192 MatchingService (self) 3: notifyRequest(ride) \u2192 MatchingService \u2192 DriverApp 4: accept() \u2192 DriverApp \u2192 MatchingService 4.1: assignDriver() \u2192 MatchingService \u2192 Ride 5: startTracking() \u2192 MatchingService \u2192 GPSService Practical: Emphasizes MatchingService as mediator\u2014makes it obvious why it\u2019s a good candidate for scaling independently. Healthcare \u2013 Schedule Appointment with Availability Check Objects: :PatientPortal, :AppointmentService, :Calendar, :EHRAdapter, :Doctor Links: PatientPortal \u2014 AppointmentService \u2014 Calendar AppointmentService \u2014 EHRAdapter \u2014 Doctor Messages: 1: findSlots(doctor, date) \u2192 PatientPortal \u2192 AppointmentService 1.1: queryAvailability() \u2192 AppointmentService \u2192 Calendar 1.1.1: slots \u2192 Calendar \u2192 AppointmentService 1.2: verifyInsurance() \u2192 AppointmentService \u2192 EHRAdapter 1.2.1: checkCoverage() \u2192 EHRAdapter \u2192 Doctor 1.2.1.1: covered \u2192 Doctor \u2192 EHRAdapter 2: reserveSlot(slot) \u2192 PatientPortal \u2192 AppointmentService Practical: Highlights structural dependency on external EHR\u2014useful for integration planning and mock strategy. Library \u2013 Self-Checkout Book Loan Objects: :Patron, :Kiosk, :LibrarySystem, :BookInventory, :LoanRecord Links: Patron \u2014 Kiosk \u2014 LibrarySystem LibrarySystem \u2014 BookInventory LibrarySystem \u2014 LoanRecord Messages: 1: scanCard() \u2192 Patron \u2192 Kiosk 2: authenticate() \u2192 Kiosk \u2192 LibrarySystem 3: scanBook(isbn) \u2192 Patron \u2192 Kiosk 4: requestLoan(isbn) \u2192 Kiosk \u2192 LibrarySystem 4.1: checkAvailability() \u2192 LibrarySystem \u2192 BookInventory 4.2: createLoan() \u2192 LibrarySystem \u2192 LoanRecord Practical: Compact view shows Kiosk delegating most work\u2014easy to see where business logic lives. Task Management \u2013 Move Card Between Lists Objects: :User, :WebFrontend, :TaskService, :Board, :ListA, :ListB, :NotificationService Links: WebFrontend \u2014 TaskService \u2014 Board Board \u2014 ListA, ListB TaskService \u2014 NotificationService Messages: 1: dragCard(cardId, newListId) \u2192 User \u2192 WebFrontend 2: updateCardPosition(cardId, newListId) \u2192 WebFrontend \u2192 TaskService 2.1: moveCard() \u2192 TaskService \u2192 Board 2.1.1: removeFromList() \u2192 Board \u2192 ListA 2.1.2: addToList() \u2192 Board \u2192 ListB 3: notifySubscribers() \u2192 TaskService \u2192 NotificationService Practical: Shows structural hierarchy (Board owns Lists) and notification side-effect\u2014helps when optimizing event propagation. In Visual Paradigm: Lifelines and links can be auto-generated from class associations. Numbering is automatic; drag messages along links. Use as alternative\/complement to sequence diagrams for the same scenario. Semantic backplane keeps communication messages consistent with sequence, class operations, and use case flows. Good for printing compact interaction overviews. Communication diagrams shine when the &#8220;who knows whom&#8221; question is more important than &#8220;when exactly does each step happen&#8221;\u2014making them excellent for architectural reviews, dependency analysis, and understanding object collaboration structure in Agile teams. This prepares you for high-level orchestration with State Machine Diagrams\u00a0next.","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\/communication-diagrams\/","og_site_name":"Visual Paradigm Guides French","article_modified_time":"2026-01-26T07:31:14+00:00","og_image":[{"width":771,"height":447,"url":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-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\/communication-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\/communication-diagrams\/","name":"Communication 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\/communication-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\/communication-diagrams\/#primaryimage"},"thumbnailUrl":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png","datePublished":"2026-01-19T03:45:33+00:00","dateModified":"2026-01-26T07:31:14+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\/communication-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\/communication-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\/communication-diagrams\/#primaryimage","url":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png","contentUrl":"https:\/\/guides.visual-paradigm.com\/fr\/wp-content\/uploads\/sites\/6\/2026\/01\/shopping-cart-checkout-uml-communication-diagram-example.png","width":771,"height":447,"caption":"Shipping cart checkout communication 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\/communication-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":"Communication 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\/4393","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=4393"}],"version-history":[{"count":5,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4393\/revisions"}],"predecessor-version":[{"id":5267,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4393\/revisions\/5267"}],"up":[{"embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4388"}],"next":[{"title":"State Machine 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\/state-machine-diagrams\/","href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4395"}],"prev":[{"title":"Sequence 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\/sequence-diagrams\/","href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/docs\/4390"}],"wp:attachment":[{"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/media?parent=4393"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/guides.visual-paradigm.com\/fr\/wp-json\/wp\/v2\/doc_tag?post=4393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}