1、第五章 面向数据流的分析方法结构化分析方法(SA方法)-面向数据流自顶向下逐步求精进行需求分析的方法。沿数据流图回朔用户复查细化数据流图修正开发计划书写文档审 查和复审 分析过程 面向数据的方法,以数据流为中心。其核心概念包括:进程、数据流、数据存储、外部实体、数据组和数据元素。有代表性的模拟工具有:数据流图、数据字典、原始进程规格说明。基本思想自顶向下逐层分解结构化分析(Structured Analysis)它是一种面向数据流的需求分析方法,适用分析大型数据处理系统,是一种简单、实用的方法。软件系统(S)D1 D2 D3 Dn问题域DiP1P2P3Pn问题PjF1F2F3Fn问题域问题行为
2、(功能)对应于软件子系统对应于子软件的软构件对应于软件子系统自顶向下需求分析模型图S=D1,D2,D3,Dn Di=P1,P2,P3,Pm Pj=F1,F2,F3,Fk 数据流图数据流程图:描绘系统的逻辑模型,图中没有具体的物理元素,只是描绘信息在 系统中流动和处理的情况。设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体的实现这些功能。1.符号(四种基本符号)数据的源点或终点数据处理数据存储数据流一些附加符号(略)仓 库管理员定货系统采购员D1:库存清单仓 库管理员1处理事务2产生报表采购员D2:定货信息2.例子基本系统模型功能级数据流图事务定货报表事务定货报表定货信息定
3、货信息库存清单数据流图说明:描绘“做什么”,不考虑“怎么做”箭头箭头:数据流图和程序图中用箭头表示的控制流有本质不同,不能混淆。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。处理处理:处理并不一定是一个程序。一个处理框可以代表一系列程序、单个程序或者程序的一个模块,也可代表一个人工处理过程,如用户目视检查数据正确性。数据存储数据存储:一个数据存储并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;数据可以存储在磁盘、磁带、磁鼓、主存、微缩胶片、穿孔卡片及其他任何介质上(包括人脑)。数据存储和数据流都是数据,仅仅所处的状态不同。数据存储
4、是处于静止状态的数据,数据流是处于运动中的数据。数据流图仓 库管理员1.1接收事务1.2更新库存清单1.3处理定货2产生报表采购员D1:库存清单D2:定货信息事务事务库存信息定货信息定货信息定货报表命名 为数据流(或数据存储)命名 为处理命名用途 交流信息的工具 分析和设计的工具 进一步设计的依据库存清单教师教学网络测评系统数据流图统计查询学生评测数据提交并存储以测评子项得分为单位评测数据记录以测评类型得分为单位评测数据记录被评对象各测评类型的得分记录被评对象各测评子项得分记录以评测类型为单位的测评表数据流图的绘制步骤(1)(1)确定所开发的系统的外部项(外部实体),即系统的数据来源和去处。(
5、2)确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联图。(3)确定系统的主要信息处理功能,按此将整个系统分解成几个加工环节(子系统)确定每个加工的输出与输入数据流以及与这些加工有关的数据存储。(4)根据自顶向下,逐层分解的原则,对上层图中全部或部分加工环节进行分解。数据流图的绘制步骤(2)(5)重复步骤(4),直到逐层分解结束。(6)对图进行检查和合理布局,主要检查分解是否恰当、彻底,DFD中各层是否有遗漏、重复、冲突之处,各层DFD及同层DFD之间关系是否争取及命名、编号是否确切、合理等,对错误与不当之处进行修改。(7)和用户进行交流,在用户完全理解数据图的内容的基础上
6、征求用户的意见。数据字典 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合1.数据字典的内容 数据流 数据流分量 数据存储 处理数据处理:用 IPO图或PDL描述比较方便直观。数据元素的别名:包含信息数据、控制项、数据存储或外部实体的主要名称和别名使用数据和对象的列表、使用对象的方式描述数据或控制内容的符号关于数据类型、预置值、限制等其他补充信息数据项的定义数据项的定义数据三种基本类型数据三种基本类型顺序选择循环即以确定次序连接两个或多个分量从两个或多个可能的元素选取一个即把指定的分量重复零次或多次算符意义=等价于或定义为+连接两个分量 或(从方括号内列出的若干个分
7、量中选择一个),用“|”号分开供选择分量 重复(重复花括号内的分量)()可选(圆括号内的分量可有可无)数据字典符数据字典符号号数据字典举例数据字典举例教师测评系统中教师测评系统中,数据字典部分内容数据字典部分内容测评子项得分=测评子项编号+子项得分学生评测数据=序号+教师姓名+所任课程+测评子项得分以测评子项得分为单位的评测数据记录=学期+被评对象编号+测评类型编号+评测者区别编号+测评子项名称+测评子项所得分值以测评类型得分为单位的评测数据记录=学期+被评对象编号+测评类型编号+评测者区别编号+本测评类型所得分值被评对象各测评类型的得分记录=学期+被评对象编号+测评类型编号+测评类型得分+本
8、测评类型占总分的比率 用户的数据要求-需要哪些数据,数据之间有哪些联系,数据本身有哪些性质,数据的结构 等)。用户的处理要求-对数据进行哪些处理,每个处理的逻辑功能。概念性模型(信息模型)-一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。表示概念性数据模型的最常用方法是实体-联系方法,采用用 ER图的方式,这种表示又称为ER模型。ER模型 实体:客观世界中存在的且可区分的事物。联系:客观事物之间的联系(三类-1:1,1:N,M:N)属性:实体或联系所具有的性质。教师姓名性别职称职务教师号教1课程N课程号课名学时学分学M学生N学号姓名性别系年级成绩 范式通常用范式定义消除数据的冗余度
9、(略)实体关系图图形工具 层次方框图:用树形结构的一系列多层次的矩形框描绘数据的层次结构。产 品 硬 件 软 件 服 务 处理机 存储器外部设备系统软件应用软件软件服务硬件维修培训操作系统编译程序软件工具层次方框图的一个例子 注意:层次方框图即可以表示数据的层次结构,也可以表示程序的层次结构图形工具(续)Warnier 图:用树形结构描绘数据的层次结构。软件 产品系统软件操作系统(P1)编译程序(P2)软件工具编辑程序(P3)测试驱动程序(P4)设计辅助程序(P5)应用软件图形工具(续)IPO 图:输入/处理/输出图的简称-IBM。旧的主文件事务文件1、校验主记录2、校验事务记录3、更新主记录
10、1、校验主记录2、有效的事务记录3、更新后的主文件教材购销管理系统(1)问题描述:学校教材科根据业务的需要,建立一个学校教材购销管理系统,提高教材采购、销售和信息管理的效率。学生张秘书购书申请王会计李出纳赵保管学生购书证明购书申请购书申请书学生审 查有效性购书单开发票开领书单发书学生有 效购书单发票领书单书学生审查并开发票购书单开领书单发书学生发票领书单书2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型1)通过对现实环境的调查研究,获得当前系统的具体模型3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。教材购销管理系统(2)学生审查并开发票购书单开领书单学生发票领书单无效书单4
11、)对目标系统进行补充和完善,并写出完整的需求说明。学生1 审查并开发票购书单2 开领书单学生发票领书单无效书单各班学生用书表教材存量表5)对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止教材购销管理系统(3)学生学生教材购销教材购销管理系统管理系统书书 库库保管员保管员1.教材购销管理系统的顶层DFD学生学生书书 库库保管员保管员2.第二层DFD图教材购销系统购书单领书单缺书单进书通知购书单领书单1销 售2采购进书通知F2:缺书登记表F1:教材存量表缺书单进书通知教材购销管理系统(4)1.1 审 查有效性1.2 开发票有效 购书单1.3 领书并 开领书单发票1.4 登记缺书1.
12、5 补售教材F2:缺书登记表学生学生无效书单领书单领书单F3:各班学生用书表F4:售书登记表 补售书单 暂缺书单采购3.第三层DFD图销售子系统F1:教材存量表教材购销管理系统(5)2.3 修改教材库存和待购量2.1 按 书 号 汇总缺书F2:缺书登记表销售子系统书库保管员F1:教材存量表进书通知第三层DFD图采购子系统2.2 按出版社 统计缺书F5:待购教材表F6:教材一览表进书通知教材购销管理系统(6)数据字典(Data Directory-DD)领书单=学院+专业+班级+学号+姓名+书号+书名+数量+日期有效购书单=领书单发票=学号+姓名+书号+书名+单价+数量+总价+书费合计教材存量表
13、=书号+单价+数量暂缺书单=学号+姓名+书号+数量补售书单=学号+姓名+书号+数量书 号书 名数 量书 号书 名数 量学院:专业:班级:学号:姓名:吉林工程技术师范学院教材科领书单 20 年 月 日书号书名单价数量金额备注 学号:姓名:发 票经过初步的需求分析,得到系统功能要求:经过初步的需求分析,得到系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)。、监视病员的病症(血压、体温、脉搏等)。2 2、定时更新病历。、定时更新病历。3 3、病员出现异常情况时报警。、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。实例:医院病房监护系统产生产生
14、病情报告病情报告监视病情监视病情更新病历更新病历2.2.4 实例:医院病房监护系统系统功能要求:系统功能要求:1 1、监视病员的病症(血压、体温、脉搏等)、监视病员的病症(血压、体温、脉搏等)2 2、定时更新病历、定时更新病历 3 3、病员出现异常情况时报警。、病员出现异常情况时报警。4 4、随机地产生某一病员的病情报告。、随机地产生某一病员的病情报告。顶层:顶层:病员病员护士护士护士护士病员监病员监护系统护系统病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警例医院病房监护系统例医院病房监护系统第一层:第一层:病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症
15、信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志病员数据病员数据格式化格式化病员数据病员数据生理信号生理信号极限值极限值1324日志数据日志数据日志数据日志数据医院病房监护系统顶层医院病房监护系统顶层DFDDFD图图第二层:加工第二层:加工“中央监视中央监视”分解分解计算超过计算超过极限值否极限值否病员数据据超过极限值报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温血压、体温脉搏生理信号极限值时间脉搏血压日期时钟时钟格式化病员数据3.13.23.23.33.33.43.4医院病房监护
16、系统二层医院病房监护系统二层DFDDFD图图计算超过计算超过极限值否极限值否病员数据超过极限值报警开解信号开解信号产生产生报警信息报警信息病员极限病员极限格式化格式化病员数据病员数据体温血压、体温、脉搏生理信号极限值时间脉搏血压日期时钟时钟格式化病员数据3.13.23.23.33.33.43.4第二层:加工第二层:加工“中央监视中央监视”分解分解图 15第一层第一层格式化格式化病员数据病员数据生理信号生理信号极限值极限值病员病员护士护士护士护士中央监视中央监视病员病员日志日志病症信号病症信号要求报告要求报告病症病症报告报告报警报警局部监视局部监视生成报告生成报告病员极限病员极限更新日志更新日志
17、病员病员数据数据1324日志数据日志数据图 16二、用例(use case)一个用例是用户与计算机之间的一次典型交互过程。在UML中,用例表示为一个椭圆 含义 1、用例捕获某些用户可见的需求,实现一个具体的用户目标。2、用例由执行者激活,并提供确切的值给执行者。3、用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。特点举例教师测评系统用例图 以测评系统为例,“一个学生测评某位老师”和“管理员进行测评数据处理”便是两个典型的用例 测评数据处理学生管理员说明:学生、管理员是执行者三、执行者(Actor)含义执行者是指用户在系统中所扮演的角色。其图形化的表示是一个小人。通信联系 不带箭头的
18、线段将执行者与用例连接到一起,表示两者之间交换信息 注意尽管执行者在用例图中是用类似人的图形来表示的,但执行者未必是人。意义面对一个大系统,要列出用例清单常常是十分困难。这时可先列出执行者清单,再对每个执行者列出它的用例,问题就会变得容易很多 举例教师测评系统用例模型面向数据流的设计方法 变换分析:汽车数字仪表板功能:1)通过A/D 转换实现传感器和微处理器接口,2)在发光二极管面板上显示数据,3)指示每小时英里数(mph),行驶的里程,每加伦油行驶的英里数(mpg)等等。4)指示加速或减速;5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。A/D转数计数器流量传感器微处理机里程表
19、车速表油效表油管系统加速/减速指示超速报警 面向数据流的设计方法读旋转信号收集和求平均转换成转/分(rpm)计算里程确定加速/减速产生加速/减速显示产生里程显示计算mph和超速值计算燃料消耗发出铃声产生mph显示产生 mpg显示读和校核计算gph旋转信号信号/秒 SPSSPSSPSrpmrpm箭头指示上箭头水平线下箭头英里超速值显示铃声mphmphmpggph燃料流燃料流传感器信号Mpg 显示数字仪表板 控 制接受传感器 信 号数据转换控制驱动仪表 板输入控制变换控制输入控制面向数据流的设计方法设计步骤:复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的
20、边界,划分变换或事务中心完成“第一级分解”CmCaCtCe第一级分解的方法面向数据流的设计方法ADBCCmCaCBDA接受传感器 信 号转换成rpm收集SPS读旋转信号计算gph读燃料流数字仪表板 控 制确 定加/减速计算mph计算gpg计算里程驱动仪表板加速/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示面向数据流的设计方法数字仪表板 控 制接受传感器 信 号转换成rpm读旋转信号计算gph读燃料流数字仪表板 控 制确 定加/减速计算mph计算gpg计算里程驱动仪表板加速/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示数字仪表板软件系统经过调整后的结构图注意:红色模块的位置有所调整面向数据流的设计方法 事务分析432总 控接收通路C通路B通路A通路调 度A_CTL1 4 2+1 3 2 1 B_CTLC_CTL 设计优化先使系统工作起来,然后使它快起来。数据流图软件结构