03那一章被我吃了

需求分析 ——结构化分析方法

数据流图DFD(Data Flow Diagram):

描述数据处理过程的工具

需求理解的逻辑模型的图形表示:既然逻辑模型,就不允许有物理部件出现(如显示器打印机等)

支持系统的功能建模:对功能进行分析

从数据传递和加工的角度,刻画数据流从输入到输出的移动变换过程

如图为一个DFD:

灵魂画手上线了

数据流:→  代表数据的流动方向,由一组固定成分的数据组成

加工:⚪ 描述了输入数据流到输出数据流的变换,即将输入数据流加工成输出数据流

数据存储:═ 该系统内部收集,保存的,供日后使用的数据

源(宿/外部实体):⬜ 描述了与该系统存在数据交互的外部实体

注意事项:

  • 除了与数据存储之间的数据流不用命名外,其余数据流都应用名词或名词短语命名
  • 每一个加工都应用动词短语命名;在分层的数据流图中,每个加工还应该有编号
  • 外部实体一般只出现在顶层数据流图中

例题:

如下,绘制数据流图需要遵循哪些规则:

  1. 加工至少有一个输入数据流和一个输出数据流
  2. 数据流图中的所有元素都必须唯一命名,除了与数据存储相关的数据流不用命名
  3. 数据流必须与加工关联
  4. 数据传输的守恒原则
  5. 加工分解的平衡原则

语法规则:

加工时对数据的处理,至少要有一个输入和一个输出,而且输入数据流和输出数据流应该存在差异,不能是同样的名字:(最少一个输入一个输出,不是),如图,1正确,2,3错误

数据流必须加工产生关联,他要么是加工的数据输入,要么是加工的数据输出(至少有一段是加工,才有数据存储或者是实体)。

DFD中所有的对象都应该有一个可以唯一标识自己的名称。

解题思路:

  1. 寻找动宾短语,该动宾短语的主语为待开发的软件系统。——加工
  2. 总结直接使用该系统的人或者组织,以及与该系统交互的软件系统。——外部实体
  3. 使用数据流连接个加工,并识别数据存储。

例题:定期储蓄系统的数据流图

银行计算机定期储蓄系统的工作流程大致如下:

  • 如果是存款,出乎填写的存款但由业务员录入系统,系统记录存款人姓名,电话号码,身份证号码,存款类型,存款日期到期日期,利率及密码等信息,并打印出存款存单给储户
  • 如果是取款,出乎将存款存单交给业务员,系统先核对储户密码,诺密码正确,则系统计算利息打印利息清单给储户

分层结构:

  • 0层(顶层):1个加工,永远都是以系统名字命名加工,一般都不是动词,是名词(称呼X) ######  最高层次的数据流图;存在且仅存在一个加工,表示整个系统;表示出所有和系统交互的外部实体,并描述交互的数据;又名上下文图。
  • 1层:用1,2,3 ……进行编号:0层数据流图的子图;概括了系统的所有功能(将系统的所有的功能分类概括,不会说明细节);功能概括
  • 2及以下层:用1.1,1.2,2.1,2.2,3.1,3.2 ……进行编号:被分解的加工称为父加工,分解后产生的揭示更多细节的图称为子图;基本DFD(无法再分割)是指图中所有的加工都是无法再次分解的;基本DFD中的加工称之为基本加工;对N层数据流图的加工分解产生的子图称为N+1层数据流图(N>1);子图中加工的编号需要以父加工的编号为前缀

下一层永远都是上一层的子图,上一层永远都是下一层的父图(参考树结构)

 

加工分解的平衡原则:

  1. 要求DFD子图的输入流,输出流必须和父加工的输入流,输出流保持一致。
  2. 一个加工的所有输出数据流中的数据必须能从该加工的输入数据流当中直接获得,或者是通过该加工产生的数据。(数据传递的守恒原则)

 

数据存储的画法:

  1. 在一张DFD中,当一个文件作为诺干个加工之间的交界面(一个写另一个读),则该文件应画出。
  2. 在一张DFD中,当一个文件仅与一个加工进行读写操作,并且再该DFD的父图中从未出现过该文件,则该文件是相应加工的内部文件,再当前DFD中不应该画出
分类: 软件工程

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注