结构化需求分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

外部实体
外部实体指系统以外又与系统有联系的人或事物。 它表达了该系统数据的外部来源和去处。例如:人、组 织、外部系统等等。 • 外部实体是数据的来源(谁提供了最初始的数据?) • 外部实体是数据的去处(数据对谁有价值?)
读者
图书 管理员
馆长
读者
图书 管理员
加工(数据处理)
处理指对数据的逻辑处理功能,也就是对数据的变 换功能。 别名:功能、处理过程,数据加工
数据流图的图形符号
或 或
加工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。 外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数 据源或数据汇点的名字。

数据存储。要用名词或名词性短语为数据存储命名。 数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名 词或名词性短语命名。
环境图(顶层数据流图)


环境图(context diagram)也称为顶层数据流图 (或0层数据流图),它仅包括一个数据处理过程, 也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位置,通过确 定系统的输入和输出与外部实体的关系确定其边界。
招生系统需求描述



学校首先公布招生条件,考生根据自己的条件报名,之后 系统进行资格审查,并给出资格审查信息; 对于资格审查合格的考生可以参加答卷,系统根据学校提 供的试题及答案进行自动判卷,并给出分数及答题信息, 供考生查询; 最后系统根据学校的录取分数线进行录取,并将录取信息 发送给考生。
储 户
密码
实例研究——第一层数据流图
+
实例研究——第二层“存款”数据流图
对一层图中的“处理存款”及“处理取款”进行进一步分 解,得到二层数据流图,即处理存款的数据流图和处理取 款的数据流图。
2.1 记录存款 信息 2.2
存款业务
存款信息
存款单
打印存款单
存款信息
处理存款的数据流图
实例研究——第二层“取款”数据流图
4.1 结构化需求分析的功能模型—数据流图
• 结构化( SA )法基本思想 —— “ 分解”和“抽象 ”。 分解:对于一个复杂的系 统,为了将复杂性降低到可 以掌握的程度,可以把大问 题分解成若干小问题,然后 分别解决(如右图)。
x
1 3 2 1.1
2.1
1.1
2.3
1.2
1.3
2.2
1.3
抽象:分解可以分层进行,即先考虑问题最本质的 属性,暂把细节略去 , 以后再逐层添加细节,直至涉 及到最详细的内容,这种用最本质的属性表示一个系 统的方法就是“抽象”。
实例研究——识别外部实体及输入输出

外部实体:储户、业务员。 输入数据:如果需要储户输入密码,储户才直接与系统 进行交互。储户填写的存款或取款信息通过业务员键入 系统,可以将存款及取款信息抽象为事务。 输出数据:存款单,利息清单。

实例研究——顶层数据流图
业务 员
事务 银行储蓄 系统
存款单 储 利息清单 户
② 处理有输出就肯定有输入
③ 输入的数据应该全部流出该处理或者要用于产生 流出该处理的数据(排除无用数据) ④ 输出的所有数据必须曾经流入过该处理或者是由 流入该处理的数据加工产生(保证必要数据)
正确性检查(续)
(2)在一套数据流图中的任何一个数据存储, 必定有流入的数据流和流出的数据流。 ( 3 )父图中某一处理框的输入、输出数据流必 须出现在相应的子图中。 (4)任何一个数据流至少有一端是处理框。
实例研究
• 银行储蓄系统的业务流程: 储户填写的存款单或取款单由业务员键入系统; 如果是存款则系统记录存款人姓名、住址(或电话号 码)、身份证号码、存款类型、存款日期、到期日期、 利率、密码(可选)等信息,并印出存单给储户; 如果是取款而且开户时留有密码,则系统首先核对储户 密码,若密码正确或存款时未留密码,则系统计算利息 并印出利息清单给储户。 要求画出分层的数据流图,并细化到2层数据流图。
4.1.1 数据流图的基本成分
• 数据流图用来记录系统中的数据和数据在特定 的过程中的流动,即数据如何被采集、处理、 保存和使用的(围绕软件系统的功能) • 数据流图(Data Flow Diagram,DFD 图)是用 于表示软件系统逻辑模型(系统的功能模型) 的一种图形,一个基于计算机的信息处理系统 由数据流和一系列的转换构成,这些转换将输 入数据流变换为输出数据流。数据流图反映客 观现实问题的工作过程。 • 它用简单的图形记号分别表示数据流、加工、 数据存储以及外部实体。数据流图中没有任何 具体的物理元素,只是描述数据在系统中流动 和处理的情况,具有直观、形象、容易理解的 优点。
处理框的合并
一个处理框经过展开,一般以分解为4~10 处理框为宜。 • 如果一次分解后仅有两个处理框,为减 少数据流图的层次,可以考虑将它们 直接并入上一层中
• 若一个处理框分解后还是只有一个处理 框,则视为无效的分解
2、正确性检查
通常可以从以下几个方面检查数据流图的正确 性:
(1)数据守恒,或称为输入数据与输出数据匹配 ① 处理有输入就应该有输出
顶层
仓库管 理员
事务
订货系 统
订货报表
采购员
订货系统顶层DFD
数据流图应用示例(续)
• 确定内部处理
– “采购部需要报表”-必须有一个用于产生报 表的处理 – “事务的后果是改变零件库存量”必须有一 个用于加工事物的处理
• 确定数据存储
– “产生报表和处理事务这两个处理在时间上明 显不匹配”-必须有一个用于存放定货信息的 数据存储 – “在某个地方要有零件库存量和临界值数据” -必须有一个用于保存库存清单的数据存储
A
B B T C A
*
C
+
B A
C T
B T C
+
+
B
T
+
* 与
+或
+ 互斥
多个数据流之间的关系
数据流图的分层

