《软件工程》-_面向数据流的分析与设计方法_第1页
《软件工程》-_面向数据流的分析与设计方法_第2页
《软件工程》-_面向数据流的分析与设计方法_第3页
《软件工程》-_面向数据流的分析与设计方法_第4页
《软件工程》-_面向数据流的分析与设计方法_第5页
已阅读5页,还剩169页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、讲 课 人:刘 伟电子邮件: 电 话:办 公 室:教二南楼328室软件工程面向数据流的分析与设计方法结构化的软件分析与设计方法面向数据流的分析与设计方法,etc.面向对象的软件分析与设计方法面向数据流的分析方法dataflow-oriented analysis method与面向对象的分析方法,都是需求建模方法。它们均有一组标准的语言表达机制,用于需求分析人员表达用户需求、构造软件系统模型。面向数据流的分析方法是结构化分析方法系列中的一支,具有明显的结构化特征。结构化开发方法分为如下几个步骤:结构化分析软件分析SA结构化设计总体设计、概要设计SD详细设计面向过程的编码结构化分析方法是一种基于

2、功能分解的需求分析方法。结构化分析方法是一种建模技术模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象。并用数据流图表达需求。方法特点核心思想:自顶向下和逐步求精。根本手段:分解和抽象。分解:把大问题分割成假设干小问题,然后分别解决。抽象:略去细节,先考虑问题最本质的属性。使用了描述需求说明书的几个标准工具。即数据流图、数据词典、小说明加工逻辑的描述等,使文档标准化。自顶向下,逐步求精方法的优点符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易阅读和理解程序自顶向

3、下,逐步细化,分解成一个树形结构。在同一层的节点上的细化工作相互独立。有利于编码、测试和集成每一步工作仅在上层节点的根底上做不多的设计扩展,便于检查有利于设计的分工和组织工作。数据流图与数据字典一个基于计算机的信息处理系统由数据流和一系列的转换构成,而这些转换将输入数据流变换为输出数据流。数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。 在需求分析阶段,数据流(也称信息流)是系统分析的根底。所谓数据流,形象地说就是系统中“流动的数据结构。数据流图(DFD,Data Flow Di

4、agram)是描述软件系统中数据处理过程的一种有力的图形工具。 是用来描述系统逻辑模型的一种图形工具。 数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。 DFD数据流图的图形记号外部实体位于软件系统边界之外的信息生产者或消费者转换转换数据流的处理过程,又称泡bubble数据流为一个或多个转换提供数据源或数据存储效劳的缓冲区、文件或数据库数据源在转换之间有向流动的数据项或数据项集合 “与,即同时输入/出; + “或,即至少一项输入/出; “异或,即非同时输入/出。* “家庭保安系统顶级数据流图传感器警报类别显示信息电话拨号音频传感数据用户命令家庭保安系统控制面板

5、显示器电话机警报器数据流图中的根本符号另外的表示方法或或或符 号含 义数据的源点或终点数据流数据存储加工1. 数据的源点或终点 数据的源点或终点用于反映数据流图与外部实体之间的联系,表示图中的输入数据来自哪里或处理结果送向何处。如以下图中的人事部门、后勤部门是工资系统中数据的源点,而职工和银行那么是工资系统中数据的终点。工资计算系统的顶层(0层)数据流图2. 数据流 数据流是数据在系统中(包括数据处理之间、数据处理和数据存储之间以及数据处理和数据的源点或终点之间)的传送通道,数据流符号的箭头指明了数据的流动方向。如上图中的出勤表、业绩表、水电扣款表、工资条及工资存款清单等均为数据流。3. 加工

6、 加工也称为数据处理,是对系统中的数据流进行的某些操作或变换。图中每个加工都要有对应的名称,最常见的名称是由一个说明具体动作的动词和一个说明处理对象的名词构成的,如计算应发工资、打印工资清单等。4. 数据存储 在数据流图中用于保存数据的数据文件被称为数据存储,它可以是数据库文件或任何其他形式的数据组织。流向数据存储的数据流可理解为向文件写入数据或对文件进行查询,流出数据存储的数据流可理解为从文件中读取数据或得到查询结果。 在数据流图中,可以有两个以上的数据流进入同一个加工,也可以有两个以上的数据流从同一个加工中流出,这样的多个数据流之间往往存在一定的关系。为了表示这些数据流之间的关系,需要在数

