第8章 · 播客 第3集
系统分析与设计方法 · 结构化分析与数据流图
🎙️ 本集播客:第3集:结构化分析的基本思想、与面向对象方法的本质差别、数据流图五元素与 Context 图分层、绘制五步、数据字典六个符号——练习题第 3 题和第 14 题的考点全部在这里落地。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
明
阿明
上集说的第一座大山,结构化分析,开始吧。
雅
小雅
先定性:结构化分析与设计方法是一种面向数据流的需求分析和设计方法,适用于分析和设计大型数据处理系统,是一种简单、实用的方法,曾获得广泛的应用。三个关键词——面向数据流、大型数据处理系统、简单实用,都能直接出选项。
雅
小雅
它的基本思想是自顶向下逐层分解。原文解释了原理:分解和抽象是人们控制问题复杂性的两种基本手段。对于一个复杂的问题,人们很难一下子考虑问题的所有方面和全部细节,通常可以把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题,经过多次逐层分解,每个最底层的问题都是足够简单、容易解决的,于是复杂的问题也就迎刃而解了。
明
阿明
结构化和面向对象方法,最本质的差别在哪?
雅
小雅
原文给了精确表述:结构化分析方法把系统看作一个过程的集合体,包括人完成的和电脑完成的;而面向对象方法则把系统看成一个相互影响的对象集。一个过程集合体、一个对象集,这句对比是高频考点。结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。
雅
小雅
结构化分析一般包括以下工具:数据流图 DFD、数据字典 DD、结构化语言、判定表、判定树。五个工具先记住名单。另外结构化系统分析方法从总体上来看是一种强烈依赖数据流图的自顶向下的建模方法,它不仅是需求分析技术,也是完成需求规格化的有效技术手段。
明
阿明
做结构化分析的工作步骤是什么?
雅
小雅
三步。第一步,研究物质环境:首先应画出当前系统,可能是非计算机系统,或是半计算机系统的数据流图,说明系统的输入、输出数据流、数据流情况,以及经历了哪些处理过程,数据流图中可以包括部门名、岗位名、报表名等,这个过程帮助分析员有效地理解业务环境。第二步,建立系统逻辑模型:在前面建立的数据流图的基础上,将所有自然数据流都转成等价的逻辑流,例如将现实世界的报表存储在计算机系统中的文件里,又如将现实世界中送往总经理办公室改为报送报表。第三步,划清人机界限:确定在系统逻辑模型中哪些将采用自动化完成,哪些仍然保留手工操作,这样就可以清晰地划清系统的范围。
明
阿明
物质环境、逻辑模型、人机界限。然后就是主角数据流图了。
雅
小雅
DFD 是一种图形化的系统模型,它在一张图中展示信息系统的主要需求,即输入、输出、处理(过程)、数据存储。原文说它有两个优点:从 DFD 中可以很容易地看出系统紧密结合的各个部分,而且整个图形模式只有 5 个符号需要记忆,所以深受分析人员的喜爱。
雅
小雅
五个基本元素逐个记。过程,也称为加工,一步步地执行指令,完成输入到输出的转换。外部实体,也称为源或宿,系统之外的数据源或目的。数据存储,也称为文件,存放数据的地方,一般以文件、数据库等形式出现。数据流,从一处到另一处的数据流向,如从输入或输出到一个过程的数据流。实时连接,当过程执行时,外部实体与过程之间的来回通信。
明
阿明
练习题第 3 题来了:数据流图的基本元素不包括哪个,选项是过程、外部实体、类图、数据存储。
雅
小雅
答案选类图。类图是 UML 面向对象的图,混进 DFD 里就是张冠李戴。另外注意希赛教育专家提示:不同的参考书籍中关于 DFD 的符号可能有些不一样,其中加工、外部实体、数据存储和数据流是公共的部分——意思是「实时连接」这个第五元素在不同教材里有出入,公共认可的是四个。如果题目问「公共部分」,答加工、外部实体、数据存储、数据流。
明
阿明
五个记全,公共四个更要记牢。DFD 怎么分层?
雅
小雅
结构化分析的思路是依赖数据流图进行自顶而下的分析。因为系统通常比较复杂,很难在一张图上描述清楚,所以数据流图提供一种表现系统高层和低层概念的机制:先绘制一张较高层次的数据流图,然后对其中的过程进行分解,分解成若干独立的、低层次的、详细的数据流图,而且可以逐一地分解下去。
明
阿明
最顶层那张图叫什么?
雅
小雅
Context 图,也就是系统上下文范围关系图,这是描述系统最高层结构的 DFD 图。它的特点是,将整个待开发的系统表示为一个过程,将所有的外部实体和进出系统的数据流都画在一张图中。它用来描述系统有什么输入、输出数据流,与哪些外部实体直接相关,可以把整个系统的范围勾画出来。呼应上集边界那节——上下文范围图就是数据流图中的顶层图,是描述边界的两种方法之一。
雅
小雅
往下是逐级分解。在 Context 图中只有一个过程,那就是系统,将其编号为 0。对 Context 图进行的分解,其实就是对这个编号为 0 的过程进行更细化的描述,引入新的过程、数据存储,这层次上的过程以 1、2、3 为序列进行编号,称之为 DFD 0 层图。再对 DFD 0 层图上编号为 1、2、3 的过程分解,就是 DFD 1 层图,新过程的编号规则是 1.1、1.2,以及 2.1、2.2,以此类推。
雅
小雅
这里有个很关键的要点:DFD 0 层图是 Context 图的细化,因此所有的输入和输出应该与 Context 图完全一致,否则就说明存在着错误。「父子图输入输出一致」这条一致性检查规则,考试常拿来出判断题。
明
阿明
那画 DFD 有步骤吗?
雅
小雅
DFD 的绘制是一个自顶向下、由外到里的过程,通常五步。第一步画系统的输入和输出:在图的边缘标出系统的输入、输出数据流,这一步其实是决定研究的内容和系统的范围,可以先将尽可能多的输入、输出画出来,然后再删除多余的,增加遗漏的。第二步画数据流图的内部:将系统的输入、输出用一系列的处理连接起来,可以从输入数据流画向输出数据流,也可以从中间画出去。第三步为每一个数据流命名:命名的好坏与数据流图的可理解性密切相关,应避免使用空洞的名字。第四步为加工命名:注意应该使用动宾短语。第五步,不考虑初始化和终点,暂不考虑出错路径等细节,不画控制流和控制信息。
明
阿明
「不画控制流」这条经常被拿来出判断题——DFD 里到底能不能画控制流?
雅
小雅
原文口径:不画控制流和控制信息。判断题答「不能」。还有个细节坑:为加工命名要用动宾短语,比如「统计成绩」而不是光秃秃一个「成绩」。
明
阿明
DFD 之外,还有个细化部件的工具?
雅
小雅
对,为了更好地描述 DFD 的部件,结构化分析方法还引入了数据字典、结构化语言及决策树、决策表等方法,对数据流图中描述不够清晰的地方进行有效补充,其中数据字典应用最为广泛。数据字典技术是一种很实用、有效的表达数据格式的手段,它是对所有与系统相关的数据元素的一个有组织的列表和精确严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算机有共同的理解。
雅
小雅
每个条目包括四类信息:名称,数据或控制项、数据存储或外部实体的主要名称,有别名还要列出来;何处使用和如何使用,使用数据或控制项的加工列表,以及如何使用;内容描述,说明该条目的内容组成;补充信息,关于数据类型、默认值、限制等信息。
明
阿明
内容描述里有一套符号吧?练习题第 14 题考的就是它。
雅
小雅
六个符号逐个记,这是第 14 题的战场。等号,表示由什么构成。加号,和,代表顺序连接的关系。中括号加竖线,或,代表从中选择一个。花括号加星号,n 次重复。圆括号,代表可选的数据项。省略号,表示特定限制的注释。
明
阿明
第 14 题问符号加号的含义,选项是和、或、n 次重复、可选的数据项。
雅
小雅
答案选和,代表顺序连接的关系。干扰项解析:或对应的是中括号竖线;n 次重复对应花括号星号;可选对应圆括号。题目只给符号问含义,你要能把六个符号和六个含义双向配对。
雅
小雅
再看原文的数据字典实例,帮你把符号用活。客户基本信息等于客户编号加客户名称加身份证号码加手机加家庭电话。客户编号等于花括号 0 到 9 的 8 次方,表示八位数字。身份证号码等于中括号里花括号 0 到 9 的 15 次方或者花括号 0 到 9 的 18 次方,就是 15 位或 18 位二选一。家庭电话等于圆括号区号加本地号,区号可省略,所以区号套在圆括号里。这个例子把等号、加号、中括号竖线、花括号、圆括号全用上了,听一遍等于复习一遍。
明
阿明
「家庭电话等于区号加本地号,区号在圆括号里」,这个可选项的位置一下就懂了。
雅
小雅
本集必背:结构化分析是面向数据流的方法,适用于大型数据处理系统,基本思想自顶向下逐层分解;它把系统看作过程的集合体,面向对象把系统看作相互影响的对象集;五个工具是 DFD、DD、结构化语言、判定表、判定树;工作三步是研究物质环境、建立逻辑模型、划清人机界限;DFD 五元素是过程即加工、外部实体即源宿、数据存储即文件、数据流、实时连接,公共部分是前四个;Context 图中系统编号为 0,0 层图编号 1、2、3,1 层图编号 1.1、1.2,父子图输入输出必须一致;画 DFD 五步,加工命名用动宾短语,不画控制流;数据字典六符号——等号构成、加号顺序连接、中括号竖线选择、花括号星号重复、圆括号可选、省略号注释。
明
阿明
分析这半边齐了,设计那半边呢?
雅
小雅
下一集讲结构化设计:概要设计与详细设计的任务、结构图、变换流与事务流的分辨、程序流程图盒图 PAD 和 PDL 四种工具,最后是模块设计的重头戏——信息隐蔽、模块独立、内聚与耦合。练习题第 4 题和第 12 题在那边。