出现十几个甚至几十 个加工的数据流图不 直观,不易理解
1
x
3 2

按照系统的层次结构 进行逐步分解,并以 分层的数据流图反映 这种结构关系,能清 楚地表达和容易理解 整个系统。
1.1
2.1 2.3
难道是心灵感应? 不论是手工系统还是计算机系统,数据不会无 缘无故保存或流动,和外部的交换一定和某个 加工相连。
错误情况举例3
客户
订单
业务员
读者
借书单
图书 管理员
外部实体到外部实体,说白了,全都是外部的。
和信息系统有关系吗?为什么要管呢?带来数据的 变化了吗? DFD考虑数据是从那个地方开始进入系统。
1.1 1.3
1.2
1.3
2.2
4.1.2 数据流图的画图步骤
(1)把系统看成一个整体 (2)明确输入输出 (3)系统为实现功能,内部必然有信息处理、传递、存储 (4)画出内部信息处理的分层DFD (5)检查分层DFD中的每一个内部处理可否进一步细分,若均 很具体,则结束绘制;否则把将每一个抽象的内部信息处理 再看成一个整体,再重复(2)——(4)的工作,进行剖析, 如此一级级解剖,直到所用处理步骤都很具体为止。
事务
零件编号 事务类型 数量
4.1.4 画数据流图的注意事项
要注意以下几点: 1. 关于层次的划分 2. 语法的正确性 3. 可读性 4. 确定系统边界
1、合理的层次划分
层次的划分应遵守:
(1)展开的层次与管理层次一致,也可以划分 得更细。 (2)同一张图上的所有处理过程应该处于同一 个抽象层次上(抽象粒度一致)。 ( 3 )一个处理框经过展开,一般以分解为 4 ~ 10处理框为宜(最好5~9个) (4)最下层的处理过程用几句话,或者用几张 判定表,或一张简单的HIPO图能表达清楚
P2.2.1 识别 读者身份 标识部分(层次化的功能编号) 功能描述部分(动宾词组) 功能执行的角色(人,部门,计
图书管理员
算机程序),通常可省略
数据存储
数据存储表示某种数据保存后的逻辑统称。不 是指保存数据的物理地点或物理介质。 •流入数据存储数据流(指向数据存储箭头)
• 将处理后的数据写入或修改到数据存储中 •流出数据存储的数据流(从数据存储发出箭头) • 从数据存储中查询获取数据,不改变原来的数据
如:P2成绩管理->P1异动管理之间的联系可以 改变为: P2成绩管理->D3留退名单 P1异动管理<-D3留退名单 D3留退名单为增加的数据存储
(2)均匀分解,应齐头并进 (3)适当的命名
4、确定系统边界
•信息系统建模不是对应用领域的业务建模,信 息系统可能只反映业务系统的部分处理过程。 •如机票预订系统中,人民币也在流动, 但并 未画出,因为交款是“人工”行为。 •因此要关注信息系统解决的问题,重点是系统 中的数据处理和流动。 (1)排除纯手工活动 (2)排除其他外部系统的活动 (3)和系统外的外部实体之间的接口通过数据 流来实现
• 由于第一、二层的处理框比较少,按数据流图的 规定,可合并,如下图
P 合格
P
P
P
定货
数据流图应用示例中的信息提取
源点/终点 采购员 仓库管理员 数据流 定货报表
零件编号 零件名称 定货数量 目前价格 主要供应者 次要供应者
处理
产生报表 处理事务(接收事物、 更新库存、处理定货)
数据存储
定货信息 (定货报表) 库存清单 零件编号 库存量 库存量临界值
第四章 结构化软件需求分析
本章主要内容
4.1 结构化需求分析的功能模型——数据流图(DFD) 4.2 结构化需求分析的功能模型——数据字典 4.3 结构化需求分析的功能模型——加工逻辑说明(小 说明) 4.4 结构化需求分析的数据模型——实体关系图(ER图) 4.5 结构化需求分析的行为模型——状态转换图 4.6 需求分析阶段性成果——需求规格说明书
结构化需求分析的功能模型
• 分层数据流图(DFD):一是指明数据在系统中流 动时如何被变换,二是描述对数据流进行变换的 功能和子功能。数据流图可以用于信息域的分析, 并作为功能建模的基础。
• 数据字典(DD):对数据流图中包含的所有元
素的详细定义,是DFD的补充。 • 小说明:对DFD图中最底层加工逻辑的描述,通常 用结构化语言、判定表、判定树等形式。
D2
产品
销售量
D5
职工
累计销售量单价
D2
产品
计算 销售量
D2 产品销售帐
商品编号#_

