【软件设计师】——8.结构化与数据流图

news2024/9/20 9:29:29

目录

8.1 结构化分析

8.2 结构化设计

8.3 数据流图DFD

8.4 数据字典


8.1 结构化分析

  • 结构化分析是面向数据流进行需求分析的方法,采用结构化方法进行系统分析时,根据分解与抽象原则,按照系统中数据处理的流程,用(数据流图 )建立系统的逻辑模型,完成分析工作

  • 结构化分析将数据、处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理结果展现了系统对数据的加工、转换

  • 需求分析阶段的输出是结构化分析模型,包括数据流图、数据字典、实体联系图、状态迁移图。结构化分析的输出包括数据流图、数据字典、加工逻辑,结构化分析的结果为结构化设计提供最基本的输入信息,确定软件体系结构在软件设计阶段进行

  • 结构化分析方法在实施阶段强调的是分析对象的数据流

8.2 结构化设计

  • 设计活动:包括4个既独立又相互联系的活动(金字塔模型)

    1. 数据设计:数据库设计,主要包含数据库设计、数据包含的核心表设计。根据数据字典、实体关系图进行,基于实体联系图确定软件涉及的文件系统结构、数据库表结构

    2. 体系结构设计:开发的系统中包含哪些部件,部件与部件间的关系就是体系结构设计;根据数据流图进行,定义软件的主要结构元素及关系

    3. 接口设计:用于子系统和模块间、内部系统和外部系统间的各种交互,如功能描述、输入输出定义、错误处理设计;根据数据流图进行,描述用户界面、软件、其他硬件设备、其他软件系统、使用人员的外部接口、各种构件间的内部接口

    4. 过程设计:模块详细设计,主要是详细模块的实现算法、模块所使用的数据结构。根据加工规格说明、控制规格说明进行,确定软件各个组成部分内的算法、内部数据结构,并选定某种过程的表达形式来描述各种算法

8.3 数据流图DFD

  • 理解

    1. 面向数据流建模是目前仍被广泛使用的方法之一,DFD是面向数据流建模中的重要工具,它将系统建模成输入一处理一输出的模型,即流入软件的数据对象经处理转换,最后以结果数据对象的形式流出软件

    2. 数据流图是分析过程中描述数据处理过程的工具,只反映系统必须完成的逻辑功能,是一种功能模型,是需求分析阶段产生的成果

    3. 是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出、数据存储等,是系统逻辑模型的重要组成部分,是结构化分析方法的重要模型

    4. 是一种最常用的结构化分析工具,从数椐传递、加工角度,以图形方式刻画系统内数据的运动情况

    5. 数据流图、流程图是结构化建模中使用的重要工具,能帮助开发人员更好地分析设计系统,增强系统开发

    6. 在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的数据流图

