{"id":1922,"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-2\/"},"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-2","status":"publish","type":"post","link":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\/","title":{"rendered":"PlantUML bao nhi\u00eau tu\u1ed5i? L\u1ecbch s\u1eed, s\u1ef1 ph\u00e1t tri\u1ec3n v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a bi\u1ec3u \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3"},"content":{"rendered":"<p><strong>PlantUML \u0111\u00e3 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 tu\u1ed5i v\u00e0 v\u1eabn l\u00e0 m\u1ed9t trong nh\u1eefng c\u00f4ng ngh\u1ec7 m\u00e3 ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng r\u1ed9ng r\u00e3i nh\u1ea5t trong l\u0129nh v\u1ef1c bi\u1ec3u \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 trong ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m. \u0110\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 t\u1ea1o bi\u1ec3u \u0111\u1ed3 Ng\u00f4n ng\u1eef m\u00f4 h\u00ecnh h\u00f3a th\u1ed1ng nh\u1ea5t (UML) t\u1eeb c\u00e1c \u0111o\u1ea1n m\u00e3 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 <strong>tr\u00ecnh so\u1ea1n th\u1ea3o UML mi\u1ec5n ph\u00ed<\/strong> ho\u1eb7c m\u1ed9t c\u00f4ng c\u1ee5 tr\u1ef1c tuy\u1ebfn <strong>c\u00f4ng c\u1ee5 UML<\/strong> \u0111\u1ec3 th\u1ef1c thi c\u00e1c \u0111o\u1ea1n m\u00e3 PlantUML, c\u00e1c c\u00f4ng c\u1ee5 web hi\u1ec7n \u0111\u1ea1i \u0111\u00e3 ph\u00e1t tri\u1ec3n \u0111\u1ec3 t\u1ea1o h\u00ecnh nhanh h\u01a1n v\u00e0 kh\u00f4ng c\u1ea7n c\u1ea5u h\u00ecnh ban \u0111\u1ea7u.<\/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 nh\u1eb1m 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 so\u1ea1n th\u1ea3o tr\u1ef1c quan. B\u1eb1ng c\u00e1ch chuy\u1ec3n \u0111\u1ed5i c\u00fa ph\u00e1p v\u0103n b\u1ea3n \u0111\u01a1n gi\u1ea3n th\u00e0nh c\u00e1c m\u00f4 h\u00ecnh tr\u1ef1c quan c\u00f3 c\u1ea5u tr\u00fac th\u00f4ng qua Graphviz, PlantUML \u0111\u00e3 gi\u1edbi thi\u1ec7u m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p l\u1eadp tr\u00ecnh \u0111\u01b0\u1ee3c, c\u00f3 th\u1ec3 ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n cho t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt.<\/p>\n<h3>1.1 C\u00e2u chuy\u1ec7n kh\u1edfi ngu\u1ed3n: \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 nh\u1eb1m mang c\u00e1c nguy\u00ean t\u1eafc c\u1ee7a ng\u00f4n ng\u1eef chuy\u00ean d\u1ee5ng (DSL) v\u00e0o thi\u1ebft k\u1ebf ph\u1ea7n m\u1ec1m. Thay v\u00ec k\u00e9o v\u00e0 th\u1ea3 c\u00e1c h\u00ecnh d\u1ea1ng l\u00ean 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 b\u1eb1ng 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 m\u1ed1c ph\u00e1t h\u00e0nh v\u00e0 s\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a PlantUML (2009 \u2013 Hi\u1ec7n t\u1ea1i)<\/h3>\n<table>\n<thead>\n<tr>\n<th>N\u0103m<\/th>\n<th>M\u1ed1c ph\u00e1t h\u00e0nh<\/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>Phi\u00ean b\u1ea3n 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, 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 Bi\u1ec3u \u0111\u1ed3 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>Bi\u1ec3u \u0111\u1ed3 phi-UML<\/td>\n<td>M\u1edf r\u1ed9ng sang B\u1ea3n \u0111\u1ed3 t\u01b0 duy, WBS (C\u1ea5u tr\u00fac ph\u00e2n r\u00e3 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 \u0111\u1ecbnh ngh\u0129a ki\u1ebfn tr\u00fac C4 Model v\u00e0 ArchiMate std 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<\/td>\n<td>\u0110\u01b0\u1ee3c \u00e1p d\u1ee5ng v\u00e0o c\u00e1c tr\u00ecnh render g\u1ed1c \u0111\u00e1m m\u00e2y, ti\u1ec7n \u00edch m\u1edf r\u1ed9ng IDE v\u00e0 tr\u00ecnh so\u1ea1n th\u1ea3o m\u00e3 AI d\u1ef1a tr\u00ean tr\u00ecnh duy\u1ec7t.<\/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>M\u00f4 h\u00ecnh h\u00f3a truy\u1ec1n th\u1ed1ng ph\u1ee5 thu\u1ed9c v\u00e0o c\u00e1c c\u00f4ng c\u1ee5 GUI c\u0169 k\u1ef9 l\u01b0u tr\u1eef s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi \u0111\u1ecbnh d\u1ea1ng nh\u1ecb ph\u00e2n ri\u00eang bi\u1ec7t ho\u1eb7c XML ph\u1ee9c t\u1ea1p. PlantUML \u0111\u00e3 l\u1ea5p \u0111\u1ea7y kho\u1ea3ng c\u00e1ch gi\u1eefa c\u00e1c kho m\u00e3 ngu\u1ed3n v\u00e0 t\u00e0i li\u1ec7u ki\u1ebfn tr\u00fac.<\/p>\n<h3>2.1 S\u1ef1 thay \u0111\u1ed5i 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\u00ednh th\u00e2n thi\u1ec7n v\u1edbi Git:<\/strong>C\u00e1c \u0111o\u1ea1n m\u00e3 s\u01a1 \u0111\u1ed3 d\u1ef1a tr\u00ean v\u0103n b\u1ea3n c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n, g\u1eedi v\u00e0 h\u1ee3p nh\u1ea5t th\u00f4ng qua c\u00e1c y\u00eau c\u1ea7u k\u00e9o ti\u00eau chu\u1ea9n.<\/li>\n<li><strong>B\u1ed1 c\u1ee5c t\u1ef1 \u0111\u1ed9ng:<\/strong>\u0110\u1ed9ng c\u01a1 hi\u1ec3n th\u1ecb t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd c\u0103n ch\u1ec9nh c\u00e1c th\u00e0nh ph\u1ea7n v\u00e0 \u0111\u1ecbnh tuy\u1ebfn \u0111\u01b0\u1eddng n\u1ed1i.<\/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 trong s\u01a1 \u0111\u1ed3 h\u1ec7 th\u1ed1ng ph\u1ee9c t\u1ea1p ch\u1ec9 c\u1ea7n 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 tu\u1ed5i, PlantUML v\u1eabn l\u00e0 ti\u00eau chu\u1ea9n v\u00e0ng nh\u1edd v\u00e0o 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 quy tr\u00ecnh l\u00e0m vi\u1ec7c truy\u1ec1n th\u1ed1ng c\u1ee7a PlantUML 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 c\u1ea5u tr\u00fac th\u1ef1c thi c\u1ee5c b\u1ed9 truy\u1ec1n th\u1ed1ng g\u00e2y ra s\u1ef1 c\u1ea3n tr\u1edf k\u1ef9 thu\u1eadt \u0111\u1ed1i v\u1edbi c\u00e1c \u0111\u1ed9i ph\u00e1t tri\u1ec3n hi\u1ec7n \u0111\u1ea1i.<\/p>\n<h3>3.1 V\u1ea5n \u0111\u1ec1 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 c\u1ee5c b\u1ed9 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 th\u1ef1c thi 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 bao b\u1ecdc d\u00f2ng l\u1ec7nh.<\/li>\n<\/ul>\n<p>L\u1ed7i \u0111\u01b0\u1eddng d\u1eabn ch\u00e9o n\u1ec1n t\u1ea3ng, thi\u1ebfu ph\u1ee5 thu\u1ed9c Java v\u00e0 c\u00e1c phi\u00ean b\u1ea3n Graphviz kh\u00f4ng kh\u1edbp th\u01b0\u1eddng g\u00e2y l\u1ed7i hi\u1ec3n th\u1ecb trong qu\u00e1 tr\u00ecnh thi\u1ebft l\u1eadp c\u1ee5c b\u1ed9.<\/p>\n<h3>3.2 Kh\u00f3 kh\u0103n h\u1ecdc t\u1eadp: G\u1ee1 l\u1ed7i c\u00fa ph\u00e1p ph\u1ee9c t\u1ea1p v\u00e0 l\u1ed7i \u0111\u1ecbnh d\u1ea1ng<\/h3>\n<p>Khi ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng ph\u00e1t tri\u1ec3n, c\u00e1c \u0111o\u1ea1n m\u00e3 PlantUML tr\u1edf n\u00ean d\u00e0i d\u00f2ng. M\u1ed9t d\u1ea5u ngo\u1eb7c nh\u1ecdn thi\u1ebfu s\u00f3t ho\u1eb7c c\u00fa ph\u00e1p m\u0169i t\u00ean sai c\u00f3 th\u1ec3 khi\u1ebfn to\u00e0n b\u1ed9 kh\u1ed1i hi\u1ec3n th\u1ecb th\u1ea5t b\u1ea1i 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 ph\u00e1t tri\u1ec3n t\u00e0i li\u1ec7u.<\/p>\n<hr\/>\n<h2>4. S\u1ef1 ti\u1ebfn h\u00f3a hi\u1ec7n \u0111\u1ea1i c\u1ee7a m\u00f4 h\u00ecnh s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3<\/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 t\u1eeb \u0111\u00e1m m\u00e2y, kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t, 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 \u0111o\u1ea1n m\u00e3 nh\u1edd c\u00e1c c\u00f4ng c\u1ee5 bi\u00ean d\u1ecbch hi\u1ec7n \u0111\u1ea1i v\u00e0 tr\u00ed tu\u1ec7 nh\u00e2n t\u1ea1o.<\/p>\n<h3>4.1 Hi\u1ec3n th\u1ecb \u0111\u00e1m m\u00e2y kh\u00f4ng r\u1eafc r\u1ed1i: Lo\u1ea1i b\u1ecf vi\u1ec7c thi\u1ebft l\u1eadp c\u1ee5c b\u1ed9<\/h3>\n<p>C\u00e1c \u0111\u1ed9ng c\u01a1 th\u1ef1c thi d\u1ef1a tr\u00ean tr\u00ecnh duy\u1ec7t lo\u1ea1i b\u1ecf 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 ch\u1ec9nh s\u1eeda PlantUML d\u1ef1a tr\u00ean web<strong>tr\u00ecnh ch\u1ec9nh s\u1eeda PlantUML mi\u1ec5n ph\u00ed<\/strong>v\u00e0 ngay l\u1eadp t\u1ee9c ki\u1ec3m tra \u0111\u1ea7u ra SVG ho\u1eb7c PNG \u0111\u00e3 \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb.<\/p>\n<h3>4.2 T\u0103ng s\u1ee9c m\u1ea1nh cho PlantUML v\u1edbi vi\u1ec7c s\u1eeda l\u1ed7i b\u1eb1ng AI v\u00e0 xem tr\u01b0\u1edbc th\u1eddi gian th\u1ef1c<\/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\/overview\/\" rel=\"noopener\" target=\"_blank\">Visual Paradigm VPasCode<\/a> t\u1ed1i \u01b0u h\u00f3a quy tr\u00ecnh l\u00e0m bi\u1ec3u \u0111\u1ed3 b\u1eb1ng m\u00e3 b\u1eb1ng c\u00e1ch th\u1ed1ng nh\u1ea5t vi\u1ec7c hi\u1ec3n th\u1ecb v\u00e0 qu\u1ea3n l\u00fd c\u00fa ph\u00e1p trong tr\u00ecnh ch\u1ec9nh s\u1eeda tr\u00ecnh duy\u1ec7t:<\/p>\n<ul>\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 \u2014 ho\u1eb7c c\u00e1c DSL thay th\u1ebf \u2014 v\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 th\u1eddi gian th\u1ef1c:<\/strong>C\u00e1c h\u00ecnh \u1ea3nh \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb \u0111\u1ed9ng song song ngay khi b\u1ea1n g\u00f5 ho\u1eb7c \u0111i\u1ec1u ch\u1ec9nh \u0111o\u1ea1n m\u00e3 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\u1ea5n 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 chi ti\u1ebft so s\u00e1nh song song.<\/li>\n<li><strong>D\u1ecbch thu\u1eadt v\u00e0 xu\u1ea5t b\u1ea3n t\u00edch h\u1ee3p:<\/strong> D\u1ecbch nh\u00e3n bi\u1ec3u \u0111\u1ed3 sang nhi\u1ec1u ng\u00f4n ng\u1eef tr\u1ef1c ti\u1ebfp trong tr\u00ecnh ch\u1ec9nh s\u1eeda 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<hr\/>\n<h2>5. V\u01b0\u1ee3t xa 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 \u0111\u1ed9i ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i hi\u1ebfm khi th\u1ed1ng nh\u1ea5t m\u1ed9t \u0111\u1ecbnh d\u1ea1ng bi\u1ec3u \u0111\u1ed3 duy nh\u1ea5t. C\u00e1c \u0111\u1ed9i \u0111a ng\u00f4n ng\u1eef th\u01b0\u1eddng s\u1eed d\u1ee5ng c\u00e1c DSL kh\u00e1c nhau t\u00f9y theo 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 hay c\u00e1c 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>D\u00f9ng t\u1ed1t 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 chu\u1ea9n UML s\u00e2u r\u1ed9ng v\u00e0 c\u00e1c t\u00f9y ch\u1ecdn c\u00fa ph\u00e1p \u0111\u00e3 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 m\u00e3, s\u01a1 \u0111\u1ed3 lu\u1ed3ng \u0111\u01a1n gi\u1ea3n<\/td>\n<td>Hi\u1ec3n th\u1ecb t\u00edch h\u1ee3p 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 tr\u00ed 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 gi\u1eefa c\u00e1c tr\u00ecnh hi\u1ec3n th\u1ecb chuy\u00ean bi\u1ec7t kh\u00e1c nhau, <a href=\"https:\/\/vpascode.com\/overview\" 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 li\u00ean k\u1ebft tr\u1ef1c ti\u1ebfp ho\u1eb7c xu\u1ea5t tr\u1ef1c ti\u1ebfp l\u00ean 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 v\u1eabn \u0111ang \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt th\u01b0\u1eddng xuy\u00ean kh\u00f4ng?<\/h3>\n<p>C\u00f3, PlantUML \u0111\u01b0\u1ee3c duy tr\u00ec t\u00edch c\u1ef1c b\u1edfi c\u1ed9ng \u0111\u1ed3ng m\u00e3 ngu\u1ed3n m\u1edf c\u1ee7a n\u00f3, nh\u1eadn \u0111\u01b0\u1ee3c c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt \u0111\u1ecbnh k\u1ef3 cho c\u00e1c t\u00ednh n\u0103ng m\u1edbi, b\u1ea3n v\u00e1 b\u1ea3o m\u1eadt v\u00e0 c\u1ea3i ti\u1ebfn c\u00fa ph\u00e1p.<\/p>\n<h3>6.2 T\u00f4i c\u00f3 th\u1ec3 hi\u1ec3n th\u1ecb s\u01a1 \u0111\u1ed3 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 tr\u00ecnh ch\u1ec9nh s\u1eeda UML mi\u1ec5n ph\u00ed d\u1ef1a tr\u00ean web<strong>tr\u00ecnh ch\u1ec9nh s\u1eeda UML mi\u1ec5n ph\u00ed<\/strong> nh\u01b0<a href=\"https:\/\/vpascode.com\" rel=\"noopener\" target=\"_blank\">VPasCode<\/a>\u0111\u1ec3 d\u00e1n, ch\u1ec9nh s\u1eeda, hi\u1ec3n th\u1ecb v\u00e0 xu\u1ea5t s\u01a1 \u0111\u1ed3 PlantUML ho\u00e0n to\u00e0n b\u00ean trong tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t c\u1ee5c b\u1ed9 n\u00e0o.<\/p>\n<h2>T\u00e0i nguy\u00ean li\u00ean quan<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.vpascode.com\/\u00a0\">S\u00e2n ch\u01a1i t\u01b0\u01a1ng t\u00e1c VPasCode c\u1ee7a Visual Paradigm<\/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\/overview\/\">T\u1ed5ng quan v\u1ec1 VPasCode<\/a>: T\u00ecm hi\u1ec3u th\u00eam v\u1ec1 VPasCode<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>PlantUML \u0111\u00e3 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 17 tu\u1ed5i v\u00e0 v\u1eabn l\u00e0 m\u1ed9t trong nh\u1eefng c\u00f4ng ngh\u1ec7 m\u00e3 ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng r\u1ed9ng&#8230;<\/p>\n","protected":false},"author":4,"featured_media":1923,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"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":""}},"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[22],"tags":[],"class_list":["post-1922","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-insights"],"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-2\/\" \/>\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-2\/\" \/>\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-1.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=\"5 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-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\\\/\"},\"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 ph\u00e1t tri\u1ec3n v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a bi\u1ec3u \u0111\u1ed3 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-2\\\/\"},\"wordCount\":2487,\"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-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-1.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-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\\\/\",\"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-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-1.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-2\\\/#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-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/08\\\/plantuml-history-and-evolution-hero-banner-1.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-2\\\/#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 ph\u00e1t tri\u1ec3n v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a bi\u1ec3u \u0111\u1ed3 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-2\/","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-2\/","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-1.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":"5 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-2\/#article","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\/"},"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 ph\u00e1t tri\u1ec3n v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a bi\u1ec3u \u0111\u1ed3 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-2\/"},"wordCount":2487,"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-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-1.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-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\/","url":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\/","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-2\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-1.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-2\/#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-2\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/how-old-is-plantuml-history-evolution-and-the-future-of-diagram-as-code-2\/#primaryimage","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-1.jpg","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/08\/plantuml-history-and-evolution-hero-banner-1.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-2\/#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 ph\u00e1t tri\u1ec3n v\u00e0 t\u01b0\u01a1ng lai c\u1ee7a bi\u1ec3u \u0111\u1ed3 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\/1922","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=1922"}],"version-history":[{"count":0,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/1922\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media\/1923"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=1922"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/categories?post=1922"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/tags?post=1922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}