Data Flow style(数据流体系风格)

建议在观看过程中注意以下几个问题:
		Note1:什么样的系统需求,适用于数据流体系结构风格来实现?
		Note2:数据流体系结构风格的构件、连接件、约束关系?
		Note3:批处理 和 管道-过滤器的区别?应用实例?
		Note4:什么的系统需求,不适用与采用数据流体系结构风格?
			————>Data  flow  is not totally free data.数据流动有什么限制?
	(体系结构风格SA styless 的重点是应用) 

一、软件体系结构风格

软件体系结构:体系结构其实最初来自于建筑结构的启发,例如西方的歌特式结构建筑、文艺复兴式建筑
所以“风格”————>经过长时间的时间,被证明具有良好的工艺可行性、性能与实用性,并可直接用来**遵循与模仿**

哥特式结构建筑文艺复兴式结构建筑

软件体系结构风格
	1、描述一类体系结构
	2、独立于实际爱你问题,强调了软件系统中通用的组织结构
	3、在实践中被多次应用
	4、是若干设计思想的综合
	5、具有已经被熟知的特征,并且可以复用
所以软件体系结构风格的定义:
	描述特定领域中软件系统家族的组织方式的惯用模式,反映了领域中众多系统所共有的结构和语义特性,
	并指导如何将各个模块和子系统有效地组织成一个完整的系统。
Architecture style={
	Component/Connector vocabulary,
	Topology,Semantic Constraints
}

经典软件体系结构风格

	1、独立构件
	2、数据流
	3、以数据为中心
	4、虚拟机
	5、调用-返回
所以今天我们讲解数据流软件体系结构风格中的批处理、管道-过滤器软件体系结构风格

经典软件体系结构风格

二、数据流体系结构风格

数据流体系结构风格

一个直观实例:
在使用MS Excel中,改变某个单元格的值,则依赖于该单元格的其他单元格的值也会随之改变。

所以数据流体系结构风格的特征:
1、数据的可用性决定着处理(计算单元)是否执行
2系统结构由数据在个处理之间的有序移动决定
3、在纯数据流系统中,处理之间除了数据交换没有任何其他的交互

下面简单介绍一些数据流体系结构风格中的-**基本构件**
	基本构件:数据处理
		构件接口:输入端口和输出端口
			计算模型:从输入端口读数,经过计算/处理,然后写到输出端口

在这里插入图片描述

	数据流体系结构风格-**连接件**
		连接件:数据流
			单向、通常是异步、有缓冲
				接口角色:reader 和 writer
				 计算模型:把数据从一个处理的输出端口传送到另一个处理的出入端口

在这里插入图片描述
数据流体系风格如图:
Patterns of Data Flow in Systems数据流体系结构风格–典型数据流风格
在这里插入图片描述

一、批处理体系结构风格

批处理体系结构风格直观结构如图:
在这里插入图片描述直观结构
所以批处理体系结构风格中,数据的传输方式为:数据整体传输

	批处理体系结构风格-定义:	
		基本构件:独立的应用程序
			连接件:某种类型的媒介
				连接件敌营了相应的数据流图,表达拓扑结构
	批处理体系结构风格的定义可以如此定义:
		每个处理步骤是一个独立的程序
			每一步必须在前一步结束后才能开始
				数据必须是完整的,以整体的方式传递

批处理体系结构风格—应用案例:
在这里插入图片描述该系统要检测两个代码的相似性,所以要进行代码检测问题的划分,而每一个划分都可以成为一个独立的处理单元,每个单元之间就会产生不同的数据传输,而且每一个处理单元需要处理的数据格式都是不一样的,所以每一个处理单元接收数据文件之后,都要进行数据格式转换,所以采用批处理体系结构来进行数据之间的传输,能很好的解决接收文件之后的数据格式转换,如果采用管道-过滤系统进行处理,则每一个处理单元在运行时,都要不断地进行数据格式的转换,所以相比下来,批处理体系结构风格更适合进行这项工作。
在这里插入图片描述

二、管道-过滤器体系结构风格

首先在我们开始学习管道-过滤器体系结构风格之前,我们先来看看这张图(如下图供水系统),可能你还在疑惑这两者用什么关系呢?如果你弄到了这点,我想在你接下来对于它的学习会更深刻。
在这里插入图片描述
想象一下,我们在学校中的时候,我使用水的时候,水的流淌是时断时续的呢?还是一直都在流淌?该图供水系统中,水是先储存在排水池中,只要我们使用,它就会向我们供水,然后送水泵又会向排水池中送水,导致我们在使用水的时候一直都是有水的,不会产生断断续续的情况,联系一下,就像这个供水系统一样,管道-过滤器体系系统风格也是这样,每个过滤器都独立处理接入的数据,然后自己输出,不会受到总体的控制,如此当有数据来的时候,过滤器就处理,然后传入下一个处理单元,如此以来,就形成了一种连续的处理过程。如图:
在这里插入图片描述
管道-过滤器体系结构风格定义:
数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)

