软件工程——软件结构图设计(变换分析设计、事务分析设计、混合流设计)

2023-05-16

结构化设计(SD)是以结构化分析(SA)产生的数据流图为基础,将数据流图按一定的步骤映射成软件结构图(SC)。

一. 数据流的类型

结构化设计的目的是要把数据流图映射成软件结构,根据数据流的特性,一般可分为变换型数据流图和事务型数据流图。

1. 变换型数据流图

根据信息系统的模型,信息一般是以外部形式进入系统,通过系统处理后,然后离开系统。从其过程可以得出,变换流的数据流图是一个线性结构。
变换型的数据流是由输入、变换(或称处理)和输出三部分组成 。

在这里插入图片描述

2. 事务型数据流图

若某个加工将它的输入流分离成许多发散的数据流,形成许多平行的加工路径,并根据输入的值选择其中一个路径来执行,这种特征的数据流图称为事务型数据流图。
图中的处理T称为事务中心,它完成下述任务:
(1)接收输入数据。
(2)分析每个事务,确定其类型。
(3)根据事务选择一条活动通路。

在这里插入图片描述

二. 变换设计分析

1.确定数据流图的变换中心、逻辑输入和逻辑输出

从物理输入端开始,沿着数据流方向向系统中心寻找,直到有这样的数据流,它不能被看做是系统的输入,则它的前一个数据流就是系统的逻辑输入。
从物理输出端开始,逆数据流方向向中间移动,直到有这样的数据流,它不能被看做是系统的输出,则它的后一个数据流就是系统的逻辑输出。
位于逻辑输入和逻辑输出之间的就是变化中心。

2.设计软件结构的顶层和第一层

在这里插入图片描述

3. 设计中、下层模块。

(1)输入模块的下属模块的设计
输入模块的功能是向调用它的模块提供数据,所以必须要有数据来源。这样输入模块应由接受输入数据和将数据转换成调用模块所需的信息两部分组成。因此,每个输入模块可以设计成两个下属模块:一个接受、一个转换。如图中模块get f3和 get f2的分解。
(2)输出模块的下属模块的设计
每个输出模块可以设计成两个下属模块:一个转换、一个发送。如图中模块put f7和 put f8的分解。
(3)变换模块的下属模块的设计

4. 设计的优化

(1)输入部分的求精
(2)输出部分的求精
(3)变换部分的求精

三. 事务设计分析

1.确定数据流图中的事务中心和加工路径

当数据流图中的某个加工具有明显地将一个输入数据流分解成多个发散的输出数据流时,该加工就是事务中心。从事务中心辐射出去的数据流为各个加工路径。

2.设计软件结构的顶层和第一层

事务处理中心和事务处理路径确定后,就可以确定它们的软件结构。一般是一个接受分支和一个发送分支。
接收分支:负责接收数据,它的设计与变换型数据流图的输入部分设计方法相同。
发送分支:通常包含一个调度模块,它控制管理所有下层的事务处理模块。当事务类型不多时,调度模块可与主模块合并。

3.进行事务结构中、下层模块的设计、优化等工作

在这里插入图片描述
在这里插入图片描述

四. 混合流设计

1. 混合数据流图的映射

一般中型以上的系统的数据流图中,都会既有变换流,又有事务流。这就是所谓的混合的数据流图,其软件结构设计方法一般采用以变换流为主,事务流为辅的方法。
(1)确定数据流图整体上的类型。
(2)标出局部的数据流图范围,确定其类型。
(3)按整体和局部的数据流图特征,设计出软件结构。

2. 分层数据流图的映射

对于一个复杂问题的数据流图结果,往往是分层的。那么对于分层的数据流图映射成软件结构图也应该是分层的。

主图变换型,子图事务型:

在这里插入图片描述
主图事务型,子图变换型 :
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件工程——软件结构图设计(变换分析设计、事务分析设计、混合流设计) 的相关文章

