{"id":2254,"date":"2026-08-02T11:18:59","date_gmt":"2026-08-02T11:18:59","guid":{"rendered":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/"},"modified":"2026-08-02T11:18:59","modified_gmt":"2026-08-02T11:18:59","slug":"how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code","status":"publish","type":"post","link":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/","title":{"rendered":"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3"},"content":{"rendered":"<h1>PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3<\/h1>\n<p><strong>PlantUML ch\u00ednh th\u1ee9c \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh v\u00e0o ng\u00e0y 17 th\u00e1ng 4 n\u0103m 2009.<\/strong>\u0110\u01b0\u1ee3c t\u1ea1o ra b\u1edfi Arnaud Roques, PlantUML \u0111\u00e3 h\u01a1n 17 n\u0103m tu\u1ed5i v\u00e0 v\u1eabn l\u00e0 m\u1ed9t trong nh\u1eefng c\u00f4ng ngh\u1ec7 m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3 ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng r\u1ed9ng r\u00e3i nh\u1ea5t trong ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m. \u0110\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 hi\u1ec3n th\u1ecb c\u00e1c bi\u1ec3u \u0111\u1ed3 Ng\u00f4n ng\u1eef M\u00f4 h\u00ecnh h\u00f3a Th\u1ed1ng nh\u1ea5t (UML) t\u1eeb c\u00e1c k\u1ecbch b\u1ea3n v\u0103n b\u1ea3n thu\u1ea7n t\u00fay, n\u00f3 \u0111\u00e3 thay \u0111\u1ed5i c\u0103n b\u1ea3n c\u00e1ch c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n t\u00e0i li\u1ec7u h\u00f3a c\u00e1c h\u1ec7 th\u1ed1ng ph\u1ea7n m\u1ec1m. N\u1ebfu b\u1ea1n \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t c\u00f4ng c\u1ee5 ch\u1ec9nh s\u1eeda UML hi\u1ec7u qu\u1ea3,<strong>tr\u00ecnh ch\u1ec9nh s\u1eeda UML mi\u1ec5n ph\u00ed<\/strong>ho\u1eb7c m\u1ed9t c\u00f4ng c\u1ee5 UML tr\u1ef1c tuy\u1ebfn<strong>c\u00f4ng c\u1ee5 UML<\/strong>\u0111\u1ec3 th\u1ef1c thi c\u00e1c k\u1ecbch b\u1ea3n PlantUML, c\u00e1c c\u00f4ng c\u1ee5 web hi\u1ec7n \u0111\u1ea1i \u0111\u00e3 ph\u00e1t tri\u1ec3n \u0111\u1ec3 gi\u00fap vi\u1ec7c hi\u1ec3n th\u1ecb nhanh h\u01a1n, kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t v\u00e0 \u0111\u01b0\u1ee3c t\u0103ng c\u01b0\u1eddng v\u1edbi c\u00e1c kh\u1ea3 n\u0103ng AI b\u1ea3n \u0111\u1ecba.<\/p>\n<p><img fetchpriority=\"high\" alt=\"A visual timeline infographic illustrating the evolution of PlantUML, from its core release in 2009 to a modern diagram-as-code editor workflow with instant rendering.\" class=\"alignnone size-full wp-image-1717\" decoding=\"async\" fetchpriority=\"high\" height=\"816\" sizes=\"(max-width: 1312px) 100vw, 1312px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/plantuml-history-and-evolution-hero-banner.jpg\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/plantuml-history-and-evolution-hero-banner.jpg 1312w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/plantuml-history-and-evolution-hero-banner-300x187.jpg 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/plantuml-history-and-evolution-hero-banner-1024x637.jpg 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/plantuml-history-and-evolution-hero-banner-768x478.jpg 768w\" width=\"1312\"\/><\/p>\n<hr \/>\n<h2>1. C\u00e2u tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn: PlantUML bao nhi\u00eau tu\u1ed5i?<\/h2>\n<p>PlantUML l\u1ea7n \u0111\u1ea7u ti\u00ean \u0111\u01b0\u1ee3c ra m\u1eaft v\u00e0o th\u00e1ng 4 n\u0103m 2009 \u0111\u1ec3 gi\u1ea3i quy\u1ebft m\u1ed9t v\u1ea5n \u0111\u1ec1 k\u1ef9 thu\u1eadt c\u1ee5 th\u1ec3: lo\u1ea1i b\u1ecf kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c th\u1ee7 c\u00f4ng khi v\u1ebd bi\u1ec3u \u0111\u1ed3 trong c\u00e1c tr\u00ecnh ch\u1ec9nh s\u1eeda tr\u1ef1c quan. B\u1eb1ng c\u00e1ch chuy\u1ec3n \u0111\u1ed5i c\u00fa ph\u00e1p v\u0103n b\u1ea3n thu\u1ea7n t\u00fay \u0111\u01a1n gi\u1ea3n th\u00e0nh c\u00e1c m\u00f4 h\u00ecnh tr\u1ef1c quan c\u00f3 c\u1ea5u tr\u00fac b\u1eb1ng Graphviz, PlantUML \u0111\u00e3 gi\u1edbi thi\u1ec7u m\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn l\u1eadp tr\u00ecnh, c\u00f3 th\u1ec3 ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n \u0111\u1ed1i v\u1edbi t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt.<\/p>\n<h3>1.1 C\u00e2u chuy\u1ec7n ngu\u1ed3n g\u1ed1c: \u0110\u01b0\u1ee3c ph\u00e1t h\u00e0nh v\u00e0o ng\u00e0y 17 th\u00e1ng 4 n\u0103m 2009<\/h3>\n<p>N\u0103m 2009, ng\u01b0\u1eddi s\u00e1ng t\u1ea1o Arnaud Roques \u0111\u00e3 c\u00f4ng b\u1ed1 PlantUML \u0111\u1ec3 mang c\u00e1c nguy\u00ean t\u1eafc c\u1ee7a ng\u00f4n ng\u1eef chuy\u00ean d\u1ee5ng (DSL) \u0111\u1ebfn thi\u1ebft k\u1ebf ph\u1ea7n m\u1ec1m. Thay v\u00ec k\u00e9o v\u00e0 th\u1ea3 c\u00e1c h\u00ecnh d\u1ea1ng tr\u00ean m\u1ed9t b\u1ea3ng v\u1ebd, c\u00e1c k\u1ef9 s\u01b0 c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a c\u00e1c m\u1ed1i quan h\u1ec7 trong m\u00e3, cho ph\u00e9p b\u1ed1 c\u1ee5c bi\u1ec3u \u0111\u1ed3 \u0111\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng t\u1ea1o ra.<\/p>\n<h3>1.2 C\u00e1c c\u1ed9t m\u1ed1c ph\u00e1t h\u00e0nh v\u00e0 s\u1ef1 ti\u1ebfn h\u00f3a c\u1ee7a PlantUML (2009\u2013Hi\u1ec7n t\u1ea1i)<\/h3>\n<table>\n<thead>\n<tr>\n<th>N\u0103m<\/th>\n<th>C\u1ed9t m\u1ed1c<\/th>\n<th>T\u00e1c \u0111\u1ed9ng ki\u1ebfn tr\u00fac<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>2009<\/strong><\/td>\n<td>Ra m\u1eaft ban \u0111\u1ea7u<\/td>\n<td>Gi\u1edbi thi\u1ec7u c\u00fa ph\u00e1p c\u01a1 b\u1ea3n cho bi\u1ec3u \u0111\u1ed3 Chu\u1ed7i, Bi\u1ec3u \u0111\u1ed3 Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng v\u00e0 Bi\u1ec3u \u0111\u1ed3 L\u1edbp d\u1ef1a tr\u00ean Java v\u00e0 Graphviz.<\/td>\n<\/tr>\n<tr>\n<td><strong>2012\u20132015<\/strong><\/td>\n<td>M\u1edf r\u1ed9ng DSL<\/td>\n<td>Th\u00eam h\u1ed7 tr\u1ee3 cho c\u00e1c \u0111\u1ecbnh d\u1ea1ng Ho\u1ea1t \u0111\u1ed9ng, Tr\u1ea1ng th\u00e1i, Th\u00e0nh ph\u1ea7n, Tri\u1ec3n khai v\u00e0 ERD.<\/td>\n<\/tr>\n<tr>\n<td><strong>2018<\/strong><\/td>\n<td>Tr\u1ef1c quan h\u00f3a phi-UML<\/td>\n<td>M\u1edf r\u1ed9ng sang B\u1ea3n \u0111\u1ed3 t\u01b0 duy, WBS (C\u1ea5u tr\u00fac ph\u00e2n chia c\u00f4ng vi\u1ec7c) v\u00e0 bi\u1ec3u \u0111\u1ed3 Gantt.<\/td>\n<\/tr>\n<tr>\n<td><strong>2021+<\/strong><\/td>\n<td>Khung ki\u1ebfn tr\u00fac<\/td>\n<td>T\u00edch h\u1ee3p ki\u1ebfn tr\u00fac M\u00f4 h\u00ecnh C4 v\u00e0 c\u00e1c \u0111\u1ecbnh ngh\u0129a chu\u1ea9n ArchiMate v\u00e0o c\u00fa ph\u00e1p c\u1ed1t l\u00f5i.<\/td>\n<\/tr>\n<tr>\n<td><strong>Hi\u1ec7n t\u1ea1i<\/strong><\/td>\n<td>T\u00edch h\u1ee3p \u0111\u00e1m m\u00e2y v\u00e0 AI b\u1ea3n \u0111\u1ecba<\/td>\n<td>Vi\u1ec7c \u00e1p d\u1ee5ng v\u00e0o c\u00e1c b\u1ed9 renderers g\u1ed1c \u0111\u00e1m m\u00e2y, ti\u1ec7n \u00edch m\u1edf r\u1ed9ng IDE v\u00e0 c\u00e1c tr\u00ecnh so\u1ea1n th\u1ea3o m\u00e3 AI d\u1ef1a tr\u00ean tr\u00ecnh duy\u1ec7t v\u1edbi kh\u1ea3 n\u0103ng t\u1ea1o m\u00e3 d\u1ef1a tr\u00ean l\u1eddi nh\u1eafc.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>2. T\u1ea1i sao PlantUML \u0111\u01b0\u1ee3c t\u1ea1o ra (v\u00e0 nh\u1eefng v\u1ea5n \u0111\u1ec1 c\u1ed1t l\u00f5i m\u00e0 n\u00f3 gi\u1ea3i quy\u1ebft)<\/h2>\n<p>Vi\u1ec7c m\u00f4 h\u00ecnh h\u00f3a truy\u1ec1n th\u1ed1ng d\u1ef1a tr\u00ean c\u00e1c c\u00f4ng c\u1ee5 GUI c\u0169 l\u01b0u tr\u1eef s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng nh\u1ecb ph\u00e2n \u0111\u1ed9c quy\u1ec1n ho\u1eb7c \u0111\u1ecbnh d\u1ea1ng XML ph\u1ee9c t\u1ea1p. PlantUML \u0111\u00e3 l\u1ea5p \u0111\u1ea7y kho\u1ea3ng c\u00e1ch gi\u1eefa c\u00e1c kho l\u01b0u tr\u1eef m\u00e3 v\u00e0 t\u00e0i li\u1ec7u ki\u1ebfn tr\u00fac.<\/p>\n<h3>2.1 S\u1ef1 chuy\u1ec3n d\u1ecbch m\u00f4 h\u00ecnh: T\u1eeb c\u00e1c c\u00f4ng c\u1ee5 GUI n\u1eb7ng n\u1ec1 sang v\u0103n b\u1ea3n \u0111\u01b0\u1ee3c ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n<\/h3>\n<ul>\n<li><strong>T\u01b0\u01a1ng th\u00edch v\u1edbi Git:<\/strong>C\u00e1c k\u1ecbch b\u1ea3n s\u01a1 \u0111\u1ed3 d\u1ef1a tr\u00ean v\u0103n b\u1ea3n c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd phi\u00ean b\u1ea3n, cam k\u1ebft v\u00e0 h\u1ee3p nh\u1ea5t th\u00f4ng qua c\u00e1c Pull Request ti\u00eau chu\u1ea9n.<\/li>\n<li><strong>B\u1ed1 c\u1ee5c t\u1ef1 \u0111\u1ed9ng:<\/strong>B\u1ed9 m\u00e1y render t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd vi\u1ec7c c\u0103n ch\u1ec9nh c\u00e1c ph\u1ea7n t\u1eed v\u00e0 \u0111\u1ecbnh tuy\u1ebfn \u0111\u01b0\u1eddng k\u1ebb.<\/li>\n<li><strong>T\u1ed1c \u0111\u1ed9 t\u00e1i c\u1ea5u tr\u00fac:<\/strong>Vi\u1ec7c \u0111\u1ed5i t\u00ean m\u1ed9t l\u1edbp ho\u1eb7c d\u1ecbch v\u1ee5 tr\u00ean m\u1ed9t s\u01a1 \u0111\u1ed3 h\u1ec7 th\u1ed1ng ph\u1ee9c t\u1ea1p ch\u1ec9 \u0111\u00f2i h\u1ecfi m\u1ed9t thao t\u00e1c t\u00ecm ki\u1ebfm v\u00e0 thay th\u1ebf v\u0103n b\u1ea3n \u0111\u01a1n gi\u1ea3n.<\/li>\n<\/ul>\n<h3>2.2 T\u1ea1i sao c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n v\u1eabn d\u1ef1a v\u00e0o PlantUML ng\u00e0y nay<\/h3>\n<p>M\u1eb7c d\u00f9 \u0111\u00e3 g\u1ea7n hai th\u1eadp k\u1ef7, PlantUML v\u1eabn l\u00e0 ti\u00eau chu\u1ea9n v\u00e0ng nh\u1edd h\u1ec7 sinh th\u00e1i kh\u1ed5ng l\u1ed3, h\u1ed7 tr\u1ee3 c\u00e1c \u0111\u1eb7c t\u1ea3 UML to\u00e0n di\u1ec7n v\u00e0 t\u00edch h\u1ee3p s\u00e2u v\u00e0o c\u00e1c quy tr\u00ecnh x\u00e2y d\u1ef1ng, h\u1ec7 th\u1ed1ng CI\/CD v\u00e0 c\u00e1c n\u1ec1n t\u1ea3ng t\u00e0i li\u1ec7u d\u00e0nh cho nh\u00e0 ph\u00e1t tri\u1ec3n.<\/p>\n<hr \/>\n<h2>3. Nh\u1eefng th\u00e1ch th\u1ee9c c\u1ee7a c\u00e1c quy tr\u00ecnh l\u00e0m vi\u1ec7c PlantUML truy\u1ec1n th\u1ed1ng ng\u00e0y nay<\/h2>\n<p>M\u1eb7c d\u00f9 ng\u00f4n ng\u1eef PlantUML v\u1eabn m\u1ea1nh m\u1ebd, vi\u1ec7c qu\u1ea3n l\u00fd b\u1ed9 m\u00e1y th\u1ef1c thi c\u1ee5c b\u1ed9 truy\u1ec1n th\u1ed1ng c\u1ee7a n\u00f3 t\u1ea1o ra c\u00e1c r\u00e0o c\u1ea3n k\u1ef9 thu\u1eadt cho c\u00e1c \u0111\u1ed9i ng\u0169 ph\u00e1t tri\u1ec3n hi\u1ec7n \u0111\u1ea1i.<\/p>\n<h3>3.1 R\u00e0o c\u1ea3n m\u00f4i tr\u01b0\u1eddng c\u1ee5c b\u1ed9: Graphviz, Java v\u00e0 c\u00e1c ph\u1ee5 thu\u1ed9c CLI<\/h3>\n<p>Ch\u1ea1y PlantUML t\u1ea1i ch\u1ed7 th\u01b0\u1eddng y\u00eau c\u1ea7u c\u00e0i \u0111\u1eb7t v\u00e0 c\u1ea5u h\u00ecnh:<\/p>\n<ul>\n<li>M\u00f4i tr\u01b0\u1eddng ch\u1ea1y Java (JRE).<\/li>\n<li>Graphviz (\u0111\u1ed9ng c\u01a1 Dot) \u0111\u1ec3 t\u00ednh to\u00e1n b\u1ed1 c\u1ee5c.<\/li>\n<li>C\u00e1c ti\u1ec7n \u00edch m\u1edf r\u1ed9ng IDE ho\u1eb7c c\u00e1c l\u1edbp bao b\u1ecdc d\u00f2ng l\u1ec7nh.<\/li>\n<\/ul>\n<p>C\u00e1c l\u1ed7i \u0111\u01b0\u1eddng d\u1eabn \u0111a n\u1ec1n t\u1ea3ng, thi\u1ebfu ph\u1ee5 thu\u1ed9c Java v\u00e0 phi\u00ean b\u1ea3n Graphviz kh\u00f4ng kh\u1edbp th\u01b0\u1eddng xuy\u00ean g\u00e2y ra l\u1ed7i render trong qu\u00e1 tr\u00ecnh thi\u1ebft l\u1eadp c\u1ee5c b\u1ed9.<\/p>\n<h3>3.2 \u0110\u01b0\u1eddng cong h\u1ecdc t\u1eadp: G\u1ee1 l\u1ed7i c\u00fa ph\u00e1p v\u00e0 l\u1ed7i \u0111\u1ecbnh d\u1ea1ng ph\u1ee9c t\u1ea1p<\/h3>\n<p>Khi ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng ph\u00e1t tri\u1ec3n, c\u00e1c k\u1ecbch b\u1ea3n PlantUML tr\u1edf n\u00ean d\u00e0i d\u00f2ng. M\u1ed9t d\u1ea5u ngo\u1eb7c nh\u1ecdn b\u1ecb thi\u1ebfu ho\u1eb7c c\u00fa ph\u00e1p m\u0169i t\u00ean kh\u00f4ng ch\u00ednh x\u00e1c c\u00f3 th\u1ec3 khi\u1ebfn to\u00e0n b\u1ed9 kh\u1ed1i render b\u1ecb l\u1ed7i m\u00e0 kh\u00f4ng c\u00f3 ph\u1ea3n h\u1ed3i tr\u1ef1c quan r\u00f5 r\u00e0ng theo t\u1eebng d\u00f2ng, l\u00e0m ch\u1eadm t\u1ed1c \u0111\u1ed9 t\u1ea1o t\u00e0i li\u1ec7u.<\/p>\n<hr \/>\n<h2>4. S\u1ef1 ti\u1ebfn h\u00f3a hi\u1ec7n \u0111\u1ea1i c\u1ee7a s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 v\u00e0 t\u00edch h\u1ee3p AI<\/h2>\n<p>C\u00e1c quy tr\u00ecnh l\u00e0m vi\u1ec7c k\u1ef9 thu\u1eadt hi\u1ec7n \u0111\u1ea1i \u01b0a chu\u1ed9ng c\u00e1c c\u00f4ng c\u1ee5 nh\u1eb9, truy c\u1eadp \u0111\u01b0\u1ee3c qua \u0111\u00e1m m\u00e2y, kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t, gi\u00fap lo\u1ea1i b\u1ecf c\u00e1c r\u00e0o c\u1ea3n thi\u1ebft l\u1eadp c\u1ee5c b\u1ed9 \u0111\u1ed3ng th\u1eddi n\u00e2ng cao kh\u1ea3 n\u0103ng ch\u1ec9nh s\u1eeda k\u1ecbch b\u1ea3n v\u1edbi c\u00e1c tr\u00ecnh bi\u00ean d\u1ecbch hi\u1ec7n \u0111\u1ea1i v\u00e0 kh\u1ea3 n\u0103ng AI b\u1ea3n \u0111\u1ecba.<\/p>\n<h3>4.1 Render \u0111\u00e1m m\u00e2y kh\u00f4ng r\u00e0o c\u1ea3n: Lo\u1ea1i b\u1ecf thi\u1ebft l\u1eadp c\u1ee5c b\u1ed9<\/h3>\n<p>C\u00e1c c\u00f4ng c\u1ee5 th\u1ef1c thi d\u1ef1a tr\u00ean tr\u00ecnh duy\u1ec7t lo\u1ea1i b\u1ecf c\u00e1c y\u00eau c\u1ea7u h\u1ec7 th\u1ed1ng Java\/Graphviz c\u1ee5c b\u1ed9. C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 d\u00e1n m\u00e3 th\u00f4 v\u00e0o m\u1ed9t tr\u00ecnh<strong>tr\u00ecnh so\u1ea1n th\u1ea3o PlantUML mi\u1ec5n ph\u00ed<\/strong>v\u00e0 ngay l\u1eadp t\u1ee9c ki\u1ec3m tra c\u00e1c \u0111\u1ea7u ra SVG ho\u1eb7c PNG \u0111\u00e3 \u0111\u01b0\u1ee3c render.<\/p>\n<h3>4.2 T\u0103ng c\u01b0\u1eddng PlantUML v\u1edbi kh\u1ea3 n\u0103ng t\u1ea1o m\u00e3 v\u00e0 s\u1eeda l\u1ed7i AI b\u1ea3n \u0111\u1ecba<\/h3>\n<p><img alt=\"User interface of Visual Paradigm VPasCode editing ArchiMate diagram\" class=\"alignnone wp-image-1718 size-full\" decoding=\"async\" height=\"900\" sizes=\"(max-width: 1400px) 100vw, 1400px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a6f276876aba.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a6f276876aba.png 1400w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a6f276876aba-300x193.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a6f276876aba-1024x658.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/08\/img_6a6f276876aba-768x494.png 768w\" width=\"1400\"\/><\/p>\n<p>C\u00e1c n\u1ec1n t\u1ea3ng nh\u01b0 <a href=\"https:\/\/www.vpascode.com\/\" rel=\"noopener\" target=\"_blank\">Visual Paradigm VPasCode<\/a> \u0111\u01a1n gi\u1ea3n h\u00f3a quy tr\u00ecnh s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 b\u1eb1ng c\u00e1ch th\u1ed1ng nh\u1ea5t vi\u1ec7c hi\u1ec3n th\u1ecb, qu\u1ea3n l\u00fd c\u00fa ph\u00e1p v\u00e0 <a href=\"https:\/\/updates.visual-paradigm.com\/releases\/vpascode-ai-diagram-generation-code-modification-update\/\" rel=\"noopener\" target=\"_blank\">t\u1ea1o s\u01a1 \u0111\u1ed3 b\u1eb1ng AI<\/a>trong tr\u00ecnh so\u1ea1n th\u1ea3o tr\u00ean tr\u00ecnh duy\u1ec7t:<\/p>\n<ul>\n<li><strong>T\u1ea1o s\u01a1 \u0111\u1ed3 t\u1eeb l\u1eddi nh\u1eafc:<\/strong>Nh\u1eadp m\u1ed9t l\u1eddi nh\u1eafc b\u1eb1ng ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean\u2014ch\u1eb3ng h\u1ea1n nh\u01b0 <em>\u201cT\u1ea1o s\u01a1 \u0111\u1ed3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng b\u1eb1ng PlantUML cho h\u1ec7 th\u1ed1ng ATM\u201d<\/em>\u2014\u0111\u1ec3 t\u1ea1o m\u00e3 v\u00e0 hi\u1ec3n th\u1ecb ki\u1ebfn tr\u00fac ngay l\u1eadp t\u1ee9c.<\/li>\n<li><strong>Ph\u00e1t hi\u1ec7n \u0111\u1ecbnh d\u1ea1ng t\u1ef1 \u0111\u1ed9ng:<\/strong>D\u00e1n m\u00e3 PlantUML ti\u00eau chu\u1ea9n\u2014ho\u1eb7c c\u00e1c ng\u00f4n ng\u1eef DSL thay th\u1ebf\u2014v\u00e0 VPasCode s\u1ebd t\u1ef1 \u0111\u1ed9ng nh\u1eadn di\u1ec7n ng\u00f4n ng\u1eef.<\/li>\n<li><strong>Xem tr\u01b0\u1edbc tr\u1ef1c ti\u1ebfp theo th\u1eddi gian th\u1ef1c:<\/strong>H\u00ecnh \u1ea3nh \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb \u0111\u1ed9ng song song khi b\u1ea1n g\u00f5 ho\u1eb7c \u0111i\u1ec1u ch\u1ec9nh k\u1ecbch b\u1ea3n c\u1ee7a m\u00ecnh.<\/li>\n<li><strong>S\u1eeda l\u1ed7i m\u00e3 b\u1eb1ng AI:<\/strong>G\u1eb7p l\u1ed7i c\u00fa ph\u00e1p? Nh\u1ea5p v\u00e0o <em>\u201cS\u1eeda b\u1eb1ng AI\u201d<\/em>\u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng s\u1eeda m\u00e3 b\u1ecb l\u1ed7i, k\u00e8m theo gi\u1ea3i th\u00edch so s\u00e1nh song song.<\/li>\n<li><strong>D\u1ecbch thu\u1eadt b\u1ea3n \u0111\u1ecba v\u00e0 xu\u1ea5t file:<\/strong>D\u1ecbch nh\u00e3n s\u01a1 \u0111\u1ed3 sang nhi\u1ec1u ng\u00f4n ng\u1eef tr\u1ef1c ti\u1ebfp trong tr\u00ecnh so\u1ea1n th\u1ea3o v\u00e0 xu\u1ea5t file PNG \u0111\u1ed9 ph\u00e2n gi\u1ea3i cao ho\u1eb7c SVG vector ngay l\u1eadp t\u1ee9c.<\/li>\n<\/ul>\n<p><em>(L\u01b0u \u00fd: C\u00e1c t\u00ednh n\u0103ng t\u1ea1o s\u01a1 \u0111\u1ed3, ch\u1ec9nh s\u1eeda v\u00e0 s\u1eeda l\u1ed7i n\u00e2ng cao b\u1eb1ng AI c\u00f3 s\u1eb5n trong Visual Paradigm Online Deluxe Edition \/ Visual Paradigm Desktop Professional Edition+).<\/em><\/p>\n<hr \/>\n<h2>5. V\u01b0\u1ee3t ra ngo\u00e0i PlantUML: H\u1ed7 tr\u1ee3 \u0111a \u0111\u1ecbnh d\u1ea1ng cho ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i<\/h2>\n<p>C\u00e1c nh\u00f3m ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i hi\u1ebfm khi chu\u1ea9n h\u00f3a tr\u00ean m\u1ed9t \u0111\u1ecbnh d\u1ea1ng s\u01a1 \u0111\u1ed3 duy nh\u1ea5t. C\u00e1c nh\u00f3m \u0111a ng\u00f4n ng\u1eef th\u01b0\u1eddng s\u1eed d\u1ee5ng c\u00e1c ng\u00f4n ng\u1eef DSL kh\u00e1c nhau t\u00f9y thu\u1ed9c v\u00e0o nhu c\u1ea7u t\u00e0i li\u1ec7u c\u1ee5 th\u1ec3.<\/p>\n<h3>5.1 Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng PlantUML so v\u1edbi Mermaid so v\u1edbi c\u00e1c ng\u00f4n ng\u1eef DSL ti\u00eau chu\u1ea9n<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u0110\u1ecbnh d\u1ea1ng \/ Ng\u00f4n ng\u1eef<\/th>\n<th>Ph\u00f9 h\u1ee3p nh\u1ea5t cho<\/th>\n<th>L\u1ee3i th\u1ebf ch\u00ednh<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>PlantUML<\/strong><\/td>\n<td>Thi\u1ebft k\u1ebf ph\u1ea7n m\u1ec1m ph\u1ee9c t\u1ea1p (L\u1edbp, Tr\u1ea1ng th\u00e1i, Chu\u1ed7i, C4)<\/td>\n<td>Ph\u1ea1m vi bao ph\u1ee7 ti\u00eau chu\u1ea9n UML s\u00e2u r\u1ed9ng v\u00e0 c\u00e1c t\u00f9y ch\u1ecdn c\u00fa ph\u00e1p tr\u01b0\u1edfng th\u00e0nh.<\/td>\n<\/tr>\n<tr>\n<td><strong>Mermaid<\/strong><\/td>\n<td>T\u00e0i li\u1ec7u Markdown trong kho l\u01b0u tr\u1eef, s\u01a1 \u0111\u1ed3 lu\u1ed3ng \u0111\u01a1n gi\u1ea3n<\/td>\n<td>Hi\u1ec3n th\u1ecb b\u1ea3n \u0111\u1ecba tr\u00ean c\u00e1c n\u1ec1n t\u1ea3ng nh\u01b0 GitHub\/GitLab.<\/td>\n<\/tr>\n<tr>\n<td><strong>Graphviz \/ Markmap<\/strong><\/td>\n<td>Bi\u1ec3u \u0111\u1ed3 m\u1ea1ng, s\u01a1 \u0111\u1ed3 t\u01b0 duy t\u1ef1 \u0111\u1ed9ng<\/td>\n<td>Kh\u1ea3 n\u0103ng b\u1ed1 c\u1ee5c t\u1ef1 \u0111\u1ed9ng to\u00e1n h\u1ecdc v\u01b0\u1ee3t tr\u1ed9i.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>5.2 X\u00e2y d\u1ef1ng t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt th\u1ed1ng nh\u1ea5t v\u1edbi VPasCode<\/h3>\n<p>Thay v\u00ec chuy\u1ec3n \u0111\u1ed5i qua l\u1ea1i gi\u1eefa c\u00e1c c\u00f4ng c\u1ee5 hi\u1ec3n th\u1ecb \u0111\u01a1n m\u1ee5c \u0111\u00edch kh\u00e1c nhau, <a href=\"https:\/\/www.vpascode.com\/\" rel=\"noopener\" target=\"_blank\">Visual Paradigm VPasCode<\/a>ho\u1ea1t \u0111\u1ed9ng nh\u01b0 m\u1ed9t trung t\u00e2m th\u1ed1ng nh\u1ea5t. N\u00f3 h\u1ed7 tr\u1ee3 PlantUML c\u00f9ng v\u1edbi Mermaid, Graphviz, ECharts, SQL v\u00e0 c\u00e1c \u0111\u1ecbnh d\u1ea1ng d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac nh\u01b0 JSON\/YAML. C\u00e1c bi\u1ec3u \u0111\u1ed3 ho\u00e0n ch\u1ec9nh c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c chia s\u1ebb qua URL tr\u1ef1c ti\u1ebfp ho\u1eb7c xu\u1ea5t b\u1ea3n tr\u1ef1c ti\u1ebfp v\u00e0o Visual Paradigm OpenDocs \u0111\u1ec3 b\u00e1o c\u00e1o k\u1ef9 thu\u1eadt to\u00e0n di\u1ec7n.<\/p>\n<hr \/>\n<h2>6. C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQ)<\/h2>\n<h3>6.1 PlantUML c\u00f3 c\u00f2n \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt t\u00edch c\u1ef1c kh\u00f4ng?<\/h3>\n<p>C\u00f3, PlantUML \u0111\u01b0\u1ee3c c\u1ed9ng \u0111\u1ed3ng m\u00e3 ngu\u1ed3n m\u1edf duy tr\u00ec t\u00edch c\u1ef1c, nh\u1eadn c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt th\u01b0\u1eddng xuy\u00ean cho t\u00ednh n\u0103ng m\u1edbi, v\u00e1 b\u1ea3o m\u1eadt v\u00e0 tinh ch\u1ec9nh c\u00fa ph\u00e1p.<\/p>\n<h3>6.2 T\u00f4i c\u00f3 th\u1ec3 hi\u1ec3n th\u1ecb PlantUML m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t Java hay Graphviz kh\u00f4ng?<\/h3>\n<p>C\u00f3. B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u1ed9t <strong>tr\u00ecnh ch\u1ec9nh s\u1eeda UML mi\u1ec5n ph\u00ed<\/strong> nh\u01b0 <a href=\"https:\/\/www.vpascode.com\/editor\/\" rel=\"noopener\" target=\"_blank\">VPasCode<\/a>\u0111\u1ec3 d\u00e1n, ch\u1ec9nh s\u1eeda, hi\u1ec3n th\u1ecb, y\u00eau c\u1ea7u AI v\u00e0 xu\u1ea5t c\u00e1c bi\u1ec3u \u0111\u1ed3 PlantUML ho\u00e0n to\u00e0n trong tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t c\u1ee5c b\u1ed9.<\/p>\n<h2>T\u00e0i nguy\u00ean li\u00ean quan<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.vpascode.com\/editor\/\">S\u00e2n ch\u01a1i t\u01b0\u01a1ng t\u00e1c Visual Paradigm VPasCode<\/a>: Th\u1eed nghi\u1ec7m Visual Paradigm VPasCode trong s\u00e2n ch\u01a1i t\u01b0\u01a1ng t\u00e1c VPasCode<\/li>\n<li><a href=\"https:\/\/www.vpascode.com\/\">T\u1ed5ng quan v\u1ec1 VPasCode<\/a>: T\u00ecm hi\u1ec3u th\u00eam v\u1ec1 VPasCode<\/li>\n<li><a href=\"https:\/\/updates.visual-paradigm.com\/releases\/vpascode-ai-diagram-generation-code-modification-update\/\">C\u1eadp nh\u1eadt l\u1edbn VPasCode: T\u1ea1o v\u00e0 ch\u1ec9nh s\u1eeda bi\u1ec3u \u0111\u1ed3 ngay l\u1eadp t\u1ee9c v\u1edbi AI<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3 PlantUML ch\u00ednh th\u1ee9c \u0111\u01b0\u1ee3c ph\u00e1t h\u00e0nh v\u00e0o ng\u00e0y 17 th\u00e1ng 4 n\u0103m 2009.\u0110\u01b0\u1ee3c t\u1ea1o ra b\u1edfi Arnaud Roques, PlantUML \u0111\u00e3 h\u01a1n&#8230;","protected":false},"author":4,"featured_media":2255,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"How Old is PlantUML? History, Timeline, and Modern UML Tools","_yoast_wpseo_metadesc":"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.","inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"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":[22],"tags":[],"asset-category":[],"class_list":["post-2254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-insights"],"source_url":"","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Old is PlantUML? History, Timeline, and Modern UML Tools<\/title>\n<meta name=\"description\" content=\"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.\" \/>\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.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Old is PlantUML? History, Timeline, and Modern UML Tools\" \/>\n<meta property=\"og:description\" content=\"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-02T11:18:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1312\" \/>\n\t<meta property=\"og:image:height\" content=\"816\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"jick\" \/>\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=\"6 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/\"},\"author\":{\"name\":\"jick\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/person\\\/cd8aa8455bd8bc6827b3efdfa79ad3a6\"},\"headline\":\"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3\",\"datePublished\":\"2026-08-02T11:18:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/\"},\"wordCount\":2700,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-2.jpg\",\"articleSection\":[\"Insights\"],\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/\",\"name\":\"How Old is PlantUML? History, Timeline, and Modern UML Tools\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-2.jpg\",\"datePublished\":\"2026-08-02T11:18:59+00:00\",\"description\":\"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-2.jpg\",\"width\":1312,\"height\":816},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/person\\\/cd8aa8455bd8bc6827b3efdfa79ad3a6\",\"name\":\"jick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"caption\":\"jick\"},\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/author\\\/jick\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Old is PlantUML? History, Timeline, and Modern UML Tools","description":"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.","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.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/","og_locale":"vi_VN","og_type":"article","og_title":"How Old is PlantUML? History, Timeline, and Modern UML Tools","og_description":"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.","og_url":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/","og_site_name":"VPasCode","article_published_time":"2026-08-02T11:18:59+00:00","og_image":[{"width":1312,"height":816,"url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-2.jpg","type":"image\/jpeg"}],"author":"jick","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":false,"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"6 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#article","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/"},"author":{"name":"jick","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/person\/cd8aa8455bd8bc6827b3efdfa79ad3a6"},"headline":"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3","datePublished":"2026-08-02T11:18:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/"},"wordCount":2700,"commentCount":0,"publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-2.jpg","articleSection":["Insights"],"inLanguage":"vi","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/","url":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/","name":"How Old is PlantUML? History, Timeline, and Modern UML Tools","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-2.jpg","datePublished":"2026-08-02T11:18:59+00:00","description":"Learn how old PlantUML is, its full release timeline, and how to render diagrams instantly using a modern, free PlantUML editor and UML tool.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#primaryimage","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-2.jpg","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-2.jpg","width":1312,"height":816},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/vn\/"},{"@type":"ListItem","position":2,"name":"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ti\u1ebfn h\u00f3a v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a m\u00f4 h\u00ecnh h\u00f3a d\u01b0\u1edbi d\u1ea1ng m\u00e3"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/vn\/#website","url":"https:\/\/www.vpascode.com\/vn\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/vn\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/person\/cd8aa8455bd8bc6827b3efdfa79ad3a6","name":"jick","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","caption":"jick"},"url":"https:\/\/www.vpascode.com\/vn\/author\/jick\/"}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/comments?post=2254"}],"version-history":[{"count":0,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2254\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media\/2255"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/categories?post=2254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/tags?post=2254"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/asset-category?post=2254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}