Presentation is loading. Please wait.

Presentation is loading. Please wait.

Informational School,Guangzhou University Spring 2005

Similar presentations


Presentation on theme: "Informational School,Guangzhou University Spring 2005"— Presentation transcript:

1 Informational School,Guangzhou University Spring 2005
软件工程 Software Engineering 广州大学信息学院 Informational School,Guangzhou University Spring 2005 Software Engineering

2 软件工程 Software Engineering 第七章 面向数据流的开发方法 广州大学信息学院 Software Engineering

3 第七章 面向数据流的开发方法 7.1 概述 7.2 结构化分析 7.3 结构化设计 Software Engineering

4 7.1 概述 结构化方法的核心是面向数据流技术。 结构化方法=结构化分析(SA)+结构化 设计(SD)+结构化程序设 计(SP)。
结构化思想:基于模块化的思想,按照“自顶向下、逐步求精”的原理对系统的功能和结构进行划分,利用一定的工具,按照特定步骤工作的软件开发方法。 结构化方法的基本原则:抽象与分解。 Software Engineering

5 7.1 概述 结构化分析:面向数据流进行需求分析的方法。用数据流图+数据字典表示。 结构化设计:从数据流图推导出模块结构图。
优点:简单、实用;适合于瀑布模型;成功率高。 缺点:对于规模大、复杂的应用系统不太适应;难于解决软件重用的问题;难于适应需求的变化;难于彻底解决维护问题。 Software Engineering

6 7.2 结构化分析 基本思路:先将分析对象抽象成一个系统,然后自顶向下、逐步求精,使复杂的系统分解成足够简单,能够清楚地被理解和表达的若干个子系统。例:见P154图7-1。 使用的工具:数据流图、数据字典、结构化英语、判定表和判断树。 Software Engineering

7 一、数据流图(Data Flow) 数据流图:图形化地显示出系统中数据的处理过程,表达数据在系统内部的逻辑流向以及系统的逻辑功能和数据的逻辑变换。 Software Engineering

8 1、数据流图的基本符号 数据流图有四个基本符号:数据流、数据处理、数据存储、外部实体。 (1)数据流
是一束按特定的方向从源点流到终点的数据,它指出了数据及其流动方向。 用一条线表示数据流,用箭头表示流动方向。 数据流可以由某一外部项产生,也可以由处理过程或数据存储产生。 数据流要有合适的名字。命名原则:见P155 Software Engineering

9 1、数据流图的基本符号 在某些情况下,很难用简单而又恰当的名词来表达某一数据流的内容。处理方法: (2)数据处理
是对数据进行变换操作的单元,即把流向它的数据进行一定的变换处理产生新的数据。 用圆圈表示,处理过程名填在圆圈内,并应适当反映该处理的含义。 Software Engineering

10 1、数据流图的基本符号 处理过程对数据的操作主要有两类: 变换数据的结构。如将数据的格式重新排列。
在原有数据内容基础上产生新的数据内容。如对数据进行累计或计算平均值。 命名原则:见P155 Software Engineering

11 1、数据流图的基本符号 (3)数据存储 数据保存的地方,由若干数据元素组成,只是数据存储的逻辑描述。
为避免数据流线条的交叉,有时在一张图中会出现同样的数据存储。 命名方法同数据流。 Software Engineering

12 1、数据流图的基本符号 (4)外部实体 是系统之外的实体,不受系统控制。 系统之外的人、程序、机构等。
对系统提供数据流的外部实体称为数据源点,接受系统输出数据流的外部实体称为数据终点。数据源点和终点可以是同一外部实体。 其它几种附加符号:P156图7-3。 Software Engineering

13 2、数据流图的建立 (1)数据流图的画法 画系统的输入/输出 先不考虑系统包括哪些功能 画系统的内部
从输入端逐步画到输出端。在数据流的组成或值发生变化的地方画上一个“加工”,其作用就是实现这一变化,在需要暂时存储的静态数据的地方画出“数据存储”。 画数据处理的内部 若加工的内部还有细节,可将这个加工用几个子加工代替,并在子加工之间画出这些数据流。 (2)注意事项 见P157 Software Engineering

14 2、数据流图的建立 例:招考公务员成绩处理系统 考生报名后将考生基本情况输入到考生情况文件;
工作人员根据考生报考的专业、地址进行编排准考证号、安排考场等考前工作,并将这些信息存入考生文件之中; 考试后每位考生各门课的成绩输入到系统中; 计算每个考生的总成绩,并打印考生成绩单; 各专业分别将考生按成绩总分从高分到低分排序,供录取单位在录取时作参考; 按考生总成绩从高到低进行筛选录取,总分相同时专业课成绩高的优先; 输出录取通知单,将录取通知单发给被录取的考生; 考试后进行各种统计:实考人数、总成绩平均分、各专业成绩平均分。 Software Engineering