随机推荐

  • 分布式理论(二)——Base 理论

    BASE 理论 BASE 是 Basically Available xff08 基本可用 xff09 Soft state xff08 软状态 xff09 和 Eventually consistent xff08 最终一致性 xff09
  • nodejs和vuejs的关系

    nodejs类比Java中 xff1a JVM 详述 xff1a 就前端来说nodejs具有划时代的意义 xff0c 做前端的没用过nodejs都不好意思说自己是前端 xff0c 做后端的没听过nodejs xff0c 或者说不出nodej
  • sonic-ios-bridge(sib)性能监控之系统性能及应用性能

    sib下载地址 xff1a Releases SonicCloudOrg sonic ios bridge GitHub 可以看到最新版本为V1 3 7 下载到本地并解压后即可使用 性能监控使用帮助 xff1a sib perfmon h
  • tomcat lombok 报 Invalid byte tag in constant pool: 19

    提供给其他系统使用的jar包造成tomcat启动报错 xff1a Unable to process Jar entry module info class from Jar jar file xxxxxxxx lombok 1 18 4
  • Tomcat的性能与最大并发配置

    当一个进程有 500 个线程在跑的话 xff0c 那性能已经是很低很低了 Tomcat 默认配置的最大请求数是 150 xff0c 也就是说同时支持 150 个并发 xff0c 当然了 xff0c 也可以将其改大 当某个应用拥有 250 个
  • Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster)优缺点分析

    Redis 单机模式 xff0c 主从模式 xff0c 哨兵模式 sentinel xff0c 集群模式 cluster xff0c 第三方模式优缺点分析 Redis 的几种常见使用方式包括 xff1a 单机模式主从模式哨兵模式 senti
  • tomcat开机自启动

    有两种方式可以实现 xff0c 一种是自启动脚本 一种是将tomcat注册为服务 xff0c 设置服务自启动 一 自启动脚本 1 添加tomcat启动脚本到开机自启动项目中 vim etc rc d rc local 增加以下内容 xff1
  • jeecgboot @Transactional捕获异常并拿到返回值

    64 Transactional 和 64 RestControllerAdvice 并不冲突 回滚的同时拦截异常返回需要的值给前端 64 Override 64 Transactional rollbackFor 61 Exception
  • @AliasFor 注解使用规则

    64 AliasFor 顾名思义 xff0c 表示别名 1 它可以注解到自定义注解的两个属性上 xff0c 表示这两个互为别名 2 注解是可以继承的 xff0c 但是不能用来继承父注解的某个属性值 xff0c 可以通过在子注解对于的属性上加
  • Docker Desktop修改默认安装路径?

    原理 xff1a 建立一个目录的软链接 用管理员身份打开cmd窗口 xff0c 然后运行命令 xff1a mklink j 34 C Program Files Docker 34 34 D Program Files Docker 34
  • java web项目打包成exe安装程序

    需求 xff1a 由于java web项目 xff0c 需要依赖mysql数据库 tomcat容器 jdk等 xff0c 部署需要一定技术支持才能够完成 xff0c 操作繁琐 xff0c 希望简化 目标 xff1a 制作一个exe一键安装相
  • http 请求参数包含? & 处理

    escape encodeURI encodeURIComponent 区别详解 JavaScript中有三个可以对字符串编码的函数 xff0c 分别是 xff1a escape encodeURI encodeURIComponent x
  • 多个项目共用一个redis

    redis 数据库是由一个整数索引标识 xff0c 而不是由一个数据库名称 默认情况下连接到数据库0 因此多个项目如果配置不做修改都会使用0号数据库 xff0c 会发生冲突 所以 每个项目配置不同的 database 即可解决
  • LoadRunner中参数化技术详解

    LoadRunner中参数化技术详解 LoadRunner在录制脚本的时候 xff0c 只是忠实的记录了所有从客户端发送到服务器的数据 xff0c 而在进行性能测试的时候 xff0c 为了更接近真实的模拟现实应用 xff0c 对于某些信息需
  • 23种设计模式类图

    下边是23种设计模式的类图大汇总 xff0c 23种设计模式解析请移步 http blog csdn net qq 25827845 article details 52932234 1 创建类模式 2 行为类模式 3 结构类模式
  • navicat 复制表结构到word文档做数据库设计格式问题解决

    需求 xff1a 写数据库设计文档 xff0c 需要设计数据字典 xff0c 贴表结构 xff0c 如果是几百张表 一个个填工作量很大 解决方案 xff1a 1 sql查询所有字段 2 整体复制到excel 3 拆分表 xff0c 调整列项
  • vue图片压缩上传组件修改

    判断逻辑 大于200KB 压缩上传 xff0c 否则不做处理上传原始图片 1 安装插件 yarn add image conversion 2 引入 import compressAccurately from 39 image conve
  • new ScriptEngineManager().getEngineByName(“js“)返回null

    问题出现的场景 xff1a 本地开发和生产环境都没问题 xff0c 测试环境 用的docker 报空指针 new ScriptEngineManager getEngineByName 34 js 34 返回null js替换 JavaSc
  • vue a-collapse的默认全部展开

    思路 xff1a activekey的值为默认展开的项 xff0c 要想全部展开 xff0c 就得把所有的key值都加到 activekey中 如下例子 xff0c activekey 61 39 1 39 默认展开第一个 要想全部展开就需
  • 软件工程——软件结构图设计(变换分析设计、事务分析设计、混合流设计)

    结构化设计 SD 是以结构化分析 SA 产生的数据流图为基础 xff0c 将数据流图按一定的步骤映射成软件结构图 SC 一 数据流的类型 结构化设计的目的是要把数据流图映射成软件结构 xff0c 根据数据流的特性 xff0c 一般可分为变换