📌目录
- ⚖️ 结构化设计方法:面向数据流的设计技术
-
- 🎯 一、结构化设计方法概述
-
- (一)结构化设计方法的定义
- (二)结构化设计方法的特点
- (三)结构化设计方法的地位
- 📦 二、结构化设计方法的基本概念
-
- (一)数据流类型
- (二)变换型数据流
- (三)事务型数据流
- 🌐 三、结构化设计方法的步骤
-
- (一)设计步骤
- (二)数据流分析
- 📊 四、变换分析
-
- (一)变换分析的定义
- (二)变换分析步骤
- (三)变换分析实例
- (四)变换分析详解
- 💡 五、事务分析
-
- (一)事务分析的定义
- (二)事务分析步骤
- (三)事务分析实例
- (四)事务分析详解
- 📋 六、结构化设计方法的优化
-
- (一)优化目标
- (二)优化原则
- (三)优化策略
- (四)结构优化示例
- 📝 七、结构化设计方法实例
-
- (一)实例背景
- (二)数据流图
- (三)变换分析
- (四)详细设计
- 📝 总结

⚖️ 结构化设计方法:面向数据流的设计技术
结构化设计方法(Structured Design, SD)是由Yourdon和Constantine提出的一种面向数据流的软件设计方法。它将数据流图映射为软件结构,是概要设计阶段的重要设计方法。本文将详细介绍结构化设计方法的基本概念、设计步骤、变换分析和事务分析。

