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