云计算百科
云计算领域专业知识百科平台

软件工程:结构化设计方法

📌目录

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

在这里插入图片描述


⚖️ 结构化设计方法:面向数据流的设计技术

结构化设计方法(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;}

主控模块

输入模块

变换模块

输出模块

读入订单

验证订单

处理订单

输出结果

写入文件

(四)详细设计

模块说明:

模块功能输入输出
主控模块 系统控制
读入订单 读入订单数据 订单文件 订单数据
验证订单 验证订单 订单数据 验证结果
处理订单 处理订单 订单数据 处理结果
输出结果 输出结果 处理结果 结果文件

📝 总结

结构化设计方法是面向数据流的重要设计方法。

🎯 方法定义:将数据流图映射为软件结构,是概要设计阶段的重要设计方法。

📦 基本概念:

  • 变换型数据流:线性流动,经过变换
  • 事务型数据流:根据事务类型分发

🌐 设计步骤:分析数据流→确定数据流类型→变换分析/事务分析→设计初始结构→优化结构→编写文档。

💡 变换分析:

  • 适用于变换型数据流
  • 步骤:确定变换中心→设计顶层结构→设计输入分支→设计输出分支→设计变换分支

📋 事务分析:

  • 适用于事务型数据流
  • 步骤:确定事务中心→识别事务类型→设计接收分支→设计发送分支→设计处理分支

📊 设计优化:高内聚低耦合、模块规模适中、控制深度宽度、扇入扇出合理。


核心启示:结构化设计方法是软件设计的重要方法,"面向数据流"是其核心思想。在实际工作中,我们需要注意:第一,正确识别数据流类型,选择合适的设计方法;第二,严格遵循设计步骤,确保设计质量;第三,重视结构优化,提高模块独立性;第四,编写完整的设计文档,为后续开发提供依据。结构化设计方法虽然历史悠久,但其思想仍然具有重要价值,理解这种方法有助于我们更好地理解软件设计的本质。


赞(0)
未经允许不得转载:网硕互联帮助中心 » 软件工程:结构化设计方法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!