1、1,数据流图绘制步骤,确定系统的外部项 画出顶层图 自顶向下逐层分解直到基本加工 检查 征求用户意见 定稿 复审,例:学生注册课程系统 某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。,2,数据流图绘制实例:学生注册课程系统(1),绘制顶层DFD将整个系统看作一个过程/加工,提供和接收数据的外部实体在系统之外,其他任何事情属于系统范围。由于数据存储属于系
2、统内部,因此不出现在顶层DFD中。,3,数据流图绘制实例:学生注册课程系统(2),DFD细化:用一个过程符号表示系统响应一个事件的DFD. 一层DFD:,4,数据流图绘制实例:学生注册课程系统(3),加工5的二层DFD,示例:图书订购系统DFD,财务报表,经理,帐务数据库,分层数据流图示例 资格和水平考试的考务处理系统,简化的资格和水平考试的考务处理系统 分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试 考试的合格标准将根据每年的考试成绩由考试中心确定 考试的阅卷由阅卷站进行,因此,阅卷工作不包含在软件系统中,资格和水平考试的考务处理系统
3、 功能需求,1对考生送来的报名单进行检查 2对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站 3对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者 4制作考生通知单送给考生 5进行成绩分类统计(按地区、年龄、文化程度、职业、考试级别等分类)和试题难度分析,产生统计分析表,资格和水平考试的考务处理系统 部分数据流的组成,报名单地区序号姓名文化程度职业考试级别通信地址 正式报名单准考证号报名单 准考证地区序号姓名准考证号考试级别考场 考生名单准考证号考试级别 其中w表示w重复多次 考生名册正式报名单 统计分析表分类统计表难度分析表 考生通知单准考证号
4、姓名通信地址考试级别考试成绩合格标志,系统的输入输出(顶层图),确定源或宿:考生、阅卷站和考试中心 它们都既是源又是宿 顶层图唯一的加工:软件系统(考务处理系统) 确定数据流:系统的输入/输出信息 输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合格标准(来自考试中心) 输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考生通知书(送往考生)、统计分析表(送往考试中心) 额外的输出流(考虑系统的健壮性):不合格报名单(返回给考生),错误成绩清单(返回给阅卷站) 顶层图通常没有文件,考务处理系统顶层图,考试中心,考生,不合格报名单,阅卷站,考生通知单,统计分析表,系统内部(0层图)
5、-1,以下确定加工、数据流、文件、源或宿的一般方法适用于0层图及其各层子图 确定加工:将父图中某加工分解而成的子加工 根据功能分解来确定加工:将一个复杂的功能分解成若干个较小的功能,较多应用于高层DFD中的分解 根据业务处理流程确定加工:分析父图中待分解加工的业务处理流程,业务流程中的每一步都可能是一个子加工 特别要注意在业务流程中数据流发生变化或数据流的值发生变化的地方,应该存在一个加工,例如:,系统内部(0层图)-2,确定数据流 在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流都是且仅是子图边界上的输入/输出数据流 分解后的子加工之间应增添相应的新数据流表示加工过程中的中间
6、数据 如果某些中间数据需要保存以备后用,那么可以成为流向文件的数据流 同一个源或加工可以有多个数据流流向一个加工,如果它们不是一起到达和一起加工的,那么可以将它们分成若干个数据流,例如:,系统内部(0层图)-3,确定文件 如果父图中该加工存在读写文件的数据流,则相应的文件和数据流都应画在子图中 在分解子图中,如果需要保存某些中间数据以备后用,则可以将这些数据组成一个新的文件 新文件(首次出现的文件)至少应有一个加工为其写入记录,同时至少存在另一个加工来读该文件的记录 注意:从父图中继承下来的文件在子图中可能只对其进行读,或只进行写,系统内部(0层图)-4,确定源和宿 0层图和其它子图中通常不必
7、画出源和宿 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中 最终得到考务处理系统0层图 根据功能分解方法识别出两个加工:考试报名、统计成绩 数据流 继承顶层图中的输入数据流和输出数据流 定义二个加工之间的数据流:由于这二个加工分别在考试前后进行,因此登记报名单所产生的结果“考生名册”应作为文件保存以便考试后由统计成绩加工引用,考务处理系统0层图,考生名册,不合格报名单,考生通知单,加工内部(1n层图),复杂的加工可以继续分解成1张DFD子图 分解方法 将该加工看作一个小系统,该加工的输入/输出数据流就是这个假设的小系统的输入/输出数据流 然后采用画0层图的方法,画出该加工的子图 以0层
8、图中加工1(考试报名)为例 根据业务处理流程来确定由加工1的分解 与加工1相关的业务流程:首先检查考生送来的报名单,然后编准考证号,并产生准考证,最后产生考生名单和考生名册(文件),考务处理系统加工1子图,3个子加工:检查报名单、编准考证号、登记考生 “合格报名单”和“正式报名单”是新增加的数据流,其它数据流都是加工1原有的 在加工1的分解中没有新的文件产生,正式报名单,考务处理系统加工2子图,示例:统计成绩子图的输入、输出流边界,软件工程,20,实例考务处理系统的功能,(1) 对考生送来的报名单进行检查; (2) 对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
9、 (3) 对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者; (4) 制作考生通知单 (含成绩及合格/不合格标志) 送给考生; (5) 按地区进行成绩分类统计和试题难度分析,产生统计分析表。,软件工程,21,软件工程,22,根据考务处理业务,画出顶层数据流图,以反映最主要业务处理流程及系统与外界的关系。 经过分析,考务业务处理的主要功能应当有登记报名单、统计成绩两个主要数据流。输入的源点和输出终点是考生、考试中心和阅卷站。 然后从输入端开始,根据考务业务工作流,画出数据流流经的各加工框,逐步画到输出端,得到第 0 层数据流图。,软件工程,23,软件工程,24,软件工程,25,