37
4 4 第 第第第第第第第第第第第第 第 第第第第第第第第第第第第 毛毛毛 毛毛 [email protected] 毛毛毛毛毛毛毛毛毛 602 毛毛毛 0731-(45)73649 毛毛毛毛毛毛 毛毛毛毛毛毛毛毛毛毛毛毛 毛毛毛毛毛毛毛毛毛毛毛毛

第 4 讲 面向数据流的需求分析方法

  • Upload
    honora

  • View
    96

  • Download
    0

Embed Size (px)

DESCRIPTION

软件工程导论 之. 第 4 讲 面向数据流的需求分析方法. 毛新军 教授 [email protected] 计算机科学与技术系 602 教研室 0731-(45)73649. 用工程化的方法来开发软件. 序言. 需求分析的任务 建模是实现需求分析任务的一种好的方法 有助于全面、系统地了解和分析用户的需求 有助于发现需求描述中不一致、错误和模糊性 确保软件 SRS 一致化、全面化、准确化 如何建立用户需求的模型?. 主讲内容. 基本思想和原理 建模语言 建模过程 CASE 工具. 基本原理和思想. 提出一种建模方法时需考虑的问题 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 4 讲 面向数据流的需求分析方法

第第 44 讲 面向数据流的需求分析方讲 面向数据流的需求分析方法法

毛新军 教授[email protected]

计算机科学与技术系 602 教研室 0731-(45)73649

软件工程导论 之

用工程化的方法来开发软件用工程化的方法来开发软件

Page 2: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

2

序言序言 需求分析的任务 建模是实现需求分析任务的一种好的方法

– 有助于全面、系统地了解和分析用户的需求– 有助于发现需求描述中不一致、错误和模糊性– 确保软件 SRS 一致化、全面化、准确化

如何建立用户需求的模型?

Page 3: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

3

主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具

Page 4: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

4

基本原理和思想基本原理和思想 提出一种建模方法时需考虑的问题

– 用户需求的本质是什么 ? ( 原理 )– 表示机制以刻画和描述用户的需求 ? ( 语言 )– 建模的过程和步骤 ? ( 方法 )

Page 5: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

5

面向数据流需求分析方法的产生面向数据流需求分析方法的产生 结构化软件开发方法

– 70 年代 Edward Yourdon, Tom DeMarco 等人提出– 基本思想 : “ 自顶向下,逐步求精” ,“ 抽象和分解”

结构化软件开发方法– 结构化需求分析 + 结构化软件设计 + 结构化程序设计

面向数据流分析方法 (DFD) 是结构化软件开发方法一员

Page 6: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

6

基本原理基本原理 用户需求:功能和行为 , 性能 , 设计约束 从信息处理的角度上看,应用系统的功能本质上对各种数据的加工和处理– 如何表示各种数据的加工和处理 ?– 怎样进行需求分析 ?

Page 7: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

7

主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具

Page 8: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

8

模型表示工具模型表示工具 (( 语言语言 ))

数据流图 数据字典 小说明

Page 9: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

9

数据流图数据流图 数据流图是一种描述数据以及对数据进行加工转换的图形工具

一个数据流图主要由以下四个部分组成:

数据流

数据处理

外部实体

数据存储

外部实体名称

数据存储名称转换名称

数据流名称

Page 10: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

10

订票员

订票员

预定机票

准备机票

记帐

订票单

航班目录

航班号

航班

费用

帐单

机票

记帐数据库

帐目

数据流图例子数据流图例子

Page 11: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

11

数据字典数据字典 订票员

订票员

预定机票

准备机票

记帐

订票单

航班目录

航班号

航班

费用

帐单

机票

记帐数据库

帐目

Page 12: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

12

数据字典数据字典 面向数据流分析需要引进数据字典 数据字典以一种准确、简洁的方式对数据流图中数据流、外部实体、数据存储作说明

数据字典中的每个数据条目有以下内容:– 名字 ( 别名 )– 数据类型– 使用该数据条目的简要说明– 数据条目的解释性说明– 其他补充说明:取值范围、缺省值、设计约束等– 以它作为输入流或输出流的转换的列表

Page 13: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

13

数据字典例子数据字典例子 订票单

– 名字 : 订票单 – 数据类型 : 航班日期 + 目的地 + 出发地 + 航班号

– 作为输出流的转换列表 : – 作为输入流的转换列表 : 预定机票– 使用说明 : 必须给出各个数据项– 解释性说明 : 无– 缺省值 : 出发地 = 填写本地 – ……

Page 14: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

14

小说明小说明 订票员

订票员

预定机票

准备机票

记帐

订票单

航班目录

航班号

航班

费用

帐单

机票

记帐数据库

帐目

Page 15: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

15

小说明小说明 小说明准确、详细对数据流图中的各个转换的功能、性能和设计约束等作进一步的解释和说明;

需求分析人员通常用结构化的自然语言、判定树和判定表来书写小说明

小说明应该尽可能的简洁、清晰、易于理解

Page 16: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

16

小说明例子小说明例子 记帐

(1) 将本次业务记录到中心数据库中(2) 产生帐单(3) 打印账单

订票员

订票员

预定机票

准备机票

记帐

订票单

航班目录

航班号

航班

费用

帐单

机票

记帐数据库

帐目

Page 17: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

17

主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具

Page 18: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

18

面向数据流的建模过程面向数据流的建模过程 DFD 是系统中各处理子功能以及它们之间数据流动的图形表示 -- 刻划系统功能和行为