7、据流图中给这些数据流对应的加工加上一定的标记符号。在下表中列出了加工中常见的几种关系的表示方法。(表中以从加工流入或流出两个数据流为例)。数据流与加工之间的关系表 加工中常见关系的符号表示符 号含 义由数据A和B共同变换为数据C由数据A变换为数据B和数据C由数据A或B,或者数据A和B共同变换为数据C由数据A变换为数据B或C,或者同时变换为数据B和C由数据A或B其中之一变换为数据C由数据A变换为数据B或C其中之一数据流与加工之间的关系 按照结构化分析方法中“自顶向下,逐步分解的思想,可以先将整个系统看作是一个加工,它的输入数据和输出数据说明了系统和外部环境的接口,从而首先画出系统的顶层数据流图。

8、为了能够清楚地说明系统加工的详细过程,接着从顶层数据流图出发,逐层地对系统进行分解。每分解一次,系统中加工的数量就随之增加,每个加工的功能描述也越来越具体。重复这种分解,直至得到系统的底层数据流图。底层数据流图中的所有加工都应是不可再分解的、最简单的“原子加工。数据流模型的建立方法数据流图数据流图提供了层次结构,让分析人员能够方便地表示任意抽象级别上的信息系统或其子系统,并支持问题分解、逐步求精的分析方法。初始时,整个信息处理系统可以用以下图所示的顶级第0级数据流图表示。 “家庭保安系统顶级数据流图1传感器警报类别显示信息电话拨号音频传感数据用户命令家庭保安系统控制面板显示器电话机警报器 随着

9、需求分析活动的逐渐深入,较高抽象级别上的复杂转换可以精化为一系列相互关联的数据流和子转换,如以下图所示。在数据流方法中,对数据数据流的精化是伴随着对转换的逐步精化而同步进行的。A0Z2Y2X2N1M1D1D1C1C1E1E1B0A0F1F3FF2F4F5F41F42F43F44B0第0级第1级第2级数据流图的精化与层间平衡 下面以某单位工资管理系统为例,来介绍一下分层数据流模型的建立方法。 1. 建立顶层数据流图 任何系统的顶层数据流图都只有一个,用于反映目标系统所要实现的功能及与外部环境的接口。顶层数据流图中只有一个代表整个系统的加工,数据的源点和终点对应着系统的外部实体,说明了系统输入数据

10、的来源和输出数据的去向。工资管理系统的顶层数据流图如以下图所示。图 工资计算系统的顶层(0层)数据流图 按照系统的功能,对顶层数据流图进行分解,生成第一层数据流图。如例子中的工资计算系统可划分为计算工资、打印工资清单和工资转存三个加工。其中,计算工资完成单位职工工资计算,生成工资清单的功能;打印工资清单完成工资条的打印功能;工资转存完成生成职工工资存款清单并将其发送到银行的功能。对划分得到的加工应进行编号,如以下图。 2. 数据流图的分层细化工资计算系统第一层数据流图 对第一层数据流图中的加工继续分解,那么可得到第二层数据流图,如图 A 所示。对分解得到的加工进行编号,以反映出它与上层数据流图

11、之间的关系,如对第一层数据流图中的计算工资分解得到的数据流图中的加工的编号分别为。假设数据流图中的加工还可继续细化,那么重复以上分解过程,直到获得系统的底层数据流图。工资计算系统的第三层数据流图如图 B 所示。图A 工资计算系统的第二层数据流图(a) “计算工资子数据流图;(b)“工资转存子数据流图图B 工资计算系统的第三层数据流图建立数据流模型要遵循以下的原那么1每个加工至少应有一个输入数据流反映被处理数据的来源和一个输出数据流反映加工的结果。2数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。3对某个加工进行细化生成的下层数据流图,称为其上层图的子图。应保证分层数

12、据流图中任意对应的父图和子图的输入/输出数据流保持一致。4应按照层次给每个加工编号,用于说明该加工所处的层次及上、下层的父图与子图的关系。编号的规那么为:顶层加工不用编号;第一层加工的编号为1,2,n。第二层加工的编号为11,12,21,22,n1,n2,等,以此类推。建立数据流模型要遵循以下的原那么5在父图中不要出现子图中涉及的局部数据存储文件。通常除底层数据流图中需说明所有数据存储外,为保持画面整洁,各中间层数据流图只需显示处于加工之间的接口文件即可。6数据流图只能由四种根本符号组成,是实际业务流程的客观映象,用于说明系统应该“做什么,而不需要指明系统“如何做。7数据流图的分解速度应保持适

