软件工程第五章

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

建立数据流模型要遵循以下的原则
5.在父图中不要出现子图中涉及的局部数据存储文件。通 常除底层数据流图中需表明所有数据存储外,为保持画 面整洁,各中间层数据流图只需显示处于加工之间的接 口文件即可。 6.数据流图只能由四种基本符号组成,是实际业务流程的 客观映象,用于说明系统应该“做什么”,而不需要指 明系统“如何做”。 7.数据流图的分解速度应保持适中。通常一个加工每次可 分解为2~4个子加工,最多不要超过七个,否则会增加用 户的理解难度。同时要注意,逐层精化必须适可而止。 8. 如果为了便于数据流图在计算机上的输入和输出,应免 除斜线、弧线、圆等符号。
析人员要借助结构化自然语言对其功能进
行精确、简洁的描述。
图中“中央监视”子功能分解出来的“计
算超过极限值否”子功能可描述如下页:
过程规格说明举例 ——“计算超过极限值否”子功能
1.参数:血压、体温、脉搏;类别:字符串 2.处理步骤: 1)检查系统是否有参数值输入。若有,则验证输入值的 有效性。如果有效,则从病员极限数据存储中取出相应的 待比较值;否则无操作。 2)检查输入参数值与待比较值的大小。如果超过极限值, 则产生报警信息,并且更新病员的记录;如果没有超过极 限值,则只更新病员记录。 3.约束条件:在上述1)、2)步骤中,通过时间控制参数的 采集。
数据对象(实体)用长方形、关系用菱形、属性用椭 圆表示。数据对象之间数量上的对应关系的表示如下 图所示:
0:1
1:1
0:多
1:多
为了便于区分,在E-R模型中的实体、关系和属 性都应在对应的框中写上各自的名字。
经销
经销商
存储 标识码
制造商
生产
汽车
型号 制造商
买主
颜色
车体类型
图5-2-2 实体-关系图实例
软 件 工 程
第5章
面向数据流的分析方法
面向数据流的分析方法(dataflow-oriented analysis method)与面向数据、面向对象的分析方 法,都是需求建模方法。它们均有一组规范的语言 表达机制,用于需求分析人员表达用户需求、构造 软件系统模型。
面向数据流的分析方法是结构化分析方法系列中的 一支,具有明显的结构化特征。
数据流图
数据流图提供了层次结构,让分析人员能 够方便地表示任意抽象级别上的信息系统 或其子系统,并支持问题分解、逐步求精 的分析方法。
初始时,整个信息处理系统可以用图5-1-2 所示的顶级(第0级)数据流图表示。
控制面板 家庭保 安系统 传感器 警报类别
显示器
警报器 电话机
图5-1-2 “家庭保安系统”顶级数据流图
记帐数据库
准备 机票
数据字典例子: (数据项)
预定 订票员 数据项名称:航班号 机票 订票单 航班
-
别名: HBH 数据类型: 字符串 航班号 长度: 16位 取值范围及含义:
准备 机票 机票
费用
第1位:航班目录 进口/国产 帐目 第2-4位:类别 第5-7位:规格 第8-11位: 源机场编号 记帐数据库 第12-15位: 目的机场编号
标识符=字母字符+字母数字串 字母数字串=0{字母或数字}7 字母或数字=[字母字符|数字字符]
数据字典例子: (数据流)
预定 数据流名称:订票单 订票员 机票 订票单 航班
- 别名: 无 - 来源: 订票员 费用 机票 航班号 - 去向: 定票 - 数据流量: 200份/天 帐单 记帐 - 组成: 编号+姓名+年龄+身份证号+电话 航班目录 订票员 号码+订票日期+ 目的地 帐目 ……
数据流图的图形记号
外部实体 转换 数据流
位于软件系统边界之外的信息生产者或消费者
转换数据流的处理过程,又称泡(bubble)
在转换之间有向流动的数据项或数据项集合
为一个或多个转换提供数据源或数据存储服务的缓 冲区、文件或数据库 “与”,即同时输入/出; “或”,即至少一项输入/出;
数据源
* +

