软件设计师备考笔记

上午题 下午题
计算机网络概述 数据流图设计(下午试题一)
程序设计语言基础知识 数据库设计(下午试题二)
标准化和知识产权 UML分析与设计(下午试题三)
数据库 面向对象程序设计与实现(下午试题六)
操作系统 算法设计与C语言实现(下午试题四)
结构化开发与方法
软件工程
网络与信息安全
数据结构
算法分析设计

1 数据流图的基本概念

  • 数据流图又称数据流程图(Data Flow Diagram,DFD)是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分

2 DFD 的基本成分及图形表示

  • 外部实体(External Agent):外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地和系统所产生的数据的归宿地。
  • 加工(Process):加工描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。每个加工都有一个名字和编号。编号能反映出该加工位于分层DFD中的哪个层次和哪张图中,也能够看出它是哪个加工分解出来的子加工。
  • 数据存储(Data Store):数据存储用来表示存储的数据,每个数据存储都有一个名字。
  • 数据流(Data Flow):数据流由一组固定成分的数据组成,表示数据的流向。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。

3 分层数据流图的画法

  • (1)画系统的输入和输出。把整个系统。把整个软件系统看作一个大的加工,然后根据系统从哪些外部实体接收数据流,以及系统发送数据流到哪些外部实体,就可以画出系统的输入和输出的图,这张图称为顶层图。
  • (2)画系统的内部。将顶层图的加工分解为若干个加工,并用数据流将这些加工连接起来,使得顶层图中的输入数据经过若干个加工处理后变换成顶层图的输出数据流。这张图称为0层图。从这一加工画出一张数据流图的过程实际上就是对这个加工的分解。
    • 确定加工的方法:在数据流的组成或值发生变化的地方画一个加工,这个加工的功能就是实现这一变化;也可以根据系统的功能确定加工。
    • 确定数据流的方法: 当用户把若干个数据看作一个单位来处理(这些数据在一起到达,一起加工)时候,可以把这些数据看成一个数据流。
  • (3)画加工的内部。把每个加工看作一个小系统,该加工的输入/输出数据流看成小系统的输入/输出数据流。于是可以用与画0层图同样的方法画出每个加工的 DFD 子图。

4 对图和加工进行编号

对于一个软件系统,其数据流图可能有许多层,每一层又有许多张图。为了区分不同的加工和不同的 DFD 子图,应该对每张图和每个加工进行编号,便于管理。

  • 父图子图:假设分层数据流图里的某张图(记为图 A)中的某个加工可以用另一张图(记为图 B)来分解,则称 图A 是 图B 的父图,图B 是 图A 的子图。在一张图中,有些加工需要进一步分解,有些加工则不必分解。因此,如果父图中有n个加工,那么它可以有 0 ~ n 张子图(这些子图位于同一层),但每张子图都只对应于一张父图
  • 编号:
    • 顶层图只有一张,图中的加工也只有一个,所以不必编号。
    • 0层图只有一张,图中的加工号可以分别是 0.1,0.2…或 1,2…。
    • 子图号就是父图中被分解的加工号。
    • 图的加工号由图号、圆点、序号组成。

5 注意事项(重点)

  • 应适当地为数据流、加工、数据存储、外部实体命名,且名字应反映该成分的实际含义,避免空洞的名字。
  • 画数据流而不要画控制流。
  • 每条数据流的输入或者输出都是加工。
  • 一个加工的输出数据流不应与输入数据流同名,即使它们的组成成分相同。
  • 允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出数据流流向两个不同的加工。
  • 保持父图子图平衡。也就是说,父图中某加工的输入/输出数据流必须与其子图的输入/输出数据流在数量和名字上相同。值得注意的是,如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数据流,那么它们仍然算是平衡的。
  • 在自顶向下的分解过程中,若一个数据存储首次出现时只与一个加工有关,那么这个数据存储应作为这个加工的内部文件而不必画出。
  • 保持数据守恒。也就是说,一个加工所输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工产生的数据。
  • 每个加工必须既有输入数据流,又有输出数据流。
  • 在整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但在某一张子图中可能是只有读没有写,或者只有写没有读。

6 题型

6.1 补充和完善数据流

  • 遇到这类问题,首先要想到分层数据流图的数据流平衡原则,即父图和子图的输入/输出数据流一致,这是找出遗漏数据流非常重要的技巧。
  • 其次,每个加工至少有一个输入数据流和一个输出数据流,反映此加工的数据来源和结果,加工的输出数据流应该都有其对应的输入数据流。
  • 再次,要找出遗漏的数据流,最根本的依据还是说明。因为除了图之外,题目中最重要的部分就是说明。说明部分详细介绍了系统的功能,是找出所缺数据流的基本入口。
  • 有时数据流平衡原则不作为解题的直接方法,而作为排除的手段,然后根据说明或其他方法找到图中遗漏的数据流。

6.2 找出错误或多余的数据流

  • 要找出错误或多余的数据流,解题方法可以参考完善数据流的方法。一般可以先进行上下层图的对照和分析,然后检查是否每个加工至少有一个输入数据流和一个输出数据流,是否加工的输出数据流都有其对应的输入数据流。而最根本的判断标准仍然是题目的说明部分。