组成元素说明图元
数据流由一组固定成分的数据组成,表示数据流向。每个数据流通常有一个合适的名词,反映数据流的含义
加工描述输入数据流到输出数据流间的变换,输入数据流做什么处理后变成输出数据流◯ ▢
数据存储(文件)表示暂时存储的数据,每个文件都有名字。数据流流向文件表示写,流出表示读ㄈ=
外部实体存在于系统外的人员或组织,指出系统所需数据的发源地、系统产生数据的归宿地

  • 数据流图、流程图区别

    1. 数据流图作为一种图形化工具,说明业务处理过程、系统边界内所包含的功能、系统中的数据流,适用于系统分析中的逻辑建模阶段;流程图以图形化方式展示应用程序从数据输入到获得输出为止的逻辑过程,描述处理过程的控制流,往往涉及具体技术、环境,适用于系统设计中的物理建模阶段

    2. 数据流图的处理过程可并行;流程图在某时间点只能处于一个处理过程

    3. 数据流图展现系统的数据流;流程图展现系统的控制流

    4. 数据流图展现全局处理过程,过程间遵循不同的计时标准;流程图的处理过程遵循一致的计时标准

  • 分类

    1. 分层数据流图:必须保持父、子图平衡,父图的输入/输出数据流与子图的输入/输出数据流一致,有时看起来不一致,但经查验数据字典可能发现是一致的。每个加工必须有输入、输出数据流。数据流图中的每个基本加工,需要有一个加工规格说明,描述把输入数据流变换为输出数据流的加工规则,但不需要描述实现加工的具体流程

    2. 顶层数据流图:只含有一个加工处理表示整个管理信息系统;输入、输出数据流为系统的输入、输出数据,表明系统的范围、与外部环境的数据交换关系

  • 分层和编号

    1. 对一个软件系统,其数据流图可能有多层,每层又有许多张图。为区分不同加工、不同DFD子图,应对每张图、每个加工编号,以利于管理

    2. 父图与子图:若分层数据流图的某张图A中的某个加工可用另一张图B来分解,则称图A是图B的父图,图B是图A的子图。一张图中,有些加工需进一步分解,有些加工则不必分解。若父图中有n个加工,那么它可以有位于同一层的0~n张子图,但每张子图都只对应于一张父图

    3. 编号:顶层图只有一张,图中的加工也只有一个,所以不必编号;0层图只有一张,图中的加工号可分别是0.1、0.2。子图号就是父图中被分解的加工号;图的加工号由图号、圆点、序号组成

  • 数据流图注意事项/建模原则

    1. 数据流图从数据传递、加工角度,以图形方式刻画数据流从输入到输出的移动变换过程,是对软件所要处理数据的抽象,其基础是功能分解。对一些复杂的实际问题,在数据流图中常常出现许多加工,看起来不直观,也不易理解,因此用分层的数据流图来建模

    2. 按系统层次结构逐步分解,以分层的数据流图反映这种结构关系。在分层的数据流图中,各层数据流图之间保持“平衡”关系,输入、输出数据流在各层保持一致

    3. 数据流图平衡原则(默写):

      ① 父图、子图平衡。父图中某加工的输入/输出数据流必须与它子图的输入/输出数据流在数量、名字上相同,在数据字典中的定义必须一致,数据流/数据项既不能多也不能少。父图的一个输入、输出数据流对应子图中几个输入、输出数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍是平衡的

      ② 子图内平衡

    4. 保持数据守恒:一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或通过该加工能产生的数据

    5. 数据流只能和加工相关,即从加工流向加工、数据源流向加工、加工流向数据源;每条数据流的输入、输出必须是加工,即至少有一端是加工;每个加工必须既有输入数据流,又有输出数据流

    6. 画数据流而不要画控制流;分解尽可能均匀,一个加工不适合有过多的数据流;一幅图中的图元个数控制在7+2以内

    7. 适当为数据流、加工、数据存储、外部实体命名,名字应反映该成分实际含义,避免名字空洞;一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同

    8. 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个不同加工

    9. 在自顶向下分解过程中,若一个数据存储首次出现时只与一个加工有关,那么这个数据存储应作为这个加工的内部文件而不必画出

    10. 整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但在某张子图中,可能只有读没有写,或只有写没有读

    11. 每个数据流、数据存储都要在数据字典中定义,数据字典将包括各层数据流图中数据元素的定义

    12. 数据流图中最底层的加工处理必须有加工处理说明

    13. 加工处理说明和数据流图中加工处理涉及的元素保持一致。如,在加工处理说明中,输入数据流必须说明其如何使用,输出数据流说明如何产生或选取,数据存储说明如何选取、使用、修改

  • 绘制数据流图加工的错误(默写)

    1. 黑洞:只有输入而无输出

    2. 奇迹:只有输出而无输入

    3. 灰洞:输入数据流无法通过加工产生输出数据流

    4. 输入数据流与输出数据流名称相同

    5. 外部实体没有经过加工处理,直接到数据存储

    6. 部实体之间没有加工处理,存在直接数据流

  • 答题技巧

    1. 补充实体

      ① 人物角色:客户、管理员、主管、经理、老师、学生 ② 组织机构:银行、供应商、慕捐机构 ③ 外部系统:银行系统、工资系统、后台数据库(开发中间件时)

    2. 补充存储:存储的文字特征:xx文件、xx表、xx库、xx清单、xx档案

    3. 补充数据流

      ① 数据平衡原则

      a. 顶层图与0层图对比,是否有顶层图有、但0层图无的数据流,或反之

      b. 检查图中每个加工,是否存在只入没出,或只出没入,或根据输入数据无法产生对应输出的情况

      ② 按题目说明与图匹配:说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来后,容易缩小对应范围,找出纰漏

    4. 补充加工名

      加工用于处理数据流,补充加工名可以把该加工涉及到的数据流,在说明中标识出,再在数据流名称所在句子中,找“动词 + 名词”的结构,分析是否可作为加工。如:生成报告,发出通知,批改作业,记录分数,物流跟踪、用户管理