“异或”,即非同时输入/出。
2.3 报警 产生报 警信息
超过极限值
创建用户需求的数据流模型应遵循 以下五条规则:
4. 精化过程中必须维持各级数据流图之间 的数据流平衡。
5. 精化过程应适可而止,避免涉及软件设 计细节。一般说来,如果某子功能可以用一 段简洁、精确的文字描述清楚,就无需进一 步分解。
5.3.2 过程规格说明
对于数据流图中不再分解的处理功能,分
数据流图例子:飞机机票预订系统
订票员 订票单 预定 机票 航班 准备 机票
航班号
费用
机票
航班目录 帐目
记帐
帐单
订票员
记帐数据库
数据字典
面向数据流分析需要引进数据字典(DD) DD以一种准确、简洁的方式对DFD中数据流、外 部实体、数据存储作说明
DD对DFD中的六类元素进行定义说明,按照元素 不同,其中的数据条目内容也不相同
数据字典
• 用符号描述数据元素组成数据的关系: = 等价于(或定义为) + 和(连接两个分量) [ | ] 或(从若干个分量中选择一个) { } 重复(重复分量) ( ) 可选(分量可有可无)
例:
• 某程序设计语言规定,用户说明的标识符 是长度不超过8个字符的字符串,其中第一 个字符必须是字母字符,随后的字符既可 以是字母字符也可以是数字字符。
记帐
帐单
Biblioteka Baidu
订票员
……
数据字典例子: (数据存储)
航班 预定 订票员 数据存储名称:航班目录 机票 订票单
- 别名: 无 - 来源: 无 费用 机票 航班号 - 去向: 定票 - 组成: 航班号+飞行日期+载客量+出发 帐单 记帐 航班目录 订票员 地+目的地+票价 帐目 - 组织方式:索引文件,以航班号为关键字 ……
医院病房监护系统分层DFD图
一级DFD
病症信号 1 局部监视 病员数据 2 报警 中央监视 格式化病员数据 4 更新日志 日志数据 病员极限 生理信号极限值
病员
护士
需求报告
病症报告 3
生成报告
日志数据
病员日志
医院病房监护系统分层DFD图
二级DFD:对加工“中央监视”进行分解
病员数据
2.1 开解信号 脉搏 体温 2.2 血压 计算超过 极限值否 生理信号极限值 血压、体温、脉搏 2.4 格式化 病员数据 格式化病员数据 病员极限
D1
Z2 F44 F43
E1 第2级
图5-1-3 数据流图的精化与层间平衡
建立数据流模型要遵循以下的原则
1.每个加工至少应有一个输入数据流(反映被处理数据的来 源)和一个输出数据流(反映加工的结果)。 2.数据流图中各构成元素的名称必须具有明确的含义且能够 代表对应元素的内容或功能。 3.对某个加工进行细化生成的下层数据流图,称为其上层图 的子图。应保证分层数据流图中任意对应的父图和子图的 输入/输出数据流保持一致。 4.应按照层次给每个加工编号,用于表明该加工所处的层次 及上、下层的父图与子图的关系。编号的规则为:顶层加 工不用编号;第一层加工的编号为1,2,…,n。第二层加工的 编号为11,12,…,21,22,…,n1,n2,…,等,以此类推。
记帐数据库
准备 机票
数据字典例子: (处理逻辑)
订票单 航班 数据加工名称:定票 预定 订票员 机票 - 别名: 无 - 输入: 订票单 费用 - 输出: 航班、费用 航班号 - 激发条件:接受到订票单 -处理逻辑: 记帐 航班目录
准备 机票 机票
帐单
……
if 单据=订票单 帐目 then if 单据是否过期 then 是否有该航班,是否有机票 记帐数据库
5.2 实体-关系图
为了把用户的数据要求清楚、准确地描述出来,系统 分析员通常建立一个概念性的数据模型。概念性数据 模型是一种面向问题的数据模型,是按照用户观点对 数据建立的模型。 数据模型中包含3中相互关联的信息:数据对象、数据 对象的属性及数据对象彼此间相互连接的关系。 5.2.1 数据对象、属性与关系 数据对象:是现实世界中实体的数据表现; 是省略了功能和行为的实体。 数据对象包括: 数据源 ; 外部实体的数据部分 ; 数据流的内容。
数据流 数据项(数据元素) 数据结构 数据存储 处理逻辑(基本加工) 外部实体
数据字典
数据元素组成数据的方式有四种基本类型: (1)顺序:以确定次序连接两个或多个分量; (2)选择:从两个或多个可能的元素中选取一个; (3)重复:把指定的分量重复零次或多次; (4)可选:一个分量是可有可无的(重复零次或 一次)。
随着需求分析活动的逐渐深入,较高抽象级别上的复杂转换可 以精化为一系列相互关联的数据流和子转换,如图5-1-3所示。 在数据流方法中,对数据(数据流)的精化是伴随着对转换的 逐步精化而同步进行的。 B0 F A0 第0级
A0
F1
M1 N1
F2 C1 D1 F3
C1
F4
E1
F5
B0 第1级
F41 X2 F42 Y2
医院病房监护系统分层DFD图
顶级DFD
病员
病症
病员 监护 系统
病症报告
护士
需求报告 报警
创建用户需求的数据流模型应遵循 以下五条规则:
3. 采用通常的功能分解方法,按照“强内 聚、松耦合”的原则逐个对处理功能进行精 化;与此同时逐步完成对数据流的精化,并 针对被精化的处理功能生成下一级数据流图。
5.2.1 数据对象、属性与关系
数据对象由其属性刻画。一般而言,现实世界中 任何给定实体都具有许多属性,分析人员应当并 且只能考虑与应用问题有关的属性。例如,在汽 车销售管理问题中,汽车的属性可能有:制造商、 型号、标识码、车体类型、颜色和买主。
5.2.2 实体-关系图
实体-关系(Entity-Relation)图简称E-R图,是表示 数据对象及其之间关系的图形语言机制。
作业
某高校选课系统要求如下:选课系统对每个学生的选课单 进行处理。根据教学计划检查该生是否存在尚未取得学分的必 修课程。如果存在,则要求重选。如果课程上课时间不发生冲 突,则可以选修,否则根据重修、必修、限选、任选的优先级、 删除已选课程,最后产生每个学生的个人课表和每门课程的成 绩单。 画数据流图和数据字典
更新病历
创建用户需求的数据流模型应遵循 以下五条规则:
1. 首先建立顶级数据流图,其中只含有一个代表 目标软件系统整体处理功能的转换。根据软件系统 与外部环境的关系确定顶级数据流图中的外部实体 以及它们与软件系统之间的数据流。 2. 对用户需求的文字描述进行语法分析,其中的 名词和名词短语构成潜在的外部实体、数据源或数 据流,动词构成潜在的处理功能。
第5章
面向数据流的分析方法
• 5.1 数据流图与数据字典
• 5.2 实体——关系图 • 5.3 基于数据流的分析方法 • 5.4 基于数据流图的需求分析CASE工具
5.1 数据流图与数据字典
一个基于计算机的信息处理系统由数据流和一系 列的转换构成,而这些转换将输入数据流变换为 输出数据流。
数据流图是一种图形化技术,它描绘信息流和数 据从输入移动到输出的过程中所经受的变换。 在数据流图中没有任何具体的物理部件,它只是 描绘数据在软件中流动和被处理的逻辑过程。
订票员
数据流图与数据字典
综上所述,
①利用数据字典可以对数据流图中的数据流、数据 源以及外部实体进行描述、组织和管理。
②对于转换,也需要一种比图形记号更为详尽的表 示机制,这就是结构化的文字描述。分析人员可 以在数据流图的任一转换上附加一段文字,用以 说明转换的功能、性能要求及设计约束等,这种 说明应尽可能简洁、清晰、易于理解。
5.3 基于数据流的分析方法
5.3.1 创建数据流模型
数据流图是目标软件系统中各个处理子 功能以及它们之间的数据流动的图形表示。 数据流图的精化过程实际上是处理子功能和 数据流的细化过程。随着这一过程的进行, 用户需求逐步精确化、一致化和完备化。
实例—医院病房监护系统
监视病情
产生 病情报告
经过初步的需求分析,得到系统功能要求: 1、监视病员的病症(血压、体温、脉搏等) 2、定时更新病历 3、病员出现异常情况时报警。 4、产生某一病员的病情报告。
相关文档
最新文档