07面向数据流的设计方法1
面向数据流的设计方法PPT课件

第21页/共37页
面向数据流的设计方法
B
A f1
C
输入流
D
事务处理中心 加工路径
事务分析设计
第22页/共37页
面向数据流的设计方法
接 收
f1
主模块 f1
发 送
分
支
Get f1
调度
分 支
B
CD
动作层
细节层
事务分析设计
第23页/共37页
事务分析 举例
举例
第24页/共37页
面向数据流的设计方法
2)如果是想注销原来已选修的课程,则由注销人员在课程文件、 学生文件和帐目文件上做相应的修改,并给学生注销单。
3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一 张收费收据。
要求:①对以上问题画出数据流图。
②画出该培训管理系统的软件结构图的主图。
第28页/共37页
综合设计
在实际的软件系统中,数据流图往往是变换型和事务型的混合体。
示这些数据结构。 2)找出输入数据结构和输出数据结构中有对应关系的数据单元 。
第34页/共37页
其他设计方法
3)按照一定的映射规则由输入、输出的数据结构导出用Jackson图表示 的程序结构。
4)列出程序中要用到的各个基本操作,并把它们分配到程序结构的适当 位置。
5)用伪码表示程序。
第35页/共37页
结构图的形态特征:
深度表示控制的层数。 宽度表示控制的总分布。 扇出是对由某一模块直接控制的模块数目的度量。 扇入指出有多少个模块直接控制一个给定的模块。
如果一模块控制另一个模块便称前者“统帅”后者; 后者“从属”于前者。
反之,称
面向数据流的设计方法

14
②输出模块旳下属模块旳设计 输出模块旳功能是将调用模块提供旳数据输出。 为每一种输出模块设计两个下层模块:一种是
变换模块,另一种是输出模块。 ③变换模块旳下属模块旳设计
为变换模块设计下属模块没有一定旳规则可循, 此时需研究数据流图中相应加工旳构成情况。
15
§7.3 事务分析 1.事务型程序构造 ⑴构造:
21
⑴找出事务中心和各活动途径 ⑵设计模块构造旳顶层和第一层模块: 首先为事务中心设计一种主模块; 然后为每一条活动途径设计一种事务处理模 块; 最终为输入部分设计一种输入模块,假如各 活动途径是发散旳,则不需设计输出模块, 假如象图中各活动途径又集中到一种加工, 则需设计输出模块。
22
⑶设计中、下层模块 输入模块和输出模块旳下属模块
26
④充分利用多种技巧:扇入和扇出。即扇入越多 越好,而它调用其他旳模块一般不超出7个;模 块旳大小。即相对独立,功能单一,语句不超出 100行;作用范围和控制范围。即要求控制模块 在上层,作用模块在下层且两者不离太远。 ⑤程序构造图:直观清楚,易了解,为后来旳编 程、测试、维护提供了良好旳条件。
3
变换型 ⑴构造:
I
P
O
输入模块I从输入设备或存储器取得数据, 利用处理模块P(加工模块或变换模块)对这些 数据作处理后,最终将成果经过输出模块O 送出到输出设备或存储器。
4
主模块
输入成绩 (五分制)
成绩转换(五分 制→百分制)
输出成绩 (百分制)
5
⑵变种 有多种“主变换”,多种输入数
据,多种输出数据,无“主变换”等。
软件工程PPT电子教案课件-第七章 面向数据流的设计方法