DFD 为描述和建模的工具和手段 如何利用 DFD 进行需求分析 , 描述用户需

求 ?

Page 19: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

19

面向数据流的分析方法面向数据流的分析方法 面向数据流分析方法运用了抽象和分解的技

术 . 提供一些经验知识和规则以指导需求分析

Page 20: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

20

步骤步骤 1: 1: 建立顶级建立顶级 DFD(1/2)DFD(1/2)

根据问题域与外部环境之间的相互关系定义问题 域的边界,即问题域与外界环境之间的输入输出关系 --> 得到最高抽象层次

顶级数据流图仅仅描述待开发的软件系统与外部环境之间的关系,因此在此 DFD 中,待开发的软件系统被抽象描述为一个转换

Page 21: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

21

步骤步骤 1: 1: 建立顶级建立顶级 DFD(2/2)DFD(2/2)

读者

书库管理员

读者管理员

图书馆系统

借阅图书命令

读者管理命令

书库管理命令

Page 22: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

22

步骤步骤 2:2: 自顶向下,功能分解自顶向下,功能分解 自顶向下、逐步求精对顶级数据流图进行精化,生成下一级数据流图

对用户的需求描述进行语法分析– 名词或名词短语构成潜在数据流、数据存储和外部实体

– 动词构成潜在的处理功能

Page 23: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

23

案例分析案例分析 :: 顶级顶级 (0)DFD(0)DFD

读者

书库管理员

读者管理员

图书馆系统

借阅图书命令

读者管理命令

书库管理命令

Page 24: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

24

案例分析案例分析 :: 精化生成一级精化生成一级(0.1)DFD(0.1)DFD

图书借阅

借阅图书命令

读者管理命令

书库管理命令 书库管理

读者管理

读者信息库

图书信息库 图书信息

读者信息

Page 25: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

25

案例分析案例分析 : : 精化生成二级精化生成二级(0.1.1)DFD(0.1.1)DFD

读者管理命令 命令分析

增加读者

删除读者

更改读者信息

读者基本信息

读者标识

读者标识

读者信息

读者信息

图书借阅

借阅图书命令

读者管理命令

书库管理命令 书库管理

读者管理

读者信息库

图书信息库 图书信息

读者信息

Page 26: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

26

案例分析案例分析 : : 精化生成三级精化生成三级(0.1.1.1)DFD(0.1.1.1)DFD

判断读者是否存在

读者信息库

读者基本信息 读者基本信息 自动生成读者标识

读者信息

读者管理命令 命令分析

增加读者

删除读者

更改读者信息

读者基本信息

读者标识

读者标识

读者信息

读者信息

Page 27: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

27

步骤步骤 2:2: 自顶向下,功能分解自顶向下,功能分解(( 续续 ))

在分解、精化过程中,把生成的数据流、数据存储、外部实体在数据字典中加以定义 , 对底层转换在小说明中作出描述

什么是底层转换 ?– 是一个转换– 没有被进一步精化和分解

Page 28: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

28

案例分析案例分析 : : 三级三级 DFDDFD

判断读者是否存在

读者信息库

读者基本信息 读者基本信息 自动生成读者标识

读者信息

Page 29: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

29

数据字典数据字典 读者基本信息

– 名字和别名:读者基本信息– 数据类型:名字+读者类别+出生日期+系别+ 照片– 限制: 必须提供所有的信息– 相关的转换列表:……

读者类别– 名字和别名:读者类别– 数据类型:教师 | 本科生 | 硕士研究生 | 博士研究生

– 限制: 无– 相关的转换列表:……

Page 30: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

30

案例分析案例分析 : : 三级三级 DFDDFD

判断读者是否存在

读者信息库

读者基本信息 读者基本信息 自动生成读者标识

读者信息

Page 31: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

31

小说明小说明 判断读者是否存在

– 判断读者信息的合法性和有效性– 查询读者信息库,判断该读者是否已经注册

Page 32: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

32

需求分析原则需求分析原则 正确使用数据流图中的各个图形要素;如一个转换既有输入,又有输出

每个数据流、数据存储、外部实体在数据字典中均有定义,数据流图中最底层的转换必须在小说明中说明

父图和子图之间必须保持平衡,即父图中某一转换的输入、输出数据流和分解这个转换的子图的 输入、输出数据流必须完全一致

精化过程适可而止

Page 33: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

33

主讲内容主讲内容1. 基本思想和原理2. 建模语言3. 建模过程4. CASE 工具

Page 34: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

34

支持面向数据流分析的支持面向数据流分析的 CASECASE 工工具具

建模 ( 数据流图 , 数据字典 , 小说明 ) 模型的存储 , 显示和检索 模型之间 , 数据条目之间的一致性检查 ……

Page 35: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

35

本讲小结本讲小结1. 基本原理和思想2. 建模语言 ( 数据流、数据字典、小说明 )

3. 建模方法 ( 规则和经验 )

Page 36: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

36

思考题思考题你认为面向数据流的需求分析方法能否自

然 , 清晰 , 有效地获取和刻划用户需求 ? 为什么 ?

面向数据流的需求分析方法是如何体现抽象、问题分解、建模等需求分析技术的?

Page 37: 第 4 讲 面向数据流的需求分析方法

©Copyright Xinjun Mao

面向数据流的需求分析方法

37

Q & AQ & AQ & AQ & A

An Introduction to Software EngineeringAn Introduction to Software Engineering

Practice, Practice, and Practice