5.10.结构化开发方法-结构化分析

news2025/1/11 12:41:38

案例分析第一题会考

  • 结构化特点:自顶向下,逐步分解,面向数据。
  • 三大模型:功能模型(数据流图)、行为模型(状态转换图)、数据模型(E-R图)以及数据字典
    在这里插入图片描述

数据流图DFD

数据流图DFD基本图形元素:外部实体、加工、数据存储、数据流
在这里插入图片描述

  • 数据流:由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向必须经过加工
  • 加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的三种错误如图所示:
    • 加工3.1.2有输入但是没有输出,称之为“黑洞
    • 加工3.1.3有输出但没有输入。称之为“奇迹”。
    • 加工3.1.1中输入不足以产生输出,我们称之为“灰洞”。
  • 数据存储:用来存储数据。一般用表或者本地文件表示
  • 外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。
    在这里插入图片描述
    上图
    外部实体:雇员和应收账部门
    数据存储:会员账号 和 雇员信息表
    数据流:一个有向的箭头+流向的具体数据名字,就是从哪个地方往哪个地方流向什么数据。必须经过加工,不能从外部实体到外部实体,数据存储到数据存储
    加工:一个一个的功能逻辑,即有输入又有输出的数据流。根据该点规律可以做题目找出图中缺少的数据流

顶层图、0层图和1层图

在这里插入图片描述

  • 顶层图:描述外部实体和信息系统之间的数据交互。
    上图中考生要考试,首先要报名(考生->系统的报名单数据流),报名后考务处理系统会颁发准考证(系统->考生的准考证数据流),并且通知考生什么时候来考试(系统->考生的考生通知单数据流),最后如果考生考试不合格,需要给考生不合格报名单,在考试过程中该系统还需要和考试中心和阅卷站进行数据交互。这就是用顶层图描述的一个外部实体和信息系统之间的交互流程,但是顶层图不能描述具体的加工功能,即不能描述考生和考务系统到底经过了哪些功能?所以需要看0层图
  • 0层图:在顶层图的里面进行描述具体的加工细节。
    顶层图里的考生->考务系统的报名单数据流,0层图里也有报名单数据流,但是不是考务系统里发的,它开始以加工的形式具体描述怎么做的即描述了加工的逻辑。

注意:顶层图和0层图输入和输出的数据一定要达到平衡。顶层图输出的数据流在0层图里必须要要有(如图报名单数据流);同理,在顶层图输入的数据流在0层图里也必须有(不合格报名单数据流)。
这一种平衡,我们会发现0层图对于加工的描述还不够详细,所以0层图之下还有1层图,针对每一个加工进一步的细化
在这里插入图片描述
前面0层图的加工1登记报名表展开形成1层图,加工2统计成绩展开形成2层图。
登记报名表到底这么完成的登记,0层图里没有具体的描述,在1层图里有完整的描述。首先检查报名表,然后需要边准考证号,其次需要登记考生。这样后面我们才有这些相关的操作
考试的时候,不会同时给我们三个层图的。一般会略过0层图,准确的是把0层图和1层图结合在一起,然后加上顶层图一起考

怎么考

在这里插入图片描述
考试1:问E1、E2、E3、E4这三个外部实体是什么?题目还会给出需求说明,根据需求描述做题,一个外部实体1分
考点2:P3、P4、P6、D1、D2、D3写出这些数据存储。一个1分
考点3:缺失了什么数据流?需要根据需求描述做题。大概4分
考点4:考程序化的设计,拿一段需求用结构化的语句描述。if…else…写伪代码。2-3分
案例分析后面有文章再具体写哈~

数据字典

数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明,即为了描述数据流图的
数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。(注意这里没有描述外部实体,因为外部实体不是系统内部的内容)
加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表和判定树3种。
在这里插入图片描述

练习题

不太会考选择题,基本上考案例分析

例:以下关于数据流图的叙述中,不正确的是()。
A.每条数据流的起点或终点必须是加工
B.必须保持父图与子图平衡
C.每个加工必须有输入数据流,但可以没有输出数据流
D应保持数据守恒

答案C

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

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

相关文章

网络IO模型及零拷贝问题

文章目录 BIOaccept监听案例read案例利用多线程 NIO案例NIO存在的问题 IO multiplexing-IO多路复用文件描述符(FD,句柄) 是什么reactor反应模式 select方法优点缺点小总结 poll方法优点缺点 epoll方法 Reactor模式单Reactor单线程 单Reactor多线程主从Re…

linux docker安装 gitlab后忘记root密码如何找回

1. docker ps - a 查看当前gitlab 当前的id2. docker exec -it gitlab /bin/bash 进入docker git 容器中【gitlab 注意可以上图中的name,也可以是id都可以的】,如下图3.gitlab-rails console -e production 输入该指令,启动Ruby on Rails控制台&…

Copy as cURL 字段含义

当前端在开发过程中,遇到接口错误反馈给后端人员时,一般在此接口处右键复制为cURL。 格式如下: curl https://xxx.xxx.cn/xxx/xxx/management/record/list \-H accept: application/json, text/plain, */* \-H accept-language: zh-CN,zh;q0…

LVS集群中的负载均衡技术

目录 1、LVS技术原理 2、NAT模式原理及部署方法 1、工作原理 2、部署方法 1、网络配置 2、软件安装与启用 3、测试 2、DR模式工作原理及部署方法 1、工作原理 2、部署方法 1、网络配置 2、解决vip响应问题 3、测试 3、ipvsadm命令及参数 1.管理集群服务中的增删…