13、中。通常一个加工每次可分解为24个子加工,最多不要超过七个,否那么会增加用户的理解难度。同时要注意,逐层精化必须适可而止。8为了便于数据流图在计算机上的输入和输出,免去画斜线、弧线、圆等符号的麻烦,数据流图还有另一套表示符号,如下表所示。 表 数据流图的另一套表示符号编号编号符 号含 义数据流,只能为水平或垂直的带箭头直线加工数据存储数据的源点或终点 数据字典面向数据流分析需要引进数据字典(DD)DD以一种准确、简洁的方式对DFD中数据流、外部实体、数据存储作说明DD对DFD中的六类元素进行定义说明,按照元素不同,其中的数据条目内容也不相同数据流数据项数据元素数据结构数据存储处理逻辑根本加工外

14、部实体数据字典数据字典的提出背景:虽然数据流图能够形象、清晰地描述数据在系统中流动、加工、存储的情况,但数据流图中的许多构成元素,如数据流、数据存储、加工,仅依靠名称并不能反映其本质含义,因此必须对这些构成元素进行严格的定义。作为对数据流图的补充,数据字典(DD,Data Dictionary)能够准确地定义数据流图中各组成成分的具体含义,二者共同构成了系统的逻辑模型。数据字典中的根本符号及其含义符 号含 义说 明=表示定义为用于对=左边的条目进行确切的定义+表示与关系X=a+b表示X由a和b共同构成 | , 表示或关系X=a|b与X=a,b等价,表示X由a或b组成( )表示可选项X=(a)表

15、示a可以在X中出现,也可以不出现 表示重复大括号中的内容重复0到多次m n表示规定次数的重复重复的次数最少m次,最多n次“ ”表示基本数据元素“ ”中的内容是基本数据元素,不可再分.连接符month=1.12表示month可取112中的任意值* *表示注释两个星号之间的内容为注释信息例如 12()()任何长度为3的数字串444552=任何长度为4的数字串数据字典是关于数据流图中各种成分详细定义的信息集合,可将其按照说明对象的类型划分为四类条目,分别为数据流条目、数据项条目、数据文件条目和数据加工条目。数据字典中的条目及说明格式 数据字典的任务是: 对于数据流图中出现的所有被命名的图形元素在字典

16、中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。DD1. 数据流条目 数据流在数据流图中主要用于说明数据结构在系统中的作用和流动方向,因此数据流也被称作“流动的数据结构。数据字典中数据流条目应包括以下几项主要内容:数据流名称、数据流别名、说明、数据流来源、数据流流向、数据流组成和数据流量等。数据流名:数据流别名:说明:简要介绍作用即它产生的原因和结果。数据流来源:即该数据流来自何方。数据流去向:去向何处。数据流组成:数据结构。数据量流量:数据量、流通量。 数据流词条的描述例如: 数据流名:发票说明:用作学生已付书款的依据数据流来源:来自加工“审查并开发票数据流去向:流向加工

17、“开领书单。数据流组成:学号+姓名+书号+单价总价+书费合计审查并开发票发票购书单 数据流名称:出勤表数据流别名:无说明:由人事部门每月月底上报的职工考勤统计数字数据流来源:人事部门数据流流向:加工1.1.1(统计出勤、请假及旷工时数)数据流组成:出勤表 = 年份+月份+职工号+出勤时数+病假时数+事假时数+旷工时数数据流量:1份/月工资系统中的出勤表数据流在数据字典中的条目描述为 数据流词条的描述例如2: 2. 数据项条目 数据流图中每个数据结构都是由假设干个数据项构成的,数据项是加工中的最小单位,不可再分。数据字典的数据项条目中应包含的主要内容有:数据项名称、数据项别名、说明、类型、长度、

18、取值范围及含义等。 例如:出勤表中的职工号数据项在数据字典中的条目描述为 数据项名称:职工号 数据项别名:employee_no 说明:本单位职工的惟一标识 类型:字符串 长度:6 取值范围及含义:12位(00.99)为部门编号:36位(XX0001.XX9999)为人员编号3. 数据文件条目 数据文件是数据流图中数据结构的载体。数据字典的数据文件条目中应包含的主要内容有:数据文件名称、说明、数据文件组成、组织方式、存取方式、存取频率等。 例如:工资系统中的职工工资档案文件在数据字典中的条目描述为 数据文件名称:工资档案 说明:单位职工的根本工资、各项津贴及补贴信息 数据文件组成:职工号+国家

