结构化需求分析方法
软件工程概论5 :需求分析-结构化方法-带习题

• 词条描述 :对于在数据流图中每一个 被命名的图形元素,均加以定义,其内 容有:名字,编号,描述,定义,其它 等
(1)数据流词条描述
• 数据流名: • 说明:简要介绍作用即它产生的原因和结
果 • 数据流来源:来自何方 • 数据流去向:去向何处 • 数据流组成:数据结构 • 数据量流通量:数据量,流通量
(2)数据元素词条描述
• 数据元素名: • 类型:数字(离散值,连续值),文字(编码
类型)
• 长度: • 取值范围: • 相关的数据元素及数据结构:
(3)数据文件词条描述
• 数据文件名: • 简述:存放的是什么数据 • 输入数据: • 输出数据: • 数据文件组成:数据结构 • 存储方式:顺序,直接 • 存取频率:
• 需求分析的任务就是借助于当前系统的 逻辑模型导出目标系统的逻辑模型,解 决目标系统的 “做什么” 的问题。
• 通常软件开发项目是要实现目标系统的 物理模型
• 目标系统的具体物理模型是由它的逻辑 模型经实例化,即具体到某个业务领域 而得到的
需求分析的过程
(1) 问题识别
从系统的角度来理解和确认软件软件范围 确定对目标系统的综合要求,即软件的需求 提出这些需求实现条件,以及需求应达到的标准
• IF_THEN_ELSE • CASE_OF • WHILE_DO • REPEAT_UNTIL等组成。
• 是一种介于自然语言和形式化语言之间 的语言
• 语言的正文用基本控制结构进行分割, 加工中的操作用自然语言短语来表示
• 其基本控制结构有三种:
– 简单陈述句结构:避免复合语句; – 重复结构:WHILE_DO 或
• 存折=户名+所号+帐号+开户日+性质+(印 密)+1{存取行}50
软件工程案例_结构化方法的需求分析

案例—结构化方法的需求分析一、约定1.假定校园卡只对学生发行。
2.校园卡本身不保存除“卡号”以外的信息,卡号由系统按照序列号自动生成。
3.假定使用校园卡的场合只有食堂、商店及图书馆,而且,不允许透支消费。
4.系统功能从简,包括:不考虑校园卡的加密问题,不考虑诸如修改密码、挂失等配套功能,与特约商户按照POS机号逐日汇总后对帐,等等。
二、软件功能1.校园卡发行2.帐户管理2.1、充值2.2、取款2.3、注销2.4、查询帐户收支记录3.刷卡消费4.身份验证5.统计报表5.1、打印收支情况统计表5.2、打印特约商户对帐表三、数据流图1.顶层(图1)学习提示:▲顶层数据流图的基本意图是什么?2.第1层(图2)学习提示:▲自顶向下、逐层细化原则的运用▲下层数据流图的边界与上层数据流图保持一致▲关于数据存储▲关于数据字典3.第2层(图3、图4)学习提示:▲对数据流图的细化到什么程度为止。
四、数据字典1.数据流与数据存储的数据结构学习提示:▲规范描述每种数据流、每种数据存储的数据元素构成。
▲用词的规范,语法与语义的一致,同一数据结构(或数据元素)使用同一名称、不同数据结构(或元素)使用不同的名称。
2.数据元素对上述数据结构中出现每个数据项,逐个作出定义。
本案例省略具体内容,只对如下数据元素作出说明。
学习提示:▲哪些内容属于“数据元素”。
▲对于数据元素,需要定义哪些内容。
▲关于“元数据”的概念▲数据分析要求清楚描述每种业务单据之间的关联每个数据元素值的“来龙去脉”五、功能说明以“功能2.2—取款”为例说明▲功能简介(略)▲录入数据:取款单▲界面原型(略)▲前置条件《校园卡基本档案》存在与《取款单》中“卡号”相对应的记录。
▲对录入数据的约束规则●该档案记录的“密码”与《取款单》输入值一致。
●该档案记录的“当前状态”为“正常”。
●该档案记录的“帐户余额”值大于或者等于《取款单》的“取款金额”。
▲系统处理●新增《存取款记录》。
结构化分析方法