计算销售总额
数据流
数据流是指处理功能的输入或输出(箭头表示 数据流向) 。 •例如:数据,订单,查询要求等
合格订单 编 辑 订货单 计 算 应收款
编制 财务 报表
经理
数据流图多个数据流组合的图例
A
*
A
C T
A
B T C
处理取款的数据流图
4.1.3
数据流图应用示例
【例1】 假设一家工厂的采购部每天需要一张定货 报表,报表按零件编号排序,表中列出所有需要 再次定货的零件。对于每个需要再次定货的零件 应该列出下述数据;零件编号、零件名称、定货 数量、目前价格、主要供应者和次要供应者。零 件入库或出库称为事务,通过放在仓库中的CRT 终端把事务报告给定货系统。当某种零件的库存 数量少于库存量临界值时就应该再次定货。
父图、子图的平衡
图2 b a 2.1 2.2 e a 2.1.1 图2.1 a1 2.1.2 b d c 2.3
a2
2.1.3 c
父图与子图(1)
父图
子图4
客户
4.1
4.2
提货单
4 订货单 提货单
帐号 4.3 数量
父图与子图(2)
3、提高易读性
提高数据流图的易理解性
(1)简化处理间的联系(利用数据存储)
库存信息 接收事务 合格事务 更新库存 清单
D2
定货信息
•因“定货信息”数据存储,由P1、P2公用,所以应跨在P1虚线 框上
数据流图应用示例(续)
• 细化P2处理——产生报表 由于定货报表所需要的数据,在数据 存储D2 ―定货信息”中都有,该处理只要直 接使用即可,故不需要进一步细化
第一、二层合并
4.1.5 数据流图的常见错误分析
一般有三类错误情况:
1. 语法错误(可采用软件工具辅助绘图消除) 2. 逻辑错误 3. 词不达意,二义性
错误情况举例1
存款金额
计算 利息

读者信息
查询 图书
输入的数据流足够了吗?是否能够加 工出输出的数据流?
错误情况举例2
订单
客户
订单
成绩单
学生
源数据是如何进入到信息系统中的呢? 外部实体如何从系统中获取有关的数据呢?
第一层
P
P
数据流图应用示例(续)
• 细化P1处理——处理事务
–接收事务 – 按照事务去修改库存清单 – 如果更新后的库存量少于临界值,则应填写订 货信息,这就需要一个处理定货的加工
第二层——―处理事务”框的展开
P1
D1 库存清单 库存清单 P1.1 仓库管 理员 事务 P1.2 P1.3 处理定货
相关文档
最新文档