19、工资+国家津贴+职务津贴+职龄津贴+交通补贴+部门补贴+其他补贴 组织方式:按职工号从小到大排列 存取方式:顺序 存取频率:1次/月4. 数据加工条目 在数据流图中只简单给出了每个加工的名称,在数据字典中通过数据加工条目主要是要说明每个加工是用来“做什么的。数据字典的数据加工条目中应包含的主要内容有: 数据加工名称、加工编号、说明、输入数据流、输出数据流、加工逻辑等。 例如:工资系统中的计算应发工资这个加工在数据字典中的条目描述为 数据加工名称:计算应发工资 加工编号: 说明:根据职工的工资档案及本月奖金发放表数据计算每个职工的应发工资 输入数据流:奖金发放表及工资档案 输出数据流:应发工资表

20、 加工逻辑:DO WHILE 工资档案文件指针未指向文件尾 从工资档案中取出当前职工工资的各项根本数据进行累加 在奖金发放表中按职工号查找到该职工的奖金数 对奖金数与工资根本数据的累加和进行求和得到该职工的应发工资数ENDDO为了能够直观、明确地表达加工逻辑,经常采用结构化语言、判定树及判定表等三种描述方法。 1. 结构化语言 结构化语言是一种介于自然语言和形式化语言之间的半形式化语言,例如,上面对计算应发工资条目中加工逻辑的描述就是采用的结构化语言。它是在自然语言的根底上参加了一定的限制,通过使用有限的词汇和有限的语句来较为严格地描述加工逻辑。描述时可以使用的词汇包括:数据字典中定义的名字、

21、根本控制结构中的关键词、自然语言中具有明确意义的动词和少量的自定义词汇等。尽量不使用形容词或副词,可以使用一些简单的算术或逻辑运算符。结构化语言中的三种根本结构的描述方法如下:加工逻辑的描述自然语言+结构化形式结构化语言 -学生购买教材的 系统逻辑模型 审查并开发票学生发票购书单 各班学生用书表教材存量表无效书单开领书单领书单学生 例2: 请为以下DFD中的“审查并开发票加工点写 加工说明 把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号 检索“各班学生用书表文件,获得该生当年的书单 对 购书单上的每一书号 如果 书单上无此书号 那么 把书号写到出错通知单上 否那么 按书号检索

22、“教材存量表文件, 从而获得该书的单价与库存量 如果 库存量 购书单的数量 那么 将书号写到出错通知单上 否那么 将书号、单价、数量、总价等项写入到发票上; 更新存书量,并写回“教材存量表 文件; 累计书费合计 把书费合计写到发票上对每张购书单2. 判定表提出背景:当某一加工的实现需要同时依赖多个逻辑条件的取值时,对加工逻辑的描述就会变得较为复杂,很难采用结构化语言清楚地将其描述出来,而采用判定表那么能够完整且清晰地表达复杂的条件组合与由此产生的动作之间的对应关系。 通常把表中任意一个条件组合的特定取值及其相应要执行的动作称为规那么。采用表格的形式来表达具复杂判断的加工逻辑判定表 下面以描述某

23、单位工资档案管理系统中“职务津贴计算加工逻辑为例说明判定表的写法。对应的判定表见下表。条件列表条件组合动作列表对应的动作“职务津贴计算判定表要生成上面的判定表,具体的步骤如下: (1) 确定规那么的个数。例子中有两个条件,每个条件有三种取值,条件1,职务:助工、工程师、高工条件2,工龄: 20故规那么个数为 3 3 = 9。 (2) 列出所有的条件和动作。 (3) 列出所有的条件组合。 (4) 填写每种条件组合下对应的动作。 (5) 假设表中存在不同规那么对应相同动作且其条件组合存在某种关系时,需要对表进行必要的化简。“根本奖金计算判定树3、判断树判断树是判断表的图形形式,其适用场合与判断表相

24、同,它与判定表的作用大致相同,但比判定表更加直观,更易于理解和掌握。比较:判定树虽然形式上比判定表直观,但逻辑上没有判定表严格,用户在使用判定树时容易造成个别条件的遗漏。实际工作中:、对于顺序结构和循环结构采用结构化语言进行描述;、对于存在多个条件组合的复杂判定问题采用判定表或判定树进行描述。1. 建立数据字典的方法 数据字典的建立数据字典的实现 人工方法 自动方法将每一字典中的词条写在一张卡片上,由专人管理和维护利用 “字典管理程序”在计算机中对字典进行管理和维护。2. 建立数据字典的原那么(1) 所有定义必须严密、精确,不能存在二义性。(2) 书写格式应简洁且严格。(3) 应可方便地实现对