设计优化的原则
对时间复杂性有特殊要求的应用,优化过程一直要延续 到详细设计乃至编码阶段。对这类软件的优化应该根据 软件中普遍存在的“百分之二十规则”(即20%的代码 占用80%的处理时间,80%的错误出自20%的代码等等) 采取下述对策:
①在先不考虑时间复杂性的情况下,设计并精化软件结构; ②借用CASE工具模拟分析运行时的性能,找出低效部分 ③详细设计时对最耗时的模块仔细推敲,以便减少时间开
启发式设计策略
无论是采用变换分析法还是事务分析法,获得程序 结构后,必须开发一系列辅助文档,作为软件总 体设计的组成部分。
④综述设计中所有限制(Limitations)和限定 (Restrictions)
⑥对设计进行优化。
设计优化的原则
考虑设计优化问题时,应该记住“一个不能工作 的‘最佳设计’的价值是值得怀疑的”。
应该在设计的早期阶段对软件结构进行精化、优 化。可以导出不同的软件结构,并对它们进行评 价和比较,力求得到“最好”的结果。
注意,简单的结构通常既表示优雅的设计风格, 又表示高效率。设计优化应该力求做到在有效模 块化的前提下使用最少的模块,以及在能够满足 系统数据要求的前提下,使用最简单的数据结构。
使用黑箱技术的主要好处是使设计人员可以只 关心当前的有关问题,暂时不必考虑进一步的琐碎 的次要的细节,待进一步分解时才去关心它们的内 部细节与结构。
启发式设计策略
变换分析和事务分析的最后一个步骤都是运用启 发式策略对软件结构雏形进行优化,以提高软件 设计的整体质量。
启发式设计策略是人们从长期的大量软件开发过 程中积累总结的经验。
面向数据流方法中两种映射过渡方法
变换型数据流图
变换分析 初始结构图
事务分析
面向数据流的设计方法把

面向数据流的设计方法把在面向数据流的设计方法中,数据是系统的核心。
它们在不同的组件之间流动,通过组件之间的连接和交互来实现系统的功能。
这种设计方法将系统的输入、输出和中间过程都看作是数据流,并通过对这些数据流的定义和分析来进行系统设计。
其主要特征包括以下几个方面:首先,面向数据流的设计方法注重数据的流动和传递。
它将系统看作是一个数据处理的流程,通过对数据的处理和转换来实现系统的功能。
在系统设计过程中,需要明确数据的输入和输出,并定义数据流的传递路径和方式。
其次,面向数据流的设计方法注重数据的分析和处理。
在系统设计的过程中,需要对数据进行分析,划分数据流,确定数据的属性和规则,并通过对数据流的处理和转换来实现对数据的加工和分析。
此外,面向数据流的设计方法强调系统的组件和交互。
系统由一系列组件构成,每个组件负责一部分功能。
这些组件之间通过数据流进行连接和交互,通过输入数据流和输出数据流的交互来实现系统的功能。
最后,面向数据流的设计方法注重系统的可扩展性和灵活性。
通过将系统设计为数据流的方式,可以方便地扩展系统功能和调整系统结构。
新增功能可以通过新增组件和修改数据流来实现,而不需要对系统的整体结构进行大规模的改动。
面向数据流的设计方法在实际系统设计和开发中有着广泛的应用。
它可以用于各种类型的系统,包括数据仓库、大数据分析、物联网等。
面向数据流的设计方法能够提高系统的可维护性和可扩展性,降低系统的复杂性,提高开发效率。
总之,面向数据流的设计方法是一种基于数据流动的系统设计思想,通过对数据流的分析和处理来实现系统的功能。
它注重数据流的传递和处理,强调系统的组件和交互,提供了一种可扩展和灵活的系统设计方法。
在实际系统设计和开发中,面向数据流的设计方法具有重要的价值和应用前景。
软件工程——9.面向数据流的设计-169页文档资料

9.0 面向数据流的设计
一、What’s DFO Design?
在软件工程的需求分析阶段,信息流是一 个关键考虑,通常用数据流图描绘信息在 系统中加工和流动的情况。面向数据流的 设计方法定义了一些不同的“映射”,利 用这些映射可以把数据流图变换成软件结 构。因为任何软件系统都可以用数据流图 表示,所以面向数据流的设计方法理论上 可以设计任何软件的结构。通常所说的结 构化设计方法(简称SD方法),也就是基 于数据流的设计方法。
结构化设计方法是基于模块化、自顶而下 细化、结构化程序设计等程序设计技术基 础上发展起来的。
第9章 面向数据流的设计方法
相关概念回顾 9.0 面向数据流的设计
9.1 SD方法的基本概念和设计过程
9.2 变换分析 9.3 事务分析 9.4 设计优化及原则 SD:案例
软件设计的任务
技术观点
软件设计是把一个软件需求转换为软件表 示的过程,即解决“怎么做”的问题。
根据用信息域表示的软件需求,以及功能 和性能需求,进行 数据设计 系统结构设计 过程设计 界面设计
ቤተ መጻሕፍቲ ባይዱ
相关概念回顾
软件设计的基本原则
– 抽象与逐步求精 – 问题分解与模块化 – 信息隐藏 – 模块独立性
Structured Design (SD)
SD由E. Yourdon和L. L. Constantine等人 于1974年提出[55]。它又叫Yourdon方法, 是目前使用最广泛的软件设计方法之一。
SD的一些方法和原理已经如同软件设计中 的“自然法制”一般,在广泛传播,SD的 概念和思想在实际中能够应用在几乎所有 的其它软件设计方法中,还能广泛地应用 于系统设计(不仅仅是软件设计)。
SD方法对那些顺序处理信息且不含层次数据结构的 系统最为有效,例如过程控制、复杂的数值分析过程、 以及科学与工程方面的应用。当SD方法用于完全的 数据处理时,即使系统中使用层次数据也同样行之有 效。
面向数据流设计方法

