第五章 结构化设计

news2025/1/31 21:03:55

结构化设计的概念

1. 设计的定义

一种软件开发活动,定义实现需求规约所需的软件结构。
结构化设计分为:
(1)总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。
(2)详细设计:详细描述模块。

2. 整体框架

在这里插入图片描述

体系结构设计(MSD)

在这里插入图片描述

接口设计

在这里插入图片描述

数据设计

在这里插入图片描述

3. 对设计方法的需求

实现软件设计的目标对结构化设计方法的需求
(1) 提供可体现**“原理/原则”的一组术语(符号),形 一个特定的抽象层,用于表达设计中所使用的部件。
(2)依据术语所形成的“空间”, 给出
表达软件模型工具**。
(3)给出设计的过程指导

4. 总体设计层概述

(1)在总体设计层

① 引入了两个术语/符号

在这里插入图片描述

② 引入了模块结构图 (MSD)

在这里插入图片描述

③ 过程指导

将DFD转化为MSD
第一步:如何将DFD转化为初始的MSD
分类:变换型数据流图、事务型数据流图、变换设计、事务设计
第二步:如何将初始的MSD 转化为最终可供详细设计使用的MSD

总体设计三个阶段

第一阶段:初始设计。在对给定的数据流图进行复审和精化的基础上,将其转化为初始的模块结构图。 根据穿越系 统边界的数据流初步确定系统与外部的接口。

第二阶段:精化设计。依据模块"高内聚低耦合"的原则, 精化初始的模块结构图, 并设计其中的全局数据结构和每一模块的接口。

第三阶段:设计复审阶段,对前两个阶段得到的高层软件 结构进行复审,必要时还可能需要对软件结构做一些精化 工作。

初始模块结构图的设计

1. 数据流图的分类

变换型DFD

具有较明显的输入部分和变换部分之间的界面、变换部分和输出部分之间界面的数据流图。
在这里插入图片描述
在这里插入图片描述

事务型DFD

数据到达一个加工,该加工根据输入数据的值,在其后的若干动作序列(称为一个事务)中选出一个来执行,这类数据流 图称为事务型数据流图。
在这里插入图片描述
1)接受输入数据
2)分析并确定对应的事务
3)选取与该事务对应的一条活动路径

事务型DFD和变换型DFD的区别

  1. 原则上所有DFD都可以看成是变换型DFD
  2. 一般而言,接受1个输入数据,分成多条路径

变换设计的基本步骤

①第1步:设计准备—复审并精化系统模型
②第2步:确定输入、变换、输出这三部分之间的边界
在这里插入图片描述

③第3步:第一级分解—系统模块结构图顶层和第一层的设计
S
④ 第4步:第二级分解— 自顶向下,逐步求精
在这里插入图片描述

事务设计的基本步骤

① 第1步:设计准备— 复审并精化系统模型
②第2步:确定事务处理中心
③第3步:第一级分解—系统模块结构图顶层和第一层的设计
在这里插入图片描述
④ 第4步:第二级分解一自顶向下,逐步求精
在这里插入图片描述

模块和模块化

常见的启发式规则

模块:执行一个特殊任务的一组例程和数据结构
接口:给出可由其他模块和例程访问的对象
实现:接口的实现(模块功能的执行机制)
模块化:把系统分解成若干模块的过程

切记:高内聚低耦合

启发式规则

从长期的软件开发实践中,总结出来的规则。

常见的启发式规则

改进软件结构,提高模块独立性;
模块规模适中-每页60行语句;
深度、宽度、扇入和扇出适中;
模块的作用域力争在控制域之内;
降低模块接口的复杂性;
模块功能应该可以预测。

输入部分的精化

在这里插入图片描述

输出部分的精化

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

变换部分的精化

在这里插入图片描述

接口设计

(1)模块或软件构件间的接口设计;
(2)软件与其他软硬件系统之间的接口设计;
(3)软件与人(用户)之间的交互设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从Referer到XMLHttpRequest:探究Web安全中的重要知识点

目录 Referer 概念 Referrer-policy(可以一定程度上防御CSRF攻击) 同源 iframe sandbox(沙箱): cookie的原理: 如何设置Referrer? 盗链 盗链的工作原理 三种情况下可以引用图片: XMLHTTPRequest AJAX&…

初出茅庐的小李博客之STM32F103实现CAN通信

CAN通信基础知识 参考上一篇博客 https://editor.csdn.net/md/?articleId131026450 原理图 转换芯片是 TJA1050 代码实现思路 发送思路:定时发送 按键测试发送 接收思路:中断接收 CAN代码实现 第一步 定义了两个全局变量TxMessage和RxMessage&am…

Unity如何实现Microphone判断录入音频的频率是低音还是高音

前言 Unity中使用Microphone可以通过麦克风录制AudioClip音频,我们可以通过它实现录音功能,然后可以通过录入的音频数据对音频进行分析,比如音量大小,频率高低,等等。 我们今天就来分析一下音频的高音低音。 如何判断高音低音 科普:一般人们习惯将音响划分一定的频段…

参数估计(点估计和区间估计)

参数估计(点估计和区间估计) 1.1 点估计 点估计的理解示意图 下图中样本均值就是对总体均值的点估计 1.1.1 矩估计 关于什么是矩?可以参考马同学。传送门:如何理解概率论中的“矩”? 根据大数定律,样本…

007: vue中修改el-select选中颜色不生效的办法

第007个 查看专栏目录: 按照VUE知识点 ------ 按照element UI知识点 echarts,openlayers,cesium,leaflet,mapbox,d3,canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下,本专栏…

apm装机教程(一):无人车