25、所需条目的按名查阅。(4) 应便于修改和更新。数据流图与数据字典综上所述,利用数据字典可以对数据流图中的数据流、数据源以及外部实体进行描述、组织和管理。对于转换,也需要一种比图形记号更为详尽的表示机制,这就是结构化的文字描述。分析人员可以在数据流图的任一转换上附加一段文字,用以说明转换的功能、性能要求及设计约束等,这种说明应尽可能简洁、清晰、易于理解。数据流图例子订票员订票员预定机票准备机票记帐订票单航班目录航班号 航班费用帐单机票记帐数据库帐目数据字典例子: (数据流) 数据流名称:订票单 别名: 无 来源: 订票员 去向: 定票 数据流量: 200份/天 组成: 编号姓名+年龄身份证号 号

26、码订票日期目的地订票员订票员预定机票准备机票记帐订票单航班目录航班号 航班费用帐单机票记帐数据库帐目数据字典例子: (数据项) 数据项名称:航班号 别名: HBH 数据类型: 字符串 长度: 16位 取值范围及含义: 第1位: 进口/国产 第24位:类别 第57位:规格 第811位: 源机场编号 第1215位: 目的机场编号订票员订票员预定机票准备机票记帐订票单航班目录航班号 航班费用帐单机票记帐数据库帐目数据字典例子: (数据存储) 数据存储名称:航班目录 别名: 无 来源: 无 去向: 定票 组成: 航班号飞行日期载客量出发地目的地票价- 组织方式:索引文件,以航班号为关键字订票员订票员预

27、定机票准备机票记帐订票单航班目录航班号 航班费用帐单机票记帐数据库帐目数据字典例子: (处理逻辑) 数据加工名称:定票 别名: 无 输入: 订票单 输出: 航班、费用 激发条件:接受到订票单处理逻辑:if 单据订票单then if 单据是否过期 then 是否有该航班,是否有机票订票员订票员预定机票准备机票记帐订票单航班目录航班号 航班费用帐单机票记帐数据库帐目实例医院病房监护系统监视病情产生 病情报告更新病历经过初步的需求分析,得到系统功能要求: 1、监视病员的病症(血压、体温、脉搏等) 2、定时更新病历 3、病员出现异常情况时报警。 4、产生某一病员的病情报告。医院病房监护系统分层DFD图

28、 顶级DFD病员护士病员监护系统病症需求报告病症报告报警 采用通常的功能分解方法,按照“强内聚、松耦合的原那么逐个对处理功能进行精化;与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。医院病房监护系统分层DFD图 一级DFD生理信号极限值护士3生成报告4更新日志病员2中央监视1局部监视病症信号病员极限病员日志报警病员数据格式化病员数据日志数据日志数据病症报告需求报告医院病房监护系统分层DFD图 二级DFD:对加工“中央监视进行分解病员数据2.1开解信号2.2计算超过极限值否2.4格式化病员数据2.3产生报 警信息病员极限体温脉搏血压超过极限值血压、体温、脉搏生理信号极限

29、值报警格式化病员数据 精化过程中必须维持各级数据流图之间的数据流平衡。 精化过程应适可而止,防止涉及软件设计细节。一般说来,如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解。 创立用户需求的数据流模型应遵循以下五条规那么:对于数据流图中不再分解的处理功能,分析人员要借助结构化自然语言对其功能进行精确、简洁的描述。图中“中央监视子功能分解出来的“计算超过极限值否子功能可描述如下页:过程规格说明举例“计算超过极限值否子功能1参数:血压、体温、脉搏;类别:字符串2处理步骤: 1检查系统是否有参数值输入。假设有,那么验证输入值的有效性。如果有效,那么从病员极限数据存储中取出相应的待比较

30、值;否那么无操作。 2检查输入参数值与待比较值的大小。如果超过极限值,那么产生报警信息,并且更新病员的记录;如果没有超过极限值,那么只更新病员记录。3约束条件:在上述1、2步骤中,通过时间控制参数的采集。实体-关系图为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型。概念性数据模型是一种面向问题的数据模型,是按照用户观点对数据建立的模型。数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。数据对象、属性与关系 数据对象:是现实世界中实体的数据表现; 是省略了功能和行为的实体。 数据源 ; 数据对象包括: 外部实体的数据局部 ;

31、 数据流的内容。数据对象、属性与关系数据对象由其属性刻画。一般而言,现实世界中任何给定实体都具有许多属性,分析人员应当并且只能考虑与应用问题有关的属性。例如,在汽车销售管理问题中,汽车的属性可能有:制造商、型号、标识码、车体类型、颜色和买主。实体-关系图实体-关系Entity-Relation图简称E-R图,是表示数据对象及其之间关系的图形语言机制。数据对象实体用长方形、关系用菱形、属性用椭圆表示。数据对象之间数量上的对应关系的表示如以下图所示: 0 : 1 1 : 1 0 : 多 1 : 多为了便于区分,在E-R模型中的实体、关系和属 性都应在对应的框中写上各自的名字。实体-关系图实例制造商