面向数据流设计方法面向数据流设计方法是一种软件设计方法,它将系统的功能和数据处理看作是一连串的数据流,通过对数据流的定义、分析和优化,来设计和构建高效可靠的软件系统。
这种设计方法的核心是关注数据流和数据处理的过程,强调对数据流的管理和控制。
在面向数据流设计方法中,系统功能被分解为多个数据流,每个数据流都有一个明确的输入和输出。
设计人员需要通过对数据流的分析,确定数据流之间的依赖关系和处理逻辑,以便实现系统的功能。
在设计过程中,可以利用一些工具和技术,如数据流图、流程图、数据字典等,来帮助描述和分析数据流的流转和处理过程。
面向数据流设计方法的优点之一是能够清晰地描述和分析数据流的过程,使设计人员更容易理解系统的功能和数据处理流程。
通过对数据流的定义和分析,可以发现系统中的潜在问题和瓶颈,并进行针对性的优化和改进。
此外,面向数据流设计方法还可以提高系统的可靠性和可维护性,因为它将数据流和数据处理的过程进行了明确的划分和组织,使得系统的不同部分相互独立,易于维护和扩展。
在实际应用中,面向数据流设计方法可以广泛应用于各种软件系统的设计和开发。
例如,在信息系统中,可以使用面向数据流的方法,对数据的流转和处理进行建模和优化,以提高系统的效率和可靠性。
在嵌入式系统中,面向数据流的设计方法可以帮助设计人员对数据流进行分析和建模,以满足系统对数据处理速度和实时性的要求。
在大数据处理系统中,面向数据流的设计方法可以帮助设计人员优化数据的流转和处理,以提高系统的性能和扩展性。
然而,面向数据流设计方法也存在一些挑战和限制。
首先,面向数据流的设计方法需要对系统的功能和数据流进行详细的分析和定义,这需要投入大量的人力和时间。
其次,面向数据流设计方法在处理复杂的系统和大规模数据时,可能会导致数据流的混乱和复杂,难以理解和管理。
此外,面向数据流的设计方法在应对动态和实时数据流时,可能会面临数据处理速度和实时性的挑战,需要采取适当的优化和改进措施。
面向数据流的设计方法把
面向数据流的设计方法把
面向数据流的设计方法是一种重要的软件设计方法,主要用于处理数据流的输入和输出。
该方法基于数据流的概念,将系统视为一系列数据流,每个数据流都有自己的状态和流量控制策略。
该方法的主要优点是可以高效地处理大量数据,提高系统的可靠性和可维护性。
在面向数据流的设计方法中,设计人员需要考虑以下几个方面:
1. 数据流:数据流是系统中最重要的组成部分,表示系统中的数据流动。
数据流可以分为输入、输出、内部数据流等不同类型,每种类型的数据流都有自己的特点和控制策略。
2. 状态:状态表示数据流的当前状态,包括输入、输出、等待、错误等不同类型。
状态可以用来控制数据流的流动,从而实现流量控制和数据校验等功能。
3. 控制策略:控制策略是指数据流在系统中的流动方式。
数据流可以通过阻塞、等待、竞态条件等方式实现流量控制,还可以通过跳转、分支等方式实现数据流的变化。
4. 数据结构:数据结构是系统中的一个组成部分,表示系统中的数据存储方式。
数据结构可以是数组、链表、栈、队列等不同类型的数据结构,每种数据结构都有自己的特点和应用场景。
5. 错误处理:错误处理是系统的一个重要组成部分,用于处理系统中可能出现的错误。
错误处理包括异常处理、错误检测和恢复等功能,可以帮助系统在出现故障时快速恢复,保证系统的可靠性和稳定性。
在面向数据流的设计方法中,设计人员需要根据系统的需求和要求,设计合适的数据流、状态、控制策略、数据结构和错误处理等组成部分,从而实现高效
的数据流处理和系统维护。
面向数据流方法设计
面向数据流的设计方法
面向数据流的设计步骤: (1)复查基本系统模型 (2)复查并精化数据流图 (3)确定数据流图是变换特性还是事务特性 (4)确定数据流的边界 (5)完成第一级分解 (6)完成第二级分解 (7)优化 第一级分解就是分配顶层控制 第二级分解就是把数据流图中的每个处理映射成软件结构 中一个适当的模块。
课外习题:用面向数据流方法设计 ”工资 支付系统” 的软件结构。
面向数据流的设计方法
面向数据结构设计方法最终的目标是得出对程序处理过程 的描述,用它来设计每个模块的处理过程。
JackSon结构程序设计方法是典型的面向数据结构的设 计方法。
面向数据流的设计方法
面向数据流的设计方法把数据流图映射成软件结构,数据流 的类型决定了映射的方法。 数据流:有两种,一种是变换流,而另一种是事务流。 变换流:就是信息沿输入通路进入系统,同时由外部形式变 换为内部形式,进入系统的信息通过变换中心,经加工处理 以后再沿输出通路变换成外部形式离开系统的数据流。 事务流:就是信息沿输入通路达到事务中心的处理T,这个 处理根据输入的数据类型在若干个候选的动作序列中选取一 个来执行的数据流。
职工
教师
教师
职工
会计
1.接收工资数据
2. 然后第一级分解,一般是输入,处理,输出三部分。
工资支付系统
接收工资 数据
计算工资
生成 目标数据
3.最后是对结果进行优化:
工资支付系统
接收工资 数据
计算工资
生成 目标数据
收集事务 数据
审核事务 数据
计算正常 工资
计算超额 课时费
更新年度 数据
打印 工资表
分发工资 明细表
1. 先确定数据流的边界:
软件工程_第七章_面向数据流的设计方法
第七章面向数据流的设计方法面向数据流的设计方法,即通常所说的结构设计法(简称SD方法),是根据需求阶段对数据流的分析(一般用数据流图和数据字典表示)设计软件结构。
数据流图主要描绘信息在系统内部加工和流动的情况,面向数据流的设计方法根据数据流图的特性定义两种“映射”,这两种映射能机械地将数据流图转换为程序结构。
该方法的目标是为软件结构设计提供一个系统化的途径,使设计人员对软件有一个整体的认识。
本章所述技术用于软件的概要设计描述,包括模块、界面和数据结构的定义,这是所有后续开发工作的基础。
每种软件设计方法都有长处和不足,先用哪种方法首先应考虑它适用的范围。
任何软件系统都可以用数据流图表示,理论上,面向数据流的设计方法可用于任一种软件系统的开发。
然而,该方法对那些顺序处理信息且不含层次数据结构的系统最为有效,例如过程控制、复杂的数值分析过程、以及科学与工程方面的应用,等等。
当SD方法用于完全的数据处理时,即使系统中作用层次数据也同样行之有效。
从系统设计的角度出发,软件设计方法可以分为三大类。
第一类是根据系统的数据流进行设计,称为面向数据流的设计或者过程驱动的设计,以结构化设计方法为代表。
第二类是根据系统的数据结构进行设计,称为面向数据结构的设计或者数据驱动的设计,以LCP(程序逻辑构造)方法、Jackson 系统开发方法和数据结构化系统开发(DSSD)方法为代表。
第三类设计方法即面向对象的设计。
第一节基本概念和设计过程面向数据流设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。
该方法实施的要点是:①建立数据流的类型。
②指明流的边界。
③将数据流图映射到程序结构。
④用“因子化”方法定义控制的层次结构。
⑤用设计测量和一些启发式规则对结构进行细化。
一、在系统结构图(SC)中的模块在系统结构图中不能再分解的底层模块为原子模块。
如果一个软件系统的全部实际加工(数据计算或处理)都由底层的原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解的系统。
第九章面向数据流的设计方法
第九章面向数据流的设计方法面向数据流的设计方法是一种基于数据流的软件系统设计方法,它将整个系统抽象为一系列数据流,并通过对数据流的分析和处理,实现对系统功能和性能的优化。
该方法广泛应用于各个领域的软件系统设计,特别是在大规模数据处理和分布式系统设计方面具有重要的意义。
在面向数据流的设计方法中,系统被抽象为一系列的数据流和处理模块。
数据流表示系统中的数据传输通道,而处理模块则表示对数据进行处理和转换的功能模块。
数据流和处理模块之间通过连接关系进行组织,形成一个数据流图,描述了系统中数据的流动和处理过程。
在数据流图中,数据流和处理模块分别表示为节点,节点之间的连接表示数据流的传输。
数据流图可以用于描述系统的结构和功能,同时也可以用于分析系统的性能和效果。
通过对数据流的分析,可以发现系统中的数据依赖和关系,并通过对数据流的优化,提升系统的性能和效率。
面向数据流的设计方法具有以下几个优点:首先,能够清晰地描述系统的结构和功能。
通过数据流图,可以直观地了解系统中数据的流动和处理过程,以及各个处理模块之间的依赖关系。
这有助于设计人员对系统进行全面的了解和把握,从而更好地进行系统设计和优化。
其次,能够方便地进行系统性能分析和优化。
通过对数据流的分析,可以发现系统中的瓶颈和性能瓶颈,并通过对数据流的优化,提升系统的性能和效率。
例如,可以通过对数据流的分析,发现系统中的热点数据和频繁访问的数据,从而进行数据的合理分配和缓存策略的优化,提升系统的性能和效率。
再次,能够支持系统的可扩展性和可维护性。
面向数据流的设计方法将系统拆分为一系列的数据流和处理模块,使得系统的功能和结构更加清晰和模块化。
这样,在需要进行系统扩展和功能调整时,只需要对相应的数据流和处理模块进行修改和调整,而不需要对整个系统进行重构,从而提高了系统的可扩展性和可维护性。
最后,能够支持分布式系统的设计和实现。
面向数据流的设计方法是一种自然适合分布式系统设计的方法,因为数据流的分析和处理是分布式系统中常见的任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-7-8
32
9.3事务分析
确定流界
2013-7-8
33
9.3事务分析
事务分析
步骤五 把数据流图映射为事务处理型的程序结构。 事务处理型的程序结构由“ 输入”和“散转”两部分组成, 输入部分的构成方法如变换分析法,即从事 务处理中心开始, 沿输入通路向外推进,每个处理框映射为一个模块。 “ 散转 ”部分顶层为一“散转”模块,它总控所有对应于每 一动作路径的控制模块,每条动作路径都根据它的信息流特征 映射为一个程序子结构。
9.2变换分析
传感器监测子系统输出流部分的程序结构
2013-7-8
23
9.2变换分析
变换分析
“传感器监测子系统”二级分解的结果见图9.12,它仅仅是程 序结构的“雏形” ,后续的复审和精化会反复修改。 程序结构的模块名隐含模块功能,必须为每个模块写一个简要 的处理说明,包括: ①进出模块的信息(接口描述); ②模块的局部信息; ③处理过程陈述,包括主要的判断点和任务; ④对有关限制和一些专门特性的简要说明(例如,文件I/O, 与硬件相关的特性,特殊的实时要求等等)。 这些描述构成第一版设计规格说明书。
典型的程序结构
设计良好的软件结构通常顶层扇出比较高,中层扇出较少, 底层又高扇入到公共的实用模块中去。
2013-7-8
30
9.3事务分析
用户交互子系统的二级数据流图
2013-7-8
31
9.3事务分析
事务分析
事务分析法可分为七个步骤 步骤一复审基本系统模型; 步骤二复审并精化软件数据流图; 步骤三确定数据流图的特性;/前三步与变换分析法相同/ 步骤四找出数条动作路径的公共源头,即为事务中心,确定 由事务中心发出的每一动作路径的数据流特性。 图9.14的事物中心是 “启动命令处理”框。 图9.15划定接受路径与所有动作路径的界限,判定每一动 作路径上数据流的特征。
2013-7-8 3
第九章 面向数据流的设计方法
9.1基本概念和设计过程
用SD方法将数据流图转换为软件结构 (1)确定信息流的类型; (2)划定流界; (3)将数据流图映射为程序结构; (4)提取层次控制结构; (5)通过设计复审和启发式策略精化结构。 第三步所用映射方法涉及信息流的类型。 信息流分为变换流和事务流两种类型。
2013-7-8
17
9.2变换分析
一级分解
2013-7-8
18
9.2变换分析
变换分析
一级分解 图9.8展示的是一个简单三叉结构,实际处理大 型系统的复杂数据流时,可能需要两个甚至多个模块 对应上述一个模块的功能。 “一级分解”的原则 在完成控制功能并保持低耦合度、高内聚度的前 提下尽可能减少模块数。
2013-7-8 9
9.2变换分析
“家庭保安系统”的顶级数据流图
家庭保安系统-传 感器监测子系统的 变换分析步骤。
2013-7-8
10
9.2变换分析
变换分析
步骤二 复审和精化软件数据流图 精化软件需求规格说明书中的分析模型,直至获得足够详细 的DFD。 如,由“传感器监测子系统”的第一级(图9.5的局部)和第 二级(图9.6)DFD进 一步推导出第三级数据流图(图9. 7)。 每个变换对应一个独立的功能,可望用一 个具有较高内聚 度的模块实现,至此已有足够的信息用于设计“传感器监测子 系统”的程序结构,精化过程亦可结束。
“传感器监测子系统”
2013-7-8
16
9.2变换分析
变换分析
步骤五 执行“一级分解”导出具有三个层次的程序结构。 顶层为总控模块; 底层模块执行输入、计算和输出功能; 中层模块控制、协调底层的工作。 如图9.8所示,主控模块负责协调下面几个中层控制模块: 输入流控制模块,接收所有输入数据; 变换流控制模块,对内部形式数据进行加工、处理; 输出流控制模块,产生输出数据
2013-7-8 6
9.1基本概念和设计过程
基本概念和设计过程
在大系统的DFD中,变换流与事务流往往交织在 一起。 在基于事务流的系统中,当信息沿动作路径流动时 可能呈现变换流的特征,变换分析法与事物分析法需 要交叉使用。
任何设计过程都不应该也不可能完全机械化,人的 判断力和创造性往往起决定作用。
2013-7-8
14
9.2变换分析
变换分析
步骤四 划定输入流和输出流边界孤立变换中心。 输入、输出流边界的划分可能因人而异,不同的设 计人员可能把边界沿着数据通道向前推进或后退一个 处理框,这对最后的软件结构影响不大。
“传感器监测子系统”的流界在图9.7中用虚线表示。
2013-7-8
15
9.2变换分析
2013-7-8
19
9.2变换分析
传感器监测子系统一级分解结果
控制 模块的 名字概 括了所 有下属 模块的 功能。
2013-7-8
20
9.2变换分析
二级分解
步骤六 执行“二级分解” 把数据流图中每个处 理框映射成程序结构中 一个适当的模块,二级 分解过程是从变换中心 的边界开始沿输入、输 出通道向外移动,把遇 到的每个处理框映射为 程序结构中的一个模块。
2013-7-8
39
9.4启发式设计策略
启发式设计策略
(1)改造程序结构,减小耦合度,提高内聚度。 应从增强模块独立性的角度,对程序结构雏形的模 块进行分解或合并,力求降低耦合度,提高内聚度。
(2)改造程序结构,减少高扇出,在增加程序深度 的前提下追求高扇入。
2013-7-8
40
9.4启发式设计策略
2013-7-8
24
9.2变换分析
传感器监测子系统的程序结构“雏形”
2013-7-8
25
9.2变换分析
变换分析
步骤七 采用启发式设计策略,精化所得程序结构雏形,改 良软件质量。
对于程序结构的雏形,以“模块独立”为指导思想, 对模块或合或拆,旨在追求高内聚、低耦合,易实现、 易测试、易维护的软件结构。
2013-7-8
4
9.1基本概念和设计过程
基本概念和设计过程
变换流
在基本系统模型(即顶级数据 流图)中信息通常以“外部 世界”所具有的形式进入系 统,经过处理后又以这种形 式离开系统。 输入信息流沿传入路径进入系 统,同时由外部形式变换为 内部形式,经系统变换中心 加工、处理,作为输出信息 流又沿传出路径离开系统, 并还原为外部形式。
2013-7-8
37
9.3事务分析
用户交互子系统的程序结构雏形
2013-7-8
38
第九章 面向数据流的设计方法
9.4启发式设计策略
变换分析和事务分析的最后一个步骤都是运用启发 式策略对程序结构雏形进行优化,以提高软件设计的 整体质量。
启发式设计策略是人们从长期的大量软件开发过程 中积累总结的经验。
第九章 面向数据流的设计方法
传统的软件工程方法学采用结构化设计(Structured
Design,SD)技术,完成软件设计工作,通常把软件设计工作
划分为概要设计和详细设计这样两个阶段。 概要设计的主要任务是,通过仔细分析软件规格说明,
适当地对软件进行功能分解,从而把软件划分为模块,并且
设计出完成预定功能的模块结构。详细设计阶段详细地设计 每个模块,确定完成每个模块功能所需要的算法和数据结构。
2013-7-8
26
9.2变换分析
变换分析
修改“传感器监测子系统”的程序结构雏形 (1)因只存在唯一一条传入路径,故输入控制模块可删除; (2)由变换中心产生的整个子结构可归并为“建立警报条件” 一个模块(选择电话号码的功能纳入其中),变换控制模块不 再需要; (3)“格式化显示”和“生成显示”两个模块归并为“产生 显示”一个模块。
2013-7-8
34
9.3事务分析
事务流映射
2013-7-8
35
9.3事务分析
事务分析
用户交互子系统的一级分解
2013-7-8
36
9.3事务分析
事务分析
步骤六 分解并精化事务结构以及每条动作路径所对应的结构。 这些子结构是根据流经每一动作路径的数据流特征,采用本 节或上节所述设计步骤导出的。 图9.18给出了各条动作路径映射后的程序结构。 步骤七 使用启发式设计策略,精化所得程序结构雏形,改良软件质 量。 这一步骤与变换分析法相同。
2013-7-8
29
第九章 面向数据流的设计方法
9.3 事务分析
当数据流具有明显的事务特征时,即能找到一个事务(亦称触 发数据项)和一个 事务中心,采用事务分析法更为适宜。 下面以“家庭保安系统”中“用户交互子系统”为例,说明事 务分析法。 该子系统的第一级数据流图如图9.5所示,精化后得到如图9. 14所示第二级 数据流图。图中“用户命令数据”流入系统 后,沿三条动作路径之一离 开系统,若将数据项“命令类型” 看作事务,该子系统的信息流具有明显的事务 特征。 事务分析法的步骤与变换分析方法基本类似,主要差别在于从 数据流图到程序 结构的映射。
2013-7-8
若数据流图所描述的 信息流具有上述特征 则称作变换流。
5
9.1基本概念和设计过程
基本概念和设计过程
事务流 由于基本系统模型呈变 换流,故任意系统中的信 息均可用变换流刻画。 若数据流具有如图9.2所 示形状,称“事务流”。 单个数据项称为事务 (transaction)沿传入 路径(接受通道)进入系 统,由外部形式变换为内 部形式后到达事务中心, 事务中心根据数据项计值 结果从若3-7-8
21
9.2变换分析
变换分析
二级分解 DFD的处理框与程序结构模块一一对应 按照软件设计原则,可能需要几个处理框聚合为一个 模块,或者把一个处理框细分为几个模块。 应根据“良好”设计的标准,进行二级分解。 由图9.7输出流部分导出的程序结构如图9.11所示。