第七章 面向数据流的设计方法.
面向数据流的设计方法
14
②输出模块旳下属模块旳设计 输出模块旳功能是将调用模块提供旳数据输出。 为每一种输出模块设计两个下层模块:一种是
变换模块,另一种是输出模块。 ③变换模块旳下属模块旳设计
为变换模块设计下属模块没有一定旳规则可循, 此时需研究数据流图中相应加工旳构成情况。
15
§7.3 事务分析 1.事务型程序构造 ⑴构造:
21
⑴找出事务中心和各活动途径 ⑵设计模块构造旳顶层和第一层模块: 首先为事务中心设计一种主模块; 然后为每一条活动途径设计一种事务处理模 块; 最终为输入部分设计一种输入模块,假如各 活动途径是发散旳,则不需设计输出模块, 假如象图中各活动途径又集中到一种加工, 则需设计输出模块。
22
⑶设计中、下层模块 输入模块和输出模块旳下属模块
26
④充分利用多种技巧:扇入和扇出。即扇入越多 越好,而它调用其他旳模块一般不超出7个;模 块旳大小。即相对独立,功能单一,语句不超出 100行;作用范围和控制范围。即要求控制模块 在上层,作用模块在下层且两者不离太远。 ⑤程序构造图:直观清楚,易了解,为后来旳编 程、测试、维护提供了良好旳条件。
3
变换型 ⑴构造:
I
P
O
输入模块I从输入设备或存储器取得数据, 利用处理模块P(加工模块或变换模块)对这些 数据作处理后,最终将成果经过输出模块O 送出到输出设备或存储器。
4
主模块
输入成绩 (五分制)
成绩转换(五分 制→百分制)
输出成绩 (百分制)
5
⑵变种 有多种“主变换”,多种输入数
据,多种输出数据,无“主变换”等。
面向数据流的设计方法把
面向数据流的设计方法把在面向数据流的设计方法中,数据是系统的核心。
它们在不同的组件之间流动,通过组件之间的连接和交互来实现系统的功能。
这种设计方法将系统的输入、输出和中间过程都看作是数据流,并通过对这些数据流的定义和分析来进行系统设计。
其主要特征包括以下几个方面:首先,面向数据流的设计方法注重数据的流动和传递。
它将系统看作是一个数据处理的流程,通过对数据的处理和转换来实现系统的功能。
在系统设计过程中,需要明确数据的输入和输出,并定义数据流的传递路径和方式。
其次,面向数据流的设计方法注重数据的分析和处理。
在系统设计的过程中,需要对数据进行分析,划分数据流,确定数据的属性和规则,并通过对数据流的处理和转换来实现对数据的加工和分析。
此外,面向数据流的设计方法强调系统的组件和交互。
系统由一系列组件构成,每个组件负责一部分功能。
这些组件之间通过数据流进行连接和交互,通过输入数据流和输出数据流的交互来实现系统的功能。
最后,面向数据流的设计方法注重系统的可扩展性和灵活性。
通过将系统设计为数据流的方式,可以方便地扩展系统功能和调整系统结构。
新增功能可以通过新增组件和修改数据流来实现,而不需要对系统的整体结构进行大规模的改动。
面向数据流的设计方法在实际系统设计和开发中有着广泛的应用。
它可以用于各种类型的系统,包括数据仓库、大数据分析、物联网等。
面向数据流的设计方法能够提高系统的可维护性和可扩展性,降低系统的复杂性,提高开发效率。
总之,面向数据流的设计方法是一种基于数据流动的系统设计思想,通过对数据流的分析和处理来实现系统的功能。
它注重数据流的传递和处理,强调系统的组件和交互,提供了一种可扩展和灵活的系统设计方法。
在实际系统设计和开发中,面向数据流的设计方法具有重要的价值和应用前景。
面向数据流的软件设计方法PPT课件
第38页/共40页
39
第39页/共40页
谢谢您的观看!
40
第40页/共40页
(c) 如果账户余额大于等于取款金额,则进入“正常取款处
理”
19
第19页/共40页
内容
5.1
数据流图与数据字典
5.2
实体关系图
5.3
面向数据流的分析过程
5.4
面向数据流的设计过程
5.5
启发式设计策略
20
第20页/共40页
(1)基本概念和设计过程
•
面向数据流的方法能方便地将数据流图转换为软件结构,其过程分为五步:
8
第8页/共40页
内容
5.1
数据流图与数据字典
5.2
实体关系图
5.3
面向数据流的分析过程
5.4
面向数据流的设计过程
5.5
启发式设计策略
9
第9页/共40页
引入实体关系图的原因
• 在数据密集型应用问题中,对复杂数据及数据之间复杂关系的分析和建模将成为需求分析的重要任务。 • 显然,这项任务是简单的数据字典机制无法胜任的。 • 所以,有必要在数据流分析方法中引进适宜于复杂数据建模的实体关系图。
3. 采用通常的功能分解方法,按照“强内聚、低耦合”原则逐个对处理功能进行精化;与此同时 逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。
4. 在精化过程中必须维持各级数据流图的平衡。
5. 精化过程应适可而止,避免涉及软件设计细节。
15
第15页/共40页
示 例 : AT M 顶 级 数 据 流 图
实体关系图
5.3
面向数据流的分析过程
5.4
软件工程中面向数据流的设计方法共40页
41、学问是异常珍贵的东西,从任何源泉吸 收都不可耻。——阿卜·日·法拉兹
42、只有在人群中间,才能认பைடு நூலகம்自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别人所说的话,则需要头脑。—— 玛丽·佩蒂博恩·普尔
44、卓越的人一大优点是:在不利与艰 难的遭遇里百折不饶。——贝多芬
软件工程中面向数据流的设计方法
11、用道德的示范来造就一个人,显然比用法律来约束他更有价值。—— 希腊
12、法律是无私的,对谁都一视同仁。在每件事上,她都不徇私情。—— 托马斯
13、公正的法律限制不了好的自由,因为好人不会去做法律不允许的事 情。——弗劳德
14、法律是为了保护无辜而制定的。——爱略特 15、像房子一样,法律和法律都是相互依存的。——伯克
面向数据流设计方法
面向数据流设计方法面向数据流设计方法是一种软件设计方法,它将系统的功能和数据处理看作是一连串的数据流,通过对数据流的定义、分析和优化,来设计和构建高效可靠的软件系统。
这种设计方法的核心是关注数据流和数据处理的过程,强调对数据流的管理和控制。
在面向数据流设计方法中,系统功能被分解为多个数据流,每个数据流都有一个明确的输入和输出。
设计人员需要通过对数据流的分析,确定数据流之间的依赖关系和处理逻辑,以便实现系统的功能。
在设计过程中,可以利用一些工具和技术,如数据流图、流程图、数据字典等,来帮助描述和分析数据流的流转和处理过程。
面向数据流设计方法的优点之一是能够清晰地描述和分析数据流的过程,使设计人员更容易理解系统的功能和数据处理流程。
通过对数据流的定义和分析,可以发现系统中的潜在问题和瓶颈,并进行针对性的优化和改进。
此外,面向数据流设计方法还可以提高系统的可靠性和可维护性,因为它将数据流和数据处理的过程进行了明确的划分和组织,使得系统的不同部分相互独立,易于维护和扩展。
在实际应用中,面向数据流设计方法可以广泛应用于各种软件系统的设计和开发。
例如,在信息系统中,可以使用面向数据流的方法,对数据的流转和处理进行建模和优化,以提高系统的效率和可靠性。
在嵌入式系统中,面向数据流的设计方法可以帮助设计人员对数据流进行分析和建模,以满足系统对数据处理速度和实时性的要求。
在大数据处理系统中,面向数据流的设计方法可以帮助设计人员优化数据的流转和处理,以提高系统的性能和扩展性。
然而,面向数据流设计方法也存在一些挑战和限制。
首先,面向数据流的设计方法需要对系统的功能和数据流进行详细的分析和定义,这需要投入大量的人力和时间。
其次,面向数据流设计方法在处理复杂的系统和大规模数据时,可能会导致数据流的混乱和复杂,难以理解和管理。
此外,面向数据流的设计方法在应对动态和实时数据流时,可能会面临数据处理速度和实时性的挑战,需要采取适当的优化和改进措施。
软件工程面向数据流的分析与设计方法PPT课件
第15页/共174页
3. 加工
加工也称为数据处理,是对系统中的数据流进行的某些操作或变换。 图中每个加工都要有对应的名称,最常见的名称是由一个表明具体动作 的动词和一个表明处理对象的名词构成的,如计算应发工资、打印工资 清单等。
4. 数据存储
在数据流图中用于保存数据的数据文件被称为数据存储,它可以是数 据库文件或任何其他形式的数据组织。流向数据存储的数据流可理解为 向文件写入数据或对文件进行查询,流出数据存储的数据流可理解为从 文件中读取数据或得到查询结果。
数据流 数据项(数据元素) 数据结构 数据存储 处理逻辑(基本加工) 外部实体
第34页/共174页
数据字典
数据字典的提出背景: 虽然数据流图能够形象、清晰地描述数据在系统中流动、
加工、存储的情况,但数据流图中的许多构成元素,如数据 流、数据存储、加工,仅依靠名称并不能反映其本质含义, 因此必须对这些构成元素进行严格的定义。作为对数据流图 的补充,数据字典(DD,Data Dictionary)能够准确地定义数 据流图中各组成成分的具体含义,二者共同构成了系统的逻 辑模型。
第9页/共174页
数据流图的图形记号
外部实体 位于软件系统边界之外的信息生产者或消费者
转换
转换数据流的处理过程,又称泡(bubble)
数据流
在转换之间有向流动的数据项或数据项集合
数据源
*
+
⊕
为一个或多个转换提供数据源或数据存储服务的缓冲 区、文件或数据库
“与”,即同时输入/出;
“或”,即至少一项输入/出; “异或”,即非同时输入/出。
4.应按照层次给每个加工编号,用于表明该加工所处的 层次及上 、下层的父图第与31页子/共图174的页 关系 。 编号的规则为 :
面向数据流设计方法的七个步骤
面向数据流设计方法的七个步骤一、分析需求在进行数据流设计之前,首先需要对系统的需求进行全面的分析。
需要明确系统将要处理的数据类型、数据来源、数据流向以及数据的处理过程等内容,这些都是进行数据流设计的基础。
二、绘制数据流图在需求分析的基础上,可以开始绘制数据流图了。
数据流图是一种图形化的工具,用于描述系统中数据的流动以及数据处理的过程。
通过数据流图可以清晰地看到数据的输入、输出以及数据之间的关系,从而为后续的数据流设计提供重要的参考。
三、识别数据流在绘制数据流图的过程中,需要识别出系统中存在的数据流。
这些数据流通常包括输入数据流、输出数据流以及内部数据流。
需要对每个数据流进行详细的描述,包括数据流的名称、数据流的来源、数据流的去向以及数据流的内容等。
四、识别数据存储除了数据流之外,系统中还包括大量的数据存储。
在进行数据流设计时,需要对这些数据存储进行识别和描述。
需要确定每个数据存储中保存的数据类型、数据的格式、数据的存储位置以及数据的访问权限等内容。
五、识别数据处理数据处理是系统中非常重要的一个环节,涉及到数据的加工、转换和处理等过程。
在进行数据流设计时,需要对系统中涉及的数据处理进行识别和描述。
需要明确每个数据处理的功能、输入数据和输出数据以及数据处理的执行顺序等内容。
六、验证数据流图绘制数据流图之后,需要对其进行验证。
需要确保数据流图能够真实地反映系统的数据流动和数据处理的过程,同时需要对数据流图进行合理性和一致性的检查,以确保数据流图的准确性和完整性。
七、优化数据流图在验证数据流图之后,可以对其进行优化。
需要对数据流图中存在的不合理或冗余的部分进行调整和优化,以提高数据流图的可读性和实用性。
总结:面向数据流设计方法是一种重要的系统设计方法,通过对数据流进行系统化的设计和分析,可以有效地帮助系统设计人员理清系统中数据的流动和处理过程。
遵循以上七个步骤进行数据流设计,可以为系统设计提供重要的支持,使得系统设计更加科学化、规范化和高效化。
面向数据流设计方法
面向数据流设计方法面向数据流设计方法是一种新的软件设计方式,它可以帮助软件开发者有效地处理和分析海量数据,实现各种应用程序的目标功能和业务目标。
在这个方法中,数据被视为流动而非变量,程序是基于事件的而非基于状态的,这使得软件程序可以有效地应对各种输入,具有更高的可扩展性和更好的性能表现。
下面我们将详细介绍面向数据流设计方法的基础概念、设计过程和应用场景。
一、基础概念1. 数据流数据流是一组连续的数据,它可以通过不同的输入源、传输协议、处理规则和输出方式来实现数据的传输和转换。
数据流可以是单向的或双向的,也可以是批量的或流式的。
在面向数据流的设计中,所有数据都被视为流动的,程序需要随时根据数据流中不同的事件和状态进行处理和响应。
2. 事件事件是数据流中的一个单元,它表示一种特定类型的数据或信号,并且具有一个唯一的标识符。
事件可以是简单的数据单元,也可以是复杂的数据结构,如消息、命令、请求等。
在面向数据流的设计中,程序需要按照时间顺序对事件进行处理和响应,以实现不同的业务逻辑和功能需求。
3. 处理器处理器是面向数据流设计方法中的核心组件,它负责处理输入数据流中的各种事件,并将结果发送到输出数据流中。
处理器可以是独立的模块或对象,也可以是一个完整的软件系统。
在面向数据流的设计中,处理器需要根据不同的输入源、传输协议和处理规则来识别、解析和转换事件数据,同时也需要将处理结果传递给其他处理器或输出到某个数据存储区域,以便后续的数据处理和分析。
二、设计过程面向数据流的设计过程包括以下几个步骤:1. 确定业务需求和目标功能在进行面向数据流的设计前,首先需要确定业务需求和目标功能,包括输入数据源、处理规则、计算逻辑、输出结果等方面。
这有助于明确程序的设计方向和目标,避免过度设计和无用的功能。
2. 设计数据流结构和处理器模块在确定业务需求和目标功能后,需要设计数据流结构和处理器模块,这需要根据业务需求和处理规则确定数据流中的事件类型、处理器的输入输出参数和计算逻辑。
第讲面向数据流的软件设计方法课件 (一)
第讲面向数据流的软件设计方法课件 (一)“面向数据流的软件设计方法”是一门探讨如何更好地设计和构建面向数据流的软件系统的课程。
在这门课程中,学习者将学习如何使用数据流的方式来描述系统中的所有数据交互过程,以及如何将这些数据流整合到软件设计和构建中去。
本文将逐个方面详细介绍这门课程内容。
一、概述首先,该课程将介绍什么是面向数据流的软件设计,并解释为什么它是一个有用的软件设计方法。
通过一些案例和实例,学习者将认识到这个方法的更多细节,并通过实践来更好地理解该方法。
二、数据流建模接下来,学习者将学习如何使用数据流建模来描述系统中的数据交互过程。
在这部分课程中,学习者将研究数据流图和数据字典,以及数据流的类型和特性。
通过实践设计简单的系统,学习者将更好地理解数据流建模的细节。
三、数据流分析和设计在这部分课程中,学习者将学习如何使用数据流分析和设计来构建可行的系统模型。
学习者将学习如何使用对数据流图和数据字典的分析来制定系统需求,并使用这些需求来设计一个符合需求的系统。
学习者将实践使用数据流工具来构建和测试系统,以确保其符合需求和规格。
四、数据流实现在数据流实现这部分课程中,学习者将了解如何将数据流模型转化为可执行的软件。
学习者将学习如何编写程序来执行数据流模型中的任务,并了解如何维护数据流程序的安全性和可靠性。
学习者将通过实践来编写数据流程序,并使用测试和故障排除来确保其正确性和可靠性。
五、数据流维护和改进在这个最后一部分课程中,学习者将学习如何维护和改进数据流系统。
学习者将了解如何监控系统以识别问题,并使用改进和升级技术来提高系统的性能和可靠性。
此外,学习者还将了解如何维护系统文档和如何管理项目开发过程。
总之,“面向数据流的软件设计方法”课程是一门非常实用的课程,它将为学习者提供设计和构建软件系统的强大工具和技术。
通过该课程,学习者将能够更好地理解数据流模型和数据流设计过程,以及如何将这些工具和技术应用到实际软件项目中去。
面向数据流设计方法
具有边界的数据流图
面向数据流设计方法-变换分析
5.完成一级分解
数字仪表板的第一级分解
面向数据流设计方法-变换分析
6.完成第二级分解
数字仪表板的第二级分解-输入结构
数字仪表板的第二级分解-变换结构
数字仪表板的第二级分解-输出结构
面向数据流设计方法-变换分析
7.对初步软件结构精化
面向数据流设计方法-事务分析
面向数据流设计方法-变换分析
1.复查基本系统模型 确保系统输入和输出数据符合实际。 2.复查并精化数据流图 正确、处理项完成相对独立功能。
数字仪表板系统数据流图
面向数据流设计方法-变换分析
3.确定数据流图具有变换特性还是事务特性 没有明显事务中心,为变换型。 4.找出变换中心 确定数据流边界。
1.模块--在SC图中用矩形框表示,并用名字来标记它 2.模块的调用关系和接口
调用模块
A
数据信号
A(查询学生)
学 号 查找 成功 信号
控制信号
B
被调用模块
-模块调用关系 --
B(查找学生记录)
模块间接口的表示
面向数据流设计方法-软件结构图
M M
A
B
A
B
C
模块M有选择地调用模块A与B。 判定为真调用A,为假调用B
面向数据流设计方法
面向数据流的设计要解决的任务,就是将软件需求 分析阶段生成的逻辑模型数据流图映射(Mapping)表 达软件系统结构的软件结构图。 结构化设计属于面向数据流的设计方法。
面向数据流设计方法
软件结构图 信息流类型 面向数据流设计过程 变换分析 事务分析
面向数据流设计方法-软件结构图
信息流有明显事务特点(事务中心),采用事务分 析方法。 软件结构:一接收分支和一发送分支。
面向数据流的设计方法
面向数据流的设计方法
面向数据流的设计方法是一种设计软件系统的方法,该方法将整个系统看作是一个数据流的处理过程,系统的各个组件通过不同的数据流进行通信和交互。
在面向数据流的设计方法中,一个系统可以被抽象为多个组件,每个组件负责处理一部分数据,并将处理结果发送给其他组件。
数据流则用于描述组件之间的通信和数据传输方式。
以下是面向数据流的设计方法的主要步骤:
1. 确定系统的功能和需求:首先,需要明确系统需要实现的功能和满足的需求。
这可以通过需求分析和讨论来确定。
2. 划分组件:将系统划分为多个组件,每个组件负责处理一部分数据或实现一个具体的功能模块。
组件之间应该是独立的、可重用的,并且通过数据流进行通信。
3. 定义数据流:确定系统中各个组件之间的数据流,并定义数据在组件间的传输方式。
数据流可以是单向的,也可以是双向的,可以通过消息队列、共享内存、网络等方式进行传输。
4. 实现组件逻辑:对于每个组件,需要定义其输入数据流和输出数据流,以及
具体的处理逻辑。
可以使用编程语言和工具来编写组件的代码。
5. 集成和测试:将各个组件进行集成,并进行综合测试,确保数据在组件间的流动和处理逻辑的正确性。
6. 优化和扩展:对于已经实现的系统,可以通过优化算法、增加组件功能或添加新的组件来提高性能和扩展系统的能力。
面向数据流的设计方法具有灵活性和可扩展性,可以将复杂的系统分解为简单的组件,并通过数据流进行组合和协同工作。
这种方法适用于需要处理大量数据、实时性要求高、模块化程度高的系统设计。
面向数据流的设计方法.
mph
gph
计算 燃料 消耗
发出 警告 铃声
mph
显示 警告铃声
5、第一级分解 6、第二级分解
mpg
产生 mpg 显示
mpg 显示
产生 mph 显示
mph 显示
1、复查基本系统模型
• 目的:确保系统的输入数据和输出数据 符合实际。
• 措施:重新检查数据流图。
2、复查并精化数据流图
• 精化原则
6、进行“第二级分解”
驱动仪表里程
发出警告铃声
发光二极 管显示
未经精化的输出结构
6、进行“第二级分解”
• 此时,还必须对每一个模块进行下面的 补充说明:
– 进出该模块的信息; – 模块内部的信息;
选用IPO 图说明
– 过程陈述,包括主要判定点及任务;
活动通路
变换型数据流举例
传入部分
变换中心
传出部分
输入 信息
格式 检查
正确 信息
结果 处理
数据 显示
物理 输入
逻辑 输入
逻辑 输出
物理 输出
特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD
事务型数据流图举例
B
L
E
A
I
C
F
H
M
O
D
G
N
混合型的大型软件系统
T 事务中心
传入
变换 传出
基本概念
(SPS)
收集 并求 平均
△SPS △SPS
产生
加速/减 速显示
下箭头
数据流图
燃料流量 传感器信号
3、确定数据流 读入
图的类型
并核实
燃料流量
面向数据流的设计方法把
面向数据流的设计方法把
面向数据流的设计方法是一种重要的软件设计方法,主要用于处理数据流的输入和输出。
该方法基于数据流的概念,将系统视为一系列数据流,每个数据流都有自己的状态和流量控制策略。
该方法的主要优点是可以高效地处理大量数据,提高系统的可靠性和可维护性。
在面向数据流的设计方法中,设计人员需要考虑以下几个方面:
1. 数据流:数据流是系统中最重要的组成部分,表示系统中的数据流动。
数据流可以分为输入、输出、内部数据流等不同类型,每种类型的数据流都有自己的特点和控制策略。
2. 状态:状态表示数据流的当前状态,包括输入、输出、等待、错误等不同类型。
状态可以用来控制数据流的流动,从而实现流量控制和数据校验等功能。
3. 控制策略:控制策略是指数据流在系统中的流动方式。
数据流可以通过阻塞、等待、竞态条件等方式实现流量控制,还可以通过跳转、分支等方式实现数据流的变化。
4. 数据结构:数据结构是系统中的一个组成部分,表示系统中的数据存储方式。
数据结构可以是数组、链表、栈、队列等不同类型的数据结构,每种数据结构都有自己的特点和应用场景。
5. 错误处理:错误处理是系统的一个重要组成部分,用于处理系统中可能出现的错误。
错误处理包括异常处理、错误检测和恢复等功能,可以帮助系统在出现故障时快速恢复,保证系统的可靠性和稳定性。
在面向数据流的设计方法中,设计人员需要根据系统的需求和要求,设计合适的数据流、状态、控制策略、数据结构和错误处理等组成部分,从而实现高效
的数据流处理和系统维护。
软件工程_第七章_面向数据流的设计方法
第七章面向数据流的设计方法面向数据流的设计方法,即通常所说的结构设计法(简称SD方法),是根据需求阶段对数据流的分析(一般用数据流图和数据字典表示)设计软件结构。
数据流图主要描绘信息在系统内部加工和流动的情况,面向数据流的设计方法根据数据流图的特性定义两种“映射”,这两种映射能机械地将数据流图转换为程序结构。
该方法的目标是为软件结构设计提供一个系统化的途径,使设计人员对软件有一个整体的认识。
本章所述技术用于软件的概要设计描述,包括模块、界面和数据结构的定义,这是所有后续开发工作的基础。
每种软件设计方法都有长处和不足,先用哪种方法首先应考虑它适用的范围。
任何软件系统都可以用数据流图表示,理论上,面向数据流的设计方法可用于任一种软件系统的开发。
然而,该方法对那些顺序处理信息且不含层次数据结构的系统最为有效,例如过程控制、复杂的数值分析过程、以及科学与工程方面的应用,等等。
当SD方法用于完全的数据处理时,即使系统中作用层次数据也同样行之有效。
从系统设计的角度出发,软件设计方法可以分为三大类。
第一类是根据系统的数据流进行设计,称为面向数据流的设计或者过程驱动的设计,以结构化设计方法为代表。
第二类是根据系统的数据结构进行设计,称为面向数据结构的设计或者数据驱动的设计,以LCP(程序逻辑构造)方法、Jackson 系统开发方法和数据结构化系统开发(DSSD)方法为代表。
第三类设计方法即面向对象的设计。
第一节基本概念和设计过程面向数据流设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。
该方法实施的要点是:①建立数据流的类型。
②指明流的边界。
③将数据流图映射到程序结构。
④用“因子化”方法定义控制的层次结构。
⑤用设计测量和一些启发式规则对结构进行细化。
一、在系统结构图(SC)中的模块在系统结构图中不能再分解的底层模块为原子模块。
如果一个软件系统的全部实际加工(数据计算或处理)都由底层的原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解的系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入 信息
物理 输入
变换中心 结果
传出部分
数据
正确 信息 格式 检查
逻辑 输入
处理
显示
逻辑 输出 物理 输出
特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD
事务型数据流图举例
B A
L
C
E
I
M N
F G
O
H
D
大型系统DFD中,变换型和事务型 结构往往共存:
传入 变换 传出
T
事务中心
在系统中,各个过滤器必须是相互独立的, 每一个过滤器对它的上游或下游的过滤器的 情况是不知道的,也不能做任何假设。 如果要求最终的输出结果与各个过滤器的执 行次序相关,就是一个数据流方式的体系结 构。 这种结构的优点是:数据流程设计明确,直 接支持复用,系统容易维护和升级,可以进 行某些性能分析(如流量、死锁等),容易 支持并行计算。
SafeHomede的第3层DFD
格式化标志类 型和位置 传 读取传感 感 器数据 数 据 获取响 置传感数 应信息 据标识 传感 器信 息
配置信息
配置数据 格式化 显示 建立警 报条件 号 码 表 警报数据 选择电话 号码
产生 显示
警报 类型
产生警 报信号
连通 电 话 电话网 号 产生拨号 码 脉冲 电话号码对应音频
由变换分 析产生
输入模块 主加工模块 输出模块
事务控制模块
由事务分 析产生
接受模块
动作发送模块
动作1模块 动作2模块 动作3模块
一 变换分析设计方法
步骤:
(1)复审基本系统模型
指顶层DFD和由外部提供的信息
(2)复审和精化软件数据流图
对DFD进行精化,直到获得足够详细的DFD。
期望达到:每个变换对应一个独立的功能,用一个高 内聚的模块实现。
第一级分解的方法
MC MA MT ME
第一级分解后的SC
MC
顶层
c,e
MA
传入模块
u,w c,e u,w
MT
中心变 换模块
ME
第一层
传出模块
第一级分解后的SC(另一种画法)
MC
p
c
e
e
c,p
r r
P
w,u
u,w
w
ME1
MA1 MA2
Q
R
ME2
传入分 支模块
中心加工 分支模块
传出分 支模块
(6)第二级分解(分解SC各分支)
SD系统结构特征可归纳为 两种典型形式:
变换型结构 事务型结构
数据流图可分为两种类型: 变换型数据流 事务型数据流
基本模型
变换型 输入 结构 变换 输出 中心
特征
由输入、变换 中心和输出三 部分组成
接受 事务型 路径
结构
事务 中心
动 作 路 径
具有在多种 事务中选择 执行某类事 物的能力
监控传感器的第2层DFD
显示格式 配置信息 传感器id 类型定位 异常数据 判别 读传感器 传感器id类型 传感器数据 拨号 电话号码拨音 传感器信息 警告类型 产生警告 信息
配置数据
SafeHomede的第3层DFD
格式化标志类 型和位置 传 读取传感 感 器数据 数 据 获取响 置传感数 应信息 据标识 传感 器信 息
例:SafeHomede的第0层DFD
控制面板
用户命令 和数据
显示信息
控制面板 显示
警告类型
SafeHomede 软件系统
传感器
传感器 状态 电话号码 拨音
警铃
电话线
SafeHomede的第1层DFD
控制 面板 配置 系统 配置请求 配置信息
用户命令 和数据
与用户 交互 开始 停止 密码
显示 控制 激活/不 信息 面板 状态信息 激活系统 显示 显示信息 警 和状态 密码 铃 检验id信息 传感器信息 处理 电 警告类型 监控 话 传感器 传感器状态 传感器 线 电话号码拨音
传 w,u w,u 出 ME ME 分 u w w u 支 的 W U Write W Put U 分 u v v v 解 U to V Write V V (1) (2)
中心加工分支的分解
MT
e p
Q
c,p
P
r
u,w r
R
(7)采用启发式设计策略,精化所得软件结构 以模块独立为指导思想,追求:高内聚、低 耦合、易实现、易测试和易维护
面向数据流的设计方法
2009.11
基本概念 面向数据流的设计方法(SD)是根 据需求阶段对数据流的分析(数据流图 和数据字典)设计软件结构
SD以数据流图为基础,它定义了把DFD 变换成软件结构的不同映射方法
DFD (问题结构)
映射 软件系统的结构 (程序结构)
The Data Flow Hierarchy
SD设计过程
确定信息流的类型 划定流界 将数据流图映射为程序结构 提取层次控制结构 精化结构
精化数据流图 流的类型
确定事务中心和各动作路径
映射为事务结构 提取控制结构
确定输入、输Leabharlann 流界映射为变换结构事务分析
变换分析
利用启发式策略精化软件结构 描述接口和全局数据结构 复审 详细设计
主模块
电 话 拨 号 音 频
(3)确定DFD的特性,判定为变换流还是事务流
主要根据主流的信息流类型判定,支流用于精化 (4)区分传入、变换中心、 传出部分,在 DFD 上 标明分界线
A
a
B
b
变换中心 C
传入 部分
c
P
d e D E
R p Q u
r
w
W 传出 部分
v U V
(5)第一级分解 (建立初始框架) 设计顶层和第一层模块
x a
P
b
y
level 0
a
c
p1
p2
f
p4
d level 1
p3
e
g
5
b
数据流模型
在数据流模型中,将系统分解为一系列功能模 块。 这种结构包括批处理和管道及过滤器。 在体系结构中的每一个成份都有一套输入和输 出数据,都依输入-处理-输出的方式工作。 进行数据变换的构件叫做过滤器。 把数据从一个过滤器的输出导入到另一个过滤 器的输入,就叫做管道。
变换型 数据流 结构
传入 部分 传入
变换 中心 变换
传出 部分
传出 动作 1
动作 2 动作 3
事务型 数据流 结构
接受 部分 接受
事务 中心 事务 分析
变换流示意图:信息以“外部世界”所具有的形式
进入系统,经过处理后又以这种形式离开系统
信息 外部 表示 输入流
信息流 输出流
交换流
内部 表示
变换型数据流举例
自顶向下分解,设计出每个 分支的中、下层模块
传 入 分 支 的 分 解
(1)
c
C
b
c,e MA
e
E
d
B
a
D
A
Get C Get E c e b d b d Get B B to C Read D D to E b a a (2) Read D A to B
传 入 分 支 的 分 解
c,e
c
MA
e