32、生产经销商汽车经销存储标识码颜色型号制造商车体类型买主面向数据流的设计方法又称为结构化设计,即 SD 方法。该方法与结构化分析SA相衔接,构成完整的结构化分析与设计技术,是目前使用最广泛的方法之一。SD 通常与 DFD 衔接起来使用。用 DFD 方法得到数据流图和数据字典描述的需求规格说明书。SD 方法那么以数据流图为根底,按照一定的步骤将其映射为软件的模块结构。软件设计的根本概念和原那么软件设计的重要作用: 软件设计处于软件工程过程中的技术核心位置,它将完成待建造软件的有意义的工程表示。软件设计阶段的目标: 使用很多设计方法,产生数据设计、体系结构设计、接口设计和构件设计。为软件的编程阶段提

33、供依据。软件设计的依据:系统分析 系统设计数据字典实体关系图数据流图状态变迁图数据对象描述加工规约控制规约构件设计接口设计体系结构设计数据设计软件设计原那么 设计视点不要局限在局部范围 设计是来源于分析模型的,是分析模型可跟踪的 设计应该尽量使用已有的模式,不应该总是从头开始 设计应尽可能模拟问题域的结构,缩短与现实问题的距离 设计应表现风格一致,应该有统一的规那么和接口形式 设计应考虑可构造性 设计应考虑最恶略情况下的适应性,即健壮性 设计应防止考虑程序实现细节,因为它毕竟不是编码 应该根据质量度量标准来考虑设计 设计应注意对概念错误的评审,而防止过早注意细节数据字典数据流图E-R图状态变迁

34、图加工规约控制规约数据对描 述象数 据 设 计体系结构设计接口设计过程设计从分析模型导出设计模型分析模型设计模型数据设计:将分析信息模型转换成数据结构,来自于 实体关系图和数据字典体系结构设计:定义软件的主要结构元素、设计模式及应用约束子系统的交互接口设计:描述软件内部、软件和协作系统之间的通信,数据流或控制流的特定行为构件设计:结构元素变换为软件过程的描述,来自于处理说明以及状态变换图软件设计的4个活动1. SC图(Structure Chart) 1SC中的组成符号 SD方法在概要设计中的主要表达工具约定: 用矩形框表示模块,用带箭头的连线表示模块间的调用关系。在调用线的两旁,应标出传入和

35、传出模块的数据流。 SD方法在概要设计中的主要表达工具约定:编辑学生记录读学生记录学生数据无此学生学号不加区分的数据数据信息控制信息SC中的四种模块在系统结构图中的模块传入模块 从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。传出模块 从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。变换模块 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。协调模块 对所有下属模块进行协调和管理的模块。酒店管理信息系统功能结构图客人登记预定登记客房处理历史记录客房查询预定查询

36、餐桌安排菜单作业营业结帐汇总打印各类查询初始设置客帐处理退房处理夜审处理客帐查询报表打印HIMS客房管理子系统收银管理子系统餐饮管理子系统大型零售商场管理信息系统功能结构图TM M I S系统维护POS系统零售实时系统商品进货管理商品批发管理商品库存管理商品及商品帐管理顾客管理连锁店管理财务管理人事工资管理方案统计管理经理查询 图中的模块调用1) 简单调用ACBX,YZZABC 入 出 _12X,YZZ122选择调用ACBDA根据内部判断决定是否调用BA按另一判定结果选择调用C或D(3)SC中的循环调用ABCA根据内在的循环重复调用B、C等模块2 .数据流图的类型与结构化设计方法SD 面向数据

37、流设计方法的根本概念 SD以数据流图为根底,它定义了把DFD变换成软件结构的不同映射方法映射 DFD问题结构 软件系统的结构 程序结构系统结构特征可归纳为两种典型形式:变换型结构事务型结构数据流图可分为两种类型: 变换型数据流事务型数据流1数据流图的类型变换中心输入输出 变换型 结构事务中心接受路径动作路径 根本模型 特征 事务型结构 由输入、变换中心和输出三局部组成 具有在多种事务中选择执行某类事务的能力变换型数据流结构传入变换传出变换中心传入局部传出局部事务分析事务中心动作 1动作 2动作 3接受接受局部事务型数据流结构变换型数据流举例输入信息物理输入格式检查处理显示正确信息结果物理输出数

