第七章 结构化设计

2023-11-08

第七章 结构化设计

1.软件结构图的形态特征有哪些指标?各有什么含义?

(1)深度:指结构图控制的层次,即模块的层数。
(2)宽度:指一层中最大的模块个数。
(3)扇出:指一个模块直接下属模块的个数。如模块M的扇出为3.
(4)扇入:指一个模块直接上属模块的个数。

2.软件结构有哪些优化原则?
(1)模块独立性准则
划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,以此原则优化初始的软件结构。
(2)软件结构的形态特征准则
软件结构的深度、宽度、扇入数和扇出数都要适当。
(3)模块的大小准则
按模块的独立性,即根据模块的功能来决定模块的大小。
过大的模块应该进行分解。过小的模块会增加模块间接口的复杂性,可以进行适当的合并,但不应降低模块的独立性。
(4)模块控制域与作用域之间的准则
一个模块的作用域应在其控制范围之内,且条件判定所在的模块应与受其影响的模块在层次上尽量靠近。
(5)模块的接口准则
模块的接口要简单、清晰,力求降低模块接口的复杂程度,设计单入口、单出口的模块

3.数据流模型的类型有哪些?各有什么特点?
有三种数据流类型:
(1)变换流:整个数据流体现了以输入、变换、输出的顺序方式,沿一定路径前行的特征,这就是变换型数据流,简称变换流。
(2)事务流:具有根据条件选择处理不同事务的数据流,就是事务型数据流,简称事务流。
(3)混合流:具有将事务流和变换流组合出现,就是混合型数据流,简称混合流。

4.简述面向数据流的变换以及事务设计方法的步骤。
第一步:复查基本系统模型,并精化系统数据流图
第二步:分析数据流类型,确定数据流具有变换流特征还是事务流特征
如果是变换流特征,确定输入流和输出流的边界(也分别称为最高输入/输出抽象点),输入流边界和输出流边界之间就是变换流,也称为“变换中心”。变换流加工处理的是某些形式的内部数据。
如果是事务流特征,则可确定一个接收分支和一个发送分支。其中发送分支包含一个“事务中心”和各个事务动作流。

5.结构化详细设计工具有哪几种?各有什么特点?
(1)图形工具:把过程的细节表示成一个图的组成部分,在这个图上,逻辑构造用具体的图形来表示。
(2)列表工具:用一个表来表示过程的细节,这个表列出了各种操作及其相应的条件,即描述了输入、处理和输出信息。
(3)语言工具:用伪代码来表示过程的细节,这种伪代码很接近于编程语言。

6.请使用面向数据流的设计方法对你的团队项目进行总体设计,将数据流图(DFD)变换得到系统的模块结构图(MSD) 。

7.请选择合适的结构化详细设计工具对你的团队项目的模块进行详细设计。
在这里插入图片描述
华中农小鱼吃吃吃:包图
在这里插入图片描述
华中农小鱼吃吃吃:类图
在这里插入图片描述
结构化设计之流程图
在这里插入图片描述
判定树
在这里插入图片描述
商品界面的判定树

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