8.4 数据字典

  • 数据字典

    1.数据流图描述了系统分解,但没有对图中各成分进行说明。数据字典用于描述数据流图中的每个数据流、文件、加工、组成数据流或文件的数据项

    2.4类条目:数据流、数据项、数据存储、加工

    • 基本加工条目用来说明DFD中基本加工的处理逻辑,由于下层的基本加工是由上层加工分解而来,只要有了基本加工的说明就可理解其他加工

    • 对每一个基本加工, 都应该有一个加工逻辑来说明

    • 加工描述了输入数据流到输出数据流之间的编号,即输入数据流经过什么处理后变成输出数据流

    • 加工逻辑对其进行说明,描述了该过程的加工规则。加工逻辑位于需求分析阶段,此时并没有设计具体的数据结构、算法。常用加工逻辑描述方法有结构化语言、判定表、判定树

    3.数据字典管理:指把字典条目按某种格式组织后存储在字典中并提供排序、查找、统计等功能

    符号含义举 例 说 明
    =被定义为
    +x = a + b,表示x由a和b组成
    [... , ...] 或 [... | ...]x = [a ,b],x = [a|b],表示x由a或由b组成
    {...}重复x = {a},表示x由0个或多个a组成
    (...)可选x = (a),表示a可在x中出现,也可以不出现

    例如:机票 = 姓名 + 日期 + 航班号 + 起点 + 终点 + 费用;终点 = [长沙|上海|北京|西安 ]

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

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

相关文章

211大学计算机专业不考408,新增的交叉专业却考408!南京农业大学计算机考研考情分析!

南京农业大学信息科技学院可追溯至1981年成立的计算中心和1985年筹建的农业图书情报专业。1987年设立了农业图书情报系,1993 年农业图书情报系更名为信息管理系,本科专业名称也于1999年更名为信息管理与信息系统专业。1994年计算中心开始招收计算机应用专…

三十篇:动脉脉搏:企业业务处理系统的生命力

动脉脉搏:企业业务处理系统的生命力 1. 引言 在数字经济的浪潮下,企业之间的竞争已不仅仅是产品和服务的竞争,更是信息处理能力的竞争。业务处理系统(Transaction Processing System, TPS)是企业信息系统架构的基础&a…

web题解,基础知识巩固(qsnctf)

1.文章管理系统 1)打开题目,把它页面翻完了,没看懂它有啥用 2)看了看源码,也是一样的,没找到有用的东西 3)想着可能还是在隐藏文件里找,那我就直接用dirsearch扫扫看 4)…

工业级3D开发引擎HOOPS:创新与效率的融合!

在当今这个技术日新月异的时代,3D技术已成为推动各行各业发展的重要力量。从工程设计到游戏开发,从虚拟现实到增强现实,3D技术的应用无处不在,它极大地丰富了我们的生活和工作。而在这样的背景下,HOOPS作为一个强大的3…

Vue.js - 计算属性与侦听器 【0基础向 Vue 基础学习】

文章目录 计算属性 computedcomputed 的使用方法computed 与 method 的区别计算属性完整写法 watch 侦听器(监视器)简单写法 → 简单类型数据,直接监视完整写法 → 添加额外配置项 计算属性 computed computed 的使用方法 **概念&#xff1…

【源码+文档+调试讲解】可信捐赠系统的设计与实现

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统可信捐赠系统信息管理难度大,容错率低&#x…

如何使用 Re-Ranking 改进大模型 RAG 检索

基于大型语言模型(LLMs)的聊天机器人可以通过检索增强生成(RAG)提供外部知识来改进。 这种外部知识可以减少错误答案(幻觉),并且使模型能够访问其训练数据中未包含的信息。 通过RAG&#xff0…

【C++ 】学习问题及补充

一.自定义类型不初始化直接就赋值&#xff0c;比如string类会怎么样 vectr<string>里已经给每个string对象已经分配好空间&#xff0c;为什么不初始化再赋值会报错 在C中&#xff0c;std::string类是一个动态字符串类&#xff0c;它内部管理着一个字符数组&#xff0c;用…

Android network — 进程指定网络发包

Android network — 进程指定网络发包 0. 前言1. 进程绑定网络1.1 App进程绑定网络1.2 Native进程绑定网络 2. 源码原理分析2.1 申请网络requestNetwork2.2 绑定网络 BindProcessToNetwork 3. 总结 0. 前言 在android 中&#xff0c;一个app使用网络&#xff0c;需要在manifest…

