{"id":509,"date":"2026-07-27T00:31:57","date_gmt":"2026-07-27T00:31:57","guid":{"rendered":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/"},"modified":"2026-07-27T00:31:57","modified_gmt":"2026-07-27T00:31:57","slug":"uml-modeling-for-modern-agile-teams-a-plantuml-guide","status":"publish","type":"post","link":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/","title":{"rendered":"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML"},"content":{"rendered":"<p>C\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i ph\u00e1t tri\u1ec3n m\u1ea1nh nh\u1edd t\u1ed1c \u0111\u1ed9, s\u1ef1 c\u1ed9ng t\u00e1c v\u00e0 giao ti\u1ebfp r\u00f5 r\u00e0ng. M\u00f4 h\u00ecnh h\u00f3a UML truy\u1ec1n th\u1ed1ng th\u01b0\u1eddng c\u1ea3n tr\u1edf ti\u1ebfn \u0111\u1ed9 do \u0111\u01b0\u1eddng cong h\u1ecdc t\u1eadp d\u1ed1c v\u00e0 vi\u1ec7c v\u1ebd th\u1ee7 c\u00f4ng t\u1ed1n nhi\u1ec1u th\u1eddi gian. B\u1eb1ng c\u00e1ch t\u1eadn d\u1ee5ng <strong>PlantUML<\/strong> v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 b\u1edfi tr\u00ed tu\u1ec7 nh\u00e2n t\u1ea1o, c\u00e1c \u0111\u1ed9i Agile c\u00f3 th\u1ec3 tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac, t\u01b0\u01a1ng t\u00e1c v\u00e0 tr\u1ea1ng th\u00e1i theo th\u1eddi gian th\u1ef1c, \u0111\u1ed3ng b\u1ed9 v\u1edbi c\u00e1c sprint v\u00e0 qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n l\u1eb7p.<\/p>\n<p>H\u01b0\u1edbng d\u1eabn n\u00e0y kh\u00e1m ph\u00e1 c\u00e1c kh\u00e1i ni\u1ec7m c\u1ed1t l\u00f5i, cung c\u1ea5p c\u00e1c v\u00ed d\u1ee5 th\u1ef1c t\u1ebf v\u1ec1 PlantUML v\u00e0 minh h\u1ecda c\u00e1ch t\u00edch h\u1ee3p c\u00e1c m\u00f4 h\u00ecnh tr\u1ef1c quan n\u00e0y v\u00e0o quy tr\u00ecnh l\u00e0m vi\u1ec7c Agile.<\/p>\n<h2>1. Kh\u00e1i ni\u1ec7m c\u1ed1t l\u00f5i: M\u00f4 h\u00ecnh h\u00f3a h\u1ed9i tho\u1ea1i \u0111\u1ec3 t\u1ea1o m\u1eabu nhanh<\/h2>\n<p>Trong m\u00f4i tr\u01b0\u1eddng Agile, c\u00e1c y\u00eau c\u1ea7u lu\u00f4n thay \u0111\u1ed5i li\u00ean t\u1ee5c. <strong>M\u00f4 h\u00ecnh h\u00f3a h\u1ed9i tho\u1ea1i<\/strong> cho ph\u00e9p c\u00e1c th\u00e0nh vi\u00ean trong \u0111\u1ed9i m\u00f4 t\u1ea3 h\u00e0nh vi c\u1ee7a h\u1ec7 th\u1ed1ng b\u1eb1ng ti\u1ebfng Anh \u0111\u01a1n gi\u1ea3n, trong khi AI t\u1ea1o ra s\u01a1 \u0111\u1ed3 UML ngay l\u1eadp t\u1ee9c. \u0110i\u1ec1u n\u00e0y lo\u1ea1i b\u1ecf nhu c\u1ea7u ph\u1ea3i th\u00e0nh th\u1ea1o c\u00fa ph\u00e1p ngay l\u1eadp t\u1ee9c v\u00e0 cho ph\u00e9p c\u00e1c b\u00ean li\u00ean quan kh\u00f4ng chuy\u00ean v\u1ec1 k\u1ef9 thu\u1eadt tham gia v\u00e0o c\u00e1c phi\u00ean thi\u1ebft k\u1ebf.<\/p>\n<p id=\"sYjkEIH\"><img fetchpriority=\"high\" alt=\"\" class=\"alignnone size-full wp-image-906\" decoding=\"async\" fetchpriority=\"high\" height=\"572\" sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png 1024w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82-300x168.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82-768x429.png 768w\" width=\"1024\"\/><\/p>\n<p>Thay v\u00ec k\u00e9o th\u1ea3 c\u00e1c h\u1ed9p v\u00e0 n\u1ed1i c\u00e1c \u0111\u01b0\u1eddng, b\u1ea1n ch\u1ec9 c\u1ea7n \u0111\u01b0a ra l\u1ec7nh: <em>&#8220;T\u1ea1o s\u01a1 \u0111\u1ed3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng cho m\u1ed9t \u1ee9ng d\u1ee5ng giao \u0111\u1ed3 \u0103n.&#8221;<\/em> AI di\u1ec5n gi\u1ea3i \u00fd \u0111\u1ecbnh, x\u00e1c \u0111\u1ecbnh c\u00e1c vai tr\u00f2 (Kh\u00e1ch h\u00e0ng, Nh\u00e0 h\u00e0ng) v\u00e0 k\u1ebft n\u1ed1i c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng (\u0110\u1eb7t h\u00e0ng, Theo d\u00f5i \u0111\u01a1n h\u00e0ng) v\u1edbi c\u00e1c m\u1ed1i quan h\u1ec7 ph\u00f9 h\u1ee3p.<\/p>\n<p><strong>Quy tr\u00ecnh l\u00e0m vi\u1ec7c v\u00ed d\u1ee5:<\/strong><\/p>\n<ol>\n<li>\n<p><strong>L\u1ec7nh:<\/strong> &#8220;V\u1ebd s\u01a1 \u0111\u1ed3 tr\u1ea1ng th\u00e1i cho m\u1ed9t m\u00e1y b\u00e1n h\u00e0ng t\u1ef1 \u0111\u1ed9ng v\u1edbi c\u00e1c tr\u1ea1ng th\u00e1i: Nh\u00e0n r\u1ed7i, \u0110\u00e3 \u0111\u01b0a ti\u1ec1n, \u0110ang dispensing.&#8221;<\/p>\n<\/li>\n<li>\n<p><strong>T\u1ea1o t\u1ee9c th\u00ec:<\/strong> C\u00f4ng c\u1ee5 hi\u1ec3n th\u1ecb s\u01a1 \u0111\u1ed3 ban \u0111\u1ea7u.<\/p>\n<\/li>\n<li>\n<p><strong>Tinh ch\u1ec9nh:<\/strong> &#8220;Th\u00eam chuy\u1ec3n ti\u1ebfp sang tr\u1ea1ng th\u00e1i &#8216;H\u1ebft d\u1ecbch v\u1ee5&#8217; n\u1ebfu c\u1ea7n b\u1ea3o tr\u00ec.&#8221;<\/p>\n<\/li>\n<\/ol>\n<p><img alt=\"Thumbnail of UML Use Case Diagram\" decoding=\"async\" src=\"https:\/\/cdn-images.visual-paradigm.com\/features\/uml-diagram-generator\/uml-use-case-diagram-generated-by-ai-uml-diagram-generator-chatbot.jpg\"\/><\/p>\n<p>C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y bi\u1ebfn thi\u1ebft k\u1ebf t\u1eeb m\u1ed9t n\u00fat c\u1ed5 chai th\u00e0nh m\u1ed9t cu\u1ed9c \u0111\u1ed1i tho\u1ea1i c\u1ed9ng t\u00e1c.<\/p>\n<h2>2. Kh\u00e1i ni\u1ec7m c\u1ed1t l\u00f5i: Tinh ch\u1ec9nh l\u1eb7p v\u00e0 nh\u1eadn th\u1ee9c phi\u00ean b\u1ea3n<\/h2>\n<p>Ph\u00e1t tri\u1ec3n Agile v\u1ed1n d\u0129 mang t\u00ednh l\u1eb7p. M\u1ed9t s\u01a1 \u0111\u1ed3 \u0111\u01b0\u1ee3c t\u1ea1o ra trong Sprint 1 hi\u1ebfm khi ho\u00e0n h\u1ea3o cho Sprint 2. <strong>Tinh ch\u1ec9nh l\u1eb7p<\/strong> cho ph\u00e9p b\u1ea1n s\u1eeda \u0111\u1ed5i c\u00e1c m\u00f4 h\u00ecnh hi\u1ec7n c\u00f3 th\u00f4ng qua c\u00e1c l\u1ec7nh ti\u1ebfp theo thay v\u00ec v\u1ebd l\u1ea1i t\u1eeb \u0111\u1ea7u.<\/p>\n<p>AI duy tr\u00ec tr\u1ea1ng th\u00e1i c\u1ee7a s\u01a1 \u0111\u1ed3 c\u1ee7a b\u1ea1n, hi\u1ec3u ng\u1eef c\u1ea3nh nh\u01b0 c\u00e1c vai tr\u00f2 tr\u01b0\u1edbc \u0111\u00f3, c\u00e1c m\u1ed1i quan h\u1ec7 v\u00e0 c\u00e1c quy\u1ebft \u0111\u1ecbnh v\u1ec1 b\u1ed1 c\u1ee5c. B\u1ea1n c\u00f3 th\u1ec3 y\u00eau c\u1ea7u n\u00f3 &#8220;Chuy\u1ec3n b\u1ed1 c\u1ee5c sang ngang&#8221;, &#8220;Thay \u0111\u1ed5i t\u1ea5t c\u1ea3 c\u00e1c vai tr\u00f2 sang m\u00e0u \u0111\u1ecf&#8221;, ho\u1eb7c &#8220;Th\u00eam m\u1ed9t c\u01a1 s\u1edf d\u1eef li\u1ec7u&#8221;. \u0110i\u1ec1u n\u00e0y \u0111\u1ea3m b\u1ea3o m\u00f4 h\u00ecnh ph\u00e1t tri\u1ec3n c\u00f9ng v\u1edbi s\u1ea3n ph\u1ea9m.<\/p>\n<p><strong>L\u1ee3i \u00edch ch\u00ednh:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>T\u1ed1c \u0111\u1ed9:<\/strong> C\u00e1c c\u1eadp nh\u1eadt di\u1ec5n ra trong v\u00e0i gi\u00e2y, kh\u00f4ng ph\u1ea3i v\u00e0i ph\u00fat.<\/p>\n<\/li>\n<li>\n<p><strong>T\u00ednh nh\u1ea5t qu\u00e1n:<\/strong> AI \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n v\u1ec1 m\u1eb7t logic (v\u00ed d\u1ee5: kh\u00f4ng c\u00f3 c\u00e1c m\u1ed1i quan h\u1ec7 b\u1ecb c\u00f4 l\u1eadp) trong qu\u00e1 tr\u00ecnh t\u00e1i c\u1ea5u tr\u00fac.<\/p>\n<\/li>\n<li>\n<p><strong>Kh\u1ea3 n\u0103ng truy v\u1ebft:<\/strong>C\u00e1c thay \u0111\u1ed5i th\u01b0\u1eddng \u0111\u01b0\u1ee3c ghi l\u1ea1i, cho ph\u00e9p c\u00e1c nh\u00f3m xem m\u00f4 h\u00ecnh \u0111\u00e3 ph\u00e1t tri\u1ec3n nh\u01b0 th\u1ebf n\u00e0o.<\/p>\n<\/li>\n<\/ul>\n<p><img alt=\"Visual Paradigm AI Chatbot - Intelligent Diagram Generation &amp; Modeling\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2025\/12\/ai-chatbot-c4.png\"\/><\/p>\n<h2>3. Kh\u00e1i ni\u1ec7m then ch\u1ed1t: PlantUML nh\u01b0 m\u1ed9t ti\u00eau chu\u1ea9n d\u1ef1a tr\u00ean m\u00e3 ngu\u1ed3n<\/h2>\n<p>Trong khi c\u00e1c chatbot t\u1ea1o s\u01a1 \u0111\u1ed3 tr\u1ef1c quan, s\u1ee9c m\u1ea1nh n\u1ec1n t\u1ea3ng d\u00e0nh cho c\u00e1c nh\u00f3m Agile n\u1eb1m \u1edf<strong>PlantUML<\/strong>\u2014m\u1ed9t ng\u00f4n ng\u1eef v\u1ebd s\u01a1 \u0111\u1ed3 d\u1ef1a tr\u00ean v\u0103n b\u1ea3n. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p c\u00e1c s\u01a1 \u0111\u1ed3 \u0111\u01b0\u1ee3c x\u1eed l\u00fd nh\u01b0<strong>m\u00e3 ngu\u1ed3n<\/strong>.<\/p>\n<p><strong>T\u1ea1i sao m\u00f4 h\u00ecnh h\u00f3a d\u1ef1a tr\u00ean m\u00e3 ngu\u1ed3n l\u1ea1i quan tr\u1ecdng \u0111\u1ed1i v\u1edbi Agile:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n:<\/strong>L\u01b0u<code data-backticks=\"1\">.plantuml<\/code>trong Git. B\u1ea1n c\u00f3 th\u1ec3 so s\u00e1nh s\u1ef1 kh\u00e1c bi\u1ec7t, ho\u00e0n t\u00e1c c\u00e1c l\u1ed7i v\u00e0 xem ch\u00ednh x\u00e1c ai \u0111\u00e3 thay \u0111\u1ed5i s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1.<\/p>\n<\/li>\n<li>\n<p><strong>T\u00edch h\u1ee3p CI\/CD:<\/strong>T\u1ef1 \u0111\u1ed9ng t\u1ea1o s\u01a1 \u0111\u1ed3 trong quy tr\u00ecnh x\u00e2y d\u1ef1ng \u0111\u1ec3 gi\u1eef t\u00e0i li\u1ec7u \u0111\u1ed3ng b\u1ed9 v\u1edbi m\u00e3 ngu\u1ed3n.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1ee3p t\u00e1c:<\/strong>C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 ch\u1ec9nh s\u1eeda m\u00e3 s\u01a1 \u0111\u1ed3 trong IDE c\u1ee7a h\u1ecd gi\u1ed1ng nh\u01b0 m\u00e3 \u1ee9ng d\u1ee5ng.<\/p>\n<\/li>\n<\/ul>\n<p><strong>V\u00ed d\u1ee5 PlantUML s\u1eed d\u1ee5ng \u0111o\u1ea1n m\u00e3 VPasCode:<br \/>\n<\/strong><\/p>\n<p id=\"dhQbWRn\"><img alt=\"Example PlantUML using VPasCode Snippet:\" class=\"alignnone wp-image-910 size-full\" decoding=\"async\" height=\"867\" sizes=\"(max-width: 1914px) 100vw, 1914px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a86ca5063.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a86ca5063.png 1914w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a86ca5063-300x136.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a86ca5063-1024x464.png 1024w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a86ca5063-768x348.png 768w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a86ca5063-1536x696.png 1536w\" width=\"1914\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP1DQiCm48Nt0jrXqDvNAA6YCLxPO4pN4sNIcbYQ88qRGidTAodkekdkCVFUDp-x91XbzOjMCij2yDPOzfwY8x2VvCwy2kmNlcgb5JhX27PDmjbHAXTqP_mWCEzqW7ta81IE1hwr0dYupPGeGfSRyOIE3622gTFg_YV-caLEmaZnQtQKDeHZV-50GS3qyPWvMxzI-l79Ck3D5z6Yq1LlrJIqswX_AClXD4UFCdDuy6pn_Lu7JVDI5vswAikqVgooC8VskLhYktn3_kKF\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PL6nQiCm5Dm5-eU7z_n22Kt1X4AJaeHsLMqXYSRFmL42fNJkq2LBnq8zT6iWQwDHmV-XFwaa1ngdYpXEz-xUIVsbPfLU5NDAjD9p3hUh9z2L_KO9KydygKjReyVDhgbHGE7sjOB3HZdpYg2TsL922SjqMS6rj7KcGTfF585TiEoH2Gv9gbW9UJjonnyIUAO4e1tgNDw8PkVCXuBS_g18W2rXDgJafUDsvSoRZraxymMNdkIO7nspibYKo55tHOUDNxrTArgE9cVYWJFllfl-Annru_GOVIAzznK1fTjlyR_l88XFNm5wlOlOO3QCC2IF9X46yt5wpWQBlY_aV-GN\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Quy tr\u00ecnh Thanh to\u00e1n Th\u01b0\u01a1ng m\u1ea1i \u0110i\u1ec7n t\u1eed\r\n\r\nactor Kh\u00e1ch h\u00e0ng\r\n\r\npackage \"Giao di\u1ec7n Web\" {\r\n  actor \"Giao di\u1ec7n Ng\u01b0\u1eddi d\u00f9ng\" as UI\r\n}\r\n\r\npackage \"D\u1ecbch v\u1ee5 Backend\" {\r\n  component \"D\u1ecbch v\u1ee5 \u0110\u01a1n h\u00e0ng\" as OS\r\n  component \"C\u1ed5ng thanh to\u00e1n\" as PG\r\n}\r\n\r\ncomponent \"X\u00e1c nh\u1eadn \u0110\u01a1n h\u00e0ng\" as OC\r\n\r\nKh\u00e1ch h\u00e0ng --&gt; UI\r\nUI --&gt; OS\r\nOS --&gt; PG\r\nPG --&gt; OS\r\nOS --&gt; OC\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PL6nQiCm5Dm5-eU7z_n22Kt1X4AJaeHsLMqXYSRFmL42fNJkq2LBnq8zT6iWQwDHmV-XFwaa1ngdYpXEz-xUIVsbPfLU5NDAjD9p3hUh9z2L_KO9KydygKjReyVDhgbHGE7sjOB3HZdpYg2TsL922SjqMS6rj7KcGTfF585TiEoH2Gv9gbW9UJjonnyIUAO4e1tgNDw8PkVCXuBS_g18W2rXDgJafUDsvSoRZraxymMNdkIO7nspibYKo55tHOUDNxrTArgE9cVYWJFllfl-Annru_GOVIAzznK1fTjlyR_l88XFNm5wlOlOO3QCC2IF9X46yt5wpWQBlY_aV-GN\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP1DQiCm48Nt0jrXqDvNAA6YCLxPO4pN4sNIcbYQ88qRGidTAodkekdkCVFUDp-x91XbzOjMCij2yDPOzfwY8x2VvCwy2kmNlcgb5JhX27PDmjbHAXTqP_mWCEzqW7ta81IE1hwr0dYupPGeGfSRyOIE3622gTFg_YV-caLEmaZnQtQKDeHZV-50GS3qyPWvMxzI-l79Ck3D5z6Yq1LlrJIqswX_AClXD4UFCdDuy6pn_Lu7JVDI5vswAikqVgooC8VskLhYktn3_kKF\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p>B\u1eb1ng c\u00e1ch coi c\u00e1c s\u01a1 \u0111\u1ed3 l\u00e0 m\u00e3 ngu\u1ed3n, c\u00e1c nh\u00f3m \u0111\u1ea3m b\u1ea3o r\u1eb1ng t\u00e0i li\u1ec7u kh\u00f4ng bao gi\u1edd l\u00e0 suy ngh\u0129 th\u1ee9 y\u1ebfu m\u00e0 l\u00e0 m\u1ed9t ph\u1ea7n kh\u00f4ng th\u1ec3 thi\u1ebfu c\u1ee7a v\u00f2ng \u0111\u1eddi ph\u00e1t tri\u1ec3n.<\/p>\n<h2>4. Kh\u00e1i ni\u1ec7m then ch\u1ed1t: M\u00f4 h\u00ecnh C4 cho ng\u1eef c\u1ea3nh h\u1ec7 th\u1ed1ng v\u00e0 s\u1ef1 r\u00f5 r\u00e0ng<\/h2>\n<p>M\u00f4 h\u00ecnh<strong>C4<\/strong>(Ng\u1eef c\u1ea3nh, Container, Th\u00e0nh ph\u1ea7n, M\u00e3) l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p chu\u1ea9n h\u00f3a \u0111\u1ec3 tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m, \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb cao cho c\u00e1c nh\u00f3m Agile \u0111\u1ec3 qu\u1ea3n l\u00fd \u0111\u1ed9 ph\u1ee9c t\u1ea1p. N\u00f3 chia nh\u1ecf thi\u1ebft k\u1ebf h\u1ec7 th\u1ed1ng th\u00e0nh b\u1ed1n m\u1ee9c tr\u1eeb t\u01b0\u1ee3ng h\u00f3a, gi\u00fap d\u1ec5 d\u00e0ng giao ti\u1ebfp v\u1edbi c\u00e1c b\u00ean li\u00ean quan kh\u00e1c nhau.<\/p>\n<ul>\n<li>\n<p><strong>M\u1ee9c 1: Ng\u1eef c\u1ea3nh h\u1ec7 th\u1ed1ng:<\/strong>Hi\u1ec3n th\u1ecb h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n, ng\u01b0\u1eddi d\u00f9ng (C\u00e1c vai tr\u00f2) v\u00e0 c\u00e1c ph\u1ee5 thu\u1ed9c b\u00ean ngo\u00e0i. L\u00fd t\u01b0\u1edfng cho vi\u1ec7c l\u1eadp k\u1ebf ho\u1ea1ch ban \u0111\u1ea7u.<\/p>\n<\/li>\n<li>\n<p><strong>M\u1ee9c 2: Container:<\/strong> Hi\u1ec3n th\u1ecb c\u1ea5u tr\u00fac k\u1ef9 thu\u1eadt \u1edf m\u1ee9c \u0111\u1ed9 cao (v\u00ed d\u1ee5: \u1ee8ng d\u1ee5ng Web, \u1ee8ng d\u1ee5ng Di \u0111\u1ed9ng, C\u01a1 s\u1edf d\u1eef li\u1ec7u, Vi d\u1ecbch v\u1ee5).<\/p>\n<\/li>\n<li>\n<p><strong>M\u1ee9c 3: C\u00e1c th\u00e0nh ph\u1ea7n:<\/strong>Ph\u00e2n t\u00e1ch c\u00e1c container th\u00e0nh c\u00e1c th\u00e0nh ph\u1ea7n logic (v\u00ed d\u1ee5: D\u1ecbch v\u1ee5 X\u00e1c th\u1ef1c, B\u1ed9 x\u1eed l\u00fd \u0110\u01a1n h\u00e0ng).<\/p>\n<\/li>\n<li>\n<p><strong>M\u1ee9c 4: M\u00e3 ngu\u1ed3n:<\/strong>Chi ti\u1ebft c\u1ea5u tr\u00fac c\u00e1c l\u1edbp (th\u01b0\u1eddng \u0111\u01b0\u1ee3c t\u1ea1o t\u1ef1 \u0111\u1ed9ng ho\u1eb7c \u00edt \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng).<\/p>\n<\/li>\n<\/ul>\n<p>Vi\u1ec7c s\u1eed d\u1ee5ng M\u00f4 h\u00ecnh C4 k\u1ebft h\u1ee3p v\u1edbi PlantUML gi\u00fap c\u00e1c \u0111\u1ed9i tr\u00e1nh \u0111\u01b0\u1ee3c ph\u01b0\u01a1ng ph\u00e1p \u201cthi\u1ebft k\u1ebf l\u1edbn ban \u0111\u1ea7u\u201d (BDUF) trong khi v\u1eabn cung c\u1ea5p m\u1ed9t c\u00e1i nh\u00ecn c\u00f3 c\u1ea5u tr\u00fac ph\u00e1t tri\u1ec3n c\u00f9ng v\u1edbi s\u1ef1 m\u1edf r\u1ed9ng c\u1ee7a d\u1ef1 \u00e1n.<\/p>\n<p><img alt=\"Visual Paradigm OpenDocs class model\" decoding=\"async\" src=\"https:\/\/guides.visual-paradigm.com\/wp-content\/uploads\/2026\/02\/visual-paradigm-opendocs-with-class-diagram.png\"\/><\/p>\n<h2>5. Kh\u00e1i ni\u1ec7m then ch\u1ed1t: \u0110\u1ed3ng b\u1ed9 h\u00f3a hai chi\u1ec1u (M\u00f4 h\u00ecnh so v\u1edbi T\u00e0i li\u1ec7u)<\/h2>\n<p>M\u1ed9t th\u00e1ch th\u1ee9c ph\u1ed5 bi\u1ebfn trong Agile l\u00e0 duy tr\u00ec s\u1ef1 \u0111\u1ed3ng b\u1ed9 gi\u1eefa t\u00e0i li\u1ec7u v\u00e0 h\u1ec7 th\u1ed1ng th\u1ef1c t\u1ebf.<strong>\u0110\u1ed3ng b\u1ed9 h\u00f3a hai chi\u1ec1u<\/strong>K\u1ebft n\u1ed1i kho\u1ea3ng c\u00e1ch gi\u1eefa m\u00f4 h\u00ecnh tr\u1ef1c quan v\u00e0 t\u00e0i li\u1ec7u s\u1ed1ng \u0111\u1ed9ng (v\u00ed d\u1ee5: OpenDocs, Wiki).<\/p>\n<p>Khi m\u1ed9t bi\u1ec3u \u0111\u1ed3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt trong c\u00f4ng c\u1ee5 m\u00f4 h\u00ecnh h\u00f3a, c\u00e1c thay \u0111\u1ed5i s\u1ebd t\u1ef1 \u0111\u1ed9ng lan truy\u1ec1n \u0111\u1ebfn t\u00e0i li\u1ec7u. Ng\u01b0\u1ee3c l\u1ea1i, c\u00e1c y\u00eau c\u1ea7u \u0111\u01b0\u1ee3c vi\u1ebft trong t\u00e0i li\u1ec7u c\u00f3 th\u1ec3 k\u00edch ho\u1ea1t vi\u1ec7c c\u1eadp nh\u1eadt bi\u1ec3u \u0111\u1ed3. \u0110i\u1ec1u n\u00e0y \u0111\u1ea3m b\u1ea3o r\u1eb1ng khi m\u1ed9t Product Owner xem l\u1ea1i m\u1ed9t v\u00e9 Jira ho\u1eb7c m\u1ed9t trang Confluence, bi\u1ec3u \u0111\u1ed3 \u0111\u00ednh k\u00e8m s\u1ebd ph\u1ea3n \u00e1nh tr\u1ea1ng th\u00e1i hi\u1ec7n t\u1ea1i c\u1ee7a h\u1ec7 th\u1ed1ng.<\/p>\n<p><strong>V\u00ed d\u1ee5 v\u1ec1 quy tr\u00ecnh l\u00e0m vi\u1ec7c:<\/strong><\/p>\n<ol>\n<li>\n<p><strong>M\u00f4 h\u00ecnh:<\/strong>Ki\u1ebfn tr\u00fac s\u01b0 c\u1eadp nh\u1eadt Bi\u1ec3u \u0111\u1ed3 Chu\u1ed7i \u0111\u1ec3 ph\u1ea3n \u00e1nh lu\u1ed3ng 2FA m\u1edbi.<\/p>\n<\/li>\n<li>\n<p><strong>\u0110\u1ed3ng b\u1ed9:<\/strong>Bi\u1ec3u \u0111\u1ed3 trong OpenDocs \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt t\u1ef1 \u0111\u1ed9ng.<\/p>\n<\/li>\n<li>\n<p><strong>T\u00e0i li\u1ec7u:<\/strong>Nh\u00e0 ph\u00e1t tri\u1ec3n \u0111\u1ecdc \u201cH\u01b0\u1edbng d\u1eabn T\u00edch h\u1ee3p API\u201d s\u1ebd th\u1ea5y lu\u1ed3ng m\u1edbi ngay l\u1eadp t\u1ee9c m\u00e0 kh\u00f4ng c\u1ea7n sao ch\u00e9p v\u00e0 d\u00e1n th\u1ee7 c\u00f4ng.<\/p>\n<\/li>\n<\/ol>\n<p><img alt=\"Perform business process modeling with Visual Paradigm Desktop, and then write documents in OpenDocs, accessible via the Visual Paradigm Unified Platform\" decoding=\"async\" src=\"https:\/\/updates.visual-paradigm.com\/wp-content\/uploads\/2026\/06\/img_6a30e4ca72d31.png\"\/><\/p>\n<h2>6. Kh\u00e1i ni\u1ec7m then ch\u1ed1t: T\u00edch h\u1ee3p v\u00e0 H\u1ee3p t\u00e1c trong Quy tr\u00ecnh l\u00e0m vi\u1ec7c Agile<\/h2>\n<p>Vi\u1ec7c m\u00f4 h\u00ecnh h\u00f3a UML hi\u1ec7n \u0111\u1ea1i kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t ho\u1ea1t \u0111\u1ed9ng bi\u1ec7t l\u1eadp; n\u00f3 \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p s\u00e2u v\u00e0o quy tr\u00ecnh l\u00e0m vi\u1ec7c Agile. C\u00e1c \u0111\u1ed9i s\u1eed d\u1ee5ng c\u00e1c m\u00f4 h\u00ecnh n\u00e0y \u0111\u1ec3 t\u1ea1o \u0111i\u1ec1u ki\u1ec7n thu\u1eadn l\u1ee3i cho<strong>L\u1eadp k\u1ebf ho\u1ea1ch Sprint<\/strong>,\u00a0<strong>\u0110\u00e1nh gi\u00e1 thi\u1ebft k\u1ebf<\/strong>, v\u00e0<strong>H\u1eadu k\u1ef3 (Retrospectives)<\/strong>.<\/p>\n<ul>\n<li>\n<p><strong>L\u1eadp k\u1ebf ho\u1ea1ch Sprint:<\/strong>S\u1eed d\u1ee5ng nhanh Bi\u1ec3u \u0111\u1ed3 Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng ho\u1eb7c Bi\u1ec3u \u0111\u1ed3 Ho\u1ea1t \u0111\u1ed9ng \u0111\u1ec3 l\u00e0m r\u00f5 c\u00e1c c\u00e2u chuy\u1ec7n ng\u01b0\u1eddi d\u00f9ng v\u00e0 c\u00e1c tr\u01b0\u1eddng h\u1ee3p bi\u00ean tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u ph\u00e1t tri\u1ec3n.<\/p>\n<\/li>\n<li>\n<p><strong>\u0110\u00e1nh gi\u00e1 thi\u1ebft k\u1ebf:<\/strong>Chia s\u1ebb bi\u1ec3u \u0111\u1ed3 PlantUML tr\u1ef1c ti\u1ebfp trong phi\u00ean \u0111\u00e1nh gi\u00e1. C\u00e1c b\u00ean li\u00ean quan c\u00f3 th\u1ec3 \u0111\u1ec1 xu\u1ea5t thay \u0111\u1ed5i b\u1eb1ng l\u1eddi n\u00f3i, v\u00e0 bi\u1ec3u \u0111\u1ed3 s\u1ebd \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt theo th\u1eddi gian th\u1ef1c.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1eadu k\u1ef3:<\/strong>\u00a0Ph\u00e2n t\u00edch c\u00e1c bi\u1ec3u \u0111\u1ed3 tr\u00ecnh t\u1ef1 \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1c n\u00fat c\u1ed5 chai ho\u1eb7c \u0111i\u1ec3m l\u1ed7i \u0111\u01a1n l\u1ebb (v\u00ed d\u1ee5: \u201cC\u1ed5ng thanh to\u00e1n l\u00e0 m\u1ed9t n\u00fat c\u1ed5 chai\u201d).<\/p>\n<\/li>\n<\/ul>\n<p>Vi\u1ec7c t\u00edch h\u1ee3p n\u00e0y th\u00fac \u0111\u1ea9y m\u1ed9t v\u0103n h\u00f3a n\u01a1i t\u01b0 duy tr\u1ef1c quan tr\u1edf n\u00ean d\u1ec5 ti\u1ebfp c\u1eadn v\u1edbi m\u1ecdi ng\u01b0\u1eddi, t\u1eeb Ng\u01b0\u1eddi qu\u1ea3n l\u00fd Scrum \u0111\u1ebfn Nh\u00e0 ph\u00e1t tri\u1ec3n tr\u01b0\u1edfng.<\/p>\n<p><img alt=\"Example of using ai chatbot to generate UML Class Diagram. by VP Chatbot \" class=\"alignnone\" decoding=\"async\" height=\"752\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/03\/ai-toolbox.visual-paradigm.com-use-case.png\" width=\"1208\"\/><\/p>\n<h2>V\u00ed d\u1ee5 tham chi\u1ebfu PlantUML s\u1eed d\u1ee5ng VPasCode<\/h2>\n<h3>1. Bi\u1ec3u \u0111\u1ed3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng (\u1ee8ng d\u1ee5ng giao \u0111\u1ed3 \u0103n)<\/h3>\n<p><strong>Kh\u00e1i ni\u1ec7m:<\/strong>\u00a0X\u00e1c \u0111\u1ecbnh c\u00e1c vai tr\u00f2 v\u00e0 t\u01b0\u01a1ng t\u00e1c c\u1ee7a h\u1ecd v\u1edbi h\u1ec7 th\u1ed1ng.<\/p>\n<p id=\"pacagtB\"><img loading=\"lazy\" alt=\"Use Case Diagram (Food Delivery App) by VPasCode\" class=\"alignnone wp-image-911 size-full\" decoding=\"async\" height=\"872\" loading=\"lazy\" sizes=\"auto, (max-width: 1917px) 100vw, 1917px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a91175ea3.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a91175ea3.png 1917w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a91175ea3-300x136.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a91175ea3-1024x466.png 1024w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a91175ea3-768x349.png 768w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a91175ea3-1536x699.png 1536w\" width=\"1917\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLBBRi8m4Bn7yZ-iSg87VY27YYgYY1D8gNgfUh2SHLZu0VQ6A7_VTQ1jCFJGYwNT6S_ChdOHIGRgh145QJ88otdjhSMW4EezgeFl21eyTUWKYa8KKf4FKDPT9C-qKXH75j1A7wKZA5-3TuIkpVir5wmJpbfXZgtT6Hsh3j0CaT3c-5OEbWcmaeIz7CeKupS0p9ydjXMyQ-mXsJ7ffpsIRZ9Ki49AdTbJKfj28_akL7NPHqDU7MOVQsv5q0x6-fCrf25uCGRqDn8J8Wg01-gJlCtUz_3cIPeBzw-v6ZIe2AxB6Bctu-Lhgc0RlC8Ohq0Q5EvfCC-DEfL-FN385bXxjzF1RaAB8OcZYGWRlXU_-zVmon1yuE-k5SM2Nxx6Bm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:hPCnImCn5CVtW_iEZvlgu1UuGGedjD31GZi8ud2aiGczozMxLEZiu514EeWu21RfK50eg8ENmU6atoFVn9UpOhNj5SKbXEJb_txl_rxAYVHZsGi3sv9S1XGyrjFgYiDnhmyopku50ybyiqRPIE1-DfsDH1j2dOuul0svLcTuhDM3RTcMJsGKWrDZsOWmODcjQ3ksrSKKdF2kBoGu5Uv7qFfu9jgpgLOt75hPotBahbO3L3dHQWmLV72nMh2AKiYbrH2nQYpwUUzfTOat2rKu1lKx96pl5AAvi4z3Q7zHe411U2wtZj-52fKU8fQsK6LTL2wnL9kB3QAaqv0HwPGE6Zgz4z1bEfs4GB97I7JwB0vHrWyaD7Kwba0mnfol2BGjWEByXOvKyVnKv7W3Cm76PQBLjJ47uBV-UYXpRXZd0sPa9sInRRdg9jDNTDk5UXmHcYHrlnzIaTiEAoDXUoDcqzJ3qCEdUPb_dm8l4aSy3lVY5eqD4mqI2bMTlihF4Vk_zWJcKsCAqRAjCgxuuzy1\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Chu\u1ed7i quy tr\u00ecnh thanh to\u00e1n th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed\r\n\r\nactor \"Kh\u00e1ch h\u00e0ng\"\r\nparticipant \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\"\r\nparticipant \"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\"\r\nparticipant \"H\u1ec7 th\u1ed1ng Kho\"\r\nparticipant \"C\u1ed5ng thanh to\u00e1n\"\r\n\r\n\"Kh\u00e1ch h\u00e0ng\" -&gt; \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\": Xem gi\u1ecf h\u00e0ng\r\n\"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\" -&gt; \"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\": GetCart()\r\n\"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\" -&gt; \"H\u1ec7 th\u1ed1ng Kho\": CheckStock([S\u1ea3n ph\u1ea9m c\u00f3 s\u1eb5n])\r\nalt T\u1ea5t c\u1ea3 s\u1ea3n ph\u1ea9m c\u00f3 s\u1eb5n\r\n  \"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\" -&gt; \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\": Hi\u1ec3n th\u1ecb t\u1ed5ng c\u1ed9ng\r\n  \"Kh\u00e1ch h\u00e0ng\" -&gt; \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\": Ch\u1ecdn ph\u01b0\u01a1ng th\u1ee9c thanh to\u00e1n\r\n  \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\" -&gt; \"C\u1ed5ng thanh to\u00e1n\": ProcessPayment()\r\n  \"C\u1ed5ng thanh to\u00e1n\" --&gt; \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\": Th\u00e0nh c\u00f4ng\r\n  \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\" -&gt; \"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\": ConfirmOrder()\r\nelse H\u1ebft h\u00e0ng\r\n  \"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\" -&gt; \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\": Hi\u1ec3n th\u1ecb l\u1ed7i\r\nend\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:hPCnImCn5CVtW_iEZvlgu1UuGGedjD31GZi8ud2aiGczozMxLEZiu514EeWu21RfK50eg8ENmU6atoFVn9UpOhNj5SKbXEJb_txl_rxAYVHZsGi3sv9S1XGyrjFgYiDnhmyopku50ybyiqRPIE1-DfsDH1j2dOuul0svLcTuhDM3RTcMJsGKWrDZsOWmODcjQ3ksrSKKdF2kBoGu5Uv7qFfu9jgpgLOt75hPotBahbO3L3dHQWmLV72nMh2AKiYbrH2nQYpwUUzfTOat2rKu1lKx96pl5AAvi4z3Q7zHe411U2wtZj-52fKU8fQsK6LTL2wnL9kB3QAaqv0HwPGE6Zgz4z1bEfs4GB97I7JwB0vHrWyaD7Kwba0mnfol2BGjWEByXOvKyVnKv7W3Cm76PQBLjJ47uBV-UYXpRXZd0sPa9sInRRdg9jDNTDk5UXmHcYHrlnzIaTiEAoDXUoDcqzJ3qCEdUPb_dm8l4aSy3lVY5eqD4mqI2bMTlihF4Vk_zWJcKsCAqRAjCgxuuzy1\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLBBRi8m4Bn7yZ-iSg87VY27YYgYY1D8gNgfUh2SHLZu0VQ6A7_VTQ1jCFJGYwNT6S_ChdOHIGRgh145QJ88otdjhSMW4EezgeFl21eyTUWKYa8KKf4FKDPT9C-qKXH75j1A7wKZA5-3TuIkpVir5wmJpbfXZgtT6Hsh3j0CaT3c-5OEbWcmaeIz7CeKupS0p9ydjXMyQ-mXsJ7ffpsIRZ9Ki49AdTbJKfj28_akL7NPHqDU7MOVQsv5q0x6-fCrf25uCGRqDn8J8Wg01-gJlCtUz_3cIPeBzw-v6ZIe2AxB6Bctu-Lhgc0RlC8Ohq0Q5EvfCC-DEfL-FN385bXxjzF1RaAB8OcZYGWRlXU_-zVmon1yuE-k5SM2Nxx6Bm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>2. Bi\u1ec3u \u0111\u1ed3 tr\u00ecnh t\u1ef1 (Quy tr\u00ecnh thanh to\u00e1n)<\/h3>\n<p><strong>Kh\u00e1i ni\u1ec7m:<\/strong>\u00a0Tr\u1ef1c quan h\u00f3a th\u1ee9 t\u1ef1 t\u01b0\u01a1ng t\u00e1c gi\u1eefa c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng theo th\u1eddi gian.<\/p>\n<p id=\"wJAxhft\"><img loading=\"lazy\" alt=\"\" class=\"alignnone size-full wp-image-912\" decoding=\"async\" height=\"866\" loading=\"lazy\" sizes=\"auto, (max-width: 1919px) 100vw, 1919px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a96c81d02.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a96c81d02.png 1919w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a96c81d02-300x135.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a96c81d02-1024x462.png 1024w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a96c81d02-768x347.png 768w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a96c81d02-1536x693.png 1536w\" width=\"1919\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLBBQiCm4BmBz0-BJ-d1F-13IJ5fo2a1brvA3qBU414zKcaTux_lAesf8theHR0xipCxYzQ9LAJ1MId8a4NOr6rm3gD6Q4-eps4WwF1hGAzH2YcKfX2XQeT4WMcL51SMCDfSb2UeNcFmXBul-oqNh1ElHcE9xVmLFQjEq4s9q9NuGKsE2R1LXAEQghp6x0_rCyoU3RmR725RIJ4tCs5fti0MAJTMJwoo03AntAJvkK57GPzN7plk930URlKdpojBy68jc1b96P42e5J-tR4xXH7U0Ybxu_sPeqEBck0UFFEMSOfxD728GMDAztuE1YK9waU3GUU9KldnK6tmHnFTFlOOioZQXB3d_n2E_mwwYJ547lMz56j--QTz0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:hLCnImCn6DqFxZzyTAf3_q07APpGGWSBxI28mv6Bbz2xNBrBXSuE3aMaWuY3u24T2We5TV0oE9pqV-IV-ALLB6slehY4yELzB-zxBwabqerbFmniIt8PK71ONwjh3YVz0SWuVn0C97FD6kMfmFriEak53w7EKWxl8wxLEPQrUhGjstA9Z68eDLcU4WOilnD-oRPwU0KdlESA2QKwToFm5ct2dqsrkkNWvQ_ho3sjXiXogjKOwjXmkPcmWLIeIwiHocgoQFNSqUeAJvQcA1cfongXiWl5kgfmG4FmlnNOLZ7OK1K8hqATIWUbbNTigm1ZsbS7gc8eb7JRCYBTyc5RP_S2Uandan18_WI9pbx44LAwWOIEpiOI269CVGFGjW2stBtDXGQMpyHSsT0aRbmbMjqOGm1-uwU351T6s-TZCfGJiXoHOTnkydgiLMZ54Q59qd878HLpcs433Ye_oEkO8HXwzhmOxOzfEv4uvd6u7tiqDbfea50CDtkJNy_eVw88p8T5Uk7PLWrN_CqV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Chu\u1ed7i quy tr\u00ecnh thanh to\u00e1n th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed\r\n\r\nactor \"Kh\u00e1ch h\u00e0ng\"\r\nparticipant \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\"\r\nparticipant \"D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng\"\r\nparticipant \"H\u1ec7 th\u1ed1ng Kho\"\r\nparticipant \"C\u1ed5ng thanh to\u00e1n\"\r\n\r\nKh\u00e1ch h\u00e0ng -&gt; Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng: Xem gi\u1ecf h\u00e0ng\r\nGiao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng -&gt; D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng: GetCart()\r\nD\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng -&gt; H\u1ec7 th\u1ed1ng Kho: CheckStock([S\u1ea3n ph\u1ea9m c\u00f3 s\u1eb5n])\r\nalt T\u1ea5t c\u1ea3 s\u1ea3n ph\u1ea9m c\u00f3 s\u1eb5n\r\n  D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng -&gt; Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng: Hi\u1ec3n th\u1ecb t\u1ed5ng c\u1ed9ng\r\n  Kh\u00e1ch h\u00e0ng -&gt; Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng: Ch\u1ecdn ph\u01b0\u01a1ng th\u1ee9c thanh to\u00e1n\r\n  Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng -&gt; C\u1ed5ng thanh to\u00e1n: ProcessPayment()\r\n  C\u1ed5ng thanh to\u00e1n --&gt; Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng: Th\u00e0nh c\u00f4ng\r\n  Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng -&gt; D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng: ConfirmOrder()\r\nelse H\u1ebft h\u00e0ng\r\n  D\u1ecbch v\u1ee5 Gi\u1ecf h\u00e0ng -&gt; Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng: Hi\u1ec3n th\u1ecb l\u1ed7i\r\nend\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:hLCnImCn6DqFxZzyTAf3_q07APpGGWSBxI28mv6Bbz2xNBrBXSuE3aMaWuY3u24T2We5TV0oE9pqV-IV-ALLB6slehY4yELzB-zxBwabqerbFmniIt8PK71ONwjh3YVz0SWuVn0C97FD6kMfmFriEak53w7EKWxl8wxLEPQrUhGjstA9Z68eDLcU4WOilnD-oRPwU0KdlESA2QKwToFm5ct2dqsrkkNWvQ_ho3sjXiXogjKOwjXmkPcmWLIeIwiHocgoQFNSqUeAJvQcA1cfongXiWl5kgfmG4FmlnNOLZ7OK1K8hqATIWUbbNTigm1ZsbS7gc8eb7JRCYBTyc5RP_S2Uandan18_WI9pbx44LAwWOIEpiOI269CVGFGjW2stBtDXGQMpyHSsT0aRbmbMjqOGm1-uwU351T6s-TZCfGJiXoHOTnkydgiLMZ54Q59qd878HLpcs433Ye_oEkO8HXwzhmOxOzfEv4uvd6u7tiqDbfea50CDtkJNy_eVw88p8T5Uk7PLWrN_CqV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLBBQiCm4BmBz0-BJ-d1F-13IJ5fo2a1brvA3qBU414zKcaTux_lAesf8theHR0xipCxYzQ9LAJ1MId8a4NOr6rm3gD6Q4-eps4WwF1hGAzH2YcKfX2XQeT4WMcL51SMCDfSb2UeNcFmXBul-oqNh1ElHcE9xVmLFQjEq4s9q9NuGKsE2R1LXAEQghp6x0_rCyoU3RmR725RIJ4tCs5fti0MAJTMJwoo03AntAJvkK57GPzN7plk930URlKdpojBy68jc1b96P42e5J-tR4xXH7U0Ybxu_sPeqEBck0UFFEMSOfxD728GMDAztuE1YK9waU3GUU9KldnK6tmHnFTFlOOioZQXB3d_n2E_mwwYJ547lMz56j--QTz0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>3. Bi\u1ec3u \u0111\u1ed3 m\u00e1y tr\u1ea1ng th\u00e1i (M\u00e1y b\u00e1n h\u00e0ng t\u1ef1 \u0111\u1ed9ng)<\/h3>\n<p><strong>Kh\u00e1i ni\u1ec7m:<\/strong>\u00a0M\u00f4 h\u00ecnh h\u00f3a c\u00e1c chuy\u1ec3n \u0111\u1ed5i tr\u1ea1ng th\u00e1i c\u1ee7a h\u1ec7 th\u1ed1ng d\u1ef1a tr\u00ean c\u00e1c s\u1ef1 ki\u1ec7n.<\/p>\n<p id=\"iGuYMpv\"><img loading=\"lazy\" alt=\"State Machine Diagram (Vending Machine) by VP Chatbot and VPasCode\" class=\"alignnone wp-image-913 size-full\" decoding=\"async\" height=\"712\" loading=\"lazy\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a9a098278.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a9a098278.png 789w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a9a098278-300x271.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a9a098278-768x693.png 768w\" width=\"789\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP6nQWCn38PtWzz1KuT2w7v3IRcq44gQuQ3BaS6rbPoeJtVOka3UlhPlYDjE5le_oVgbRHGJP1czLaBY4JwH7V453iOEn0YT647OaRa4CsgbLVzuWitc6VREOmElBE46Jn0mekmepjxSjCfQWTg9UCyHWw1hW4gKSz1VZIUNmvDMDRNs5Xmxz6XBMInHpa4VPRBVBrT3tdobFnvW3cJn-9wwr4MbInu7EIOt3GmcTilvJ9QGvMrX5xMwwt_mTZ1yIUPiUNSBrkmgLYlWgRrp_wqKPdL-c09c85ORMlM0iWGk6lJMi4L_gg3Z8iTpX-6Ql3Om6c91pjG7eaEdLGtyQZiR2kqqpXubJRTDnqst_W40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RPAnQiCm48PtWz_XfWw5qDr3IUjG2ANn4EXYCYZsnHQLpqOw1pBt2Kg7qYr-XAxrwBw8twIMCiIfE-ddxljFkX_D3GlDTQ5yZoKhX7lPjwyr_BprxJkmxhyRoe3phf5GTCq1jbr3a7T7M-tRBmT-KkPxlXTVRs0skuMLROFksmyPm7DtBE46D1haXJIL4WVV6n7E4PQIbcHGCwO1IATi3UAzK3ArSkDxOyhPbep56XKcpcQSiZM83PV9ozrUI2Msmr9NK6cPOFGuJ1cRt1JxAYGZAGiW5sPTxtOoaKZyK5DgVE_S_uE7kQ0C0qZSkQXnp9wQqpoe3C_uPACBz9J3KwdHScOQsmMjaMjDZeGu4PIWsamjKStHRerwFyGHG24aCPA5LuWffhut1lwxf19IXsLHAUHXWJbIEdoUNm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Bi\u1ec3u \u0111\u1ed3 tr\u1ea1ng th\u00e1i m\u00e1y b\u00e1n h\u00e0ng t\u1ef1 \u0111\u1ed9ng\r\n\r\n[*] --&gt; Nh\u00e0n r\u1ed7i: V\u00e0o \/ resetDisplay\r\nNh\u00e0n r\u1ed7i --&gt; CoinInserted: insertCoin [validCoin]\r\nCoinInserted --&gt; ItemSelected: selectItem [stockAvailable &amp; priceOK]\r\nItemSelected --&gt; Dispensing: hasSufficientFunds\r\nDispensing --&gt; DispensingChange: changeDue\r\nDispensingChange --&gt; Nh\u00e0n r\u1ed7i: noChangeDue\r\nCoinInserted --&gt; Nh\u00e0n r\u1ed7i: insertMoreCoins\r\nNh\u00e0n r\u1ed7i --&gt; Nh\u00e0n r\u1ed7i: returnCoins [cancel]\r\nNh\u00e0n r\u1ed7i --&gt; OutOfService: maintenanceNeeded\r\nOutOfService --&gt; Nh\u00e0n r\u1ed7i: repairComplete\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RPAnQiCm48PtWz_XfWw5qDr3IUjG2ANn4EXYCYZsnHQLpqOw1pBt2Kg7qYr-XAxrwBw8twIMCiIfE-ddxljFkX_D3GlDTQ5yZoKhX7lPjwyr_BprxJkmxhyRoe3phf5GTCq1jbr3a7T7M-tRBmT-KkPxlXTVRs0skuMLROFksmyPm7DtBE46D1haXJIL4WVV6n7E4PQIbcHGCwO1IATi3UAzK3ArSkDxOyhPbep56XKcpcQSiZM83PV9ozrUI2Msmr9NK6cPOFGuJ1cRt1JxAYGZAGiW5sPTxtOoaKZyK5DgVE_S_uE7kQ0C0qZSkQXnp9wQqpoe3C_uPACBz9J3KwdHScOQsmMjaMjDZeGu4PIWsamjKStHRerwFyGHG24aCPA5LuWffhut1lwxf19IXsLHAUHXWJbIEdoUNm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP6nQWCn38PtWzz1KuT2w7v3IRcq44gQuQ3BaS6rbPoeJtVOka3UlhPlYDjE5le_oVgbRHGJP1czLaBY4JwH7V453iOEn0YT647OaRa4CsgbLVzuWitc6VREOmElBE46Jn0mekmepjxSjCfQWTg9UCyHWw1hW4gKSz1VZIUNmvDMDRNs5Xmxz6XBMInHpa4VPRBVBrT3tdobFnvW3cJn-9wwr4MbInu7EIOt3GmcTilvJ9QGvMrX5xMwwt_mTZ1yIUPiUNSBrkmgLYlWgRrp_wqKPdL-c09c85ORMlM0iWGk6lJMi4L_gg3Z8iTpX-6Ql3Om6c91pjG7eaEdLGtyQZiR2kqqpXubJRTDnqst_W40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>4. Bi\u1ec3u \u0111\u1ed3 l\u1edbp (Qu\u1ea3n l\u00fd th\u01b0 vi\u1ec7n)<\/h3>\n<p><strong>Kh\u00e1i ni\u1ec7m:<\/strong> Hi\u1ec3n th\u1ecb c\u1ea5u tr\u00fac t\u0129nh, c\u00e1c l\u1edbp v\u00e0 m\u1ed1i quan h\u1ec7.<\/p>\n<p id=\"IujrpjO\"><img loading=\"lazy\" alt=\"\" class=\"alignnone size-full wp-image-914\" decoding=\"async\" height=\"866\" loading=\"lazy\" sizes=\"auto, (max-width: 1911px) 100vw, 1911px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aa6802db7.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aa6802db7.png 1911w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aa6802db7-300x136.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aa6802db7-1024x464.png 1024w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aa6802db7-768x348.png 768w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aa6802db7-1536x696.png 1536w\" width=\"1911\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RP7D2i8m48JlWRp3qbD5U_1QHBGtGRtu11iRD9WVs4H5n7UtxHgXuYsPdNmpILOn8QMhir8SBSO8MwC8wG5FAG0gK25SOjsfCIsQRhrasMcdDEN1RjWDeob4ZNGyzzuocMHr3OT4nfycDVGYcrGW2lV1nAWQ638R4jdQdRW5qqhnaYBNw_NSRNDezfdEoYYGaqnStz1OL5QNNC5gz2Cc9sSgzzcqOx97zmFcAvJVahr6Ebt9b-FY-KMBUG5L1OL3_oW-R_5_neMaM6dVTb_p1W00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP512i8m44NtWTnXwAgYNRWj8jgTe6vwWgGD6amJcAIAY0lFvMcyYMt721NS9Nz-tlz9LZu836rZEAkCy1wsMgB0Azmu0yX0EdVoUQVwi2YwzPBaHZLIOHpiXjqmce9N0gjZxqs33aRbK0RKzZ39eHV991sYkmmcGkL0aDcGIDRknDdfchCxPx5UhyTkcxBOHpefeq1Aqdvz5je8QLHA5OmITiIav4YbFfjwJBQY-G7J5T9loLv35LgqwRXuVD5ada2MGMAF-lLyjCddEVwEgHPdAsNhxeFU\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Library {\r\n  - books: List&lt;Book&gt;\r\n  - members: List&lt;Member&gt;\r\n  + searchBook(title: String): Book\r\n  + borrowBook(member: Member, book: Book): void\r\n}\r\n\r\nclass Book {\r\n  - ISBN: String\r\n  - title: String\r\n  + isAvailable(): Boolean\r\n}\r\n\r\nclass Member {\r\n  - memberId: String\r\n  - name: String\r\n  + borrow(): void\r\n  + return(): void\r\n}\r\n\r\nLibrary \"1\" -- \"nhi\u1ec1u\" Book\r\nLibrary \"1\" -- \"nhi\u1ec1u\" Member\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP512i8m44NtWTnXwAgYNRWj8jgTe6vwWgGD6amJcAIAY0lFvMcyYMt721NS9Nz-tlz9LZu836rZEAkCy1wsMgB0Azmu0yX0EdVoUQVwi2YwzPBaHZLIOHpiXjqmce9N0gjZxqs33aRbK0RKzZ39eHV991sYkmmcGkL0aDcGIDRknDdfchCxPx5UhyTkcxBOHpefeq1Aqdvz5je8QLHA5OmITiIav4YbFfjwJBQY-G7J5T9loLv35LgqwRXuVD5ada2MGMAF-lLyjCddEVwEgHPdAsNhxeFU\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RP7D2i8m48JlWRp3qbD5U_1QHBGtGRtu11iRD9WVs4H5n7UtxHgXuYsPdNmpILOn8QMhir8SBSO8MwC8wG5FAG0gK25SOjsfCIsQRhrasMcdDEN1RjWDeob4ZNGyzzuocMHr3OT4nfycDVGYcrGW2lV1nAWQ638R4jdQdRW5qqhnaYBNw_NSRNDezfdEoYYGaqnStz1OL5QNNC5gz2Cc9sSgzzcqOx97zmFcAvJVahr6Ebt9b-FY-KMBUG5L1OL3_oW-R_5_neMaM6dVTb_p1W00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>5. Bi\u1ec3u \u0111\u1ed3 Container C4 (N\u1ec1n t\u1ea3ng Th\u01b0\u01a1ng m\u1ea1i \u0110i\u1ec7n t\u1eed)<\/h3>\n<p><strong>Kh\u00e1i ni\u1ec7m:<\/strong>\u00a0Giao di\u1ec7n ki\u1ebfn tr\u00fac c\u1ea5p cao hi\u1ec3n th\u1ecb c\u00e1c container.<\/p>\n<p id=\"FtQWZjN\"><img loading=\"lazy\" alt=\"C4 Container Diagram (E-Commerce Platform) by VP Chatbot \" class=\"alignnone wp-image-916 size-full\" decoding=\"async\" height=\"868\" loading=\"lazy\" sizes=\"auto, (max-width: 263px) 100vw, 263px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aaf10c1f3.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aaf10c1f3.png 263w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66aaf10c1f3-91x300.png 91w\" width=\"263\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JL71IiD04Bq7yWzZJYbOHUbHIjjKL12C3PxB93kDmMGtxiuYGVhlpgPLSrbccJVlpNkpSeoMVTV64JVS4cGBo8ncR3HPs3POM-pYA8uk6bsrNX7SPOlhRB7_0or3DoVhZ4uhxzXqP2yXoSvb8lMR8mVyJk06nzG16oZz0BqrobVihf9Pu2Z6vdvZl5PeXxIyaT7xUMOweQa8yXRvO6oNpE0xZk1_pTJrAD2YqRKOoB4cMFTz4DuHLdpUm4AZcUm1Amfwa_c9vArWDrXza5Q_CbCXx1i1hFCdU42cBnm2Tz5RKOQDCQFK8shLYbzBdvuSkvFOX6LRfgeKu8jL8M9aBD5H6CsDuzfIyVeyyhAnmcC2xCnoZADZY4eCmto-1DadZkGPFweChHsrapESaWdv1uALs99J_m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:LL9DIyD04Bqlz3-CFRLW5QL74Mq44KMgzU1DjicIB2QRijb5YdWG3ruLpw95n0yGUxMBfvJyZ_qdpgP-n4EM7URjc_VUP2rJL2gTn3MYk8ePTBWr5ngcrzRSW9SAHRbW4hnsZTJ871T-h0C6ArvxqMiV_VPNNRVBP9QAXgypbIPCpaDzEyf7VWHHVY_2EjOzQzuWiEPHX11PSmaApsiitBWBI3I5p4uU10mYEtb95kfDnziRPeebHvrKYu3AOQE_X5IxrfmBK0uTma5KZ8iHNX8x6N6ONg69IzSrR_KcdDO8_5bfP0EAxwrvHlotbWD9In78uMJkC-ehTzdaD8LWHYR2OcpDBOSW_q0tpN-a5N7B-Av3_MCcWf_PrUbqm16mtjs2JQhO2HsMkGmaHm6TD2t77hgOulmJXlch1jzEdlHiNeLeezy8-eZrYX5cPkwSbNU8dLRStXKw-OkzcsOgbAotj-EgdMAiGKa7Bnr_uvh8VqRE2C5yeDLQ1LHAy2llGP-GVHPNTZjBiR9G95X3p_WhVG40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Bi\u1ec3u \u0111\u1ed3 Container C4\r\n\r\n!include &lt;C4\/C4_Container&gt;\r\n\r\nPerson(customer, \"Kh\u00e1ch h\u00e0ng\", \"S\u1eed d\u1ee5ng h\u1ec7 th\u1ed1ng \u0111\u1ec3 mua s\u1ea3n ph\u1ea9m.\")\r\n\r\nSystem_Boundary(b1, \"N\u1ec1n t\u1ea3ng Th\u01b0\u01a1ng m\u1ea1i \u0110i\u1ec7n t\u1eed\") {\r\n  Container(spa, \"\u1ee8ng d\u1ee5ng Trang \u0111\u01a1n\", \"React\", \"Giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng\")\r\n  Container_Boundary(b2, \"Backend\") {\r\n    Container(api, \"API Gateway\", \"Spring Boot\", \"X\u1eed l\u00fd y\u00eau c\u1ea7u\")\r\n    ContainerDb(db, \"C\u01a1 s\u1edf d\u1eef li\u1ec7u \u0110\u01a1n h\u00e0ng\", \"PostgreSQL\", \"L\u01b0u tr\u1eef \u0111\u01a1n h\u00e0ng\")\n  }\n}\n\nspa --&gt; api\napi --&gt; db\n\nRel(customer, spa, \"S\u1eed d\u1ee5ng\")\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:LL9DIyD04Bqlz3-CFRLW5QL74Mq44KMgzU1DjicIB2QRijb5YdWG3ruLpw95n0yGUxMBfvJyZ_qdpgP-n4EM7URjc_VUP2rJL2gTn3MYk8ePTBWr5ngcrzRSW9SAHRbW4hnsZTJ871T-h0C6ArvxqMiV_VPNNRVBP9QAXgypbIPCpaDzEyf7VWHHVY_2EjOzQzuWiEPHX11PSmaApsiitBWBI3I5p4uU10mYEtb95kfDnziRPeebHvrKYu3AOQE_X5IxrfmBK0uTma5KZ8iHNX8x6N6ONg69IzSrR_KcdDO8_5bfP0EAxwrvHlotbWD9In78uMJkC-ehTzdaD8LWHYR2OcpDBOSW_q0tpN-a5N7B-Av3_MCcWf_PrUbqm16mtjs2JQhO2HsMkGmaHm6TD2t77hgOulmJXlch1jzEdlHiNeLeezy8-eZrYX5cPkwSbNU8dLRStXKw-OkzcsOgbAotj-EgdMAiGKa7Bnr_uvh8VqRE2C5yeDLQ1LHAy2llGP-GVHPNTZjBiR9G95X3p_WhVG40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JL71IiD04Bq7yWzZJYbOHUbHIjjKL12C3PxB93kDmMGtxiuYGVhlpgPLSrbccJVlpNkpSeoMVTV64JVS4cGBo8ncR3HPs3POM-pYA8uk6bsrNX7SPOlhRB7_0or3DoVhZ4uhxzXqP2yXoSvb8lMR8mVyJk06nzG16oZz0BqrobVihf9Pu2Z6vdvZl5PeXxIyaT7xUMOweQa8yXRvO6oNpE0xZk1_pTJrAD2YqRKOoB4cMFTz4DuHLdpUm4AZcUm1Amfwa_c9vArWDrXza5Q_CbCXx1i1hFCdU42cBnm2Tz5RKOQDCQFK8shLYbzBdvuSkvFOX6LRfgeKu8jL8M9aBD5H6CsDuzfIyVeyyhAnmcC2xCnoZADZY4eCmto-1DadZkGPFweChHsrapESaWdv1uALs99J_m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>6. Bi\u1ec3u \u0111\u1ed3 Tri\u1ec3n khai (C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng \u0110\u00e1m m\u00e2y)<\/h3>\n<p><strong>Kh\u00e1i ni\u1ec7m:<\/strong>\u00a0Hi\u1ec3n th\u1ecb vi\u1ec7c tri\u1ec3n khai v\u1eadt l\u00fd c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ea7n m\u1ec1m tr\u00ean ph\u1ea7n c\u1ee9ng.<\/p>\n<p id=\"OjibqnO\"><img loading=\"lazy\" alt=\"Deployment Diagram (Cloud Infrastructure) by VP Chatbot and VPasCode Platform\" class=\"alignnone wp-image-919 size-full\" decoding=\"async\" height=\"867\" loading=\"lazy\" sizes=\"auto, (max-width: 1918px) 100vw, 1918px\" src=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66ab9f5775f.png\" srcset=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66ab9f5775f.png 1918w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66ab9f5775f-300x136.png 300w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66ab9f5775f-1024x463.png 1024w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66ab9f5775f-768x347.png 768w, https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66ab9f5775f-1536x694.png 1536w\" width=\"1918\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PL0z3u8m4DsRz3zSEkd0ucm8X3gu6HcOAxqOadwb519Z-EyM0QjnktVllNjtL_H1-31eHKdeWaBWw9HzQ3G1U2VkNcXAA35M8h1AsK72nTkna-XXLpRrdi6J4e15SAeES3Pnf6bn9G1Qgvqryq3Mu0rgz2Dw1gA721S4n_nFMphthOtmHpkbr2klFs5I174JVUpojNgxDv3CqtnMMY3ByXH1IKgRYSrDIO56ncUz0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VL2zRi8m4DujvHq-PQ832tE5eD2X0mnD9MRZM2HgSeaI1mbLJ0oiL7s0DfLGktMlnw2-Xzy49mMoCPtkxlkx6-IAPwg88uUfK4KITw7HcmA7LwFVy9JL7U4vuA7374Q9B-5EW-e3eg05XFdTfpZigZ96N7skq1dEl1iNBmu3_i4FP1r8IDoFUgS5898uJKYIWZkfoXL4OFGNPdBkWkTrzMIsb1bk-zVmHd_R3BxHUreqn66QNeYMjxw4U1nxrhkHyhdYSvxRuUYlH6xqUwtmWyXUkYqQcV4PSb9PCzP6wdRxhGzh7UlvcSW6adpxqoC0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Bi\u1ec3u \u0111\u1ed3 Tri\u1ec3n khai\r\n\r\nnode \"Nh\u00e0 cung c\u1ea5p \u0110\u00e1m m\u00e2y (AWS)\" {\r\n  node \"Instance EC2\" {\r\n    component \"M\u00e1y ch\u1ee7 Web\" as WebServer &lt;&gt;\r\n    component \"M\u00e1y ch\u1ee7 \u1ee8ng d\u1ee5ng\" as AppServer &lt;&gt;\n  }\n  node \"RDS\" {\n    database \"C\u01a1 s\u1edf d\u1eef li\u1ec7u\" as Database &lt;&gt;\n  }\n}\n\nWebServer --&gt; AppServer\nAppServer --&gt; Database\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VL2zRi8m4DujvHq-PQ832tE5eD2X0mnD9MRZM2HgSeaI1mbLJ0oiL7s0DfLGktMlnw2-Xzy49mMoCPtkxlkx6-IAPwg88uUfK4KITw7HcmA7LwFVy9JL7U4vuA7374Q9B-5EW-e3eg05XFdTfpZigZ96N7skq1dEl1iNBmu3_i4FP1r8IDoFUgS5898uJKYIWZkfoXL4OFGNPdBkWkTrzMIsb1bk-zVmHd_R3BxHUreqn66QNeYMjxw4U1nxrhkHyhdYSvxRuUYlH6xqUwtmWyXUkYqQcV4PSb9PCzP6wdRxhGzh7UlvcSW6adpxqoC0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PL0z3u8m4DsRz3zSEkd0ucm8X3gu6HcOAxqOadwb519Z-EyM0QjnktVllNjtL_H1-31eHKdeWaBWw9HzQ3G1U2VkNcXAA35M8h1AsK72nTkna-XXLpRrdi6J4e15SAeES3Pnf6bn9G1Qgvqryq3Mu0rgz2Dw1gA721S4n_nFMphthOtmHpkbr2klFs5I174JVUpojNgxDv3CqtnMMY3ByXH1IKgRYSrDIO56ncUz0000\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h2>Danh s\u00e1ch tham kh\u1ea3o M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i<\/h2>\n<ol>\n<li><a href=\"https:\/\/chat.visual-paradigm.com\/\">Chatbot M\u00f4 h\u00ecnh h\u00f3a Tr\u1ef1c quan AI c\u1ee7a Visual Paradigm<\/a><\/li>\n<li><a href=\"https:\/\/ai.visual-paradigm.com\/tool\/opendocs\/\">OpenDocs: Qu\u1ea3n l\u00fd tri th\u1ee9c c\u1ed9ng t\u00e1c<\/a><\/li>\n<li><a href=\"https:\/\/plantuml.com\/\">Trang ch\u00ednh th\u1ee9c c\u1ee7a PlantUML<\/a><\/li>\n<li><a href=\"https:\/\/c4model.com\/\">T\u00e0i li\u1ec7u M\u00f4 h\u00ecnh C4<\/a><\/li>\n<li><a href=\"https:\/\/online.visual-paradigm.com\/unified-platform\/\">N\u1ec1n t\u1ea3ng Th\u1ed1ng nh\u1ea5t c\u1ee7a Visual Paradigm<\/a><\/li>\n<li><a href=\"https:\/\/ai.visual-paradigm.com\/tool\/ai-powered-c4-plantuml-studio\">Studio C4 PlantUML \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi AI<\/a><\/li>\n<li><a href=\"https:\/\/guides.visual-paradigm.com\/visual-paradigm-ai-diagram-generation-guide\/\">H\u01b0\u1edbng d\u1eabn c\u1ee7a Visual Paradigm: T\u1ea1o bi\u1ec3u \u0111\u1ed3 b\u1eb1ng AI<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>C\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i ph\u00e1t tri\u1ec3n m\u1ea1nh nh\u1edd t\u1ed1c \u0111\u1ed9, s\u1ef1 c\u1ed9ng t\u00e1c v\u00e0 giao ti\u1ebfp r\u00f5 r\u00e0ng. M\u00f4 h\u00ecnh h\u00f3a UML truy\u1ec1n th\u1ed1ng th\u01b0\u1eddng c\u1ea3n tr\u1edf ti\u1ebfn \u0111\u1ed9&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","inline_featured_image":false,"source_url":"","fifu_image_url":"","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"","footnotes":""},"categories":[1],"tags":[],"asset-category":[],"class_list":["post-509","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"source_url":"","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML - AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News<\/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:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML - AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News\" \/>\n<meta property=\"og:description\" content=\"C\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i ph\u00e1t tri\u1ec3n m\u1ea1nh nh\u1edd t\u1ed1c \u0111\u1ed9, s\u1ef1 c\u1ed9ng t\u00e1c v\u00e0 giao ti\u1ebfp r\u00f5 r\u00e0ng. M\u00f4 h\u00ecnh h\u00f3a UML truy\u1ec1n th\u1ed1ng th\u01b0\u1eddng c\u1ea3n tr\u1edf ti\u1ebfn \u0111\u1ed9&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-27T00:31:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/person\/7799982e6b83f10fb8a41071b61608d1\"},\"headline\":\"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML\",\"datePublished\":\"2026-07-27T00:31:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\"},\"wordCount\":2561,\"publisher\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"vi\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\",\"url\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\",\"name\":\"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML - AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News\",\"isPartOf\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png\",\"datePublished\":\"2026-07-27T00:31:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage\",\"url\":\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png\",\"contentUrl\":\"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.ai-diagrams.com\/vn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#website\",\"url\":\"https:\/\/www.ai-diagrams.com\/vn\/\",\"name\":\"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.ai-diagrams.com\/vn\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#organization\",\"name\":\"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News\",\"url\":\"https:\/\/www.ai-diagrams.com\/vn\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.ai-diagrams.com\/vn\/wp-content\/uploads\/sites\/25\/2026\/03\/ai-diagram-logo.png\",\"contentUrl\":\"https:\/\/www.ai-diagrams.com\/vn\/wp-content\/uploads\/sites\/25\/2026\/03\/ai-diagram-logo.png\",\"width\":648,\"height\":648,\"caption\":\"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News\"},\"image\":{\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/person\/7799982e6b83f10fb8a41071b61608d1\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.ai-diagrams.com\/vn\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML - AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News","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:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/","og_locale":"vi_VN","og_type":"article","og_title":"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML - AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News","og_description":"C\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i ph\u00e1t tri\u1ec3n m\u1ea1nh nh\u1edd t\u1ed1c \u0111\u1ed9, s\u1ef1 c\u1ed9ng t\u00e1c v\u00e0 giao ti\u1ebfp r\u00f5 r\u00e0ng. M\u00f4 h\u00ecnh h\u00f3a UML truy\u1ec1n th\u1ed1ng th\u01b0\u1eddng c\u1ea3n tr\u1edf ti\u1ebfn \u0111\u1ed9&hellip;","og_url":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/","og_site_name":"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News","article_published_time":"2026-07-27T00:31:57+00:00","og_image":[{"url":"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png","type":"","width":"","height":""}],"author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":false,"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"7 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#article","isPartOf":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/"},"author":{"name":"curtis","@id":"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/person\/7799982e6b83f10fb8a41071b61608d1"},"headline":"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML","datePublished":"2026-07-27T00:31:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/"},"wordCount":2561,"publisher":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/#organization"},"image":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png","articleSection":["Uncategorized"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/","url":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/","name":"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML - AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News","isPartOf":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png","datePublished":"2026-07-27T00:31:57+00:00","breadcrumb":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#primaryimage","url":"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png","contentUrl":"https:\/\/www.ai-diagrams.com\/wp-content\/uploads\/2026\/07\/img_6a66a6fa4dd82.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ai-diagrams.com\/vn\/uml-modeling-for-modern-agile-teams-a-plantuml-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ai-diagrams.com\/vn\/"},{"@type":"ListItem","position":2,"name":"M\u00f4 h\u00ecnh h\u00f3a UML cho c\u00e1c \u0111\u1ed9i Agile hi\u1ec7n \u0111\u1ea1i: H\u01b0\u1edbng d\u1eabn PlantUML"}]},{"@type":"WebSite","@id":"https:\/\/www.ai-diagrams.com\/vn\/#website","url":"https:\/\/www.ai-diagrams.com\/vn\/","name":"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News","description":"","publisher":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ai-diagrams.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.ai-diagrams.com\/vn\/#organization","name":"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News","url":"https:\/\/www.ai-diagrams.com\/vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/logo\/image\/","url":"https:\/\/www.ai-diagrams.com\/vn\/wp-content\/uploads\/sites\/25\/2026\/03\/ai-diagram-logo.png","contentUrl":"https:\/\/www.ai-diagrams.com\/vn\/wp-content\/uploads\/sites\/25\/2026\/03\/ai-diagram-logo.png","width":648,"height":648,"caption":"AI Diagrams Ti\u1ebfng Vi\u1ec7t\u2013 Explore Artificial Intelligence Trends &amp; News"},"image":{"@id":"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/person\/7799982e6b83f10fb8a41071b61608d1","name":"curtis","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.ai-diagrams.com\/vn\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.ai-diagrams.com\/vn\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/posts\/509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/comments?post=509"}],"version-history":[{"count":0,"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/posts\/509\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/media?parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/categories?post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/tags?post=509"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.ai-diagrams.com\/vn\/wp-json\/wp\/v2\/asset-category?post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}