第七章 结构化设计 的相关文章

  • [课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1

    作者最近在复习考博 乘此机会分享一些计算机科学与技术 软件工程等相关专业课程考题 一方面分享给考研 考博 找工作的博友 另一方面也是自己今后完成这些课程的复习资料 同时也是在线笔记 基础知识 希望对您有所帮助 不喜勿喷 软件工程导论 张海藩
  • 正确的认识乱码与编码

    文章目录 编码的本质 乱码的几个例子及思考解决方案 浏览器输入到后端乱码 后端返回浏览器乱码 java 枚举类乱码 数据库存储乱码 Linux系统显示乱码 总结 编码的本质 编码将内存字节作用于磁盘文件或者网络文件的过程 是将磁盘文件 网络
  • 【软件工程】静态测试与动态测试

    静态测试 桌前检查 代码走查 代码审查 动态测试 黑盒测试 等价类划分 确定无效与有效等价类 设计用例尽可能多的覆盖有效类 设计用例只覆盖一个无效类 边界值分析 处理边界情况时最容易出错 选取的测试数据应该恰等于 稍小于或稍大于边界值 错误
  • 【软件工程】白盒测试:基本路径测试

    基本路径测试是在程序控制流图的基础上 通过分析控制构造的环路复杂性 导出基本可执行的路径集合 从而设计测试用例的方法 步骤 以一段代码为例 1 画出控制流图 void sort int num int t 1 2 int x 0 3 int
  • 软件工程—软件结构图笔记详谈

    一 定义 结构图 Structure Chart 简称SC图 是精确表达软件结构的图形表示方法 它以特定的符号表示模块 模块间的调用关系和模块间信息的传递 二 主要构成 模块 Module 用矩形框表示 框中写有模块的名字 说明模块的功能
  • 音乐软件案例分析

    项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程 这个作业的要求在哪里 软件案例分析 我在这个课程的目标是 学习软件工程理论 在实践中体会并运用软件工程理论 收获团队开发和软件工程实践经验 这个作业在哪个具体方面帮助我实现目标
  • 个人安装与配置VMware 虚拟机过程中发现的注意事项

    1 官网下载VMware安装包 本人版本应该是16 0 0 官网地址 下载 VMware Workstation Pro CN 2 安装过程参考网上搜索到的教程VMware16的安装及VMware配置Linux虚拟机 详解版 何故的博客 C
  • 服务计算:简单的web程序

    CloudGo 框架选择 看了go的一些框架如beego和iris觉得挺好的 本来想用 但是虚拟机出了点问题装不成 windows上装成了没ab指令 所以使用官方的net http库做简单的实验 看完beego和iris的特性我还是比较想用
  • 【软件工程】详细设计说明书

    详细设计说明书 1引言 1 1编写目的 说明编写这份详细设计说明书的目的 指出预期的读者 该文档实在概要设计的基础上 进一步的细化系统结构 展示了软件啊结构的图标 物理设计 数据结构设计 及算法设计 详细的介绍了系统各个模块是如何实现的 包
  • 一个不错的关于CPU和GPU(CUDA)的性能比较讨论话题

    http topic csdn net u 20081027 23 67ff3857 3c71 4d5c acf6 095f3497c7a9 html这里是今天的一个论坛的一个帖子 大家可以讨论一下 1 那些程序适合用cpu来做 那些适合用
  • 软件工程复习10:软件设计与实现

    作者 非妃是公主 专栏 软件工程 个性签 顺境不惰 逆境不馁 以心制境 万事可成 曾国藩 专栏地址 软件工程专栏地址 专栏系列文章 软件工程复习01 软件工程概述 软件工程复习02 个人技术 软件工程复习03 个人软件流程 软件工程复习04
  • 软件工程毕业设计题目100例

    文章目录 0 简介 1 如何选题 2 最新软件工程毕设选题 3 最后 0 简介 学长搜集分享最新的软件工程业专业毕设选题 难度适中 适合作为毕业设计 大家参考 学长整理的题目标准 相对容易 工作量达标 题目新颖 1 如何选题 最近非常多的学
  • 什么是决策表?什么是决策树?

    决策树 是在已知各种情况发生概率的基础上 通过构成决策树来求取净现值的期望值大于等于零的概率 评价项目风险 判断其可行性的决策分析方法 是直观运用概率分析的一种图解法 这种决策分支画成图形很像一棵树的树干 故称决策树 它是一种树形结构 每个
  • Go 语言注释教程

    注释是在执行时被忽略的文本 注释可用于解释代码 使其更易读 注释还可用于在测试替代代码时防止代码执行 Go支持单行或多行注释 Go单行注释 单行注释以两个正斜杠 开头 在 和行尾之间的任何文本都将被编译器忽略 不会被执行 示例 This i
  • git 的碎步浪荡,添加仓库子项目,迁移仓库

    1 git仓库迁移 将他人的代码仓库 xxxx 移为自己的 yyyy 仓库 先创建自己的yyyy空仓库 假设url为 yyyy git 将 xxxx 的全部数据 包括分支和 tag 都 download 到本地 git clone recu
  • 68 | 软件工程的宏观视角

    软件工程 今天开始 我们进入第六章 谈谈软件工程 我理解的架构师的职责其实是从软件工程出发的 也许大家都学过软件工程 但如果我们把软件工程这门课重新看待 这门学科到底谈的是什么 是软件项目管理的方法论 无论如何 软件工程是一门最年轻的学科
  • C 语言文件读取全指南:打开、读取、逐行输出

    C 语言中的文件读取 要从文件读取 可以使用 r 模式 FILE fptr 以读取模式打开文件 fptr fopen filename txt r 这将使 filename txt 打开以进行读取 在 C 中读取文件需要一点工作 坚持住 我
  • Go 语言运算符详解:加法、算术、赋值、比较、逻辑和位运算符全面解析

    运算符用于对变量和值执行操作 加号运算符 将两个值相加 如下面的示例所示 示例代码 package main import fmt func main var a 15 25 fmt Println a 尽管加号运算符通常用于将两个值相加
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • 如何打赢稳定性之战?

    文章目录 前言 为什么总会出现问题呢 如何证明你的稳定性做的有效果 既是持久战 也是防御战 1 提前建筑好防御工事 2 以攻为守 3 找外部支援和配合 前言 随着23年年末期间 各大厂争先恐后的出现的各种线上

随机推荐

  • Kafka、RabbitMQ、RocketMQ 消息中间件的对比

    什么是消息队列 消息队列是在消息的传输过程中保存消息的容器 包含以下 3 元素 Producer 消息生产者 负责产生和发送消息到 Broker Broker 消息处理中心 负责消息存储 确认 重试等 一般其中会包含多个 Queue Con
  • 3DCAT实时云渲染助力VR虚拟现实迈向成熟

    近年来 虚拟现实 Virtual Reality VR 技术在市场上的应用越来越广泛 虚拟现实已成为一个热门的科技话题 相关数据显示 2019年至2021年 我国虚拟现实市场规模不断扩大 从2019年的282 8亿元增长至2021年的583
  • qt Model_View_Delegate 模型_视图_代理

    QT当中model view delegate 模型 视图 代理 此结构实现数据和界面的分离 Qt的模型 视图结构分为三部分 模型 model 视图 view 代理 Delegate 其中模型与数据源通信 并为其它部件提供接口 视图从模型中
  • CSS动画-Animation

    一 动画介绍 动画 animation 是CSS3中具有颠覆性的特征之 可通过设置多个节点来精确控制一个或一组动画常用来实现复杂的动画效果 相比较过渡 动画可以实现更多变化 更多控制的效果 二 动画组成 制作动画分为两个部分 keyfram
  • 立体匹配中的NCC,SAD,SSD算法

    常用的基于区域的局部匹配准则主要有图像序列中对应像素差的绝对值 SAD Sum of Absolute Differences 图像序列中对应像素差的平方和 SSD Sum of Squared Differences 图像的相关性 NCC
  • HSqlDB(java内置数据库)

    1 HSqlDB简介 HSQLDB是一款Java内置的数据库 非常适合在用于快速的测试和演示的Java程序中 无需独立安装数据库 HSQLDB有三种模式 1 Server 就像Mysql那样 2 In Process 又叫做 Standal
  • OpenCV颜色查找表

    Mat color imread flover jpeg Mat lut Mat zeros 256 1 CV 8UC3 for int i 0 i lt 256 i lut at
  • 《每日一题》NO.18:哪些因素会影响标准单元的延迟?

    芯司机 每日一题 会每天更新一道IC面试笔试题 其中有些题目已经被很多企业参考采用了哦 聪明的你快来挑战一下吧 今天是第18题 标准单元是RTL2GDS流程的基础 哪些因素会影响到标准单元的延迟呢 我们在工程项目中应该如何处理这些因素呢 快
  • springboot2

    springboot2 springboot2 核心功能 配置文件 web开发 数据访问 Junit5测试 actutor生产指标监控 springboot核心原理解析 springboot2场景整合 虚拟化技术 安全控制 缓存技术 消息中
  • 什么是SQL注入式攻击,如何去防范SQL注入式攻击

    一 SQL注入式攻击 1 所谓SQL注入式攻击 就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串 欺骗服务器执行恶意的SQL命令 2 在某些表单中 用户输入的内容直接用来构造 或者影响 动态SQL命令 或作为存储过程的输
  • 测试用例、缺陷报告示例子

    测试用例 用例标题的作用 让人更清晰直观的查看 前置条件和测试步骤 测试步骤是在前置条件的基础上进行的 合格测试用例标题 缺陷 缺陷的介绍 需求 规格 说明书中明确要求的功能 缺失 少功能 需求 规格 说明书中致命不应该出现的错误 功能错误
  • 【项目实战】C/C++语言带你实现:围棋游戏丨详细逻辑+核心源码

    每天一个编程小项目 提升你的编程能力 游戏介绍 下围棋的程序 实现了界面切换 选择路数 和围棋规则 也实现了点目功能 不过只有当所有死子都被提走才能点目 不然不准确 操作方法 鼠标操作 游戏截图 编译环境 VisualStudio2019
  • 看完这篇 教你玩转渗透测试靶机Vulnhub——The Planets:Mercury

    Vulnhub靶机The Planets Mercury渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 漏洞发现 SSH登入 CVE 2021 4034漏洞提权 获
  • CCAI 2017

    阅读原文请点击 摘要 2017 中国人工智能大会 CCAI 2017 在杭州国际会议中心盛大召开 CCAI发起人 中国科学院院士 中国人工智能学会副理事长谭铁牛院士在大会首日主会场进行了现场致辞 7月22日 23日的 2017 中国人工智能
  • 你必须收藏的Github技巧

    一秒钟把Github项目变成前端网站 GitHub Pages大家可能都知道 常用的做法 是建立一个gh pages的分支 通过setting里的设置的GitHub Pages模块可以自动创建该项目的网站 这里经常遇到的痛点是 master
  • 详细解析赋值、浅拷贝和深拷贝的区别

    一 赋值 Copy 赋值是将某一数值或对象赋给某个变量的过程 分为下面 2 部分 基本数据类型 赋值 赋值之后两个变量互不影响 引用数据类型 赋址 两个变量具有相同的引用 指向同一个对象 相互之间有影响 对基本类型进行赋值操作 两个变量互不
  • 将gitlab的代码仓库实时备份到其他服务器

    首先 这个题目是不完全正确的 因为经过各种尝试 gitlab的仓库直接备份到远端 拷贝回来后是不能使用的 表现为gitlab中能看到项目 但每个项目的内容都无法读取出来 页面上会有报错提示 所以 最终采用的是实时备份gitlab的备份库 最
  • 基于TCN时间卷积网络(含因果膨胀卷积)的单特征输入股票预测项目实战(pytorch)(一维特征)【有数据集和代码,可运行】

    一 项目简介 股票预测是金融领域中的重要问题 通过对历史股票数据的分析和建模 我们可以尝试预测未来股票的价格趋势 为投资决策提供参考 本项目是基于PyTorch深度学习框架实现一个使用时间卷积网络 TCN Temporal Convolut
  • 把request对象中的请求参数封装到bean中/生成UUID

    package me gacl util import java util Enumeration import java util UUID import javax servlet http HttpServletRequest imp
  • 第七章 结构化设计

    第七章 结构化设计 1 软件结构图的形态特征有哪些指标 各有什么含义 1 深度 指结构图控制的层次 即模块的层数 2 宽度 指一层中最大的模块个数 3 扇出 指一个模块直接下属模块的个数 如模块M的扇出为3 4 扇入 指一个模块直接上属模块