数据同步工具之Flink CDC

Flink CDC(Change Data Capture)是基于Apache Flink的一个扩展,用于捕获和处理数据库中的数据变化。它能够实时捕获关系数据库中的数据变更(如插入、更新、删除操作),并将这些变更流式传输到Flink进行处理。…

【OceanBase系列】—— OceanBase应急三板斧

作者: 花名:洪波, OceanBase 数据库解决方案架构师 目前随着OceanBase数据库越来越流行,社区已经有很多用户在生产环境使用了OceanBase,也有不少用户的核心业务用到了OceanBase数据库,在使用OceanBase数据库…

演示:基于WPF的DrawingVisual开发的矢量地图

一、目的:基于WPF的DrawingVisual开发的矢量地图 二、预览 默认样式 深黑样式 深蓝色样式 深蓝色透明样式 三、环境 VS2022,Net7,GDAL,审图号为GS(2019)1822号矢量数据,DrawingVisual 四、主要功能 支持多种显示样式(默认样式&…

代码随想录27期|Python|Day39|​62. 不同路径​|​63. 不同路径 II​

62. 不同路径 简单题。由于规定了只能走右边和下边,所以右下角的值等于左对角线的两数之和。 1、确定dp和下标:二维数组,i,j分别为行和列,dp值为所需步数; 2、 初始化:只有上边和左边全部初始…

Java二十三种设计模式-享元模式(12/23)

享元模式:高效管理大量对象的设计模式 引言 在软件开发中,有时需要处理大量相似或重复的对象,这可能导致内存使用效率低下和性能问题。享元模式提供了一种解决方案,通过共享对象的共同部分来减少内存占用。 基础知识&#xff0c…

Apache OFBiz 曝出严重漏洞,允许预身份验证 RCE

近日,研究人员发现 Apache OFBiz 中存在一个新的关键漏洞,该漏洞是 Apache OFBiz 中的一个错误授权问题,被追踪为CVE-2024-38856。该漏洞影响 18.12.14 之前的版本,18.12.15 版本解决了该漏洞。 SonicWall 的安全研究员 Hasib Vh…

字节跳动发Seed-TTS语音合成模型,可模仿任意人的声音,效果逼真

前期我们介绍过很多语音合成的模型,比如ChatTTS,微软语音合成大模型等,随着大模型的不断进步,其合成的声音基本跟真人没有多大的区别。本期介绍的是字节跳动自家发布的语音合成模型Seed-TTS。 Seed-TTS 推理包含四个功能模块&…

JavaScript中判断变量的类型

数据类型 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种引用类型),它们分别是: 原始类型/基本类型: Number,BigInt,String,Boolean,null,unde…

C++开发基础之深入理解C++中的两种单例模式实现——线程安全与效率的权衡

引言: 单例模式是设计模式中的一种,它保证一个类仅有一个实例,并提供一个全局访问点。在C中,实现单例模式的方式多种多样,但随着多线程应用的普及,如何确保单例模式在多线程环境下的线程安全性成为了一个重…

深度学习--图像分割UNet介绍及代码分析

UNet介绍 参考UNet网络介绍整体架构UNet过程输入编码器(下采样)中间特征表示解码器(上采样)输出 代码详解unetUP和Unet关系上采样模块——unetUp用于图像分割的卷积神经网络(CNN)架构模块——Unet类的定义初…

使用 Manim 创建一个二维坐标平面【NumberPlane】

NumberPlane 是 Manim 中用于创建一个二维坐标平面的类。它可以帮助用户在场景中可视化坐标轴、网格线以及其他数学概念。具体来说,它的功能包括: 坐标轴:NumberPlane 提供了 x 轴和 y 轴,通常是中心对称的,允许用户清…

深入探究Python反序列化漏洞:原理剖析与实战复现

在现代应用程序开发中,Python反序列化漏洞已成为一个备受关注的安全问题。反序列化是Python中用于将字节流转换回对象的过程,但如果没有妥善处理,攻击者可以通过精心构造的恶意数据,利用反序列化漏洞执行任意代码,进而…

前端day4-表单标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>day4-表单</title> </head> <body&g…

# 基于MongoDB实现商品管理系统(2)

基于MongoDB实现商品管理系统&#xff08;2&#xff09; 基于 mongodb 实现商品管理系统之准备工作 1、案例需求 这里使用的不是前端页面&#xff0c;而是控制台来完成的。 具体的需求如下所示&#xff1a; 运行 查询所有 通过id查询详情 添加 - 通过id删除 2、案例分析 程…

进程创建,进程消亡

虚拟地址&#xff1a;通过虚拟技术&#xff0c;将外部存储设备的一部分空间&#xff0c;划分给系统&#xff0c;作为在内存不足时临时用作数据缓存。当内存耗尽时&#xff0c;电脑就会自动调用硬盘来充当内存&#xff0c;以缓解内存的紧张。 练习: 编写一个代码实现,一个父…

OGG转MP3音频格式转换:6种免费音频转换器推荐

在如今的数字音乐时代&#xff0c;不同音频格式的兼容性问题常常让我们感到困扰。其中&#xff0c;OGG和MP3是两种常见的音频格式&#xff0c;但由于设备和平台的支持问题&#xff0c;我们经常需要将OGG转换为MP3格式。 本文将为您详细介绍OGG和MP3的区别&#xff0c;为什么需要…