故此,要实现这样的体系结构,可以采用如下解决方案:
    1、把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接
		一个步骤的输出是另一个步骤的输入
    2、每个处理步骤由一个过滤构件实现
    3、处理步骤之间的数据传输由管道负责

——> 每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道

	构件:过滤器,处理数据流
		 一个过滤器封装了一个处理步骤
		 数据源点和数据终止点,可以看作是特许的过滤器
	连接件:管道,连接一个源和一个目的的过滤器
	管道将数据从过滤器输出移至过滤器输入 ,数据可能是ASCII字符流
拓扑:连接器定义数据流抓图 
样式不变量:过滤器是独立的

从源到接收器逐步转换数据(递增的读取和消费数据流),数据到来时便被处理,不是收集然后处理,即在输入被完全消费之前,输出便产生了。
在这里插入图片描述

管道-过滤器体系结构风格 —过滤器

目标:将源数据变换成目标数据
	    从数据流-->数据流的变换

在这里插入图片描述

故此过滤器的特点:
	无上下文信息
	不保留状态
	对其他过滤器无任何了解

管道-过滤器体系结构风格–管道:

	管道:将数据从过滤器的输出移至过滤器的输入(或设备或文件)。
		具备特点:	
			1、单向流
			2、可能具有缓冲区
			3、管道形成传输图
所以不同的管道中流动的数据流,可能具有不同的数据格式,数据在流过每一个过滤器是,被过滤器进行了丰富、
精炼、转换、融合、分解等操作,因而发生了变化。

在这里插入图片描述

管道-过滤器体系结构风格-应用实例
	1、编译器
	2、Unix管道
	3、图像处理
	4、星号处理
	5、声音与图像处理

**管道-过滤器体系结构风格的优势(Advantage)**
	1、使构件具有良好的隐蔽性和高内聚、低耦合的特点,可将整个系统的输入/输出行为看成
	    了多个过滤器的行为的简单合成
	2、支持软件复用,只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连
	    接起来
	3、系统维护和增强系统性能简单,新的过滤器可以添加到现有系统中来,旧的可以被改进
 	      的过滤器替换掉
	4、准许对一些如吞吐量、死锁等属性的分析,
	5、支持并行执行:每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
	   
	   **管道-过滤器体系结构风格--(disadvantage)**
	    	1、不适合处理交互的应用
	    	2、系统性能不高,并增加了编写过滤器的复杂性

总结:
批处理VS管道-过滤器

把任务分解成一系列固定顺序的计算单元&彼此间只能通过数据传递交互
在这里插入图片描述在这里插入图片描述

学习检测:
1【单选题】
数据流体系结构风格的特点为()。
A、无数据不工作
B、数据增量传输
C、有统一数据格式
D、存在数据中心

2【填空题】
批处理体系结构风格中,数据的传输方式为( )。

3【简答题】
请简要说明管道-过滤器体系结构风格中,过滤器相互独立的含义。

4【简答题】
请简要分析课程视频中“基于Eclipse重复代码检测工具”采用批处理体系结构风格的原因?

原文:https://blog.csdn.net/weixin_43452424/article/details/104529719

欢迎关注微信公众号:【 GoTobe 】,一起学习,一起成就那个 ta !
授之于鱼,也授之于渔

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用所提到的,"数据流的可达性问题"是指研究如何表示数据流以解决可达性问题。而数据流的转换是通过转换函数来操作的。引用指出,数据流问题的唯一约束是数据流事实必须是有限集,并且数据流转换函数必须在交汇操作(Union或Intersection)上是可分配的。***发现漏洞非常有帮助。然而,传统的污点分析较为耗时,不准确,且效率较低。除了污点分析外,很少使用数据流特性。 综上所述,"data flow fly"可能是一个与数据流分析相关的术语或概念,但根据提供的引用内容,无法进一步确定其具体含义。需要更多上下文信息来确定其含义和回答相关问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [IFDS开山之作:Precise Interprocedual Dataflow Analysis via Graph Reachability](https://blog.csdn.net/qq_37206105/article/details/119428468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [GREYONE Data Flow Sensitive Fuzzing](https://blog.csdn.net/zhang14916/article/details/102802713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值