38、据变换中心逻辑输入逻辑输出传入局部传出局部特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD变换型系统结构图变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三局部组成。事务型系统结构图它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用假设干个操作模块,而操作模块又可能调用假设干个细节模块。事务型数据流图举例ABEHOMID

39、CNLFG确定DFD中是否含有事务流T事务.事务流:沿多条路径之一触发的数据流事务中心动作路径在一个大系统的DFD中,变换流和事务流可能是同时出现的事务映射方法事务映射方法接收路径C路径B路径A路径C1C2C3调度事务控制 大型系统DFD中,变换型和事务型 结构往往共存:T事务中心传入变换传出(2) 面向数据流设计方法的设计步骤精化DFD确定DFD类型把DFD映射到系统模块结构设计 出模块结构的上层基于DFD逐步分解高层模块设计 出下层模块根据模块独立性原理,精化模 块结构面向数据流方法的设计过程精化数据流图区分事务中心和数据接收路径映射成变换结构区分输入和输出分支映射成事务结构用启发式设计规

40、那么精化软件结构导出接口描述和全程数据结构详细设计事务分析变换分析复查事务变换流类型SD方法的两种映射过渡方法变换型DFD事务型DFD初始SC初始SC变换分析事务分析初始的SC主模块输入模块主加工模块输入模块事务控制模块接受模块动作发送模块动作1模块动作2模块动作3模块由变换分析产生由事务分析产生变换分析方法由以下四步组成: 重画数据流图; 区分有效(逻辑)输入、有效(逻辑)输出和中心变换局部; 进行一级分解,设计上层模块; 进行二级分解,设计输入、输出和中心变换局部的中、下层模块。3. 变换分析设计方法步骤:(1)区分传入、变换中心、传出局部,在 DFD 上标明分界线变换分析设计方法步骤确定

41、DFD中是否含有变换流输出输入变换变换流:具有明显的输入、变换或加工、输出分界的数据流图变换映射方法BCADEQPRWUVabcedrpuwv变换中心传入局部传出局部变换分析设计方法步骤(2)第一级分解(建立初始SC框架) 设计顶层和第一层模块变换映射方法输出输入变换控制模块输入处理模块输出处理模块主要处理模块第一级分解的方法MCMTMAME第一级分解后的SCMCMTMAME第一层顶层c,ec,eu,wu,w传入模块传出模块中心变换模块第一级分解后的SC(另一种画法)MCMA1ceu,wc,pQPReprrw,uw传入分支模块中心加工分支模块传出分支模块MA2ME1ME2变换分析设计方法步骤(

42、3)第二级分解(分解SC各分支) 自顶向下分解,设计出每个分支的中、下层模块传入分支的分解(1)MACBAbacEDdec,e传入分支的分解(2)MAGet CbacRead Ddec,eB to CbcdeabGet EGet BD to EA to BRead D传出分支的分解MEWWrite Vuuw,uvvvPut UU to VMEUWrite Wwwuw,uV(1)(2)中心加工分支的分解MTPQRec,pru,wpr评定输出配置信息显示格式化产生警告信号读传感器拨打 传感器状态传感器ID类型,位置传感器信息警告类型警告数据 号配置数据 号信号传感器ID类型,位置SafeHome系

43、统的监控传感器精化DFD第二层变换映射方法的例子监控传感器精化DFD第三层向软件模块结构的映射变换映射方法例子配置信息传感器 状态传感器ID设置 读传感器 获得回应信息 证实警告条件 选择 号 连接 网 设置产生拨号脉冲 格式化 显示产生显示产生警告信号 监控传感器执行 传感器输入控制 警告输出控制 警告条件控制传感器ID类型位置格式化 ID类型位置警告数据警告类型传感器 信息 号音语音读 号 号号码表警告条件码传感器ID时间信息一级因子化 监控传感器执行 传感器输入控制 警告输出控制 警告条件控制 获得回应信息 读 传感器 证实警告条件 选择 号 格式化 显示 产生警告信号连接 网设置 产生

44、 显示 产生拨号脉冲二级因子化变换映射方法例子 在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成 之后,才 能转向另 一个模块 的下层模 块的设计。 在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质量。 使用“黑箱技术: 在设计当前模块时,先把这个模块的所有下层模块定义成“黑箱,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱。最后,全部“黑箱的内容和结构应完全被确定。 在模块划分时,一个模块的直接下属模块一般在5个左右。如果直接下属模块超过10个,可设立中间层次。 如果出