力扣刷题--LCR 075. 数组的相对排序【简单】

题目描述 给定两个数组&#xff0c;arr1 和 arr2&#xff0c; arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 …

Transformer详解(2)-位置编码

位置编码公式 偶数位置用sin,奇数位置用cos. d_model 表示token的维度&#xff1b;pos表示token在序列中的位置&#xff1b;i表示每个token编码的第i个位置&#xff0c;属于[0,d_model)。 torch实现 import math import torch from torch import nn from torch.autograd im…

四川景源畅信:抖音小店新手如何做?

随着短视频平台的兴起&#xff0c;抖音小店成为了许多创业者的新选择。但是&#xff0c;对于新手来说&#xff0c;如何在抖音上开设并经营好自己的小店呢?本文将围绕这一问题展开讨论。 一、明确目标和定位作为抖音小店的新手&#xff0c;首先要明确自己的经营目标和定位。是想…

Windows操作系统基本知识整理

目录 引言 一、Windows操作系统的发展历史 1.1 Windows 1.0到Windows 3.0 1.2 Windows 95到Windows Me 1.3 Windows NT到Windows 2000 1.4 Windows XP到Windows 7 1.5 Windows 8到Windows 10 二、Windows操作系统的核心组件 2.1 内核 2.2 文件系统 2.3 图形用户界面&…

Habicht定理中有关子结式命题3.4.6的证明

个人认为红色区域有问题&#xff0c;因为 deg ⁡ ( ϕ ( S j ) ) r \deg{\left( \phi\left( S_{j} \right) \right) r} deg(ϕ(Sj​))r&#xff0c;当 i ≥ r i \geq r i≥r时&#xff0c; s u b r e s i ( ϕ ( S j 1 ) , ϕ ( S j ) ) subres_{i}\left( \phi(S_{j 1}),\p…

【Java继承】(超级详细!!!)

【Java继承】&#xff08;超级详细&#xff01;&#xff01;&#xff01;&#xff09; 1、 继承的概念2 、继承的语法3、 父类成员访问3.1 子类中访问父类的成员变量3.2 子类中访问父类的成员方法 4、 super关键字5 、子类的构造方法6、 继承关系上的执行顺序7、protected 关键…

vscode在Ubantu键位错乱问题

摘要&#xff1a;抄的vscode键位错乱_有没有在使用vscode时偶尔遇到退格键无法正常删除内容的情况?如果有的话,你是如何-CSDN博客 只是作为记录&#xff0c;查找方便

Python使用MQTT连接新版ONENet

Python MQTT 连接新版ONENet 简介 前几个教程我们使用mqtt.fx连接了新版的ONENet, 只是跑通了MQTT协议&#xff0c;但是在实际操作下还需要实现具体环境、具体设备的MQTT连接&#xff0c;本章教程将以Python MQTT的方式连接 ONENet 参考文档&#xff1a; paho-mqtt PyPI …

左外连接和右外连接的区别?举例说明——以力扣sql 1378. 使用唯一标识码替换员工ID为例

左外连接&#xff08;LEFT JOIN&#xff09;和右外连接&#xff08;RIGHT JOIN&#xff09;的主要区别在于哪个表的所有行会保留在结果集中 1. 左外连接 (LEFT JOIN) 左外连接会返回左表中的所有行以及右表中符合连接条件的行。如果右表中没有匹配的行&#xff0c;结果集中右…

Livox-SDK2 用vs2017编译

Livox-SDK2 Livox-SDK2代码去上面下载&#xff0c;文章中给出的是用vs2019进行编译的&#xff0c;生成项目时用的 > cmake .. -G "Visual Studio 16 2019" -A x64 但如果我想用vs2017进行编译&#xff0c;那么只需要将上面语句改为如下&#xff1a; cmake .. -…

外贸软件工艺品行业版,解决管理难点,助力降本增效

随着全球经济的不断发展和贸易自由化程度的提高&#xff0c;我国工艺品出口贸易面临着广阔的市场空间和良好的发展机遇。同时&#xff0c;我国工艺品以其独特的文化内涵和精湛的制作工艺&#xff0c;赢得了全球消费者的喜爱和认可&#xff0c;为我国外贸发展作出了重要贡献。 …