15 二、数据字典(Data Dictionary)
数据字典:以一种准确的和无二义的方式对数据流图中所有名字进行定义(或说明)的汇总。是数据流图的辅助资料,对数据流图起注解作用。 包括:数据流、数据存储、数据项、数据结构、处理过程。 数据字典中把数据的最小组成单位定义为数据项,而若干个数据项可以组成一个数据结构。 数据字典是通过以数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。 Software Engineering

16 关系: 数据流 数据存储 数据结构 数据元素 Software Engineering

17 1 数据项 数据项:是数据的最小组成单位,即不可再分的数据单位。 描述内容: 例: 数据项的名称 数据项的值域 数据项的数据类型
数据项的长度 例: Software Engineering

18 2 数据流的描述 定义:表示数据流的逻辑组成; 包括:组成这个结构的各个数据元素,以及它们之间的组合关系;
描述所用的符号:见P160表7-1。 数据结构: 数据流条目的主要内容: 数据流名称 数据流来源 数据流去处 数据流的组成:数据结构 例: Software Engineering

19 3 数据存储的描述 数据存储条目的主要内容: 数据存储名称 流入、流出的数据流 数据存储的组成:数据结构 存储方式: 例:
Software Engineering

20 4 数据处理的描述 对某个加工处理进行描述 描述内容: 处理逻辑的名称 简述 处理逻辑的输入/输出 处理逻辑的主要功能 加工逻辑 例:
Software Engineering

21 三、加工逻辑的描述工具 为何要对处理功能作进一步的描述? 描述系统逻辑结构的工具----DFD;
用自然语言描述存在几类问题: (1)界限不明确 (2)逻辑条件的次序不明确 (3)意义模糊的形容词或副词 Software Engineering

22 1 判断树 例: 表示经过不同条件的判断和决策,作出相应处理的过程; 用于有条件分支情形; 方法: ①确定有哪些条件;
②确定每个条件有几种可能的状态; ③确定有哪些动作; ④确定每一项动作要依赖哪些条件及取值; 例: Software Engineering

23 2 判定表 采用表格方式来表示具有条件分支情形的处理逻辑的一种工具; 表格分为四大部分: ①左上角----条件说明;
②左下角----动作说明; ③右上角----条件组合; ④右下角----各种条件下组合下的行动; 有些条件组合在实际中可能是矛盾或无意义,需将它们删除。有些组合条件下的行动相同,可合并; 例: Software Engineering

24 3 结构式语言 是一种介于自然语言和程序设计语言之间的一种语言; 用于描述三种基本的逻辑结构:顺序结构、判断结构、循环结构; 使用的词汇:
①祈使句中的动词; ②在数据字典中定义的名词; ③某些逻辑表达式中的保留字; Software Engineering

25 3 结构式语言 使用的语句: ①祈使句: *动词开头,并包括一个名词作为宾语,表示动作的对象; *句中不要使用形容词或副词;
Software Engineering

26 3 结构式语言 ②判断句 *用于有条件分支情形; *语句的一般形式: 如果 条件1 则 动作A 否则 就 动作B
如果 条件1 则 动作A 否则 就 动作B Software Engineering

27 3 结构式语言 ③循环句 *在某种条件下,连续执行相同的动作,直到这个条件不成立为止; *语句的一般形式: 对每一个(处理对象):
动作(祈使句) 或 执行如下动作: 直到(条件)满足为止 *处理功能定义的书写格式: 例: Software Engineering

28 7.3 结构化设计(由数据流模型导出系统结构) 系统结构特征可归纳为两种典型形式: 变换型结构 事务型结构 数据流图可分为两种类型:
变换型数据流 事务型数据流 Software Engineering

29 事务型 结构 由输入、变换中心和输出三部分组成 变换型结构 输入 变换 中心 输出 接受 路径 动 作 路 径
基本模型 特征 由输入、变换中心和输出三部分组成 变换型结构 输入 变换 中心 输出 接受 路径 具有在多种事务中选择执行某类事物的能力 事务型 结构 事务 中心 Software Engineering

30 变换型 数据流 结构 事务型 数据流 结构 传入 部分 变换 中心 传出 部分 传入 变换 传出 接受 部分 事务 中心 动作 1 事务
分析 动作 2 接受 动作 3 Software Engineering

