第 4 讲 面向数据流的需求分析方法
DESCRIPTION
软件工程导论 之. 第 4 讲 面向数据流的需求分析方法. 毛新军 教授 [email protected] 计算机科学与技术系 602 教研室 0731-(45)73649. 用工程化的方法来开发软件. 序言. 需求分析的任务 建模是实现需求分析任务的一种好的方法 有助于全面、系统地了解和分析用户的需求 有助于发现需求描述中不一致、错误和模糊性 确保软件 SRS 一致化、全面化、准确化 如何建立用户需求的模型?. 主讲内容. 基本思想和原理 建模语言 建模过程 CASE 工具. 基本原理和思想. 提出一种建模方法时需考虑的问题 - PowerPoint PPT PresentationTRANSCRIPT
第第 44 讲 面向数据流的需求分析方讲 面向数据流的需求分析方法法
毛新军 教授[email protected]
计算机科学与技术系 602 教研室 0731-(45)73649
软件工程导论 之
用工程化的方法来开发软件用工程化的方法来开发软件
©Copyright Xinjun Mao
面向数据流的需求分析方法
2
序言序言 需求分析的任务 建模是实现需求分析任务的一种好的方法
– 有助于全面、系统地了解和分析用户的需求– 有助于发现需求描述中不一致、错误和模糊性– 确保软件 SRS 一致化、全面化、准确化
如何建立用户需求的模型?
©Copyright Xinjun Mao
面向数据流的需求分析方法
3
主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具
©Copyright Xinjun Mao
面向数据流的需求分析方法
4
基本原理和思想基本原理和思想 提出一种建模方法时需考虑的问题
– 用户需求的本质是什么 ? ( 原理 )– 表示机制以刻画和描述用户的需求 ? ( 语言 )– 建模的过程和步骤 ? ( 方法 )
©Copyright Xinjun Mao
面向数据流的需求分析方法
5
面向数据流需求分析方法的产生面向数据流需求分析方法的产生 结构化软件开发方法
– 70 年代 Edward Yourdon, Tom DeMarco 等人提出– 基本思想 : “ 自顶向下,逐步求精” ,“ 抽象和分解”
结构化软件开发方法– 结构化需求分析 + 结构化软件设计 + 结构化程序设计
面向数据流分析方法 (DFD) 是结构化软件开发方法一员
©Copyright Xinjun Mao
面向数据流的需求分析方法
6
基本原理基本原理 用户需求:功能和行为 , 性能 , 设计约束 从信息处理的角度上看,应用系统的功能本质上对各种数据的加工和处理– 如何表示各种数据的加工和处理 ?– 怎样进行需求分析 ?
©Copyright Xinjun Mao
面向数据流的需求分析方法
7
主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具
©Copyright Xinjun Mao
面向数据流的需求分析方法
8
模型表示工具模型表示工具 (( 语言语言 ))
数据流图 数据字典 小说明
©Copyright Xinjun Mao
面向数据流的需求分析方法
9
数据流图数据流图 数据流图是一种描述数据以及对数据进行加工转换的图形工具
一个数据流图主要由以下四个部分组成:
数据流
数据处理
外部实体
数据存储
外部实体名称
数据存储名称转换名称
数据流名称
©Copyright Xinjun Mao
面向数据流的需求分析方法
10
订票员
订票员
预定机票
准备机票
记帐
订票单
航班目录
航班号
航班
费用
帐单
机票
记帐数据库
帐目
数据流图例子数据流图例子
©Copyright Xinjun Mao
面向数据流的需求分析方法
11
数据字典数据字典 订票员
订票员
预定机票
准备机票
记帐
订票单
航班目录
航班号
航班
费用
帐单
机票
记帐数据库
帐目
©Copyright Xinjun Mao
面向数据流的需求分析方法
12
数据字典数据字典 面向数据流分析需要引进数据字典 数据字典以一种准确、简洁的方式对数据流图中数据流、外部实体、数据存储作说明
数据字典中的每个数据条目有以下内容:– 名字 ( 别名 )– 数据类型– 使用该数据条目的简要说明– 数据条目的解释性说明– 其他补充说明:取值范围、缺省值、设计约束等– 以它作为输入流或输出流的转换的列表
©Copyright Xinjun Mao
面向数据流的需求分析方法
13
数据字典例子数据字典例子 订票单
– 名字 : 订票单 – 数据类型 : 航班日期 + 目的地 + 出发地 + 航班号
– 作为输出流的转换列表 : – 作为输入流的转换列表 : 预定机票– 使用说明 : 必须给出各个数据项– 解释性说明 : 无– 缺省值 : 出发地 = 填写本地 – ……
©Copyright Xinjun Mao
面向数据流的需求分析方法
14
小说明小说明 订票员
订票员
预定机票
准备机票
记帐
订票单
航班目录
航班号
航班
费用
帐单
机票
记帐数据库
帐目
©Copyright Xinjun Mao
面向数据流的需求分析方法
15
小说明小说明 小说明准确、详细对数据流图中的各个转换的功能、性能和设计约束等作进一步的解释和说明;
需求分析人员通常用结构化的自然语言、判定树和判定表来书写小说明
小说明应该尽可能的简洁、清晰、易于理解
©Copyright Xinjun Mao
面向数据流的需求分析方法
16
小说明例子小说明例子 记帐
(1) 将本次业务记录到中心数据库中(2) 产生帐单(3) 打印账单
订票员
订票员
预定机票
准备机票
记帐
订票单
航班目录
航班号
航班
费用
帐单
机票
记帐数据库
帐目
©Copyright Xinjun Mao
面向数据流的需求分析方法
17
主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具
©Copyright Xinjun Mao
面向数据流的需求分析方法
18
面向数据流的建模过程面向数据流的建模过程 DFD 是系统中各处理子功能以及它们之间数据流动的图形表示 -- 刻划系统功能和行为
DFD 为描述和建模的工具和手段 如何利用 DFD 进行需求分析 , 描述用户需
求 ?
©Copyright Xinjun Mao
面向数据流的需求分析方法
19
面向数据流的分析方法面向数据流的分析方法 面向数据流分析方法运用了抽象和分解的技
术 . 提供一些经验知识和规则以指导需求分析
©Copyright Xinjun Mao
面向数据流的需求分析方法
20
步骤步骤 1: 1: 建立顶级建立顶级 DFD(1/2)DFD(1/2)
根据问题域与外部环境之间的相互关系定义问题 域的边界,即问题域与外界环境之间的输入输出关系 --> 得到最高抽象层次
顶级数据流图仅仅描述待开发的软件系统与外部环境之间的关系,因此在此 DFD 中,待开发的软件系统被抽象描述为一个转换
©Copyright Xinjun Mao
面向数据流的需求分析方法
21
步骤步骤 1: 1: 建立顶级建立顶级 DFD(2/2)DFD(2/2)
读者
书库管理员
读者管理员
图书馆系统
借阅图书命令
读者管理命令
书库管理命令
©Copyright Xinjun Mao
面向数据流的需求分析方法
22
步骤步骤 2:2: 自顶向下,功能分解自顶向下,功能分解 自顶向下、逐步求精对顶级数据流图进行精化,生成下一级数据流图
对用户的需求描述进行语法分析– 名词或名词短语构成潜在数据流、数据存储和外部实体
– 动词构成潜在的处理功能
©Copyright Xinjun Mao
面向数据流的需求分析方法
23
案例分析案例分析 :: 顶级顶级 (0)DFD(0)DFD
读者
书库管理员
读者管理员
图书馆系统
借阅图书命令
读者管理命令
书库管理命令
©Copyright Xinjun Mao
面向数据流的需求分析方法
24
案例分析案例分析 :: 精化生成一级精化生成一级(0.1)DFD(0.1)DFD
图书借阅
借阅图书命令
读者管理命令
书库管理命令 书库管理
读者管理
读者信息库
图书信息库 图书信息
读者信息
©Copyright Xinjun Mao
面向数据流的需求分析方法
25
案例分析案例分析 : : 精化生成二级精化生成二级(0.1.1)DFD(0.1.1)DFD
读者管理命令 命令分析
增加读者
删除读者
更改读者信息
读者基本信息
读者标识
读者标识
读者信息
读者信息
图书借阅
借阅图书命令
读者管理命令
书库管理命令 书库管理
读者管理
读者信息库
图书信息库 图书信息
读者信息
©Copyright Xinjun Mao
面向数据流的需求分析方法
26
案例分析案例分析 : : 精化生成三级精化生成三级(0.1.1.1)DFD(0.1.1.1)DFD
判断读者是否存在
读者信息库
读者基本信息 读者基本信息 自动生成读者标识
读者信息
读者管理命令 命令分析
增加读者
删除读者
更改读者信息
读者基本信息
读者标识
读者标识
读者信息
读者信息
©Copyright Xinjun Mao
面向数据流的需求分析方法
27
步骤步骤 2:2: 自顶向下,功能分解自顶向下,功能分解(( 续续 ))
在分解、精化过程中,把生成的数据流、数据存储、外部实体在数据字典中加以定义 , 对底层转换在小说明中作出描述
什么是底层转换 ?– 是一个转换– 没有被进一步精化和分解
©Copyright Xinjun Mao
面向数据流的需求分析方法
28
案例分析案例分析 : : 三级三级 DFDDFD
判断读者是否存在
读者信息库
读者基本信息 读者基本信息 自动生成读者标识
读者信息
©Copyright Xinjun Mao
面向数据流的需求分析方法
29
数据字典数据字典 读者基本信息
– 名字和别名:读者基本信息– 数据类型:名字+读者类别+出生日期+系别+ 照片– 限制: 必须提供所有的信息– 相关的转换列表:……
读者类别– 名字和别名:读者类别– 数据类型:教师 | 本科生 | 硕士研究生 | 博士研究生
– 限制: 无– 相关的转换列表:……
©Copyright Xinjun Mao
面向数据流的需求分析方法
30
案例分析案例分析 : : 三级三级 DFDDFD
判断读者是否存在
读者信息库
读者基本信息 读者基本信息 自动生成读者标识
读者信息
©Copyright Xinjun Mao
面向数据流的需求分析方法
31
小说明小说明 判断读者是否存在
– 判断读者信息的合法性和有效性– 查询读者信息库,判断该读者是否已经注册
©Copyright Xinjun Mao
面向数据流的需求分析方法
32
需求分析原则需求分析原则 正确使用数据流图中的各个图形要素;如一个转换既有输入,又有输出
每个数据流、数据存储、外部实体在数据字典中均有定义,数据流图中最底层的转换必须在小说明中说明
父图和子图之间必须保持平衡,即父图中某一转换的输入、输出数据流和分解这个转换的子图的 输入、输出数据流必须完全一致
精化过程适可而止
©Copyright Xinjun Mao
面向数据流的需求分析方法
33
主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具
©Copyright Xinjun Mao
面向数据流的需求分析方法
34
支持面向数据流分析的支持面向数据流分析的 CASECASE 工工具具
建模 ( 数据流图 , 数据字典 , 小说明 ) 模型的存储 , 显示和检索 模型之间 , 数据条目之间的一致性检查 ……
©Copyright Xinjun Mao
面向数据流的需求分析方法
35
本讲小结本讲小结1. 基本原理和思想2. 建模语言 ( 数据流、数据字典、小说明 )
3. 建模方法 ( 规则和经验 )
©Copyright Xinjun Mao
面向数据流的需求分析方法
36
思考题思考题你认为面向数据流的需求分析方法能否自
然 , 清晰 , 有效地获取和刻划用户需求 ? 为什么 ?
面向数据流的需求分析方法是如何体现抽象、问题分解、建模等需求分析技术的?
©Copyright Xinjun Mao
面向数据流的需求分析方法
37
Q & AQ & AQ & AQ & A
An Introduction to Software EngineeringAn Introduction to Software Engineering
Practice, Practice, and Practice