结构化分析方法结构化分析方法一、需求分析与需求分析方法需求阶段是软件开发的关键阶段。
需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。
需求分析阶段的工作(四方面):◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。
◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。
◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。
◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。
1、需求获取的目的清楚地理解所要解决的问题、完整地获取用户需求。
2、需求获取的内容用户需求分类:(1)功能性需求定义了系统做什么(描述系统必须支持的功能和过程)。
(2)非功能性需求(技术需求)定义了系统工作时的特性(描述操作环境和性能目标)。
3、需求分析的步骤4、需求分析过程示意(1)通过对现实环境的调查,获得当前系统的物理模型。
(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。
(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。
5、需求分析的方法结构化分析(传统建模方法)、面向对象分析。
二、结构化分析方法1、结构化分析方法(Structure Analysis---SA)(1)定义是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
(2)结构化分析的主要步骤通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。
2、结构化分析方法使用的常用工具(1)数据流图(DFD—Data Flow Diagram )①作用从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。
结构化需求分析方法

结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”.分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决.图4 是自顶向下逐层分解的示意图.顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2。
SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来.这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
7_结构化需求分析方法

(a+b)*(c+a*d)
文件
7 结构化需求分析方法
7.3.3 DFD的层次性
DFD的层次性:自顶向下的分解(top‐down) DFD的两种类型:
– 环境关联DFD图(Context‐level DFD,或Context Diagram):也称顶层DFD图, 描述了系统与外部环境之间的数据输入/输出关系; – 系统内部DFD图(Inner‐level DFD):描述系统内部各功能模块之间的数据流动 关系
– Yourdon于1989年出版《Modern Structured Analysis》
核心思想:
– 自顶向下的分解(top-down)
7 结构化需求分析方法
结构化方法的模型
结构化需求分析方法通常需建立以下模型:
– 数据流图(Data Flow Diagram, DFD)
• 描述系统由哪些部分组成、各部分之间有什么联系等
数据流图(Data Flow Diagram, DFD):结构化系统分析的基本工具
– 描绘数据在系统中各逻辑功能模块之间的流动和处理过程,是一种功能模型 – 主要刻画“功能的输入和输出数据”、“数据的源头和目的地”
注册请求 2 学生注册 学生 课程安排
教务部 学生信息库 课程安排数据 课程注册信息
– 可能存在于:
• 外部实体与加工之间; • 加工与加工之间; • 加工与数据存储之间
客户 订单 1 录入订单 订单 销售订单 订单 2 审核订单
7 结构化需求分析方法
DFD的简单练习
3.3 结构化需求分析方法

订货单 支票
顾客
询问 退货单
处理顾 客事务
第三章 需求分析
15
多个数据流的第一种表示方法:
订货单 顾客事务
顾客
处理 顾客 事务
支票 询问
退货单
16
第三章 需求分析
多个数据流的第二种表示方法:
订货单
编辑订 货单
开收据 处理询 问 退货分 析处理
支票
顾客
询问
退货单
第三章 需求分析
17
多个数据流的表示举例
重建父图,即把第二步所得的每一部分画成一个圆圈, 各部分之间的联系就是加工之间的界面; 重建各张子图,只需把第二步所得的图,按各自的边界 剪开即可; 为所有加工重新命名、编号。
第三章 需求分析
36
结构不合理的数据流图及其修改
4 H A B 1 I 2 K L D 3 D (a)结构不合理的 数据流程图
33
分解的程度
分解应自然,概念上要合理、清晰。 上层可分解的快些,而下层应分解得慢些。
在不影响可读性的前提下,应适当地多分解成几部分, 以减少分解层数。
一般说来,当加工可用一页纸明确地表述时,或加工只 有单一输入/输出数据流时,就应停止对该加工的分解。 对数据流图中不再作分解的加工,必须作出详细的加工 说明,并且每个加工说明的编号必须与功能单元的编号 一致。
第三章 需求分析
5
结构化分析方法的特点
利用数据流图来帮助人们理解问
题,对问题进行分析。即利用图
形工具来模拟数据处理过程。
第三章 需求分析
6
结构化分析方法
用数据字典定义数据流图中的各项数据; 结构化英语、判定树和判定表对数据流图中的基本功 能进行描述。 通过将系统分解成多层处理后,在较低层次上,可以 看到数据流图的高层次加工的细节和相关的数据流。 结构化分析方法的实质就是采用一组分层的数据流图 及相应的数据字典作为系统的模型。 结构化分析方法从总体上看是一种强烈依赖数据流的 自顶向下的建模方法,它不仅是需求分析技术,也是 完成规格说明的手段。
软件工程第四章结构化需求分析

数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。
结构化需求分析报告方法

结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化分析(SA)方法结构化开发方法(Structured Developing Method)就是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点就是快速、自然与方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法就是面向数据流的需求分析方法,就是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出与发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别就是企事业管理系统。
SA 法也就是一种建模的活动,主要就是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1、SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)就是面向数据流的需求分析方法,就是70年代由Yourdon,Constaintine 及DeMarco 等人提出与发展,并得到广泛的应用。
结构化分析方法的基本思想就是“分解”与“抽象”。
分解:就是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 就是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层就是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就就是“抽象”。
2、SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
⑶建立目标系统的逻辑模型;分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD 图)。
⑷为了对目标系统作完整的描述,还需要考虑人机界面与其它一些问题。
3、SA 法的描述工具⑴分层的数据流图⑵数据词典⑶描述加工逻辑的结构化语言、判定表或判定树。
2 数据流图数据流图(Data Flow Diagram,简称DFD)就是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入与逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。
1、数据流图的图符数据流图有以下4 种基本图形符号:箭头表示数据流,圆或椭圆表示加工。
双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。
⑴数据流就是数据在系统内传播的路径,由一组成固定的数据项组成。
除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。
数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。
⑵加工也称为数据处理,它对数据流进行某些操作或变换。
每个加工也要有名字,通常就是动词短语,简明地描述完成什么加工。
在分层的数据流图中,加工还应有编号。
⑶数据存储指暂时保存的数据,它可以就是数据库文件或任何形式的数据组织。
流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。
⑷数据源点与终点就是软件系统外部环境中的实体(包括人员、组织或其她软件系统),统称为外部实体。
一般只出现在数据流图的顶层图中。
还有一些辅助的图例:例1:画出图书预定系统的DFD 图。
现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程就是根据图书目录检查订单的正确性,同时根据顾客档案确定就是新顾客还就是老顾客,就是否有信誉。
经过验证的正确订单,暂存放在待处理的订单文件中。
对订单进行成批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社。
画图步骤就是:⑴首先确定外部实体(顾客、出版社)及输入、输出数据流(订单、出版社订单)。
⑵再分解顶层的加工(验证订单、汇总订单)。
⑶确定所使用的文件(图书目录文件、顾客档案等5 个文件)。
⑷用数据流将各部分连接起来,形成数据封闭。
特别要注意的就是:数据流图不就是传统的流程图或框图,数据流也不就是控制流。
数据流图就是从数据的角度来描述一个系统,而框图则就是从对数据进行加工的工作人员的角度来描述系统。
数据流图中的箭头就是数据流,而框图中的箭头则就是控制流,控制流表达的就是程序执行的次序。
下图就是培训中心管理系统的数据流图,由于只有一层,因此分解的加工较多不易理解,而且如果其中某个加工较复杂,例如编号为3 的加工“付款”与编号为7 的加工“复审”仍很复杂,一时难以理解,如果不继续分解下去,直到每个加工都足够简单易于理解为止,则会影响需求分析结果的可读性。
1、画分层DFD 图的方法如图2、8 所示,如果系统规模较大,仅用一个DFD 图难以描述,会使得系统变得复杂,且难以理解。
为了降低系统的复杂性,采取“逐层分解”的技术,画分层的DFD 图。
画分层DFD 图的一般原则就是:“先全局后局部,先整体后细节,先抽象后具体”。
通常将这种分层的DFD 图,分为顶层、中间层、底层。
顶层图说明了系统的边界,即系统的输入与输出数据流,顶层图只有一张。
底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。
在顶层与底层之间的就是中间层。
中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。
画各层DFD 图时,应“由外向内”。
画分层DFD 图的具体步骤:⑴先确定系统范围,画出顶层的DFD 图。
⑵逐层分解顶层DFD 图,获得若干中间层DFD 图。
⑶画出底层的DFD 图。
在画分层数据流图时,首先遇到的问题就就是应该如何分解?不能够一下子把一个加工分解成它所有的基本加工,一张图中画出过多的加工就是使人难以理解的,但就是如果每次只就是将一个加工分解成两个或三个加工,又可能需要分解过多的层次,也会影响系统的可理解性。
一个加工每次分解成多少个子加工才合适呢?根据经验“最多不要超过7 个”。
统计结果证明,人们能有效地同时处理7 个或7 个以下的问题,但当问题多于7 个时,处理效果就会下降。
当然也不能机械地应用,关键就是要使数据流图易于理解。
同时还有几条原则可供参考:分解应自然,概念上要合理、清晰。
只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层图的层数就可少些。
一般来说,在上层可以分解得快些,而在中、下层则应分解得慢些,因为上层就是一些综合性的描述,“易理解性”相对地说不太重要。
下节我们以一个实例来说明画分层DFD 图的方法。
2 分层DFD 图的改进分层数据流图就是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层则给出了从抽象到具体的逐步过渡。
1、画分层DFD 图的基本原则⑴、数据守恒与数据封闭原则所谓数据守恒就是指加工的输入输出数据流就是否匹配,即每一个加工既有输入数据流又有输出数据流。
或者说一个加工至少有一个输入数据流,一个输出数据流。
⑵加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解就是将一个问题分解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。
⑶子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。
例1 考察下图中子父图的平衡显然,图2、13 中子图与父图不平衡。
子图就是父图中加工2 的分解,加工2 有输入数据流R 与M,输出数据流T,而子图则只有一个输入数据流N,却有两个输出数据流T 与S。
图2、14 中,子图就是父图中加工4 的分解,虽然表面上加工4 只有一个输入数据流“订货单”,而子图却有三个输入数据流,但就是如果“订货单”就是由“客户”、“帐号”与“数量”三部分组成,即有如下数据条目:订货单=客户+帐号+数量(2、2、5 数据词典),则子、父图平衡。
⑷合理使用文件当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么它同其它成份之间的联系也应同时表达出来。
理解一个问题总要经过从不正确到正确,从不确切到确切的过程,需求分析的过程总就是要不断反复的,一次就成功的可能性就是很小的,对复杂的系统尤其如此,因此,系统分析员应随时准备对数据流图进行修改与完善,与用户取得共识,获得无二义性的需求,才能获得更正确清晰的需求说明,使得设计、编程等阶段能够顺利进行,这样做就是必须与值得的。
3、分层DFD 图的改进DFD 图必须经过反复修改,才能获得最终的目标系统的逻辑(目标系统的DFD 图)。
改进的原则与画分层DFD 图的基本原则就是一致的,可从以下方面考虑DFD 图的改进:⑴检查数据流的正确性①数据守恒②子图、父图的平衡③文件使用就是否合理。
特别注意输入/出文件的数据流。
⑵改进DFD 图的易理解性①简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。
②改进分解的均匀性。
③适当命名(各成分名称无二义性,准确、具体)。
4、数据词典分层数据流图只就是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”(data dictionary)与“小说明”对图中的每个数据与加工给出解释。
对数据流图中包含的所有元素的定义的集合构成了数据词典。
它有四类条目:数据流、数据项、文件及基本加工。
在定义数据流或文件时,使用表2-1 给出的符号。
将这些条目按照一定的规则组织起来,构成数据词典。
1、数据流条目给出了DFD 中数据流的定义,通常对数据流的简单描述为列出该数据流的各组成数据项。
例:数据流“乘客名单”由若干“乘客姓名”、“单位名”与“等级”组成,则词典中的“乘客名单”条目就是:乘客名单={乘客姓名+单位名+等级}又如:报名单=姓名+单位名+年龄+性别+课程名也可以对数据流进行较详细的描述,如下例:例:某查询系统中,有个名为“查询”的数据流,目前“查询”有三种类型,即“顾客状况查询”、“存货查询”与“发票存根查询”,预计至1990 年底还将增加3 至4 种其她类型的查询。
系统每天约需处理2 000 次查询,每天上午9:00—10:00 就是查询的高峰,此时约有1 000 次查询。
上述信息都就是“用户要求”的一部分,在分析阶段应该认真收集,并记录在词典的有关条目中,所以“查询”条目描述如下。