《软件工程》- 面向数据流的分析与设计方法.ppt
《《软件工程》- 面向数据流的分析与设计方法.ppt》由会员分享,可在线阅读,更多相关《《软件工程》- 面向数据流的分析与设计方法.ppt(174页珍藏版)》请在三一办公上搜索。
1、讲 课 人:刘 伟电子邮件:电 话:办 公 室:教二南楼328室,软件工程,面向数据流的分析与设计方法,结构化的软件分析与设计方法(面向数据流的分析与设计方法,etc.)面向对象的软件分析与设计方法,面向数据流的分析方法(dataflow-oriented analysis method)与面向对象的分析方法,都是需求建模方法。它们均有一组规范的语言表达机制,用于需求分析人员表达用户需求、构造软件系统模型。面向数据流的分析方法是结构化分析方法系列中的一支,具有明显的结构化特征。,结构化开发方法分为如下几个步骤:结构化分析(软件分析)SA结构化设计(总体设计、概要设计)SD详细设计面向过程的编码
2、,结构化分析方法是一种基于功能分解的需求分析方法。结构化分析方法是一种建模技术模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象。并用数据流图表达需求。,方法特点,核心思想:自顶向下和逐步求精。基本手段:分解和抽象。分解:把大问题分割成若干小问题,然后分别解决。抽象:略去细节,先考虑问题最本质的属性。使用了描述需求说明书的几个规范工具。即数据流图、数据词典、小说明(加工逻辑的描述)等,使文档规范化。,自顶向下,逐步求精方法的优点,符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层
3、次结构,程序容易阅读和理解程序自顶向下,逐步细化,分解成一个树形结构。在同一层的节点上的细化工作相互独立。有利于编码、测试和集成每一步工作仅在上层节点的基础上做不多的设计扩展,便于检查有利于设计的分工和组织工作。,数据流图与数据字典,一个基于计算机的信息处理系统由数据流和一系列的转换构成,而这些转换将输入数据流变换为输出数据流。数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。,在需求分析阶段,数据流(也称信息流)是系统分析的基础。所谓数据流,形象地说就是系统中“流动的数据结构”。
4、数据流图(DFD,Data Flow Diagram)是描述软件系统中数据处理过程的一种有力的图形工具。,数据流图的图形记号,外部实体,位于软件系统边界之外的信息生产者或消费者,转换,转换数据流的处理过程,又称泡(bubble),为一个或多个转换提供数据源或数据存储服务的缓冲区、文件或数据库,在转换之间有向流动的数据项或数据项集合,“与”,即同时输入/出;+“或”,即至少一项输入/出;“异或”,即非同时输入/出。,*,“家庭保安系统”顶级数据流图,传感器,数据流图中的基本符号(另外的表示方法),1.数据的源点或终点 数据的源点或终点用于反映数据流图与外部实体之间的联系,表示图中的输入数据来自哪
5、里或处理结果送向何处。如下图中的人事部门、后勤部门是工资系统中数据的源点,而职工和银行则是工资系统中数据的终点。,工资计算系统的顶层(0层)数据流图,2.数据流 数据流是数据在系统中(包括数据处理之间、数据处理和数据存储之间以及数据处理和数据的源点或终点之间)的传送通道,数据流符号的箭头指明了数据的流动方向。如上图中的出勤表、业绩表、水电扣款表、工资条及工资存款清单等均为数据流。,3.加工 加工也称为数据处理,是对系统中的数据流进行的某些操作或变换。图中每个加工都要有对应的名称,最常见的名称是由一个表明具体动作的动词和一个表明处理对象的名词构成的,如计算应发工资、打印工资清单等。4.数据存储
6、在数据流图中用于保存数据的数据文件被称为数据存储,它可以是数据库文件或任何其他形式的数据组织。流向数据存储的数据流可理解为向文件写入数据或对文件进行查询,流出数据存储的数据流可理解为从文件中读取数据或得到查询结果。,在数据流图中,可以有两个以上的数据流进入同一个加工,也可以有两个以上的数据流从同一个加工中流出,这样的多个数据流之间往往存在一定的关系。为了表示这些数据流之间的关系,需要在数据流图中给这些数据流对应的加工加上一定的标记符号。在下表中列出了加工中常见的几种关系的表示方法。(表中以从加工流入或流出两个数据流为例)。,数据流与加工之间的关系,表 加工中常见关系的符号表示,数据流与加工之间
7、的关系,按照结构化分析方法中“自顶向下,逐步分解”的思想,可以先将整个系统看作是一个加工,它的输入数据和输出数据表明了系统和外部环境的接口,从而首先画出系统的顶层数据流图。为了能够清楚地表明系统加工的详细过程,接着从顶层数据流图出发,逐层地对系统进行分解。每分解一次,系统中加工的数量就随之增加,每个加工的功能描述也越来越具体。重复这种分解,直至得到系统的底层数据流图。底层数据流图中的所有加工都应是不可再分解的、最简单的“原子加工”。,数据流模型的建立方法,数据流图,数据流图提供了层次结构,让分析人员能够方便地表示任意抽象级别上的信息系统或其子系统,并支持问题分解、逐步求精的分析方法。初始时,整
8、个信息处理系统可以用下图所示的顶级(第0级)数据流图表示。,“家庭保安系统”顶级数据流图1,传感器,随着需求分析活动的逐渐深入,较高抽象级别上的复杂转换可以精化为一系列相互关联的数据流和子转换,如下图所示。在数据流方法中,对数据(数据流)的精化是伴随着对转换的逐步精化而同步进行的。,数据流图的精化与层间平衡,下面以某单位工资管理系统为例,来介绍一下分层数据流模型的建立方法。1.建立顶层数据流图 任何系统的顶层数据流图都只有一个,用于反映目标系统所要实现的功能及与外部环境的接口。顶层数据流图中只有一个代表整个系统的加工,数据的源点和终点对应着系统的外部实体,表明了系统输入数据的来源和输出数据的去
9、向。工资管理系统的顶层数据流图如下图所示。,数据流图例子,图 工资计算系统的顶层(0层)数据流图,按照系统的功能,对顶层数据流图进行分解,生成第一层数据流图。如例子中的工资计算系统可划分为计算工资、打印工资清单和工资转存三个加工。其中,计算工资完成单位职工工资计算,生成工资清单的功能;打印工资清单完成工资条的打印功能;工资转存完成生成职工工资存款清单并将其发送到银行的功能。对划分得到的加工应进行编号,如下图。,2.数据流图的分层细化,工资计算系统第一层数据流图,对第一层数据流图中的加工继续分解,则可得到第二层数据流图,如图 A 所示。对分解得到的加工进行编号,以反映出它与上层数据流图之间的关系
10、,如对第一层数据流图中的计算工资分解得到的数据流图中的加工的编号分别为1.11.4。若数据流图中的加工还可继续细化,则重复以上分解过程,直到获得系统的底层数据流图。工资计算系统的第三层数据流图如图 B 所示。,图A 工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图,图B 工资计算系统的第三层数据流图,建立数据流模型要遵循以下的原则,1每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。2数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。3对某个加工进行细化生成的下层数据流图,称为其上层图的子图
11、。应保证分层数据流图中任意对应的父图和子图的输入/输出数据流保持一致。4应按照层次给每个加工编号,用于表明该加工所处的层次及上、下层的父图与子图的关系。编号的规则为:顶层加工不用编号;第一层加工的编号为1,2,n。第二层加工的编号为11,12,21,22,n1,n2,等,以此类推。,建立数据流模型要遵循以下的原则,5在父图中不要出现子图中涉及的局部数据存储文件。通常除底层数据流图中需表明所有数据存储外,为保持画面整洁,各中间层数据流图只需显示处于加工之间的接口文件即可。6数据流图只能由四种基本符号组成,是实际业务流程的客观映象,用于说明系统应该“做什么”,而不需要指明系统“如何做”。7数据流图
12、的分解速度应保持适中。通常一个加工每次可分解为24个子加工,最多不要超过七个,否则会增加用户的理解难度。同时要注意,逐层精化必须适可而止。8为了便于数据流图在计算机上的输入和输出,免去画斜线、弧线、圆等符号的麻烦,数据流图还有另一套表示符号,如下表所示。,表 数据流图的另一套表示符号,数据字典,面向数据流分析需要引进数据字典(DD),DD以一种准确、简洁的方式对DFD中数据流、外部实体、数据存储作说明,DD对DFD中的六类元素进行定义说明,按照元素不同,其中的数据条目内容也不相同,数据流数据项(数据元素)数据结构数据存储处理逻辑(基本加工)外部实体,数据字典,数据字典的提出背景:虽然数据流图能
13、够形象、清晰地描述数据在系统中流动、加工、存储的情况,但数据流图中的许多构成元素,如数据流、数据存储、加工,仅依靠名称并不能反映其本质含义,因此必须对这些构成元素进行严格的定义。作为对数据流图的补充,数据字典(DD,Data Dictionary)能够准确地定义数据流图中各组成成分的具体含义,二者共同构成了系统的逻辑模型。,数据字典中的基本符号及其含义,示例,12()()任何长度为3的数字串444552=任何长度为4的数字串,数据字典是关于数据流图中各种成分详细定义的信息集合,可将其按照说明对象的类型划分为四类条目,分别为数据流条目、数据项条目、数据文件条目和数据加工条目。,数据字典中的条目及
14、说明格式,1.数据流条目 数据流在数据流图中主要用于说明数据结构在系统中的作用和流动方向,因此数据流也被称作“流动的数据结构”。数据字典中数据流条目应包括以下几项主要内容:数据流名称、数据流别名、说明、数据流来源、数据流流向、数据流组成和数据流量等。,数据流名:数据流别名:说明:简要介绍作用即它产生的原因和结果。数据流来源:即该数据流来自何方。数据流去向:去向何处。数据流组成:数据结构。数据量流量:数据量、流通量。,数据流词条的描述示例:,数据流名:发票说明:用作学生已付书款的依据数据流来源:来自加工“审查并开发票”数据流去向:流向加工“开领书单”。数据流组成:学号+姓名+书号+单价总价+书费
15、合计,数据流名称:出勤表数据流别名:无说明:由人事部门每月月底上报的职工考勤统计数字数据流来源:人事部门数据流流向:加工1.1.1(统计出勤、请假及旷工时数)数据流组成:出勤表=年份+月份+职工号+出勤时数+病假时数+事假时数+旷工时数数据流量:1份/月,工资系统中的出勤表数据流在数据字典中的条目描述为,数据流词条的描述示例2:,2.数据项条目 数据流图中每个数据结构都是由若干个数据项构成的,数据项是加工中的最小单位,不可再分。数据字典的数据项条目中应包含的主要内容有:数据项名称、数据项别名、说明、类型、长度、取值范围及含义等。例如:出勤表中的职工号数据项在数据字典中的条目描述为 数据项名称:
16、职工号 数据项别名:employee_no 说明:本单位职工的惟一标识 类型:字符串 长度:6 取值范围及含义:12位(00.99)为部门编号:36位(XX0001.XX9999)为人员编号,3.数据文件条目 数据文件是数据流图中数据结构的载体。数据字典的数据文件条目中应包含的主要内容有:数据文件名称、说明、数据文件组成、组织方式、存取方式、存取频率等。例如:工资系统中的职工工资档案文件在数据字典中的条目描述为 数据文件名称:工资档案 说明:单位职工的基本工资、各项津贴及补贴信息 数据文件组成:职工号+国家工资+国家津贴+职务津贴+职龄津贴+交通补贴+部门补贴+其他补贴 组织方式:按职工号从小
17、到大排列 存取方式:顺序 存取频率:1次/月,4.数据加工条目 在数据流图中只简单给出了每个加工的名称,在数据字典中通过数据加工条目主要是要说明每个加工是用来“做什么”的。数据字典的数据加工条目中应包含的主要内容有:数据加工名称、加工编号、说明、输入数据流、输出数据流、加工逻辑等。例如:工资系统中的计算应发工资这个加工在数据字典中的条目描述为 数据加工名称:计算应发工资 加工编号:1.2,说明:根据职工的工资档案及本月奖金发放表数据计算每个职工的应发工资 输入数据流:奖金发放表及工资档案 输出数据流:应发工资表 加工逻辑:DO WHILE 工资档案文件指针未指向文件尾 从工资档案中取出当前职工
18、工资的各项基本数据进行累加 在奖金发放表中按职工号查找到该职工的奖金数 对奖金数与工资基本数据的累加和进行求和得到该职工的应发工资数ENDDO,为了能够直观、明确地表达加工逻辑,经常采用结构化语言、判定树及判定表等三种描述方法。1.结构化语言 结构化语言是一种介于自然语言和形式化语言之间的半形式化语言,例如,上面对计算应发工资条目中加工逻辑的描述就是采用的结构化语言。它是在自然语言的基础上加入了一定的限制,通过使用有限的词汇和有限的语句来较为严格地描述加工逻辑。描述时可以使用的词汇包括:数据字典中定义的名字、基本控制结构中的关键词、自然语言中具有明确意义的动词和少量的自定义词汇等。尽量不使用形
19、容词或副词,可以使用一些简单的算术或逻辑运算符。结构化语言中的三种基本结构的描述方法如下:,加工逻辑的描述,自然语言+结构化形式,结构化语言,例2:请为下列DFD中的“审查并开发票”加工点写 加工说明,把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号 检索“各班学生用书表”文件,获得该生当年的书单 对 购书单上的每一书号 如果 书单上无此书号 则 把书号写到出错通知单上 否则 按书号检索“教材存量表”文件,从而获得该书的单价与库存量 如果 库存量 购书单的数量 则 将书号写到出错通知单上 否则 将书号、单价、数量、总价等项写入到发票上;更新存书量,并写回“教材存量表”文件;累计书
20、费合计 把书费合计写到发票上,对每张购书单,2.判定表提出背景:当某一加工的实现需要同时依赖多个逻辑条件的取值时,对加工逻辑的描述就会变得较为复杂,很难采用结构化语言清楚地将其描述出来,而采用判定表则能够完整且清晰地表达复杂的条件组合与由此产生的动作之间的对应关系。通常把表中任意一个条件组合的特定取值及其相应要执行的动作称为规则。,判定表,下面以描述某单位工资档案管理系统中“职务津贴计算”加工逻辑为例说明判定表的写法。对应的判定表见下表。,“职务津贴计算”判定表,要生成上面的判定表,具体的步骤如下:(1)确定规则的个数。例子中有两个条件,每个条件有三种取值,条件1,职务:助工、工程师、高工条件
21、2,工龄:20故规则个数为 3 3=9。(2)列出所有的条件和动作。(3)列出所有的条件组合。(4)填写每种条件组合下对应的动作。(5)若表中存在不同规则对应相同动作且其条件组合存在某种关系时,需要对表进行必要的化简。,“基本奖金计算”判定树,3、判断树,判断树是判断表的图形形式,其适用场合与判断表相同,它与判定表的作用大致相同,但比判定表更加直观,更易于理解和掌握。,比较:判定树虽然形式上比判定表直观,但逻辑上没有判定表严格,用户在使用判定树时容易造成个别条件的遗漏。实际工作中:、对于顺序结构和循环结构采用结构化语言进行描述;、对于存在多个条件组合的复杂判定问题采用判定表或判定树进行描述。,
22、1.建立数据字典的方法,数据字典的建立,数据字典的实现,2.建立数据字典的原则(1)所有定义必须严密、精确,不能存在二义性。(2)书写格式应简洁且严格。(3)应可方便地实现对所需条目的按名查阅。(4)应便于修改和更新。,数据流图与数据字典,综上所述,利用数据字典可以对数据流图中的数据流、数据源以及外部实体进行描述、组织和管理。对于转换,也需要一种比图形记号更为详尽的表示机制,这就是结构化的文字描述。分析人员可以在数据流图的任一转换上附加一段文字,用以说明转换的功能、性能要求及设计约束等,这种说明应尽可能简洁、清晰、易于理解。,数据字典例子:(数据流),数据流名称:订票单 别名:无 来源:订票员
23、 去向:定票 数据流量:200份/天 组成:编号姓名+年龄身份证号电话号码订票日期目的地,数据字典例子:(数据项),数据项名称:航班号 别名:HBH 数据类型:字符串 长度:16位 取值范围及含义:第1位:进口/国产 第24位:类别 第57位:规格 第811位:源机场编号 第1215位:目的机场编号,数据字典例子:(数据存储),数据存储名称:航班目录 别名:无 来源:无 去向:定票 组成:航班号飞行日期载客量出发地目的地票价-组织方式:索引文件,以航班号为关键字,数据字典例子:(处理逻辑),数据加工名称:定票 别名:无 输入:订票单 输出:航班、费用 激发条件:接受到订票单处理逻辑:if 单据
24、订票单then if 单据是否过期 then 是否有该航班,是否有机票,实例医院病房监护系统,监视病情,医院病房监护系统分层DFD图,顶级DFD,病员,护士,病员监护系统,病症,需求报告,病症报告,报警,采用通常的功能分解方法,按照“强内聚、松耦合”的原则逐个对处理功能进行精化;与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。,医院病房监护系统分层DFD图,一级DFD,医院病房监护系统分层DFD图,二级DFD:对加工“中央监视”进行分解,精化过程中必须维持各级数据流图之间的数据流平衡。,精化过程应适可而止,避免涉及软件设计细节。一般说来,如果某子功能可以用一段简洁、精
25、确的文字描述清楚,就无需进一步分解。,创建用户需求的数据流模型应遵循以下五条规则:,对于数据流图中不再分解的处理功能,分析人员要借助结构化自然语言对其功能进行精确、简洁的描述。图中“中央监视”子功能分解出来的“计算超过极限值否”子功能可描述如下页:,过程规格说明举例“计算超过极限值否”子功能,1参数:血压、体温、脉搏;类别:字符串2处理步骤:1)检查系统是否有参数值输入。若有,则验证输入值的有效性。如果有效,则从病员极限数据存储中取出相应的待比较值;否则无操作。2)检查输入参数值与待比较值的大小。如果超过极限值,则产生报警信息,并且更新病员的记录;如果没有超过极限值,则只更新病员记录。3约束条
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件工程- 面向数据流的分析与设计方法 面向 数据流 分析 设计 方法
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5064795.html