45、现了以下情况,就停止模块的功能分解:当模块不能再细分为明显的子任务时;当分解成用户提供的模块或程序库的子程序时;当模块的界面是输入输出设备传送的信息时;当模块不宜再分解得过小时。 任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时 (有一个明显的事务中心),以采用事务分析方法为宜。4.事务分析设计方法事务分析在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流就叫做事务。与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统结构图。事务分析过程 识别事务源利用数据流图和数据词典,从问题定义和需

46、求分析的结果中,找出各种需要处理的事务。通常,事务来自物理输入装置。有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。 规定适当的事务型结构在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。 识别各种事务和它们定义的操作。从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作。 注意利用公用模块在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的假设干个低层模块组成,那么可以把这些低层模块构造成公用模块。 对每一事务,或对联系密切的一组事务,建立一个事务处理模块如果发现在系统中有类

47、似的事务,可以把它们组成一个事务处理模块。 对事务处理模块规定它们全部的下层操作模块 对操作模块规定它们的全部细节模块变换分析是软件系统结构设计的主要方法。一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。事务分析设计方法步骤:(1)在DFD上确定事务中心、接收局部和发送局部。(2)画出SC框架,把DFD上的三局部分别映射为事务 控制模块、接收模块和动作发送模块。(3)分解细化接收分支和发送分支,完成初始SC。结构图(SC)举例 医院管理系统门诊管理药房管理药库管理病房管理财务管理处方挂号处理挂号费总计挂号单挂号费

48、总计出库处理进药管理病历管理处方管理常规处理用户命令交互子系统初始的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器用户命令交互子系统读用户命令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据检验信息过程重试信息四位数字检验信息检验信息A/D信息格式化配置数据格式化配置数据密码命令开/关命令配置命令用户命令交互子系统的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器读系统数据建立配置文件显示信息与状态用户命令交互子系统读用户命

49、令密码显示信息系统参数数据用户命令读系统数据配置信息显示信息和状态命令分析处理读密码命令类型建立配置文件原配置数据激活/非活动系统与文件中密码比较格式化配置数据检验信息过程重试信息四位数字检验信息检验信息A/D信息格式化配置数据格式化配置数据密码命令开/关命令配置命令用户命令交互子系统的SC用户执行模块读用户命令命令处理密码处理控制器现用/非现用系统系统设置控制器读系统数据建立配置文件显示信息与状态读密码用文件比较密码密码输出控制器产生无效信息事务流设计举例IMLNABCDFEG事务中心事务流设计举例 取 A 总控ALMNGDBCFE主模块事务加工模块动作分支的典型结构PT 2T 1T iA

50、2D 2A 1D 1A 3A jD k事务层操作层细节层处理层主模块操作模块细节模块事务加工模块事务流设计举例 取 A 总控ALMNGDBCFE动作1动作n.细节模块1细节模块2.操作模块细节模块事务型数据流图举例IMLNOABCDFEGH事务流设计举例 (另一种画法) 输入 AXX系统事务中心ALMAGDBCFE 输出 E、F、GE、F、GE、F、G输出HOE、F、GHHN操作层细节层操作1操作2操作3操作4细节1细节2细节3细节4事务映射方法例子SafeHome系统的用交互子系统DFD第一层控制面板传感器用户交互子系统控制面板 显示 警告 线用户命令 和数据传感器 状态显示信息警告类型 号

51、信号配置系统监控传感器处理口令激活或失效系统显示信息和状态传感器信息配置信息正确的ID信息配置数据配置数据配置请求启动停止口令激活/失效信息事务映射方法例子用交互子系统DFD第二层读用户命令请求命令处理读系统数据建立配置文件激活或失效系统读口令用文件比较口令产生无效的信息显示信息和状态配置信息用户命令命令类型启动停止A/D信息配置数据配置系统参数和数据配置数据口令输入口令4位数字无效的 口令有效口令配置数据 显示信息“再试提示呈现典型的变换流形式 用户交互 执行事务映射方法例子用交互子系统DFD第二层向软件模块结构的映射 读用户命令请求用户命令处理系统配置 控制激活/失效 系统 口令处理 控制 读系统数据 建立配置文件 显示信息 和状态 读口令 用文件比较口令口令输出 控制 产生无效信息一级因子化因子化并精化3412675810911变换中心传入传出事务型(3) 混合流设计举例混合流设计举例T事务中心传入变换传出接收局部发送部分ABT1变换中心传入传出T2T3abb1b2b3c1c2c3degfjm事务流子系统BCCDDEEHHKFJKLLMh混合流设计举例K 5.结构设计的优化规那么 将初始SC根据模块独立性原那么进行精化,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的最终

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论