面向数据流的设计方法
软件设计者首先必须无视程序、模块或过程的内 部情况,而只对它们之间的关系进行分析。将系统看 作是逻辑功能的抽象集合——功能模块的集合。
面向数据流的设计方法
结构化设计的优点:
(1)减少设计复杂性。将对大目标的实现转化为一些 小目标来实现。结构化设计是一种减少设计复杂性的技 术。 (2)结构独立。结构化设计将功能性程序划分成多个 相对独立的程序模块。 (3)单一的功能模块,易于进行软件修改,易于开发 和维护。 (4)加强了代码的可重用性。
面向数据流的设计方法
例1:高考录取统分子系统有如下功能:
1)计算标准分:根据考生原始分计算,得到标准分,存入考 生分数文件; 2)计算录取线:根据标准分、招生计划文件中的招生人数, 计算录取线存入录取线文件。
要求:①对以上问题画出数据流图。
②画出该子系统的软件结构图
面向数据流的设计方法
例2:某培训中心要研制一个计算机管理系统。它的业务是:将学
面向数据流的设计方法
2、设计软件结构的顶层和第一层——事务结构。 顶层就是主模块的位置,有两个功能,一是接收数据, 二是根据事务类型调度相应的处理模块。因此事务型软件结 构应包括两个部分,接收分支和发送分支。 ⑴接收分支:负责接收数据,其设计方法与变换型DFD的输 入部分相同。 ⑵发送分支:通常包含一个调度模块,控制管理所有的下层 事务处理模块。 3、设计中、下层模块并优化。 具体过程同变换结构设计。
4、根据优化准则对软件结构求精。 5、描述模块功能、接口及全局数据结构。
6、复查,如有错转向2、修改完善,否则进入详细设计。
面向数据流的设计方法
变换分析设计:
1、确定DFD中的变换中心,逻辑输入、逻辑输出。 通常几股数据流的汇合处就是系统的加工中心,也可 用以下方法确定加工中心:从物理输入(出)端开始,沿 (逆)数据流方向向系统中心寻找,直到有这样的数据流, 它不能再被看作是系统的输入(出)时,则它的前一数据 流就是系统的逻辑输入(出)。介于逻辑输入和逻辑输出 间的加工就是加工中心。
模块间的控制关 系及信息传递
B
C
T1
T2
T3
模块间选择调用
模块间循环调用
面向数据流的设计方法
系统结构图中有4种类型的模块:
1、传入模块:从下属模块取得数据,经过某些处理,再将其 送给上级模块。它传送的数据叫做逻辑输入数据流。 2、传出模块:从上级模块取得数据,进行某些处理后,传送 给下属模块。它传送的数据流叫做逻辑输出数据流。 3、变换模块:从上级模块取得数据,进行特定处理后,送回 原上级模块。它加工的数据流叫做变换数据流。 4、协调模块:对其下属模块进行控制和管理的模块。在一个 好的系统结构图中,协调模块应在较高层出现。
其他设计方法
3)按照一定的映射规则由输入、输出的数据结构导 出用Jackson图表示的程序结构。 4)列出程序中要用到的各个基本操作,并把它们分 配到程序结构的适当位置。 5)用伪码表示程序。
作业
P159
第2题
面向数据流的设计方法
⑴变换型(IPO型)
变换型的数据流图是一个线性结构,由输入、 变换和输出三部分组成。信息沿输入通路进入系统, 同时由外部形式变换成内部形式。进入系统的信息 通过变换中心,经加工处理以后再沿输出通路变换 成外部形式离开软件系统。
面向数据流的设计方法
逻辑输入 物理输 入 逻辑输出
面向数据流的设计方法
面向数据流的设计方法
面向数据流的设计方法,又称结构化设计即SD(Structured Design) 。
结构化设计的目标:将软件设计为多个结构合理、功能 单一的模块,建立系统的模块结构图。它的主要表示方法 是一种分层次的结构图。
面向数据流的设计方法
SD设计方法的主要思想:
认为一个程序、一组程序或一个系统,是由一组 功能模块来构成的。
其他设计方法
(2) Jackson图
A A A
B
顺序
C
B0 选择
C0
B* 重复
Jackson图表示的三种基本结构,由方框、连线和一些附 加标记组成。标记“o”代表选择,标记“*”代表重复。连线 可以理解为“包含”或“由……组成”。
其他设计方法
Jackson方法的步骤
一般可以归纳为五个步骤:
1)分析并确定输入数据和输出数据的逻辑结构,并 用Jackson结构图表示这些数据结构。 2)找出输入数据结构和输出数据结构中有对应关系 的数据单元 。
面向数据流的设计方法
描述工具:
结构化设计方法提出了一种图形工具——结构图。 结构图是精确表达程序结构的图形表示方法。它作 为软件文档的一部分,清楚地反映出程序中模块之间的 层次调用关系和联系。它不仅严格地定义了各个模块的 名字、功能和接口,而且还集中反映了设计思想。
面向数据流的设计方法
结构图的主要内容:
面向数据流的设计方法
2、设计软件结构的顶层和第一层——变换结构。
顶层就是主模块的位置,其功能是完成对所有模块的 控制,其名称就是系统名称; 第一层一般至少有输入、变换、输出三种功能模块。
面向数据流的设计方法
3、设计中、下层模块。对第一层模块自顶向下逐层分解。 ⑴输入模块下属模块的设计:为每个输入模块设计两个下属 模块,一个接受数据,一个将数据转换成调用模块所需的信 息。用类似的方法一直分解下去,直至物理输入端。 ⑵输出模块下属模块的设计:为每个输出模块设计两个下属 模块,一个将数据转换成下属模块所需的信息,一个发送数 据。用类似的方法一直分解下去,直至物理输出端。 ⑶变换模块下属模块的设计:根据变换中心的组成情况,按 照模块独立性原则,为每个基本加工建立一个功能模块。
面向数据流的设计方法
4、设计优化:根据优化准则对初始结构进行细化和改进。
根据设计准则,对模块进行合并和调整,为每个物理 输入和物理输出设计专门模块,以体现系统的外部接口。
面向数据流的设计方法
逻辑输入 逻辑输出
f4
E f6 f7 D f8 G f10
物理输入
f1
A
f2
B
f3
C f5
F
f9
物理输出H f11 Nhomakorabea物理输出
输入流
变换中心
输出流
变换型DFD图
面向数据流的设计方法
⑵ 事务型
事务型的数据流图中,数据沿输入通路到达一个 加工处理(如下图中的C),这个处理将输入分为许 多相互平行的加工路径,并根据输入数据的类型,选 择某一加工路径。其中C为事务处理中心,其任务是 得到输入数据(输入数据又称为事务)、分析每个事务 以确定它的类型、根据事务类型选取一条活动通路。
员发来的信件收集分类后,按几种不同情况处理: 1)如果是报名的,则将报名数据负责给报名事务的职员,他们将 查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件 上登记,并开出报名单交财务部门,财务人员开出发票给学生。 2)如果是想注销原来已选修的课程,则由注销人员在课程文件、 学生文件和帐目文件上做相应的修改,并给学生注销单。
f10
Put f8
f5 C
f10
f11 f11 Put f8
变换型分析设计
面向数据流的设计方法
事务分析设计:
1、确定DFD中的事物中心和加工路径。
通常当DFD中的某个加工具有明显的将一个输入数 据流分解成多个发散的输出数据流时,该加工就是系统 的事务中心,从事务中心辐射出去的数据流就是各个加 工路径。
其他设计方法
Jackson方法 (1) Jackson方法思想
面向数据结构的设计是根据某些过程,从一些数据结构 中导出程序结构,着重于问题域数据结构到问题解的程序结 构之间的转换,而不强调模块定义。
①首先要充分了解所涉及的数据结构,而且用工具清晰 地描述数据结构; ②然后按一定的步骤根据数据结构,导出解决问题的程 序结构,完成设计。
面向数据流的设计方法
B
f1
输入流
A
C
D
事务处理中心
加工路径
事务分析设计
面向数据流的设计方法
接 收 分 支 主模块 f1 Get f1 f1 调度 发 送 分 支
B
C
D
动作层 细节层
事务分析设计
事务分析 举例
举 例
面向数据流的设计方法
结构图的形态特征:
深度表示控制的层数。 宽度表示控制的总分布。 扇出是对由某一模块直接控制的模块数目的度量。
1、模块:方框表示,并用名字标识该模块。
2、模块的调用关系:用单向箭头或直线连接模 块间的控制关系。
3、模块间的信息传递:用带注释的短箭头表示 模块间传递的信息。 4、两个附加符号:弧形线表示循环调用,菱形 表示选择调用。
面向数据流的设计方法
查询成绩 A
学 号 查 询 标 志 记 录 地 址
M
学生记录
软件设计文档
1、概要设计说明书(参考标准文档) 2、详细设计说明书(参考标准文档)
其他设计方法
面向数据结构的设计方法是根据数据结构设计
程序处理过程的方法。
目前比较成熟的有 M.A.Jackson提出的Jackson 系统开发方法(JSD,Jackson System Development) 和J.D.warnier提出的程序逻辑构造方法 LCP( Logical Construction of Programs )。
面向数据流的设计方法
系统结构图中主要有4种类型的模块:
A
D B C
协调模块
X X Y Y
传入模块
A
传出模块
D
变换模块
面向数据流的设计方法
数据流图的类型
SD方法是以数据流图为基础设计系统的模块结 构的。不同类型的数据流图设计的过程以及所导出的 初始的软件结构不同。不管系统的数据流图如何庞大 和复杂,一般均可分为变换型、事务型和变换/事务 混合型。