{"id":659,"date":"2026-02-25T10:21:41","date_gmt":"2026-02-25T10:21:41","guid":{"rendered":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/"},"modified":"2026-02-25T10:21:41","modified_gmt":"2026-02-25T10:21:41","slug":"refactoring-a-broken-dfd-step-by-step","status":"publish","type":"docs","link":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/","title":{"rendered":"Refactoring a Broken DFD: A Step-by-Step Walkthrough"},"content":{"rendered":"<p>There\u2019s a quiet tension in any room where a DFD is presented. Not from disagreement, but from subtle unease. The diagram looks familiar\u2014boxes, arrows, labels\u2014but something feels off. The flows don\u2019t quite connect. The processes seem to do more than they\u2019re supposed to. This isn\u2019t a bad diagram by accident. It\u2019s a symptom of a deeper issue: a model that was never balanced, never validated, and never truly understood.<\/p>\n<p>Over two decades in systems analysis taught me this: the most dangerous DFDs aren\u2019t the ones with missing symbols\u2014they\u2019re the ones that *look* correct but carry hidden contradictions. In this chapter, I\u2019ll walk through a real refactoring DFD example from a recent project where a Level 1 diagram was so cluttered and inconsistent that stakeholders lost trust in the entire data model.<\/p>\n<p>What you\u2019ll learn here isn\u2019t just theory. It\u2019s how I approach fixing bad data flow diagrams in real projects: identifying root problems, applying DFD refactor step by step, and communicating changes effectively. By the end, you\u2019ll have a clear blueprint for turning a chaotic DFD into a trusted, maintainable artifact.<\/p>\n<h2>Step 1: Diagnose the Problem\u2014What\u2019s Broken?<\/h2>\n<p>The first rule of DFD refactoring is: never fix what you haven\u2019t diagnosed. I start by asking three questions:<\/p>\n<ul>\n<li>Is the diagram\u2019s scope clearly defined?<\/li>\n<li>Do inputs and outputs balance between levels?<\/li>\n<li>Are process names meaningful, or just placeholders?<\/li>\n<\/ul>\n<p>Here\u2019s the DFD I reviewed: a Level 1 model for a customer order processing system. It contained 12 processes, 17 data flows, and 3 data stores. The context diagram had already defined the system boundary, but this one looked like a spaghetti junction of logic.<\/p>\n<p>The immediate red flags were:<\/p>\n<ul>\n<li>One process labeled &#8220;Handle everything&#8221; with five input flows and six outputs.<\/li>\n<li>External entities connected directly to data stores\u2014violating the core DFD rule that only processes can interact with data stores.<\/li>\n<li>Identical data flows with different names across diagrams, even though they referenced the same customer record.<\/li>\n<\/ul>\n<p>These weren\u2019t just notation errors\u2014they were evidence of a broken feedback loop between business intent and technical modeling. The team had built a model that looked like it worked but didn\u2019t reflect actual data movement.<\/p>\n<h2>Step 2: Prioritize Fixes Based on Risk and Impact<\/h2>\n<p>Not all mistakes are equal. I use a simple priority matrix to decide which issues to fix first. The goal is to restore trust before adding new detail.<\/p>\n<table>\n<tbody>\n<tr>\n<th>Issue<\/th>\n<th>Impact<\/th>\n<th>Prioritization<\/th>\n<\/tr>\n<tr>\n<td>External entity \u2192 data store connection<\/td>\n<td>High (violates DFD fundamentals)<\/td>\n<td>Immediate<\/td>\n<\/tr>\n<tr>\n<td>Unclear process name: &#8220;Handle everything&#8221;<\/td>\n<td>High (blocks communication)<\/td>\n<td>Immediate<\/td>\n<\/tr>\n<tr>\n<td>Missing data flow from &#8220;Validate Order&#8221; to &#8220;Send Confirmation&#8221;<\/td>\n<td>Medium (breaks traceability)<\/td>\n<td>High<\/td>\n<\/tr>\n<tr>\n<td>Overlapping lines, poor layout<\/td>\n<td>Low (affects readability only)<\/td>\n<td>Low<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>I tackled the high-impact issues first. The external entity to data store link was a non-starter\u2014it implied a customer could modify inventory without processing. That\u2019s not just wrong\u2014it\u2019s a compliance risk.<\/p>\n<h3>Fix: Remove Illegal Data Flows<\/h3>\n<p>I removed the direct connection between the &#8220;Customer&#8221; entity and the &#8220;Inventory&#8221; data store. Instead, I inserted a new process: &#8220;Update Inventory After Order.&#8221; This new process is now the only one that can modify inventory.<\/p>\n<p>This change wasn\u2019t cosmetic. It restored the principle that only processes can act upon data stores. It also made the flow of control clear: a user places an order \u2192 the system processes it \u2192 only then is inventory updated.<\/p>\n<h2>Step 3: Break Down Monolithic Processes<\/h2>\n<p>One process labeled \u201cHandle everything\u201d was absorbing 40% of the flows. It was a black box with no defined inputs or outputs. This is a classic case of under-decomposition.<\/p>\n<p>I broke it into three smaller, focused processes:<\/p>\n<ul>\n<li><strong>Validate Order Details<\/strong>: checks validity, pricing, and customer eligibility.<\/li>\n<li><strong>Check Inventory Availability<\/strong>: queries inventory data store and returns stock levels.<\/li>\n<li><strong>Prepare Order for Fulfillment<\/strong>: creates order record and triggers notification.<\/li>\n<\/ul>\n<p>Each now has clear inputs and outputs, and they\u2019re connected in a logical sequence. The new structure makes it easier to test, debug, and assign ownership.<\/p>\n<h3>The Power of Specificity<\/h3>\n<p>As I rewrote the process descriptions, I used a simple rule: every process name should start with a verb and end with a noun. &#8220;Validate Order Details&#8221; is clear. &#8220;Handle Everything&#8221; is not.<\/p>\n<p>It\u2019s not just about clarity\u2014it\u2019s about accountability. When a process is named precisely, the team knows who owns it. No more \u201csomeone in the backend\u201d doing something mysterious.<\/p>\n<h2>Step 4: Enforce Consistency with a Lightweight Data Dictionary<\/h2>\n<p>One of the biggest issues in the original DFD was inconsistent naming. \u201cCustomer Record\u201d in one place, \u201cCustomer Info\u201d in another, and \u201cUser Data\u201d in a third\u2014referring to the same entity.<\/p>\n<p>I created a two-column data dictionary:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Data Element<\/th>\n<th>Definition<\/th>\n<\/tr>\n<tr>\n<td>Customer Record<\/td>\n<td>Unique identifier, name, address, and contact details for a registered user.<\/td>\n<\/tr>\n<tr>\n<td>Order Summary<\/td>\n<td>List of items, quantities, unit prices, and total cost for a transaction.<\/td>\n<\/tr>\n<tr>\n<td>Inventory Level<\/td>\n<td>Current number of units available for sale, updated after order confirmation.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Now, every data flow in the DFD references only one standardized name. This prevents ambiguity and makes it easier to trace data across levels.<\/p>\n<h2>Step 5: Apply DFD Refactor Step by Step<\/h2>\n<p>At this point, the diagram was structurally sound but still visually overwhelming. I applied these refinements:<\/p>\n<ol>\n<li><strong>Repositioned elements<\/strong> to follow a left-to-right flow: input \u2192 processing \u2192 output.<\/li>\n<li><strong>Used consistent spacing<\/strong> and aligned process boxes in columns.<\/li>\n<li><strong>Minimized line crossings<\/strong> by reorganizing clusters of processes.<\/li>\n<li><strong>Grouped related flows<\/strong> and added subtle visual separation.<\/li>\n<\/ol>\n<p>These changes didn\u2019t alter the logic. They made it visible. A well-laid-out DFD doesn\u2019t just show a process\u2014it tells a story.<\/p>\n<h2>Step 6: Validate the Final Model<\/h2>\n<p>Before declaring the DFD fixed, I ran a simple validation:<\/p>\n<ul>\n<li>Every process in Level 0 (the parent diagram) now has a corresponding, properly decomposed child process in Level 1.<\/li>\n<li>Inputs and outputs match: no data appears or disappears without explanation.<\/li>\n<li>Names are consistent with the data dictionary.<\/li>\n<li>Only processes can interact with data stores.<\/li>\n<\/ul>\n<p>This is what I call the &#8220;three-second test&#8221;: a new team member should be able to glance at the diagram and understand the core flow in under three seconds.<\/p>\n<h2>Communicating Changes to Stakeholders<\/h2>\n<p>Fixing a DFD isn\u2019t just about the model\u2014it\u2019s about trust. I always accompany a refactored DFD with a short change log:<\/p>\n<ul>\n<li>Fixed illegal data flow from Customer to Inventory data store.<\/li>\n<li>Split \u201cHandle everything\u201d into three distinct processes for clarity and traceability.<\/li>\n<li>Standardized naming using the Data Dictionary (e.g., &#8220;Customer Record&#8221; instead of &#8220;Customer Info&#8221;).<\/li>\n<li>Reorganized layout to improve readability and flow.<\/li>\n<\/ul>\n<p>Stakeholders don\u2019t need to understand every technical detail. They just need to know: \u201cWhy was this changed?\u201d and \u201cWhat\u2019s better now?\u201d<\/p>\n<h2>Frequently Asked Questions<\/h2>\n<h3>How do I know if I should refactor or start over?<\/h3>\n<p>If more than half the processes are unclear or misaligned, and stakeholders can\u2019t follow the flow, a complete rewrite makes more sense. But if the structure is sound and only a few key fixes are needed, incremental refactoring saves time and preserves context.<\/p>\n<h3>Can I use the same DFD for both business and technical teams?<\/h3>\n<p>No. A single DFD can\u2019t serve both. Use a high-level version for business stakeholders (focus on flow and actors) and a detailed, process-oriented version for developers. Link them with traceability.<\/p>\n<h3>Is it really necessary to fix minor labeling issues?<\/h3>\n<p>Yes. A vague name like &#8220;Process Data&#8221; might seem harmless, but it leads to confusion in reviews, testing, and onboarding. A clear name like &#8220;Calculate Tax&#8221; ensures everyone understands the intent.<\/p>\n<h3>How often should I revisit and refactor a DFD?<\/h3>\n<p>At every major change: requirements update, system redesign, or incident that reveals data flow gaps. Treat DFDs as living artifacts, not one-off deliverables.<\/p>\n<h3>What if stakeholders resist the changes?<\/h3>\n<p>Explain that the changes aren\u2019t about style\u2014they\u2019re about reducing risk. Show how the old diagram allowed data to \u201cdisappear,\u201d and how the new one prevents that. Use real examples from your domain.<\/p>\n<h3>How do I prevent these mistakes in the future?<\/h3>\n<p>Use a DFD check-in checklist after each model update. Include: balancing, consistent naming, process decomposition, and data store rules. I\u2019ve made mine a template in my modeling tool\u2014so it\u2019s never forgotten.<\/p>\n<p>Improving existing DFDs isn\u2019t about perfection. It\u2019s about consistency, clarity, and trust. A well-refactored DFD doesn\u2019t just show how data moves\u2014it tells a story stakeholders can believe in.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There\u2019s a quiet tension in any room where a DFD is presented. Not from disagreement, but from subtle unease. The diagram looks familiar\u2014boxes, arrows, labels\u2014but something feels off. The flows don\u2019t quite connect. The processes seem to do more than they\u2019re supposed to. This isn\u2019t a bad diagram by accident. It\u2019s a symptom of a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":658,"menu_order":0,"template":"","meta":{"_acf_changed":false,"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":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","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":""}},"footnotes":""},"doc_tag":[],"class_list":["post-659","docs","type-docs","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Refactoring a Broken DFD: A Step-by-Step Walkthrough<\/title>\n<meta name=\"description\" content=\"Learn how to fix a broken DFD with a real-world refactoring DFD example. Follow a practical DFD refactor step by step to improve clarity, consistency, and stakeholder alignment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Refactoring a Broken DFD: A Step-by-Step Walkthrough\" \/>\n<meta property=\"og:description\" content=\"Learn how to fix a broken DFD with a real-world refactoring DFD example. Follow a practical DFD refactor step by step to improve clarity, consistency, and stakeholder alignment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Skills Indonesia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/\",\"url\":\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/\",\"name\":\"Refactoring a Broken DFD: A Step-by-Step Walkthrough\",\"isPartOf\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/#website\"},\"datePublished\":\"2026-02-25T10:21:41+00:00\",\"description\":\"Learn how to fix a broken DFD with a real-world refactoring DFD example. Follow a practical DFD refactor step by step to improve clarity, consistency, and stakeholder alignment.\",\"breadcrumb\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/skills.visual-paradigm.com\/id\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Common DFD Mistakes and How to Avoid Them\",\"item\":\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"From Bad Diagrams to Better Practice\",\"item\":\"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Refactoring a Broken DFD: A Step-by-Step Walkthrough\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/#website\",\"url\":\"https:\/\/skills.visual-paradigm.com\/id\/\",\"name\":\"Visual Paradigm Skills Indonesia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/skills.visual-paradigm.com\/id\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/#organization\",\"name\":\"Visual Paradigm Skills Indonesia\",\"url\":\"https:\/\/skills.visual-paradigm.com\/id\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/skills.visual-paradigm.com\/id\/wp-content\/uploads\/sites\/7\/2026\/02\/favicon.svg\",\"contentUrl\":\"https:\/\/skills.visual-paradigm.com\/id\/wp-content\/uploads\/sites\/7\/2026\/02\/favicon.svg\",\"width\":70,\"height\":70,\"caption\":\"Visual Paradigm Skills Indonesia\"},\"image\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/id\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Refactoring a Broken DFD: A Step-by-Step Walkthrough","description":"Learn how to fix a broken DFD with a real-world refactoring DFD example. Follow a practical DFD refactor step by step to improve clarity, consistency, and stakeholder alignment.","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:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/","og_locale":"id_ID","og_type":"article","og_title":"Refactoring a Broken DFD: A Step-by-Step Walkthrough","og_description":"Learn how to fix a broken DFD with a real-world refactoring DFD example. Follow a practical DFD refactor step by step to improve clarity, consistency, and stakeholder alignment.","og_url":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/","og_site_name":"Visual Paradigm Skills Indonesia","twitter_card":"summary_large_image","twitter_misc":{"Estimasi waktu membaca":"7 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/","url":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/","name":"Refactoring a Broken DFD: A Step-by-Step Walkthrough","isPartOf":{"@id":"https:\/\/skills.visual-paradigm.com\/id\/#website"},"datePublished":"2026-02-25T10:21:41+00:00","description":"Learn how to fix a broken DFD with a real-world refactoring DFD example. Follow a practical DFD refactor step by step to improve clarity, consistency, and stakeholder alignment.","breadcrumb":{"@id":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/refactoring-a-broken-dfd-step-by-step\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skills.visual-paradigm.com\/id\/"},{"@type":"ListItem","position":2,"name":"Common DFD Mistakes and How to Avoid Them","item":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/"},{"@type":"ListItem","position":3,"name":"From Bad Diagrams to Better Practice","item":"https:\/\/skills.visual-paradigm.com\/id\/docs\/common-dfd-mistakes-and-how-to-avoid-them\/improving-bad-dfd\/"},{"@type":"ListItem","position":4,"name":"Refactoring a Broken DFD: A Step-by-Step Walkthrough"}]},{"@type":"WebSite","@id":"https:\/\/skills.visual-paradigm.com\/id\/#website","url":"https:\/\/skills.visual-paradigm.com\/id\/","name":"Visual Paradigm Skills Indonesia","description":"","publisher":{"@id":"https:\/\/skills.visual-paradigm.com\/id\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skills.visual-paradigm.com\/id\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/skills.visual-paradigm.com\/id\/#organization","name":"Visual Paradigm Skills Indonesia","url":"https:\/\/skills.visual-paradigm.com\/id\/","logo":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/skills.visual-paradigm.com\/id\/#\/schema\/logo\/image\/","url":"https:\/\/skills.visual-paradigm.com\/id\/wp-content\/uploads\/sites\/7\/2026\/02\/favicon.svg","contentUrl":"https:\/\/skills.visual-paradigm.com\/id\/wp-content\/uploads\/sites\/7\/2026\/02\/favicon.svg","width":70,"height":70,"caption":"Visual Paradigm Skills Indonesia"},"image":{"@id":"https:\/\/skills.visual-paradigm.com\/id\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/docs\/659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/docs\/659\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/docs\/658"}],"wp:attachment":[{"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/media?parent=659"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/skills.visual-paradigm.com\/id\/wp-json\/wp\/v2\/doc_tag?post=659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}