PPT下载链接:https://download.csdn.net/download/zhaohongfei_358/20028201
分层数据流模型
结构化分析方法
主要思想:抽象与自顶向下的逐层分解。
- 抽象:忽略一个问题中与当前目标无关的那些方面,以便更充分地关注与当前目标有关的方面
- 分解:将问题不断分解为较小的问题,直到每个最底层的问题都足够简单为止
数据流图
Data Flow Diagram(简称DFD):描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模,基本元素包括:
数据流图的扩充符
描述一个加工的多个数据流之间的关系
- 星 (*):表示数据流之间存在“与”关系
- 所有输入数据流同时存在时,才能进行加工处理
- 或者加工处理的结果是同时产生所有输出数据流
- 加 (+):表示数据流之间存在“或”关系
- 至少存在一个输入数据流时,才能进行加工处理
- 或者加工处理的结果至少产生一个输出数据流
- 异或(⊕):表示数据流之间存在“异或”(互斥)关系
- 必须存在且仅存在一个输入数据流时,才能进行加工处理
- 或者加工处理的结果产生且仅产生一个输出数据流
数据流图的各个层次
- 顶层图:只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流
- 0层图:顶层图中的加工经分解后的图称为0层图(只有1张)
- 中间层图:中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图
- 底层图:处于最底层的图称为底层图,其中所有的加工不再分解成新的子图
图和加工的编
- 顶层图只有一个,代表整个软件系统的加工,该加工不必编 。
- 0层图中的加工编 分别为1,2,3,…
- 子图 :若父图中的加工 x分解成某一子图,则该子图 记为“图x”
- 子图中加工的编 :若父图中的加工 为x的加工分解成某一子图,则该子图中的加工编 分别为x.1、x.2、x.3…
案例(考务处理系统)
案例描述
基本描述:
- 简化的资格和水平考试的考务处理系统
- 分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试
- 考试的合格标准将根据每年的考试成绩由考试中心确定
- 考试的阅卷由阅卷站进行,因此,阅卷工作不包含在软件系统中
功能需求:
- 对考生送来的 名单进行检查
- 对合格的 名单编好准考证 后将准考证送给考生,并将汇总后的考生名单送给阅卷站
- 对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者
- 制作考生通知单送给考生
- 进行成绩分类统计(按地区、年龄、文化程度、职业、考试级别等分类)和试题难度分析,产生统计分析表
部分数据流的组成:
- 名单=地区+序 +姓名+文化程度+职业+考试级别+通信地址
- 正式 名单=准考证 + 名单
- 准考证=地区+序 +姓名+准考证 +考试级别+考场
- 考生名单={准考证 +考试级别}
- 考生名册=正式 名单
- 统计分析表=分类统计表+难度分析表
- 考生通知单=准考证 +姓名+通信地址+考试级别+考试成绩+合格标志
顶层图的绘制
方法分析,以下确定加工、数据流、文件、源或宿的一般方法适用于0层图及其各层子图:
-
确定加工: 确定父图中某加工分解而成的子加工
- 根据功能分解来确定加工:将一个复杂的功能分解成若干个较小的功能,较多应用于高层DFD中的分解
- 根据业务处理流程确定加工:分析父图中待分解加工的业务处理流程,业务流程中的每一步都可能是一个子加工
-
确定文件:
- 如果父图中该加工存在读写文件的数据流,则相应的文件和数据流都应画在子图中
- 在分解子图中,如果需要保存某些中间数据以备后用,则可以将这些数据组成一个新的文件
- 新文件(首次出现的文件)至少应有一个加工为其写入记录,同时至少存在另一个加工来读该文件的记录
- 注意:从父图中继承下来的文件在子图中可能只对其进行读,或只进行写
-
确定源和宿:
- 0层图和其它子图中通常不必画出源和宿
- 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中
-
最终得到考务处理系统0层图
- 根据功能分解方法识别出两个加工:考试 名、统计成绩
- 数据流
- 继承顶层图中的输入数据流和输出数据流
- 定义二个加工之间的数据流:由于这二个加工分别在考试前后进行,因此登记 名单所产生的结果“考生名册”应作为文件保存以便考试后由统计成绩加工引用
加工1子图
总结
- 画系统的输入和输出
- 画系统内部
- 画加工内部
- 重复第3步骤,直至每个尚未分解的加工都足够简单(即不必再分解)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!