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