面向数据流的分析方法

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

.. 连接符
Month=1..12表示month可取1~12中的任意值
* * 表示注释
两个星号之间的内容为注释信息
数据字典中每一数据条目包含的内容
1.数据流图中标识数据流、数据源或外部 实体的名称与别名;
2.数据类型; 3.所有以它作为输入流或输出流的转换的
列表; 4.如何使用该数据条目的简要说明; 5.数据条目的解释性说明; 6.其他补充说明,例如取值范围与缺省值
课程名称:软件工程
第5讲
班 级:
日 期:
教 室:
教学题目:第4章 面向数据流的分析方法。
教学目的:掌握数据流图与数据字典的概念及用法,理
解实体-关系图的绘制方法和作用,初步掌握
基于数据流的分析方法。
教学重点:数据流图与数据字典、实体-关系图、基于数
据流的分析方法。
教学难点:实体-关系图。
教 具:多媒体教室、电子教案
有关的设计约束等。
数据字典
数据条目的定义必须遵循以下原则: 精确、 简洁, 能为用户方和软件开发方共同理解。
例如,可以使用形式语言中的语法定义机制 描述数 据条目的内容。原子语法成 分则用简单明了的自然语言予以描述。
数据字典举例
家庭保安系统中的“电话号码”数据条目可以定义如 下:
<电话号码>=<分机号>|<外线号码> <分机号>=1816 | 1817 | … | 1858 <外线号码>=9 +(<市话号码>|<长话号码>) <长话号码>=0 +(<区号>+<市话号码>) <区号>=* 任何长度为3的数字串* <市话号码>=<局号>+<分局号> <局号>=395 | 396 | 397 | 303 | 304 | 305 <分局号>=* 任何长度为4的数字串*
[ | ] 或[ , ] 表示或关系
X=[a|b]与X=[a,b]的等价,表示X由a或b组成
( ) 表示可选项
X=(a)表示a可以在X中出现,也可以不出现
{ } 表示重复
大括号中的内容重复0到多次
m{ }n 表示规定次数的重复 重复的次数最少m次,最多n次
“ ” 表示基本数据元素 “ ”中的内容是基本数据元素,不可再分
产生病 要求护 情报告 报告士 日志数据
患者日志
图5-2-2 “患者监护系统”1级数据流图
数据字典
数据流图机制没有描述数据流的内容。数据流图必须 与描述并组织数据条目的数据字典配套使用。
表5-1 数据字典中的基本符号及其含义
符号
含义
说明
= 表示定义为
用于对=左边的条目进行确切的定义
+ 表示与关系
X=a+b表示X由a和b共同构成
7.数据流图的分解速度应保持适中。通常一个加工每 次可分解为2~4个子加工,最多不要超过七个,否则 会增加用户的理解难度。同时要注意,逐层精化必须 适可而止。
8. 如果为了便于数据流图在计算机上的输入和输出, 应免除斜线、弧线、圆等符号。
5.3 基于数据流的分析方法
5.3.1 创建数据流模型
数据流图是目标软件系统中各个处理子功能以及它们 之间的数据流动的图形表示。数据流图的精化过程实 际上是处理子功能和数据流的细化过程。随着这一过 程的进行,用户需求逐步精确化、一致化和完备化。 创建用户需求的数据流模型应遵循以下5条规则: 1)首先建立顶级数据流图,其中只含有一个代表目标 软件系统整体处理功能的转换。 根据软件系统与外部环境的关系确定顶级数据流图中 的外部实体以及它们与软件系统之间的数据流。
2.描述性属性:对数据对象实例的性质进行刻画。
3.引用性属性:将自身与其他数据对象的实例关 联起来。
一般而言,现实世界中任何给定实体都具有许多属性, 分析人员应当并且只能考虑与应用问题有关的属性。 例如,在汽车销售管理问题中,汽车的属性可能有: 制造商、型号、标识码、车体类型、颜色和买主。
5.2.1 数据对象、属性与关系
作 业:
第5章 面向数据流的分析方法
面向数据流的分析方法(dataflow-oriented analysis method)与面向数据、面向对象的分析方法,都是 需求建模方法。它们均有一组规范的语言表达机制, 用于需求分析人员表达用户需求、构造软件系统模型。 此外,它们还含有一些规则和经验知识,指导分析人 员提取需求信息,促进用户需求精确化、全面化和一 致化。
初始时,整个信息处理系统可以用图5-12所示的顶级(第0级)数据流图表示。
控制面板 传感器
家庭保 安系统
显示器 警报类别 警报器
电话机
图5-1-2 “家庭保安系统”顶级数据流图
随着需求分析活动的逐渐深入,较高抽象级别上的复 杂转换可以精化为一系列相互关联的数据流和子转换, 如图5-1-3所示。在数据流方法中,对数据(数据流) 的精化是伴随着对转换的逐步精化而同步进行的。
一个基于计算机的信息处理系统由数据 流和一系列的转换构成,而这些转换将 输入数据流变换为输出数据流。
数据流图就是用来刻画数据流和转换的 信息系统建模技术。它用简单的图形记 号分别表示数据流、转换、数据源以及 外部实体,如下图所示。
数据流图的图形记号
外部实体
位于软件系统边界之外 的信息生产者或消费者
5.3.2 过程规格说明
对于数据流图中不再分解的处理功能, 分析人员要借助结构化自然语言对其功 能进行精确、简洁的描述。
图5-3-1中“口令核对”子功能分解出来 的“设置口令”子功能可描述如下页:
过程规格说明举例——“设置口令”子功能
1.参数:口令;类别:字符串 2.处理步骤:
1)检查系统是否已有口令。若有,则验证用户输 入口令的有效性。如果有效,则显示提示信息要求 输入新口令;否则,显示失败信息并退出。
转换
转换数据流的处理过程, 又称泡(bubble)
数据流
在转换之间有向流动的 数据项或数据项集合
数据源
为一个或多个转换提供数据源或数据 存储服务的缓冲区、文件或数据库
* “与”,即同时输入/出;
+ “或”,即至少一项输入/出;
⊕ “异或”,即非同时输入/出
数据流图
数据流图提供了层次结构,让分析人员 能够方便地表示任意抽象级别上的信息 系统或其子系统,并支持问题分解、逐 步求精的分析方法。
面向数据流的分析方法是结构化分析方法系列中的一 支,具有明显的结构化特征。结构化分析方法的雏形 出现于20世纪60年代后期。但是,直到1979年才由 DeMarco将其作为一种需求分析方法正式提出。由此, 结构化分析方法得到了迅速发展和广泛应用。
本章主要介绍广为使用的数据流方法。
5.1 数据流图与数据字典
应用问题中的任何数据对象都不是孤立的,它 们与其他数据对象一定存在各种形式的关联。
思考
某高校可用的电话号码有以下几类:校 内电话号码由4位数字组成,第1位数字 不是0;校外电话又分为本市电话和外地 电话两类,拨校外电话先拨0,如果是本 地电话再接着拨8位电话号码(第1位不 是0 ),如果是外地号码则先拨3位区码, 再拨8位电话号码(第1位不是0 )。
5.2 实体-关系图
在数据密集型应用问题中,对复杂数据及数据 之间复杂关系的分析和建模将成为需求分析的 重要任务。
病人 护士 时钟
病情报告 患 者 监 护系 统
护士 护士
图5-2-1 “患者监护系统”顶级数据流图
病 生 理 接收信 生理 人 信号 号 信号
分析 信号
报警 信息
产生报 警信息
报警 护 信息 士
号生 理 信
患者安全范围 病情报告
时 时间 钟
订时取 样生理 信号
定时 更新 生理 日志 信号
日志数据
配置信息
传感 读取传 数据 感数据
异常数 据判别 传感器ID,类别 传感数据 (内部表示)
生成报 警信号
电话 电话拨 拨号 号音频
图5-3-2 “家庭保安系统”2级数据流图: 对“传感器监测”的分解
创建数据流模型的5条规则
4)精化过程中必须维持各级数据流图之间 的数据流平衡。
5)精化过程应适可而止,避免涉及软件设 计细节。一般说来,如果某子功能可以 用一段简洁、精确的文字描述清楚,就 无需进一步分解。
实体-关系图——在数据流分析方法中适合于复 杂数据建模的工具。
5.2.1 数据对象、属性与关系
数据对象:是现实世界中实体的数据表现; 是省略了功能和行为的实体。
数据对象包括:
数据源 ; 外部实体的数据部分 ; 数据流的内容。
5.2.1 数据对象、属性与关系
数据对象由其属性刻画。通常属性包括:
1.命名性属性:对数据对象的实例命名,其中必 含有一个或一组关键属性,以便 唯一地标识数据对象的实例。
控制面板
启动/停止
启动/停止
处理
用户命 命令
令处理
配置命令 口令
系统 配置
口令 口令有效/ 核对 口令无效
原口令
显示面板
显示信息
信息 显示
配置信息
警报器
传感器
传感数据
传感器 监测
电话拨 号音频
图5-3-1 “家庭保安系统”1级数据流图
电话机
创建数据流模型的5条规则
3)采用通常的功能分解方法,按照“强内聚、 松耦合”的原则逐个对处理功能进行精化;与 此同时逐步完成对数据流的精化,并针对被精 化的处理功能生成下一级数据流图。 “强内聚、松耦合”的原则对于目标软件系统 的可修改性、可扩充性大有益处,因为开发人 员可以缩小软件修改或扩充的影响传播范围。 对数据流的精化包含两个方面的意义。首先, 伴随着功能分解的进行,数据流的内容及各项 特征将逐步彰显,所以要将其作为数据字典的 一个条目,并不断精化、调整内容。其次,在 父数据流图中的复合数据项可被分解为子数据 项,这种数据流分解不能违背平衡原则。
2.数据流图中各构成元素的名称必须具有明确的含义 且能够代表对应元素的内容或功能。
3.对某个加工进行细化生成的下层数据流图,称为其 上层图的子图。应保证分层数据流图中任意对应的父 图和子图的输入/输出数据流保持一致。
4.应按照层次给每个加工编号,用于表明该加工所处 的层次及上、下层的父图与子图的关系。编号的规则 为:顶层加工不用编号;第一层加工的编号为 1,2,…,n 。 第 二 层 加 工 的 编 号 为 11,12,…,21,22,…,n1,n2,…,等,以此类推。
例如
控制面板 传感器
家庭保 安系统
显示器 警报类别 警报器
电话机
图5-1-2 “家庭保安系统”顶级数据流图
创建数据流模型的5条规则
2)对用户需求的文字描述进行语法分析, 其中的名词和名词短语构成潜在的外部 实体、数据源或数据流,动词构成潜在 的处理功能。 结合分析人员对问题域和用户需求的 理解,确定软件系统的主要功能以及它 们之间的数据流,产生“家庭保安系 统”1级数据流图如图5-3-1所示。
建立数据流模型要遵循以下的原则
5.在父图中不要出现子图中涉及的局部数据存储文件。 通常除底层数据流图中需表明所有数据存储外,为保 持画面整洁,各中间层数据流图只需显示处于加工之 间的接口文件即可。
6.数据流图只能由四种基本符号组成,是实际业务流 程的客观映象,用于说明系统应该“做什么”,而不 需要指明系统“如何做”。
B0
A0
F
第0级
A0
M1 F1
F2 C1 D1
F4 E1 F5
N1 F3
B0 第1级
C1 D1
F41
X2 F43
Z2
F44
F42 Y2
E1 第2级
图5-1-3 数据流图的精化与层间平衡
建立数据流模型要遵循以下的原则
1.每个加工至少应有一个输入数据流(反映被处理数 据的来源)和一个输出数据流(反映加工的结果)。
储户记录存款信息打印存款存单核对密码计算利息打印利息清单储户存款利息存款存单存款利息利息值存款利息d1存款利息存款利息存款单取款单银行计算机存储系统的数据流图银行计算机存储系统的数据流图存取款到期日期储户银行住址电话号码姓名数额类型利率密码名称地址电话号码身份证号码帐号银行计算机存储系统银行计算机存储系统eerr图图校内电话号码非0数字3位数字本市号码08位数字外地号码03位数字8位数字
数据流图与数据字典
综上所述,
①利用数据字典可以对数据流图中的数据流、数 据源以及外部实体进行描述、组织和管理。
②对于转换,也需要一种比图形记号更为详尽的 表示机制,这就是结构化的文字描述。分析人 员可以在数据流图的任一转换上附加一段文字, 用以说明转换的功能、性能要求及设计约束等, 这种说明应尽可能简洁、清晰、易于理解。
2)检查口令长度是否合法。如果非法,则显示提 示信息要求重新输入。
3)要求用户再次键入合法口令,以便用户确认和 记忆。如果两次键入的口令不符,则返回。
4)将确认后的口令按某种加密方法转换为另一字 符串存放于系统配置文件中。显示成功信息并退出。 3.约束条件:在上述1)、2)、3)步骤中,用户重 试的机会不超过3次。
思考
某医院打算开发一个以计算机为中心的 患者监护系统,请分层画出描述本系统 功能的数据流图。
基本要求是随时接受每个病人的生理信 号(脉搏、体温、血压等)定时记录病 人情况以形成患者日志,当某个病人的 生理信号超出医生规定的安全范围时向 值班护士发出警告信息。此外,护
相关文档
最新文档