31 处理 显示 变换型数据流举例 传入部分 变换中心 传出部分 结果 数据 输入 信息 正确 信息 格式 检查 物理 输入 逻辑 输入 逻辑
输出 物理 输出 特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD Software Engineering

32 变换流示意图 信息 信息流 输入流 输出流 外部 表示 交换流 内部 表示 时间 Software Engineering

33 事务型数据流图举例 L E B A H F C I O M D G N Software Engineering

34 大型系统DFD中,变换型和事务型 结构往往共存: 传出 变换 传入 T 事务中心 Software Engineering

35 SD方法的两种设计方法 变换分析 变换型DFD 系统结构图 事务分析 事务型DFD 系统结构图 Software Engineering

36 系统结构图的组成 处理 调用:一般调用、选择调用、循环调用 通讯 Software Engineering

37 初始的SC 主模块 输入模块 主加工模块 输入模块 由变换分析产生 事务控制模块 由事务分析产生 接受模块 动作发送模块 动作1模块
动作2模块 动作3模块 Software Engineering

38 (1)将数据流划分为三部分 变换分析设计方法 确定逻辑输入端和逻辑输出端; 数据流划分为输入、变换中心、输出三部分; 注:物理变换
Software Engineering

39 a b w c r u d v e p 变换中心 W A B C 传出部分 传入部分 P R Q D E U V
Software Engineering

40 变换分析设计方法步骤 (2)第一级分解(建立初始SC框架) 设计顶层和第一层模块 Software Engineering

41 第一级分解的方法 MC MA MT ME Software Engineering

42 MC c,e MA MT ME u,w c,e u,w 顶层 第一层 第一级分解后的SC 中心变 换模块 传入模块 传出模块
Software Engineering

43 变换分析设计方法步骤 (3)输入、输出和变换部分分别分解 Software Engineering

44 e c c e c,e MA Get C Get E b d b d Get B B to C b a a A to B Read D
输入分支的分解 MA c e Get C Get E c e b d b d Get B B to C Read D D to E b a a Read D A to B Software Engineering

45 u w w u v v w,u w,u ME ME W U V Put U u v U to V (1) (2) Write W
输出分支的分解 ME ME u w w u W U Put U Write W v v u v V U to V Write V (1) (2) Software Engineering

46 中心加工分支的分解 MT u,w e p r c,p r Q P R Software Engineering

47 任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时 (有一个明显的事务中心),以采用事务分析方法为宜。
事务分析设计方法 任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时 (有一个明显的事务中心),以采用事务分析方法为宜。 Software Engineering

48 事务分析设计方法步骤: (1)在DFD上确定事务中心、接收部 分和发送部分。 (2)画出SC框架,把DFD上的三部分
分别映射为事务控制模块、接收 模块和动作发送模块。 (3)分解细化接收分支和发送分支, 完成初始SC。 Software Engineering

49 事务流设计举例 E L B A F C I M D G N 事务中心 Software Engineering

50 事务流设计举例 系统 (主模块) A B G F C E D L 取 A M N 事务加工模块 Software Engineering

51 事务流设计举例 (另一种画法) XX系统 A 变换控制 输出 E、F、G 输入 A L M N E、F、G A E、F、G G E、F、G
B H C H F E D L M N O 输出H Software Engineering

52 2.2 2.3 2.1 2.5 2.4 一层数据流图 (a) 要求类 型处理 当前日期 有效图书管理要求 入库单 目录文件 借书单 借书
新书入库 入库单 2.3 目录文件 借书单 2.1 借书 要求类 型处理 注销单 2.5 当前日期 注销图书 2.4 还书 罚款单 一层数据流图 (a) Software Engineering

53 1 5 10 3 4 6 8 9 11 2 7 传入 变换中心 传出 事务型 (3) 混合流设计举例
Software Engineering

54 混合流设计举例 事务 中心 接收部分 传入 传出 变换 T 发送 Software Engineering

55 e b a 变换中心 传出 传入 m c1 h d g k c2 b3 c3 f j T1 b1 b2 T2 T3 事务流子系统
混合流设计举例 变换中心 传出 传入 m EH T1 c1 LM b1 h e b d g k b2 c2 AB BC T2 CD DE HK KL a b3 c3 f j T3 FJ 事务流子系统 Software Engineering

56 混合流设计举例 XX系统 k d d k 输入D 变换控制 输出K d k c c L L 输入C 输出L m L m 事务子系统 输出M
CD DE FJ EH HK KL 输出L m L m 事务子系统 LM 输出M Software Engineering


Download ppt "Informational School,Guangzhou University Spring 2005"

Similar presentations


Ads by Google