文章目录 前言一、下载固件二、设置参数 前言 APM4.2.3 差速小车 pix2.4.8 MP地面站 一、下载固件 pix2.4.8使用的是fmuv3的固件,可以在官网上下载 https://firmware.ardupilot.org/Rover/stable-4.2.3/fmuv3/ 或者从我的网盘下载 链接:https://pan.b…

【算法题】面试题 01.01. 判定字符是否唯一

题目来源:《程序员面试金典(第 6 版)》 1、Problem: 面试题 01.01. 判定字符是否唯一 文章目录 面试题 01.01. 判定字符是否唯一一、题目描述二、解决方案(一)方案一1、解题思路2、解题方法3、复杂度4、代码实现 &…

数据分析手册-R语言

1 数据准备 1.1 数据录入 1.1.1 R中导入数据 (1)导入excel 1.2 修改工作路径 https://wenku.baidu.com/view/2785ff37b4360b4c2e3f5727a5e9856a561226c9.html 1.3 如何计算样本量 https://www.bilibili.com/video/BV19t411u7TW?spm_id_from333.…

亚马逊云科技Serverless构建的实时数仓解决方案,助力猎豹降低30%成本

也许你也听过这样一句话:“21世纪什么最贵?人才!”当数字经济全面席卷而来,这个问题的答案不可置否地变为了“数据”。通过数据分析获取近乎实时的洞察,以驱动业务的全流程,是企业数字化转型的必经之路。借…

【网络编程】计算机网络基础知识总结 | 运输层 |TCP协议

文章目录 前言一、计算机网络层次结构二、网络层三、运输层3.1、TCP/IP协议介绍3.2、端口(协议端口号)3.3、套接字3.4、TCP实现原理3.4.1、TCP的特点3.4.2、停止等待协议3.4.3、滑动窗口协议3.4.4、拥塞控制3.4.5、TCP连接的三个阶段 3.5、UDP实现原理 前…

day50_mybatis

今日内容 0 复习昨日 一、分页插件 二、ORM映射【重点】 三、多表联查 【重点】 四、动态SQL 【重点】 五、$和# 零、复习昨日 mybatis orm框架,作用于持久层,高效开发,只关注sql,其他不用关心 思考MyBatis到底帮你省了哪些事情? jdbc第四步sql自己编写之外,其他mybatis都做了…

C++标准库模板(STL)-输入/输出库

C 包含两个输入/输出库:现代的、基于流的 I/O 库和 C 风格 I/O 函数的标准集合。 基于流的 I/O 基于流的输入/输出库围绕抽象的输入/输出设备组织。这些抽象设备允许相同代码处理对文件、内存流或随即进行任意操作(例如压缩)的自定义适配器…

编译原理 | 课程设计 — PL/0编译程序语法分析

1、任务描述 基于第二章的词法分析程序,使用C/C语言编写PL/0编译程序的语法分析程序。 2、编程要求 完成上述编程任务,将C/C语言源程序复制粘贴到右侧代码编辑器,点击“评测”按钮,运行程序,系统会自动进行结果对比。 …

CoreDX DDS应用开发指南(4)DDS实体h和主题

6 DDS实体 DDS标准定义了一个体系结构,该体系结构表示构成DDS API实体的面向对象模型。这些实体充当中间件和应用软件之间的接口。为了开发支持DDS的应用程序,开发人员必须创建、交互并销毁这些DDS实体。 本章概述了DDS实体和相关概念。 6.1 DDS实体层次结构 构成DDS API的主…

马斯克最大的挑战是什么?

“硅谷钢铁侠”马斯克,最大的挑战是什么? 有纠错反馈循环,并保持这个循环 我们常说的“迭代”,就是打造“反馈系统” 趣讲大白话:需要一面不扭曲的镜子 【趣讲信息科技192期】 **************************** 2017年&a…

通过浏览器,将webp格式图片转jpg格式

概述 我们网络上下载的图片,很多的是webp格式的图片,而目前支持这种图片格式的软件较少,比如Windows 照片查看器,是不能直接打开图片的。安装其他专业图像软件又麻烦。 因此,本文介绍利用电脑常用的软件,…

运营-20.产品社区化和内容化

产品社区化和内容化 为什么现在很多产品都在往社区化、内容化发展? 1.拓展产品线,满足用户的多元需求 分享、交流、炫耀、虚荣,这些是人类永恒的情感需求,社区是一个能很好的满足这些需求的工具; 2.打造归属感&…

TiDB亿级数据亚秒响应查询Dashboard使用

目录 1 集群概况1.1 QPS1.1.1 延迟1.1.2 Top SQL 语句1.1.3 最近的慢查询 2 集群信息2.1 实例列表2.1.1 表格列解释2.1.2 实例状态解释 2.2 主机列表2.2.1 表格列解释 2.3 SQL语句分析2.3.1 执行列表页2.3.2 执行详情页面 2.4 慢查询2.4.1 慢查询列表页2.4.2 查看执行详情 2.5 …

2023-06-10 Untiy进阶 C#知识补充1——.Net介绍

文章目录 一、.Net 介绍二、.Net 跨语言的实现三、.Net 跨平台的实现(一).Net Framework(二).Net Core(三)Mono 四、总结 一、.Net 介绍 ​ 微软的 .Net 既不是编程语言也不是框架,是类似于互联…

Tomcat部署和优化

文章目录 Tomcat概述Tomcat的核心组件Tomcat的功能组件结构Container 结构分析Tomcat 请求过程: Tomcat 服务部署Tomcat 虚拟主机配置HTTP 请求过程 Tomcat优化常用的优化相关参数如下 Tomcat概述 Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的…