6.3 找出多余的文件

  • 在某层数据流图中,只画流程图各加工之间的公共数据文件时,如果一个文件仅作用于一个加工,即和该文件有关的输入/输出数据流只涉及一个加工,那么该文件可以作为局部文件出现在该加工的子图中,在父图中则可以省略。这个规则是为了使整个流程图的层次结构更为清晰、科学。当然这些文件如果画出,并不会造成理解的错误。另外,如果某层图只有一层细化图,即该层图没有子图,则不存在局部文件和外部文件之分,其中涉及的任何文件都不作为多余的文件。

6.4 添加数据字典条目

  • 可以根据说明部分找出答案。同时还可以结合给出的数据流图,查看有关记录需要输入给哪些加工,这些加工输出哪些字段。

软件设计师——数据流图设计(下午试题一)相关推荐

  1. 中级软件设计师2011上半年上午试题

    中级软件设计师2011上半年上午试题 单项选择题 1. 在CPU中用于跟踪指令地址的寄存器是______. A.地址寄存器(MAR)    B.数据寄存器(MDR)  C.程序计数器(PC)      ...

  2. 软考中级(软件设计师)——数据库系统(上下午各占6-8分)

    软考中级(软件设计师)--数据库系统(上下午各占6-8分) 目录 软考中级(软件设计师)--数据库系统(上下午各占6-8分) 数据库模式(★★) 三级模式 数据库设计过程 ER模型(★★★★★) 关系 ...

  3. 软件设计师——数据流图(DFD) [ 笔记 ]

    数据流图(DFD) 课程内容提要 数据流图基本概念 分层数据流图 数据字典 数据流图平衡原则 答题技巧 ┏┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅☆ ┇ 根据B ...

  4. 软件设计师 - 数据流图

    文章目录 解题思路 物理数据流图 逻辑数据流图 数据流图设计原则 结构化语言 解题思路 1.审题,圈出名词. 2.根据数据流图的平衡原则,判断数据流正确或补充数据流图: 物理数据流图 关注系统物理实体 ...

  5. 【软件设计师】知识点与试题

    http://edu.csai.cn/zt/ztda/ 2010 , 下  上  http://training.51cto.com/art/201011/230700.htm(试题)      ht ...

  6. 2010年下半年软件评測师(下午)试题分析与解答

    真题二(14分):阅读下列说明,回答问题1至问题4,将解答填入答题纸的相应栏内. 说明:某软件公司在研发一个城镇居民保险系统时,为了加快进度,測试工作在系统开发初步完毕之后開始并直接进行系统測试. 測 ...

  7. 软件设计师——数据流图

    数据流图又称DFD或分层数据流图 涉及到的内容 数据流图基本概念 数据字典 数据平衡原则 数据流图基本概念 需要注意对图元代表的意义.(容易将E-R图和数据流图进行混淆) 分层数据流图,逐步向下层进行 ...

  8. 2020年11月软件设计师真题透析

    2020年下半年软件设计师上午真题及答案解析 1.在程序执行过程中,高速缓存(Cache)  与主存间的地址映射由(   ). A. 操作系统进行管理 B. 操作系统进行管理 C.    程序员自行安 ...

  9. [乐意黎]软件设计师备考分析

    软件设计师近几年的考试形式与考核内容已经完全趋于稳定,从2007年至2009年的考试情况分析来看,考核形式与内容变化不大,作为考生应该紧紧扣住2009新大纲,有针对性.有策略地复习. 本文将总结近几年 ...

最新文章

  1. bat 一键启动多个程序
  2. Java 11 快要来了,编译 运行一个命令搞定!
  3. linux sock结构体,struct socket结构体详解
  4. 在SSH上传文件出现Permission denied错误
  5. (转) 一张图解AlphaGo原理及弱点
  6. 探究 Java 应用的启动速度优化
  7. php文件多上传文件,php文件上传(多文件上传)
  8. 4K超清,2500万人在线,猫晚直播技术全解读
  9. matlab 仿真逆变电路,逆变电路的MATLAB仿真研究论文.doc
  10. Docker进阶篇超详细版(https://www.bilibili.com/video/BV1kv411q7Qc)
  11. 50. 文件上传篇——文件上传漏洞原理
  12. Introducing Heka
  13. 信用社考试计算机试题及答案,2016黑龙江省农村信用社考试题库-计算机试题及答案六...
  14. Python中不为人知的四个特性
  15. 如何根据当前时间获取下一个整五分钟
  16. electron 实现index.html与main.js通讯,获取input输入框数据。
  17. 2021年危险化学品经营单位安全管理人员考试内容及危险化学品经营单位安全管理人员考试资料
  18. 基础实验7-2.1 魔法优惠券 (贪心)
  19. 爬虫【1】打开网站,获取信息
  20. 服务注册中心如何选型

热门文章

  1. linux 笔记本 显卡驱动下载地址,linux笔记本上安装了双显卡驱动(intel+nvidia)
  2. tcp和udp可以共用端口
  3. 微信小程序---地图导航(点击地址,可以进行导航)
  4. 弗洛伊德(Floyd)算法求图的最短路径
  5. 软件版本的划分及含义alpha、Beta、RELEASE、Stable等
  6. www.miibeian.gov.cn 的PageRank
  7. RPC(远程过程调用)基本原理
  8. 没有数据挖掘思路,从哪里开始学习?
  9. GitHub 删除仓库 (Delete this repository)
  10. 解决linux下mysql初始密码或者密码忘记