🎯 一、结构化设计方法概述
(一)结构化设计方法的定义
结构化设计方法(Structured Design, SD)是一种面向数据流的软件设计方法,它将数据流图映射为软件结构。
结构化设计概念:
#mermaid-svg-YLxxJK56VqaO8rPH{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-YLxxJK56VqaO8rPH .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-YLxxJK56VqaO8rPH .error-icon{fill:#552222;}#mermaid-svg-YLxxJK56VqaO8rPH .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YLxxJK56VqaO8rPH .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YLxxJK56VqaO8rPH .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YLxxJK56VqaO8rPH .marker.cross{stroke:#333333;}#mermaid-svg-YLxxJK56VqaO8rPH svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YLxxJK56VqaO8rPH p{margin:0;}#mermaid-svg-YLxxJK56VqaO8rPH .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-YLxxJK56VqaO8rPH .cluster-label text{fill:#333;}#mermaid-svg-YLxxJK56VqaO8rPH .cluster-label span{color:#333;}#mermaid-svg-YLxxJK56VqaO8rPH .cluster-label span p{background-color:transparent;}#mermaid-svg-YLxxJK56VqaO8rPH .label text,#mermaid-svg-YLxxJK56VqaO8rPH span{fill:#333;color:#333;}#mermaid-svg-YLxxJK56VqaO8rPH .node rect,#mermaid-svg-YLxxJK56VqaO8rPH .node circle,#mermaid-svg-YLxxJK56VqaO8rPH .node ellipse,#mermaid-svg-YLxxJK56VqaO8rPH .node polygon,#mermaid-svg-YLxxJK56VqaO8rPH .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YLxxJK56VqaO8rPH .rough-node .label text,#mermaid-svg-YLxxJK56VqaO8rPH .node .label text,#mermaid-svg-YLxxJK56VqaO8rPH .image-shape .label,#mermaid-svg-YLxxJK56VqaO8rPH .icon-shape .label{text-anchor:middle;}#mermaid-svg-YLxxJK56VqaO8rPH .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-YLxxJK56VqaO8rPH .rough-node .label,#mermaid-svg-YLxxJK56VqaO8rPH .node .label,#mermaid-svg-YLxxJK56VqaO8rPH .image-shape .label,#mermaid-svg-YLxxJK56VqaO8rPH .icon-shape .label{text-align:center;}#mermaid-svg-YLxxJK56VqaO8rPH .node.clickable{cursor:pointer;}#mermaid-svg-YLxxJK56VqaO8rPH .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-YLxxJK56VqaO8rPH .arrowheadPath{fill:#333333;}#mermaid-svg-YLxxJK56VqaO8rPH .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YLxxJK56VqaO8rPH .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YLxxJK56VqaO8rPH .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YLxxJK56VqaO8rPH .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-YLxxJK56VqaO8rPH .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YLxxJK56VqaO8rPH .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-YLxxJK56VqaO8rPH .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YLxxJK56VqaO8rPH .cluster text{fill:#333;}#mermaid-svg-YLxxJK56VqaO8rPH .cluster span{color:#333;}#mermaid-svg-YLxxJK56VqaO8rPH div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YLxxJK56VqaO8rPH .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-YLxxJK56VqaO8rPH rect.text{fill:none;stroke-width:0;}#mermaid-svg-YLxxJK56VqaO8rPH .icon-shape,#mermaid-svg-YLxxJK56VqaO8rPH .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YLxxJK56VqaO8rPH .icon-shape p,#mermaid-svg-YLxxJK56VqaO8rPH .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-YLxxJK56VqaO8rPH .icon-shape .label rect,#mermaid-svg-YLxxJK56VqaO8rPH .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YLxxJK56VqaO8rPH .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-YLxxJK56VqaO8rPH .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-YLxxJK56VqaO8rPH :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
结构化设计方法
数据流图
映射
软件结构
需求分析产出
模块结构图
(二)结构化设计方法的特点
方法特点:
| 面向数据流 | 以数据流为中心 |
| 自顶向下 | 从顶层开始设计 |
| 逐步求精 | 逐步细化设计 |
| 映射转换 | 数据流图映射为结构图 |
(三)结构化设计方法的地位
在设计方法中的地位:
#mermaid-svg-hWOsa2Rz86O6VqAS{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-hWOsa2Rz86O6VqAS .error-icon{fill:#552222;}#mermaid-svg-hWOsa2Rz86O6VqAS .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-hWOsa2Rz86O6VqAS .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-hWOsa2Rz86O6VqAS .marker{fill:#333333;stroke:#333333;}#mermaid-svg-hWOsa2Rz86O6VqAS .marker.cross{stroke:#333333;}#mermaid-svg-hWOsa2Rz86O6VqAS svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-hWOsa2Rz86O6VqAS p{margin:0;}#mermaid-svg-hWOsa2Rz86O6VqAS .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS .cluster-label text{fill:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS .cluster-label span{color:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS .cluster-label span p{background-color:transparent;}#mermaid-svg-hWOsa2Rz86O6VqAS .label text,#mermaid-svg-hWOsa2Rz86O6VqAS span{fill:#333;color:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS .node rect,#mermaid-svg-hWOsa2Rz86O6VqAS .node circle,#mermaid-svg-hWOsa2Rz86O6VqAS .node ellipse,#mermaid-svg-hWOsa2Rz86O6VqAS .node polygon,#mermaid-svg-hWOsa2Rz86O6VqAS .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-hWOsa2Rz86O6VqAS .rough-node .label text,#mermaid-svg-hWOsa2Rz86O6VqAS .node .label text,#mermaid-svg-hWOsa2Rz86O6VqAS .image-shape .label,#mermaid-svg-hWOsa2Rz86O6VqAS .icon-shape .label{text-anchor:middle;}#mermaid-svg-hWOsa2Rz86O6VqAS .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-hWOsa2Rz86O6VqAS .rough-node .label,#mermaid-svg-hWOsa2Rz86O6VqAS .node .label,#mermaid-svg-hWOsa2Rz86O6VqAS .image-shape .label,#mermaid-svg-hWOsa2Rz86O6VqAS .icon-shape .label{text-align:center;}#mermaid-svg-hWOsa2Rz86O6VqAS .node.clickable{cursor:pointer;}#mermaid-svg-hWOsa2Rz86O6VqAS .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-hWOsa2Rz86O6VqAS .arrowheadPath{fill:#333333;}#mermaid-svg-hWOsa2Rz86O6VqAS .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-hWOsa2Rz86O6VqAS .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-hWOsa2Rz86O6VqAS .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-hWOsa2Rz86O6VqAS .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-hWOsa2Rz86O6VqAS .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-hWOsa2Rz86O6VqAS .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-hWOsa2Rz86O6VqAS .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-hWOsa2Rz86O6VqAS .cluster text{fill:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS .cluster span{color:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-hWOsa2Rz86O6VqAS .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-hWOsa2Rz86O6VqAS rect.text{fill:none;stroke-width:0;}#mermaid-svg-hWOsa2Rz86O6VqAS .icon-shape,#mermaid-svg-hWOsa2Rz86O6VqAS .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-hWOsa2Rz86O6VqAS .icon-shape p,#mermaid-svg-hWOsa2Rz86O6VqAS .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-hWOsa2Rz86O6VqAS .icon-shape .label rect,#mermaid-svg-hWOsa2Rz86O6VqAS .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-hWOsa2Rz86O6VqAS .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-hWOsa2Rz86O6VqAS .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-hWOsa2Rz86O6VqAS :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
设计方法
结构化设计
面向对象设计
Jackson方法
面向数据流
面向对象
面向数据结构
📦 二、结构化设计方法的基本概念
(一)数据流类型
数据流类型:
结构化设计方法将数据流分为两种类型:
| 变换型数据流 | 线性流动,经过变换 | 数据处理系统 |
| 事务型数据流 | 根据事务类型分发 | 事务处理系统 |
(二)变换型数据流
变换型数据流:
#mermaid-svg-LW8VE9VdiCGyYwuY{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-LW8VE9VdiCGyYwuY .error-icon{fill:#552222;}#mermaid-svg-LW8VE9VdiCGyYwuY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LW8VE9VdiCGyYwuY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LW8VE9VdiCGyYwuY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LW8VE9VdiCGyYwuY .marker.cross{stroke:#333333;}#mermaid-svg-LW8VE9VdiCGyYwuY svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LW8VE9VdiCGyYwuY p{margin:0;}#mermaid-svg-LW8VE9VdiCGyYwuY .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY .cluster-label text{fill:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY .cluster-label span{color:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY .cluster-label span p{background-color:transparent;}#mermaid-svg-LW8VE9VdiCGyYwuY .label text,#mermaid-svg-LW8VE9VdiCGyYwuY span{fill:#333;color:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY .node rect,#mermaid-svg-LW8VE9VdiCGyYwuY .node circle,#mermaid-svg-LW8VE9VdiCGyYwuY .node ellipse,#mermaid-svg-LW8VE9VdiCGyYwuY .node polygon,#mermaid-svg-LW8VE9VdiCGyYwuY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LW8VE9VdiCGyYwuY .rough-node .label text,#mermaid-svg-LW8VE9VdiCGyYwuY .node .label text,#mermaid-svg-LW8VE9VdiCGyYwuY .image-shape .label,#mermaid-svg-LW8VE9VdiCGyYwuY .icon-shape .label{text-anchor:middle;}#mermaid-svg-LW8VE9VdiCGyYwuY .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-LW8VE9VdiCGyYwuY .rough-node .label,#mermaid-svg-LW8VE9VdiCGyYwuY .node .label,#mermaid-svg-LW8VE9VdiCGyYwuY .image-shape .label,#mermaid-svg-LW8VE9VdiCGyYwuY .icon-shape .label{text-align:center;}#mermaid-svg-LW8VE9VdiCGyYwuY .node.clickable{cursor:pointer;}#mermaid-svg-LW8VE9VdiCGyYwuY .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-LW8VE9VdiCGyYwuY .arrowheadPath{fill:#333333;}#mermaid-svg-LW8VE9VdiCGyYwuY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LW8VE9VdiCGyYwuY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LW8VE9VdiCGyYwuY .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LW8VE9VdiCGyYwuY .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-LW8VE9VdiCGyYwuY .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LW8VE9VdiCGyYwuY .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-LW8VE9VdiCGyYwuY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LW8VE9VdiCGyYwuY .cluster text{fill:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY .cluster span{color:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LW8VE9VdiCGyYwuY .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-LW8VE9VdiCGyYwuY rect.text{fill:none;stroke-width:0;}#mermaid-svg-LW8VE9VdiCGyYwuY .icon-shape,#mermaid-svg-LW8VE9VdiCGyYwuY .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LW8VE9VdiCGyYwuY .icon-shape p,#mermaid-svg-LW8VE9VdiCGyYwuY .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-LW8VE9VdiCGyYwuY .icon-shape .label rect,#mermaid-svg-LW8VE9VdiCGyYwuY .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LW8VE9VdiCGyYwuY .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-LW8VE9VdiCGyYwuY .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-LW8VE9VdiCGyYwuY :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
输入
输入处理
变换中心
输出处理
输出
组成要素:
| 输入流 | 数据输入部分 |
| 变换中心 | 核心处理部分 |
| 输出流 | 数据输出部分 |
(三)事务型数据流
事务型数据流:
#mermaid-svg-StmfBEI3BrbNKe83{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-StmfBEI3BrbNKe83 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-StmfBEI3BrbNKe83 .error-icon{fill:#552222;}#mermaid-svg-StmfBEI3BrbNKe83 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-StmfBEI3BrbNKe83 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-StmfBEI3BrbNKe83 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-StmfBEI3BrbNKe83 .marker.cross{stroke:#333333;}#mermaid-svg-StmfBEI3BrbNKe83 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-StmfBEI3BrbNKe83 p{margin:0;}#mermaid-svg-StmfBEI3BrbNKe83 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-StmfBEI3BrbNKe83 .cluster-label text{fill:#333;}#mermaid-svg-StmfBEI3BrbNKe83 .cluster-label span{color:#333;}#mermaid-svg-StmfBEI3BrbNKe83 .cluster-label span p{background-color:transparent;}#mermaid-svg-StmfBEI3BrbNKe83 .label text,#mermaid-svg-StmfBEI3BrbNKe83 span{fill:#333;color:#333;}#mermaid-svg-StmfBEI3BrbNKe83 .node rect,#mermaid-svg-StmfBEI3BrbNKe83 .node circle,#mermaid-svg-StmfBEI3BrbNKe83 .node ellipse,#mermaid-svg-StmfBEI3BrbNKe83 .node polygon,#mermaid-svg-StmfBEI3BrbNKe83 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-StmfBEI3BrbNKe83 .rough-node .label text,#mermaid-svg-StmfBEI3BrbNKe83 .node .label text,#mermaid-svg-StmfBEI3BrbNKe83 .image-shape .label,#mermaid-svg-StmfBEI3BrbNKe83 .icon-shape .label{text-anchor:middle;}#mermaid-svg-StmfBEI3BrbNKe83 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-StmfBEI3BrbNKe83 .rough-node .label,#mermaid-svg-StmfBEI3BrbNKe83 .node .label,#mermaid-svg-StmfBEI3BrbNKe83 .image-shape .label,#mermaid-svg-StmfBEI3BrbNKe83 .icon-shape .label{text-align:center;}#mermaid-svg-StmfBEI3BrbNKe83 .node.clickable{cursor:pointer;}#mermaid-svg-StmfBEI3BrbNKe83 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-StmfBEI3BrbNKe83 .arrowheadPath{fill:#333333;}#mermaid-svg-StmfBEI3BrbNKe83 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-StmfBEI3BrbNKe83 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-StmfBEI3BrbNKe83 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-StmfBEI3BrbNKe83 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-StmfBEI3BrbNKe83 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-StmfBEI3BrbNKe83 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-StmfBEI3BrbNKe83 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-StmfBEI3BrbNKe83 .cluster text{fill:#333;}#mermaid-svg-StmfBEI3BrbNKe83 .cluster span{color:#333;}#mermaid-svg-StmfBEI3BrbNKe83 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-StmfBEI3BrbNKe83 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-StmfBEI3BrbNKe83 rect.text{fill:none;stroke-width:0;}#mermaid-svg-StmfBEI3BrbNKe83 .icon-shape,#mermaid-svg-StmfBEI3BrbNKe83 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-StmfBEI3BrbNKe83 .icon-shape p,#mermaid-svg-StmfBEI3BrbNKe83 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-StmfBEI3BrbNKe83 .icon-shape .label rect,#mermaid-svg-StmfBEI3BrbNKe83 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-StmfBEI3BrbNKe83 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-StmfBEI3BrbNKe83 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-StmfBEI3BrbNKe83 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
类型1
类型2
类型3
输入
事务中心
事务类型
处理1
处理2
处理3
组成要素:
| 输入流 | 事务输入 |
| 事务中心 | 事务分发 |
| 处理流 | 事务处理 |
🌐 三、结构化设计方法的步骤
(一)设计步骤
设计步骤:
#mermaid-svg-V885WjBNsLpv0eCJ{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-V885WjBNsLpv0eCJ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-V885WjBNsLpv0eCJ .error-icon{fill:#552222;}#mermaid-svg-V885WjBNsLpv0eCJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-V885WjBNsLpv0eCJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-V885WjBNsLpv0eCJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-V885WjBNsLpv0eCJ .marker.cross{stroke:#333333;}#mermaid-svg-V885WjBNsLpv0eCJ svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-V885WjBNsLpv0eCJ p{margin:0;}#mermaid-svg-V885WjBNsLpv0eCJ .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-V885WjBNsLpv0eCJ .cluster-label text{fill:#333;}#mermaid-svg-V885WjBNsLpv0eCJ .cluster-label span{color:#333;}#mermaid-svg-V885WjBNsLpv0eCJ .cluster-label span p{background-color:transparent;}#mermaid-svg-V885WjBNsLpv0eCJ .label text,#mermaid-svg-V885WjBNsLpv0eCJ span{fill:#333;color:#333;}#mermaid-svg-V885WjBNsLpv0eCJ .node rect,#mermaid-svg-V885WjBNsLpv0eCJ .node circle,#mermaid-svg-V885WjBNsLpv0eCJ .node ellipse,#mermaid-svg-V885WjBNsLpv0eCJ .node polygon,#mermaid-svg-V885WjBNsLpv0eCJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-V885WjBNsLpv0eCJ .rough-node .label text,#mermaid-svg-V885WjBNsLpv0eCJ .node .label text,#mermaid-svg-V885WjBNsLpv0eCJ .image-shape .label,#mermaid-svg-V885WjBNsLpv0eCJ .icon-shape .label{text-anchor:middle;}#mermaid-svg-V885WjBNsLpv0eCJ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-V885WjBNsLpv0eCJ .rough-node .label,#mermaid-svg-V885WjBNsLpv0eCJ .node .label,#mermaid-svg-V885WjBNsLpv0eCJ .image-shape .label,#mermaid-svg-V885WjBNsLpv0eCJ .icon-shape .label{text-align:center;}#mermaid-svg-V885WjBNsLpv0eCJ .node.clickable{cursor:pointer;}#mermaid-svg-V885WjBNsLpv0eCJ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-V885WjBNsLpv0eCJ .arrowheadPath{fill:#333333;}#mermaid-svg-V885WjBNsLpv0eCJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-V885WjBNsLpv0eCJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-V885WjBNsLpv0eCJ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-V885WjBNsLpv0eCJ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-V885WjBNsLpv0eCJ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-V885WjBNsLpv0eCJ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-V885WjBNsLpv0eCJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-V885WjBNsLpv0eCJ .cluster text{fill:#333;}#mermaid-svg-V885WjBNsLpv0eCJ .cluster span{color:#333;}#mermaid-svg-V885WjBNsLpv0eCJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-V885WjBNsLpv0eCJ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-V885WjBNsLpv0eCJ rect.text{fill:none;stroke-width:0;}#mermaid-svg-V885WjBNsLpv0eCJ .icon-shape,#mermaid-svg-V885WjBNsLpv0eCJ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-V885WjBNsLpv0eCJ .icon-shape p,#mermaid-svg-V885WjBNsLpv0eCJ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-V885WjBNsLpv0eCJ .icon-shape .label rect,#mermaid-svg-V885WjBNsLpv0eCJ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-V885WjBNsLpv0eCJ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-V885WjBNsLpv0eCJ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-V885WjBNsLpv0eCJ :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
变换型
事务型
结构化设计步骤
分析数据流
确定数据流类型
数据流类型
变换分析
事务分析
设计初始结构
优化结构
编写文档
步骤详解:
| 分析数据流 | 分析数据流图 | 数据流分析 |
| 确定类型 | 确定数据流类型 | 类型判断 |
| 变换分析/事务分析 | 进行设计分析 | 分析结果 |
| 设计初始结构 | 设计初始结构 | 初始结构图 |
| 优化结构 | 优化结构 | 优化结构图 |
| 编写文档 | 编写设计文档 | 设计文档 |
(二)数据流分析
数据流分析:
分析数据流图,识别数据流的类型。
分析要点:
| 识别输入 | 识别系统输入 |
| 识别输出 | 识别系统输出 |
| 识别处理 | 识别处理过程 |
| 识别流向 | 识别数据流向 |
📊 四、变换分析
(一)变换分析的定义
变换分析是将变换型数据流图映射为软件结构的方法。
变换分析概念:
#mermaid-svg-LWcqboG5gBENxUeU{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-LWcqboG5gBENxUeU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-LWcqboG5gBENxUeU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-LWcqboG5gBENxUeU .error-icon{fill:#552222;}#mermaid-svg-LWcqboG5gBENxUeU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LWcqboG5gBENxUeU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-LWcqboG5gBENxUeU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LWcqboG5gBENxUeU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LWcqboG5gBENxUeU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-LWcqboG5gBENxUeU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LWcqboG5gBENxUeU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LWcqboG5gBENxUeU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LWcqboG5gBENxUeU .marker.cross{stroke:#333333;}#mermaid-svg-LWcqboG5gBENxUeU svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LWcqboG5gBENxUeU p{margin:0;}#mermaid-svg-LWcqboG5gBENxUeU .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-LWcqboG5gBENxUeU .cluster-label text{fill:#333;}#mermaid-svg-LWcqboG5gBENxUeU .cluster-label span{color:#333;}#mermaid-svg-LWcqboG5gBENxUeU .cluster-label span p{background-color:transparent;}#mermaid-svg-LWcqboG5gBENxUeU .label text,#mermaid-svg-LWcqboG5gBENxUeU span{fill:#333;color:#333;}#mermaid-svg-LWcqboG5gBENxUeU .node rect,#mermaid-svg-LWcqboG5gBENxUeU .node circle,#mermaid-svg-LWcqboG5gBENxUeU .node ellipse,#mermaid-svg-LWcqboG5gBENxUeU .node polygon,#mermaid-svg-LWcqboG5gBENxUeU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LWcqboG5gBENxUeU .rough-node .label text,#mermaid-svg-LWcqboG5gBENxUeU .node .label text,#mermaid-svg-LWcqboG5gBENxUeU .image-shape .label,#mermaid-svg-LWcqboG5gBENxUeU .icon-shape .label{text-anchor:middle;}#mermaid-svg-LWcqboG5gBENxUeU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-LWcqboG5gBENxUeU .rough-node .label,#mermaid-svg-LWcqboG5gBENxUeU .node .label,#mermaid-svg-LWcqboG5gBENxUeU .image-shape .label,#mermaid-svg-LWcqboG5gBENxUeU .icon-shape .label{text-align:center;}#mermaid-svg-LWcqboG5gBENxUeU .node.clickable{cursor:pointer;}#mermaid-svg-LWcqboG5gBENxUeU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-LWcqboG5gBENxUeU .arrowheadPath{fill:#333333;}#mermaid-svg-LWcqboG5gBENxUeU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LWcqboG5gBENxUeU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LWcqboG5gBENxUeU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LWcqboG5gBENxUeU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-LWcqboG5gBENxUeU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LWcqboG5gBENxUeU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-LWcqboG5gBENxUeU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LWcqboG5gBENxUeU .cluster text{fill:#333;}#mermaid-svg-LWcqboG5gBENxUeU .cluster span{color:#333;}#mermaid-svg-LWcqboG5gBENxUeU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LWcqboG5gBENxUeU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-LWcqboG5gBENxUeU rect.text{fill:none;stroke-width:0;}#mermaid-svg-LWcqboG5gBENxUeU .icon-shape,#mermaid-svg-LWcqboG5gBENxUeU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LWcqboG5gBENxUeU .icon-shape p,#mermaid-svg-LWcqboG5gBENxUeU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-LWcqboG5gBENxUeU .icon-shape .label rect,#mermaid-svg-LWcqboG5gBENxUeU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LWcqboG5gBENxUeU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-LWcqboG5gBENxUeU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-LWcqboG5gBENxUeU :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
变换分析
识别变换中心
设计顶层结构
设计输入分支
设计输出分支
设计变换分支
(二)变换分析步骤
变换分析步骤:
| 1 | 确定变换中心 | 识别核心变换 |
| 2 | 设计顶层结构 | 设计主控模块 |
| 3 | 设计输入分支 | 设计输入处理 |
| 4 | 设计输出分支 | 设计输出处理 |
| 5 | 设计变换分支 | 设计核心变换 |
(三)变换分析实例
数据流图:
#mermaid-svg-KMQLuu4QUjrVXelA{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-KMQLuu4QUjrVXelA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-KMQLuu4QUjrVXelA .error-icon{fill:#552222;}#mermaid-svg-KMQLuu4QUjrVXelA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KMQLuu4QUjrVXelA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KMQLuu4QUjrVXelA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KMQLuu4QUjrVXelA .marker.cross{stroke:#333333;}#mermaid-svg-KMQLuu4QUjrVXelA svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KMQLuu4QUjrVXelA p{margin:0;}#mermaid-svg-KMQLuu4QUjrVXelA .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-KMQLuu4QUjrVXelA .cluster-label text{fill:#333;}#mermaid-svg-KMQLuu4QUjrVXelA .cluster-label span{color:#333;}#mermaid-svg-KMQLuu4QUjrVXelA .cluster-label span p{background-color:transparent;}#mermaid-svg-KMQLuu4QUjrVXelA .label text,#mermaid-svg-KMQLuu4QUjrVXelA span{fill:#333;color:#333;}#mermaid-svg-KMQLuu4QUjrVXelA .node rect,#mermaid-svg-KMQLuu4QUjrVXelA .node circle,#mermaid-svg-KMQLuu4QUjrVXelA .node ellipse,#mermaid-svg-KMQLuu4QUjrVXelA .node polygon,#mermaid-svg-KMQLuu4QUjrVXelA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-KMQLuu4QUjrVXelA .rough-node .label text,#mermaid-svg-KMQLuu4QUjrVXelA .node .label text,#mermaid-svg-KMQLuu4QUjrVXelA .image-shape .label,#mermaid-svg-KMQLuu4QUjrVXelA .icon-shape .label{text-anchor:middle;}#mermaid-svg-KMQLuu4QUjrVXelA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-KMQLuu4QUjrVXelA .rough-node .label,#mermaid-svg-KMQLuu4QUjrVXelA .node .label,#mermaid-svg-KMQLuu4QUjrVXelA .image-shape .label,#mermaid-svg-KMQLuu4QUjrVXelA .icon-shape .label{text-align:center;}#mermaid-svg-KMQLuu4QUjrVXelA .node.clickable{cursor:pointer;}#mermaid-svg-KMQLuu4QUjrVXelA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-KMQLuu4QUjrVXelA .arrowheadPath{fill:#333333;}#mermaid-svg-KMQLuu4QUjrVXelA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-KMQLuu4QUjrVXelA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-KMQLuu4QUjrVXelA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-KMQLuu4QUjrVXelA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-KMQLuu4QUjrVXelA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-KMQLuu4QUjrVXelA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-KMQLuu4QUjrVXelA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-KMQLuu4QUjrVXelA .cluster text{fill:#333;}#mermaid-svg-KMQLuu4QUjrVXelA .cluster span{color:#333;}#mermaid-svg-KMQLuu4QUjrVXelA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-KMQLuu4QUjrVXelA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-KMQLuu4QUjrVXelA rect.text{fill:none;stroke-width:0;}#mermaid-svg-KMQLuu4QUjrVXelA .icon-shape,#mermaid-svg-KMQLuu4QUjrVXelA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-KMQLuu4QUjrVXelA .icon-shape p,#mermaid-svg-KMQLuu4QUjrVXelA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-KMQLuu4QUjrVXelA .icon-shape .label rect,#mermaid-svg-KMQLuu4QUjrVXelA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-KMQLuu4QUjrVXelA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-KMQLuu4QUjrVXelA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-KMQLuu4QUjrVXelA :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
原始数据
输入处理
数据变换
输出处理
结果数据
变换分析过程:
#mermaid-svg-Z783MQfocvPtirFY{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Z783MQfocvPtirFY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Z783MQfocvPtirFY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Z783MQfocvPtirFY .error-icon{fill:#552222;}#mermaid-svg-Z783MQfocvPtirFY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Z783MQfocvPtirFY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Z783MQfocvPtirFY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Z783MQfocvPtirFY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Z783MQfocvPtirFY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Z783MQfocvPtirFY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Z783MQfocvPtirFY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Z783MQfocvPtirFY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Z783MQfocvPtirFY .marker.cross{stroke:#333333;}#mermaid-svg-Z783MQfocvPtirFY svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Z783MQfocvPtirFY p{margin:0;}#mermaid-svg-Z783MQfocvPtirFY .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-Z783MQfocvPtirFY .cluster-label text{fill:#333;}#mermaid-svg-Z783MQfocvPtirFY .cluster-label span{color:#333;}#mermaid-svg-Z783MQfocvPtirFY .cluster-label span p{background-color:transparent;}#mermaid-svg-Z783MQfocvPtirFY .label text,#mermaid-svg-Z783MQfocvPtirFY span{fill:#333;color:#333;}#mermaid-svg-Z783MQfocvPtirFY .node rect,#mermaid-svg-Z783MQfocvPtirFY .node circle,#mermaid-svg-Z783MQfocvPtirFY .node ellipse,#mermaid-svg-Z783MQfocvPtirFY .node polygon,#mermaid-svg-Z783MQfocvPtirFY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Z783MQfocvPtirFY .rough-node .label text,#mermaid-svg-Z783MQfocvPtirFY .node .label text,#mermaid-svg-Z783MQfocvPtirFY .image-shape .label,#mermaid-svg-Z783MQfocvPtirFY .icon-shape .label{text-anchor:middle;}#mermaid-svg-Z783MQfocvPtirFY .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Z783MQfocvPtirFY .rough-node .label,#mermaid-svg-Z783MQfocvPtirFY .node .label,#mermaid-svg-Z783MQfocvPtirFY .image-shape .label,#mermaid-svg-Z783MQfocvPtirFY .icon-shape .label{text-align:center;}#mermaid-svg-Z783MQfocvPtirFY .node.clickable{cursor:pointer;}#mermaid-svg-Z783MQfocvPtirFY .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Z783MQfocvPtirFY .arrowheadPath{fill:#333333;}#mermaid-svg-Z783MQfocvPtirFY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Z783MQfocvPtirFY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Z783MQfocvPtirFY .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Z783MQfocvPtirFY .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Z783MQfocvPtirFY .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Z783MQfocvPtirFY .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Z783MQfocvPtirFY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Z783MQfocvPtirFY .cluster text{fill:#333;}#mermaid-svg-Z783MQfocvPtirFY .cluster span{color:#333;}#mermaid-svg-Z783MQfocvPtirFY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Z783MQfocvPtirFY .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Z783MQfocvPtirFY rect.text{fill:none;stroke-width:0;}#mermaid-svg-Z783MQfocvPtirFY .icon-shape,#mermaid-svg-Z783MQfocvPtirFY .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Z783MQfocvPtirFY .icon-shape p,#mermaid-svg-Z783MQfocvPtirFY .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Z783MQfocvPtirFY .icon-shape .label rect,#mermaid-svg-Z783MQfocvPtirFY .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Z783MQfocvPtirFY .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Z783MQfocvPtirFY .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Z783MQfocvPtirFY :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
主控模块
输入模块
变换模块
输出模块
读入数据
验证数据
计算处理
格式化输出
写入文件
(四)变换分析详解
步骤1:确定变换中心
在数据流图中,找到核心变换部分。
步骤2:设计顶层结构
设计主控模块,调用输入、变换、输出模块。
步骤3:设计输入分支
设计输入处理模块,完成数据读入和验证。
步骤4:设计输出分支
设计输出处理模块,完成数据格式化和输出。
步骤5:设计变换分支
设计变换处理模块,完成核心数据处理。
💡 五、事务分析
(一)事务分析的定义
事务分析是将事务型数据流图映射为软件结构的方法。
事务分析概念:
#mermaid-svg-FHWLafG4nh9qY1hF{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FHWLafG4nh9qY1hF .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FHWLafG4nh9qY1hF .error-icon{fill:#552222;}#mermaid-svg-FHWLafG4nh9qY1hF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FHWLafG4nh9qY1hF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FHWLafG4nh9qY1hF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FHWLafG4nh9qY1hF .marker.cross{stroke:#333333;}#mermaid-svg-FHWLafG4nh9qY1hF svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FHWLafG4nh9qY1hF p{margin:0;}#mermaid-svg-FHWLafG4nh9qY1hF .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-FHWLafG4nh9qY1hF .cluster-label text{fill:#333;}#mermaid-svg-FHWLafG4nh9qY1hF .cluster-label span{color:#333;}#mermaid-svg-FHWLafG4nh9qY1hF .cluster-label span p{background-color:transparent;}#mermaid-svg-FHWLafG4nh9qY1hF .label text,#mermaid-svg-FHWLafG4nh9qY1hF span{fill:#333;color:#333;}#mermaid-svg-FHWLafG4nh9qY1hF .node rect,#mermaid-svg-FHWLafG4nh9qY1hF .node circle,#mermaid-svg-FHWLafG4nh9qY1hF .node ellipse,#mermaid-svg-FHWLafG4nh9qY1hF .node polygon,#mermaid-svg-FHWLafG4nh9qY1hF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-FHWLafG4nh9qY1hF .rough-node .label text,#mermaid-svg-FHWLafG4nh9qY1hF .node .label text,#mermaid-svg-FHWLafG4nh9qY1hF .image-shape .label,#mermaid-svg-FHWLafG4nh9qY1hF .icon-shape .label{text-anchor:middle;}#mermaid-svg-FHWLafG4nh9qY1hF .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-FHWLafG4nh9qY1hF .rough-node .label,#mermaid-svg-FHWLafG4nh9qY1hF .node .label,#mermaid-svg-FHWLafG4nh9qY1hF .image-shape .label,#mermaid-svg-FHWLafG4nh9qY1hF .icon-shape .label{text-align:center;}#mermaid-svg-FHWLafG4nh9qY1hF .node.clickable{cursor:pointer;}#mermaid-svg-FHWLafG4nh9qY1hF .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-FHWLafG4nh9qY1hF .arrowheadPath{fill:#333333;}#mermaid-svg-FHWLafG4nh9qY1hF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-FHWLafG4nh9qY1hF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-FHWLafG4nh9qY1hF .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FHWLafG4nh9qY1hF .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-FHWLafG4nh9qY1hF .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FHWLafG4nh9qY1hF .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-FHWLafG4nh9qY1hF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-FHWLafG4nh9qY1hF .cluster text{fill:#333;}#mermaid-svg-FHWLafG4nh9qY1hF .cluster span{color:#333;}#mermaid-svg-FHWLafG4nh9qY1hF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-FHWLafG4nh9qY1hF .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-FHWLafG4nh9qY1hF rect.text{fill:none;stroke-width:0;}#mermaid-svg-FHWLafG4nh9qY1hF .icon-shape,#mermaid-svg-FHWLafG4nh9qY1hF .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FHWLafG4nh9qY1hF .icon-shape p,#mermaid-svg-FHWLafG4nh9qY1hF .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-FHWLafG4nh9qY1hF .icon-shape .label rect,#mermaid-svg-FHWLafG4nh9qY1hF .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FHWLafG4nh9qY1hF .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-FHWLafG4nh9qY1hF .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-FHWLafG4nh9qY1hF :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
事务分析
识别事务中心
识别事务类型
设计接收分支
设计发送分支
设计处理分支
(二)事务分析步骤
事务分析步骤:
| 1 | 确定事务中心 | 识别事务处理 |
| 2 | 识别事务类型 | 识别不同事务 |
| 3 | 设计接收分支 | 设计事务接收 |
| 4 | 设计发送分支 | 设计事务分发 |
| 5 | 设计处理分支 | 设计事务处理 |
(三)事务分析实例
数据流图:
#mermaid-svg-ke2t16AnWDRBrqzA{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ke2t16AnWDRBrqzA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ke2t16AnWDRBrqzA .error-icon{fill:#552222;}#mermaid-svg-ke2t16AnWDRBrqzA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ke2t16AnWDRBrqzA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ke2t16AnWDRBrqzA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ke2t16AnWDRBrqzA .marker.cross{stroke:#333333;}#mermaid-svg-ke2t16AnWDRBrqzA svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ke2t16AnWDRBrqzA p{margin:0;}#mermaid-svg-ke2t16AnWDRBrqzA .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-ke2t16AnWDRBrqzA .cluster-label text{fill:#333;}#mermaid-svg-ke2t16AnWDRBrqzA .cluster-label span{color:#333;}#mermaid-svg-ke2t16AnWDRBrqzA .cluster-label span p{background-color:transparent;}#mermaid-svg-ke2t16AnWDRBrqzA .label text,#mermaid-svg-ke2t16AnWDRBrqzA span{fill:#333;color:#333;}#mermaid-svg-ke2t16AnWDRBrqzA .node rect,#mermaid-svg-ke2t16AnWDRBrqzA .node circle,#mermaid-svg-ke2t16AnWDRBrqzA .node ellipse,#mermaid-svg-ke2t16AnWDRBrqzA .node polygon,#mermaid-svg-ke2t16AnWDRBrqzA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ke2t16AnWDRBrqzA .rough-node .label text,#mermaid-svg-ke2t16AnWDRBrqzA .node .label text,#mermaid-svg-ke2t16AnWDRBrqzA .image-shape .label,#mermaid-svg-ke2t16AnWDRBrqzA .icon-shape .label{text-anchor:middle;}#mermaid-svg-ke2t16AnWDRBrqzA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ke2t16AnWDRBrqzA .rough-node .label,#mermaid-svg-ke2t16AnWDRBrqzA .node .label,#mermaid-svg-ke2t16AnWDRBrqzA .image-shape .label,#mermaid-svg-ke2t16AnWDRBrqzA .icon-shape .label{text-align:center;}#mermaid-svg-ke2t16AnWDRBrqzA .node.clickable{cursor:pointer;}#mermaid-svg-ke2t16AnWDRBrqzA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ke2t16AnWDRBrqzA .arrowheadPath{fill:#333333;}#mermaid-svg-ke2t16AnWDRBrqzA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ke2t16AnWDRBrqzA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ke2t16AnWDRBrqzA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ke2t16AnWDRBrqzA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ke2t16AnWDRBrqzA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ke2t16AnWDRBrqzA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ke2t16AnWDRBrqzA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ke2t16AnWDRBrqzA .cluster text{fill:#333;}#mermaid-svg-ke2t16AnWDRBrqzA .cluster span{color:#333;}#mermaid-svg-ke2t16AnWDRBrqzA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ke2t16AnWDRBrqzA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ke2t16AnWDRBrqzA rect.text{fill:none;stroke-width:0;}#mermaid-svg-ke2t16AnWDRBrqzA .icon-shape,#mermaid-svg-ke2t16AnWDRBrqzA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ke2t16AnWDRBrqzA .icon-shape p,#mermaid-svg-ke2t16AnWDRBrqzA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ke2t16AnWDRBrqzA .icon-shape .label rect,#mermaid-svg-ke2t16AnWDRBrqzA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ke2t16AnWDRBrqzA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ke2t16AnWDRBrqzA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ke2t16AnWDRBrqzA :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
类型1
类型2
类型3
事务输入
事务分析
事务类型
处理1
处理2
处理3
事务分析过程:
#mermaid-svg-s1cRStdT3wV5Xu9M{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-s1cRStdT3wV5Xu9M .error-icon{fill:#552222;}#mermaid-svg-s1cRStdT3wV5Xu9M .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-s1cRStdT3wV5Xu9M .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-s1cRStdT3wV5Xu9M .marker{fill:#333333;stroke:#333333;}#mermaid-svg-s1cRStdT3wV5Xu9M .marker.cross{stroke:#333333;}#mermaid-svg-s1cRStdT3wV5Xu9M svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-s1cRStdT3wV5Xu9M p{margin:0;}#mermaid-svg-s1cRStdT3wV5Xu9M .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M .cluster-label text{fill:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M .cluster-label span{color:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M .cluster-label span p{background-color:transparent;}#mermaid-svg-s1cRStdT3wV5Xu9M .label text,#mermaid-svg-s1cRStdT3wV5Xu9M span{fill:#333;color:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M .node rect,#mermaid-svg-s1cRStdT3wV5Xu9M .node circle,#mermaid-svg-s1cRStdT3wV5Xu9M .node ellipse,#mermaid-svg-s1cRStdT3wV5Xu9M .node polygon,#mermaid-svg-s1cRStdT3wV5Xu9M .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-s1cRStdT3wV5Xu9M .rough-node .label text,#mermaid-svg-s1cRStdT3wV5Xu9M .node .label text,#mermaid-svg-s1cRStdT3wV5Xu9M .image-shape .label,#mermaid-svg-s1cRStdT3wV5Xu9M .icon-shape .label{text-anchor:middle;}#mermaid-svg-s1cRStdT3wV5Xu9M .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-s1cRStdT3wV5Xu9M .rough-node .label,#mermaid-svg-s1cRStdT3wV5Xu9M .node .label,#mermaid-svg-s1cRStdT3wV5Xu9M .image-shape .label,#mermaid-svg-s1cRStdT3wV5Xu9M .icon-shape .label{text-align:center;}#mermaid-svg-s1cRStdT3wV5Xu9M .node.clickable{cursor:pointer;}#mermaid-svg-s1cRStdT3wV5Xu9M .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-s1cRStdT3wV5Xu9M .arrowheadPath{fill:#333333;}#mermaid-svg-s1cRStdT3wV5Xu9M .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-s1cRStdT3wV5Xu9M .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-s1cRStdT3wV5Xu9M .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-s1cRStdT3wV5Xu9M .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-s1cRStdT3wV5Xu9M .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-s1cRStdT3wV5Xu9M .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-s1cRStdT3wV5Xu9M .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-s1cRStdT3wV5Xu9M .cluster text{fill:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M .cluster span{color:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-s1cRStdT3wV5Xu9M .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-s1cRStdT3wV5Xu9M rect.text{fill:none;stroke-width:0;}#mermaid-svg-s1cRStdT3wV5Xu9M .icon-shape,#mermaid-svg-s1cRStdT3wV5Xu9M .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-s1cRStdT3wV5Xu9M .icon-shape p,#mermaid-svg-s1cRStdT3wV5Xu9M .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-s1cRStdT3wV5Xu9M .icon-shape .label rect,#mermaid-svg-s1cRStdT3wV5Xu9M .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-s1cRStdT3wV5Xu9M .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-s1cRStdT3wV5Xu9M .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-s1cRStdT3wV5Xu9M :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
类型1
类型2
类型3
主控模块
接收模块
事务中心
发送模块
读入事务
分析事务
事务类型
处理模块1
处理模块2
处理模块3
(四)事务分析详解
步骤1:确定事务中心
在数据流图中,找到事务分发部分。
步骤2:识别事务类型
识别不同的事务类型。
步骤3:设计接收分支
设计事务接收模块,完成事务读入和分析。
步骤4:设计发送分支
设计事务分发模块,根据事务类型分发。
步骤5:设计处理分支
设计事务处理模块,完成各类事务处理。
📋 六、结构化设计方法的优化
(一)优化目标
优化目标:
| 高内聚 | 提高模块内聚性 |
| 低耦合 | 降低模块耦合性 |
| 模块独立 | 提高模块独立性 |
| 结构清晰 | 结构清晰易理解 |
(二)优化原则
优化原则:
| 模块规模适中 | 模块不要太大或太小 |
| 控制深度宽度 | 层次不要太深,宽度不要太宽 |
| 扇入扇出合理 | 扇入扇出要合理 |
| 作用域在控制域内 | 判断在作用域内 |
(三)优化策略
优化策略:
| 合并模块 | 合并功能相似的模块 |
| 分解模块 | 分解过大的模块 |
| 调整层次 | 调整模块层次 |
| 简化接口 | 简化模块接口 |
(四)结构优化示例
优化前结构:
#mermaid-svg-NIG7zrYCQyPGFngC{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-NIG7zrYCQyPGFngC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NIG7zrYCQyPGFngC .error-icon{fill:#552222;}#mermaid-svg-NIG7zrYCQyPGFngC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NIG7zrYCQyPGFngC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NIG7zrYCQyPGFngC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NIG7zrYCQyPGFngC .marker.cross{stroke:#333333;}#mermaid-svg-NIG7zrYCQyPGFngC svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NIG7zrYCQyPGFngC p{margin:0;}#mermaid-svg-NIG7zrYCQyPGFngC .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-NIG7zrYCQyPGFngC .cluster-label text{fill:#333;}#mermaid-svg-NIG7zrYCQyPGFngC .cluster-label span{color:#333;}#mermaid-svg-NIG7zrYCQyPGFngC .cluster-label span p{background-color:transparent;}#mermaid-svg-NIG7zrYCQyPGFngC .label text,#mermaid-svg-NIG7zrYCQyPGFngC span{fill:#333;color:#333;}#mermaid-svg-NIG7zrYCQyPGFngC .node rect,#mermaid-svg-NIG7zrYCQyPGFngC .node circle,#mermaid-svg-NIG7zrYCQyPGFngC .node ellipse,#mermaid-svg-NIG7zrYCQyPGFngC .node polygon,#mermaid-svg-NIG7zrYCQyPGFngC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NIG7zrYCQyPGFngC .rough-node .label text,#mermaid-svg-NIG7zrYCQyPGFngC .node .label text,#mermaid-svg-NIG7zrYCQyPGFngC .image-shape .label,#mermaid-svg-NIG7zrYCQyPGFngC .icon-shape .label{text-anchor:middle;}#mermaid-svg-NIG7zrYCQyPGFngC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-NIG7zrYCQyPGFngC .rough-node .label,#mermaid-svg-NIG7zrYCQyPGFngC .node .label,#mermaid-svg-NIG7zrYCQyPGFngC .image-shape .label,#mermaid-svg-NIG7zrYCQyPGFngC .icon-shape .label{text-align:center;}#mermaid-svg-NIG7zrYCQyPGFngC .node.clickable{cursor:pointer;}#mermaid-svg-NIG7zrYCQyPGFngC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-NIG7zrYCQyPGFngC .arrowheadPath{fill:#333333;}#mermaid-svg-NIG7zrYCQyPGFngC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NIG7zrYCQyPGFngC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NIG7zrYCQyPGFngC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NIG7zrYCQyPGFngC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-NIG7zrYCQyPGFngC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NIG7zrYCQyPGFngC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-NIG7zrYCQyPGFngC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NIG7zrYCQyPGFngC .cluster text{fill:#333;}#mermaid-svg-NIG7zrYCQyPGFngC .cluster span{color:#333;}#mermaid-svg-NIG7zrYCQyPGFngC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-NIG7zrYCQyPGFngC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-NIG7zrYCQyPGFngC rect.text{fill:none;stroke-width:0;}#mermaid-svg-NIG7zrYCQyPGFngC .icon-shape,#mermaid-svg-NIG7zrYCQyPGFngC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NIG7zrYCQyPGFngC .icon-shape p,#mermaid-svg-NIG7zrYCQyPGFngC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-NIG7zrYCQyPGFngC .icon-shape .label rect,#mermaid-svg-NIG7zrYCQyPGFngC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NIG7zrYCQyPGFngC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-NIG7zrYCQyPGFngC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-NIG7zrYCQyPGFngC :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
主控模块
模块1
模块2
模块3
模块4
模块5
模块6
模块7
模块8
优化后结构:
#mermaid-svg-95lqIYvp3NbhUMwI{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-95lqIYvp3NbhUMwI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-95lqIYvp3NbhUMwI .error-icon{fill:#552222;}#mermaid-svg-95lqIYvp3NbhUMwI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-95lqIYvp3NbhUMwI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-95lqIYvp3NbhUMwI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-95lqIYvp3NbhUMwI .marker.cross{stroke:#333333;}#mermaid-svg-95lqIYvp3NbhUMwI svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-95lqIYvp3NbhUMwI p{margin:0;}#mermaid-svg-95lqIYvp3NbhUMwI .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-95lqIYvp3NbhUMwI .cluster-label text{fill:#333;}#mermaid-svg-95lqIYvp3NbhUMwI .cluster-label span{color:#333;}#mermaid-svg-95lqIYvp3NbhUMwI .cluster-label span p{background-color:transparent;}#mermaid-svg-95lqIYvp3NbhUMwI .label text,#mermaid-svg-95lqIYvp3NbhUMwI span{fill:#333;color:#333;}#mermaid-svg-95lqIYvp3NbhUMwI .node rect,#mermaid-svg-95lqIYvp3NbhUMwI .node circle,#mermaid-svg-95lqIYvp3NbhUMwI .node ellipse,#mermaid-svg-95lqIYvp3NbhUMwI .node polygon,#mermaid-svg-95lqIYvp3NbhUMwI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-95lqIYvp3NbhUMwI .rough-node .label text,#mermaid-svg-95lqIYvp3NbhUMwI .node .label text,#mermaid-svg-95lqIYvp3NbhUMwI .image-shape .label,#mermaid-svg-95lqIYvp3NbhUMwI .icon-shape .label{text-anchor:middle;}#mermaid-svg-95lqIYvp3NbhUMwI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-95lqIYvp3NbhUMwI .rough-node .label,#mermaid-svg-95lqIYvp3NbhUMwI .node .label,#mermaid-svg-95lqIYvp3NbhUMwI .image-shape .label,#mermaid-svg-95lqIYvp3NbhUMwI .icon-shape .label{text-align:center;}#mermaid-svg-95lqIYvp3NbhUMwI .node.clickable{cursor:pointer;}#mermaid-svg-95lqIYvp3NbhUMwI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-95lqIYvp3NbhUMwI .arrowheadPath{fill:#333333;}#mermaid-svg-95lqIYvp3NbhUMwI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-95lqIYvp3NbhUMwI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-95lqIYvp3NbhUMwI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-95lqIYvp3NbhUMwI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-95lqIYvp3NbhUMwI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-95lqIYvp3NbhUMwI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-95lqIYvp3NbhUMwI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-95lqIYvp3NbhUMwI .cluster text{fill:#333;}#mermaid-svg-95lqIYvp3NbhUMwI .cluster span{color:#333;}#mermaid-svg-95lqIYvp3NbhUMwI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-95lqIYvp3NbhUMwI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-95lqIYvp3NbhUMwI rect.text{fill:none;stroke-width:0;}#mermaid-svg-95lqIYvp3NbhUMwI .icon-shape,#mermaid-svg-95lqIYvp3NbhUMwI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-95lqIYvp3NbhUMwI .icon-shape p,#mermaid-svg-95lqIYvp3NbhUMwI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-95lqIYvp3NbhUMwI .icon-shape .label rect,#mermaid-svg-95lqIYvp3NbhUMwI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-95lqIYvp3NbhUMwI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-95lqIYvp3NbhUMwI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-95lqIYvp3NbhUMwI :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
主控模块
子系统1
子系统2
子系统3
模块1
模块2
模块3
模块4
模块5
模块6
模块7
模块8
📝 七、结构化设计方法实例
(一)实例背景
项目:订单处理系统
系统功能:
- 接收订单
- 验证订单
- 处理订单
- 输出结果
(二)数据流图
数据流图:
#mermaid-svg-zrBpywswP1OD3Yqb{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-zrBpywswP1OD3Yqb .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-zrBpywswP1OD3Yqb .error-icon{fill:#552222;}#mermaid-svg-zrBpywswP1OD3Yqb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-zrBpywswP1OD3Yqb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-zrBpywswP1OD3Yqb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-zrBpywswP1OD3Yqb .marker.cross{stroke:#333333;}#mermaid-svg-zrBpywswP1OD3Yqb svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-zrBpywswP1OD3Yqb p{margin:0;}#mermaid-svg-zrBpywswP1OD3Yqb .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-zrBpywswP1OD3Yqb .cluster-label text{fill:#333;}#mermaid-svg-zrBpywswP1OD3Yqb .cluster-label span{color:#333;}#mermaid-svg-zrBpywswP1OD3Yqb .cluster-label span p{background-color:transparent;}#mermaid-svg-zrBpywswP1OD3Yqb .label text,#mermaid-svg-zrBpywswP1OD3Yqb span{fill:#333;color:#333;}#mermaid-svg-zrBpywswP1OD3Yqb .node rect,#mermaid-svg-zrBpywswP1OD3Yqb .node circle,#mermaid-svg-zrBpywswP1OD3Yqb .node ellipse,#mermaid-svg-zrBpywswP1OD3Yqb .node polygon,#mermaid-svg-zrBpywswP1OD3Yqb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-zrBpywswP1OD3Yqb .rough-node .label text,#mermaid-svg-zrBpywswP1OD3Yqb .node .label text,#mermaid-svg-zrBpywswP1OD3Yqb .image-shape .label,#mermaid-svg-zrBpywswP1OD3Yqb .icon-shape .label{text-anchor:middle;}#mermaid-svg-zrBpywswP1OD3Yqb .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-zrBpywswP1OD3Yqb .rough-node .label,#mermaid-svg-zrBpywswP1OD3Yqb .node .label,#mermaid-svg-zrBpywswP1OD3Yqb .image-shape .label,#mermaid-svg-zrBpywswP1OD3Yqb .icon-shape .label{text-align:center;}#mermaid-svg-zrBpywswP1OD3Yqb .node.clickable{cursor:pointer;}#mermaid-svg-zrBpywswP1OD3Yqb .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-zrBpywswP1OD3Yqb .arrowheadPath{fill:#333333;}#mermaid-svg-zrBpywswP1OD3Yqb .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-zrBpywswP1OD3Yqb .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-zrBpywswP1OD3Yqb .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zrBpywswP1OD3Yqb .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-zrBpywswP1OD3Yqb .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zrBpywswP1OD3Yqb .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-zrBpywswP1OD3Yqb .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-zrBpywswP1OD3Yqb .cluster text{fill:#333;}#mermaid-svg-zrBpywswP1OD3Yqb .cluster span{color:#333;}#mermaid-svg-zrBpywswP1OD3Yqb div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-zrBpywswP1OD3Yqb .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-zrBpywswP1OD3Yqb rect.text{fill:none;stroke-width:0;}#mermaid-svg-zrBpywswP1OD3Yqb .icon-shape,#mermaid-svg-zrBpywswP1OD3Yqb .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zrBpywswP1OD3Yqb .icon-shape p,#mermaid-svg-zrBpywswP1OD3Yqb .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-zrBpywswP1OD3Yqb .icon-shape .label rect,#mermaid-svg-zrBpywswP1OD3Yqb .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zrBpywswP1OD3Yqb .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-zrBpywswP1OD3Yqb .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-zrBpywswP1OD3Yqb :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
订单数据
读入订单
验证订单
处理订单
输出结果
处理结果
(三)变换分析
变换分析:
识别变换中心为"处理订单"。
结构图:
#mermaid-svg-4F6r4tVIlkUta1zG{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-4F6r4tVIlkUta1zG .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-4F6r4tVIlkUta1zG .error-icon{fill:#552222;}#mermaid-svg-4F6r4tVIlkUta1zG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4F6r4tVIlkUta1zG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4F6r4tVIlkUta1zG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4F6r4tVIlkUta1zG .marker.cross{stroke:#333333;}#mermaid-svg-4F6r4tVIlkUta1zG svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4F6r4tVIlkUta1zG p{margin:0;}#mermaid-svg-4F6r4tVIlkUta1zG .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-4F6r4tVIlkUta1zG .cluster-label text{fill:#333;}#mermaid-svg-4F6r4tVIlkUta1zG .cluster-label span{color:#333;}#mermaid-svg-4F6r4tVIlkUta1zG .cluster-label span p{background-color:transparent;}#mermaid-svg-4F6r4tVIlkUta1zG .label text,#mermaid-svg-4F6r4tVIlkUta1zG span{fill:#333;color:#333;}#mermaid-svg-4F6r4tVIlkUta1zG .node rect,#mermaid-svg-4F6r4tVIlkUta1zG .node circle,#mermaid-svg-4F6r4tVIlkUta1zG .node ellipse,#mermaid-svg-4F6r4tVIlkUta1zG .node polygon,#mermaid-svg-4F6r4tVIlkUta1zG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4F6r4tVIlkUta1zG .rough-node .label text,#mermaid-svg-4F6r4tVIlkUta1zG .node .label text,#mermaid-svg-4F6r4tVIlkUta1zG .image-shape .label,#mermaid-svg-4F6r4tVIlkUta1zG .icon-shape .label{text-anchor:middle;}#mermaid-svg-4F6r4tVIlkUta1zG .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-4F6r4tVIlkUta1zG .rough-node .label,#mermaid-svg-4F6r4tVIlkUta1zG .node .label,#mermaid-svg-4F6r4tVIlkUta1zG .image-shape .label,#mermaid-svg-4F6r4tVIlkUta1zG .icon-shape .label{text-align:center;}#mermaid-svg-4F6r4tVIlkUta1zG .node.clickable{cursor:pointer;}#mermaid-svg-4F6r4tVIlkUta1zG .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-4F6r4tVIlkUta1zG .arrowheadPath{fill:#333333;}#mermaid-svg-4F6r4tVIlkUta1zG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4F6r4tVIlkUta1zG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4F6r4tVIlkUta1zG .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4F6r4tVIlkUta1zG .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-4F6r4tVIlkUta1zG .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4F6r4tVIlkUta1zG .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-4F6r4tVIlkUta1zG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4F6r4tVIlkUta1zG .cluster text{fill:#333;}#mermaid-svg-4F6r4tVIlkUta1zG .cluster span{color:#333;}#mermaid-svg-4F6r4tVIlkUta1zG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4F6r4tVIlkUta1zG .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-4F6r4tVIlkUta1zG rect.text{fill:none;stroke-width:0;}#mermaid-svg-4F6r4tVIlkUta1zG .icon-shape,#mermaid-svg-4F6r4tVIlkUta1zG .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4F6r4tVIlkUta1zG .icon-shape p,#mermaid-svg-4F6r4tVIlkUta1zG .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-4F6r4tVIlkUta1zG .icon-shape .label rect,#mermaid-svg-4F6r4tVIlkUta1zG .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4F6r4tVIlkUta1zG .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-4F6r4tVIlkUta1zG .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-4F6r4tVIlkUta1zG :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
主控模块
输入模块
变换模块
输出模块
读入订单
验证订单
处理订单
输出结果
写入文件
(四)详细设计
模块说明:
| 主控模块 | 系统控制 | – | – |
| 读入订单 | 读入订单数据 | 订单文件 | 订单数据 |
| 验证订单 | 验证订单 | 订单数据 | 验证结果 |
| 处理订单 | 处理订单 | 订单数据 | 处理结果 |
| 输出结果 | 输出结果 | 处理结果 | 结果文件 |
📝 总结
结构化设计方法是面向数据流的重要设计方法。
🎯 方法定义:将数据流图映射为软件结构,是概要设计阶段的重要设计方法。
📦 基本概念:
- 变换型数据流:线性流动,经过变换
- 事务型数据流:根据事务类型分发
🌐 设计步骤:分析数据流→确定数据流类型→变换分析/事务分析→设计初始结构→优化结构→编写文档。
💡 变换分析:
- 适用于变换型数据流
- 步骤:确定变换中心→设计顶层结构→设计输入分支→设计输出分支→设计变换分支
📋 事务分析:
- 适用于事务型数据流
- 步骤:确定事务中心→识别事务类型→设计接收分支→设计发送分支→设计处理分支
📊 设计优化:高内聚低耦合、模块规模适中、控制深度宽度、扇入扇出合理。
核心启示:结构化设计方法是软件设计的重要方法,"面向数据流"是其核心思想。在实际工作中,我们需要注意:第一,正确识别数据流类型,选择合适的设计方法;第二,严格遵循设计步骤,确保设计质量;第三,重视结构优化,提高模块独立性;第四,编写完整的设计文档,为后续开发提供依据。结构化设计方法虽然历史悠久,但其思想仍然具有重要价值,理解这种方法有助于我们更好地理解软件设计的本质。
网硕互联帮助中心




评论前必须登录!
注册