简述软件体系结构

发布 2021-05-02 13:52:28 阅读 8493

_网络技术//

辑a ;搴;j犯盈心豫如}秘驻辩糖鞔织幻{。我}班}誓l8i耽黜腹{l移血j。也{氍t贬}8l州jor

饭店式建筑,住宅式建筑还要分为塔式、板式、商住两用式、别墅式。

.3.软件的层次结构。

层次性是软件问题分析、设计和实施的基本和普遍适用的方法,软件的完整结构都具有层次关系,软件层次关系框图如。

.3.软件的设计原则(1)抽象。

的信息隐蔽性,提高维护性。

.3软件体系结构的组成和设计原则。

分为:软件的基础结构和软件的层次结构。

.3.软件的基础结构。

软件的基础结构有控制流连接结构、部件连接结构、数据类型结构。

1)控制流连接结构。

软件体系结构的风格。

体系结构风格反映了众多系统所共有的结构和语义持性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。体系结构风格的不变部分使不同的系统可。

软件体系结构从不同的角度区分,可图1所示。

抽象表现事物的主要特征和属性,隐以共享同一个实现**。只要系统是采用蔽和忽略细节部分,并能用于概括普遍的、常用的、规范的方法来组织,就可使别的设具有相同特征和属性的事物,包括描述特计者很容易地理解系统的体系结构,例如,控制流连接结构包括:条件连接、循定数据对象的属性集合的数据抽象、对特如果有人把系统描述为“c/模式,则不。

环连接、查询方式连接、事件/中断方式定操作序列进行过程抽象和隐含了内部细必给出设计细节,人们立刻就会明白系统连接和共享信息方式连接。对应的程序节的控制逻辑的控制抽象等。结构包括:

顺序序列、条件转向(如语句)、循环结构(如,fo语向(如,01语句)等。

2)分而治之。

是如何组织和工作的。对于应用体系结构风格来说,由于视点的不同,系统设计师有个体系结构风格,必须根据特定项目的。

将大的问题分为小的几部分问题,自很大的选择余地。要为系统选择或设计某。

一。句语句)、事件/中断控制转上而下地分解策略。

3)封装和信息隐蔽。

具体特点,进行分析比较后再决定,体系结。

2)部件连接结构隐藏各部分处理的复杂性,采用封装构风格的使用几乎完全是特定的。

部件连接结构包括:过程调用方式的方式,只留出简单的、统一形式的访问方。

.1经典系结构风格。

经典体系结构是系统组织的惯用形式,含内部过程调用和远程过程调用)、事件/式。这样,可以减少划分各部分的依赖程中断触发方式和过程链接方式等。

3)数据类型结构。

度,增强可维护性。

4)模块化。

模块要具备可分解性、可组装性、可理。

并不直接运用于应用。

.1.管道过滤器风格。

管道过滤器风格也称数据流风格,这。

数据类型是最基本的软件体系结构,和软件结构的基础,离开数据结构的描述,软件体系结构很难表达清楚,基本数据类型包括:

即数据结构。数据结构是描述复杂算法解性、连续性、保护性。种风格以数据向的过程为核心,每个构。

5)高内聚和低耦合软件成份之间的关联越松散越好。

6)关注点分离。

软件设计要将关注点与非关注部分分。

件都有一组输入和输出,构件读输入的数。

流,如图2所示。

成份中各处理元素的关联越紧密越好,据流,经过内部处理,然后产生输出数据。

管道过滤器风格有如下优点:(1使人们对整个系统的理解简单化,线性结构,顺序表、向量、队列、链、表、串、排序、检索:

树形结构,二叉树、树;矩阵、广义表;

文件结构,顺序文件、散列文件、索引。

文件。离,更好地复用非关注点部分的软件成份,可理解系统的各功能抽象为“黑匣子”。

2)系统维护性好,新的过滤器可以添加到现有系统中未,旧的可以被替换。

3)支持复用,一个过滤器可以被多。

景的独立软件成分。

复杂结构,图、多维数组、集合、稀疏而关注点部分可以设定,采用选择条件、场。

7)策略和实现分离。

软件设计要将策略成分和实现成分次挂接,只要它们对数据的需求场合是一。

分离,至少在一致的。个软件成分中明。

4)支持并发,每个过滤器是作为一。

行执行。图1软件层次关系框图。

解释器、编译器、编辑器、转。

换器、管道过滤器、黑扳、生。

第六屡:麻用屡。

/ 成器、中间件等软件体系风格。

1的高诵用设计屏。

显分开,这样可个单独的任务完成,ft可与其它任务并。

提高维护性。

8)接口和实现分离。

第屡:系统结构模式层iit笛叩层.咨溜朝簪硼调唐层l

基于操作系统的任务、进程、消:

输入输出等资源管理。女。

女=5)系统的结构清晰,容易进行某些性能的分析,例如数据流量、死锁问题等。

6)使软件具有良好的高内聚、低耦但是,管道过滤器风格也存在很多缺。

一程序控制、数据结构、系。

二——1偎。 守。誉。

小。承。钉。景。

…一l软件设计要离,可保障成分。

一。— l状楚..史雹 |i地址、

目*』m目二1 l端u搜馗垣母,等响集岔。

将接口和实现分合的特点。

t处理器、存储器、时钟、i/第一层:计算由l硬件屡十—==端口及通道、缓存,等等。

广i嘲慧t/f

玻术专题//

牡i0箍娜il牡 i8鲥f《托嘲壤’簪掰。

张挠 }。叛l艇{牡vl霸i。 螂 0纰{。蝴张撬n。强牲鞘afj

图2管道过滤器(数据流)风格框图/一馏量计算。

卜:1)成分之间松散的耦合关系,可以增加系统成分连接、集成的灵活性;

2)由于成分之间的没有直接的联系,任何已有的软件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定留给中间层处理。

3)软件更易维护,替换某一软件成份,除了中间转接的适应,对其它成分影响极小。

事件驱动和隐式调用结构存在如下不。

足:1)消息序列无法控制。产生消息的软件成分和接收消息的软件成分完全自主。

点,其缺点如下:

独立,不受控制。

对象为中心,对象间的联系仅通过消息,并。

1)过滤器的独立特性导致交互处理以类和继承为构造机制,充分利用多态和困难,当需要增量显示改变时,这个问题尤动态绑定提供灵活性,来认识、理解、刻划为严重。同样的原因,也导致进程成为批客观世界和设计,构建相应的软件系统。

处理的结构。

2)响应速度低。相比直接方式的连接,无论怎样都会增加中间层的消耗,这会使消息的响应速度明显下降。

当整个系统中存在大量异步并发、相互之间无逻辑联系的组件的时候(如图形。

基于面向对象的软件提供封装、继承、

2)由于支持并发设计,两个相互独多态性、延迟技术手段,使得程序的修改立的过滤器,如果存在同步问题,则需要等限制在一个较小的范围,软件具有稳定花较大精力去协调。

用户界面),这是一种极好的控制方式。

.1。黑板知识库。

黑板知识库结构由以下三部分组成:

的结构,容易复用,现在很多大的系统都采。

面向对象同样有一定缺陷,对象的标改变,消息就不知去向,在系统中对象本来是独立的,但它们必须相互知道、懂得和。

3)需要处理数据在管道中的阻塞用了这种思想。状态。

尤其适合于批处理。

1)知识源:知识源包含分离的独立知识产生源,知识源之间不直接进行通信,它们之间的交互只通过黑板来完成。

2)黑板:黑板数据是按照与应用程。

从中,我们可以看出,管道过滤器风格识在发送消息时,必须知道,如果标识被3.1主程序与子过程。

主程序与子过程结构与程序语言的主理解,否则将无法协同完成工作。这一点又。

序相关的层次来组织解决问题的数据,知识源通过不断地改变黑板数据来解决问题。

3)控制:控制完全由黑板的状态驱。

程序和过程调用概念相对应,软件所有成使得他们似乎很密切相关,互为依赖。对分,都属于主程序和一系列的子过程的集象接受多个来自不同请求者的同一个消息,合,主程序充当子过程的调用者,子过程之所得到的结果有时不可**,因为其自身。

动,黑板状态的改变决定使用的特定知识。

黑板知识库的优势在于,所有系统过程的成分都是知识的产生源,无论单独的求解步骤,还是监控调度算法都是黑板中。

间也存在复杂的过程调用关系,过程之间的状态属性可能被改变,对这种情况,系。

通过参数传入和传出信息。主程序与子过统必须考虑,并付出代价。程之间的调用关系如图3所示。

一。.1.事件驱动和隐式调用。

事件驱动指的是外部事件,包括硬件。

切软件结构均可在此基础上构筑,心状态的改变者。它的不足在于,所有的系统成分对共享区过分依赖,这是系统风险因素的最大隐患。

这种结构最大的优势在于,因为它是基于设备和软件的应用发出的请求,通过中断。

语言结构的,所以**效率高:该结构最大方式形成为消息:消息不是直接地被各响的缺点是复用性差。

应的处理操作接收,而是通过了隐藏在中。

综上所述,主程序与子过程结构主要间的一个层次(透明访问概念的体现),形。

基于以上特点,该结构最适合以大量数据为核心的系统,如专家系统和一些人。

工智能系统等。

用于对**效率要求较高的软件,如工业成隐式调用。中间层完成消息形式的统一控制等。

.1.数据抽象与面向对象。

处理及调度,使请求成分与响应成分之间形成松散耦合关系。

事件驱动和隐式调用结构的优势如。

.1.解释器。

解释器结构的核心是解释引擎,它读入被解释程序的执行输入,以及执行伪码,所谓面向对象就是基于对象概念,以。

年7月。网络技术//

图4部件和连接器软件体系结构框图。

adi拖i鞋粒崩}on癌糊觑豺lo敬箍。

那样的缺点,如开发成本高、维护升级难、

的有关问题,如bea公司的tux等。

要根据需求,选择不同种类的中间件,各类中间件也与自己特有的优缺点;同时,不易适应新的各个厂商的产品也是令人眼花缭乱的,选。

需求和新技术、择时,要极其慎重,不能只看表面,要了解信息内容和形本质。式单一等,但。

.2.面向服务的体系结构。

是,cl体系结近年来,出现了一种新的体系架构一。

分析伪码结构和语义,按照语义要求完成构仍具有强大的数据操作和事务处理能面向服务的体系结构(简称soa源。

输出的动作。力。于网格技术,将应用程序的不同功能单元。

如果应用系统和用户交互非常复杂架构(称为服务)通过服务之间的接口和协议就适合采用该结构,一个最合适的例子就。

尽管b/s架构现在很受一般用户的青联系起来,以服务为中心。接口独立于实睐,应用极其广泛,但由于业务的显示信现服务的硬件平台、操作系统和编程语言。息是以全体共识的方式直接发往客户端的采用统一和通用的方式,进行不同系统中。

是现今的浏览器。

.1_过程控制回路。

过程控制回路将采集的特定信息以所以可直接了解到系统的数据结构,安全服务的交互,构成松散的应用耦合关系。及返回的监测系统状态,传送给计算部性差,且web服务器权力过于集中,处理业soa虽然具有不少优点,并得到很多件,在特定控制目标设定下,完成预定计务加上处理传输,使负载过大,系统的性能业内人士的很高评价,但仍存在一些问题,算,通过输出装置实现对目标的控带ill运行下降,回避风险的能力降低。

比如:它通过粗粒度服务接口和分级,提高。

的系统状态通过检测再回馈送给采集系统。

/s结构已经向多层体系结构发展,多了效率,但对于个性化开发却带来了难度;

这种结构适用于闭环系统,根据目标要求层体系结构中,表示层通过业务逻辑层与它还没有过象j2e样有自己的规范,虽选择正反馈回路和负反馈回路,该结构正数据层交往,隔离了与应用逻辑相关的数然发布了一个规范,但没有遵循简单的法在向组态可编程控制器和嵌入式设计技术据结构,使系统安全性提高,但是各层间则等。目前,对s0a的描述一般都是理论。

发展,在工业自动控制中应用很广泛。

.1.部件和连接器。

的通讯效率是系统的最大问题,要合理规上的,还缺少威熟的实现,因此,在选择时,划系统的各层位置和作用。

l2.中间件。

要有独特的判断能力。

部件和连接器也称为风格,部件和连接。

中间件泛指的是能够屏蔽操作系统和。

小结。器是软件结构成分的两大部分,所有构件网络差异,为异构环境之间提供通信服务综上所述!在设计软件时,要将有价之间的通信均是以连接件为中介的异步消的软件,是具有通信能力和可扩展的分布值的、孤立的设计概念和技术总结起来,息交换机制来实现的,构件相对独立。

它式软件管理框架。简言之,中间件是位于平应对复杂的软f-t统,产生高质量的设计总结了所有体系结构的成分,是最常用的台和应用之间的具有标准接口和协议的通选择适当的架构风格是首先要做的。一个种经典软件体系结构风格,其结构框图用服务。

按照中间件的不同用途,可分为以软件不是只有一种风格,要充分了解各自。

一。如图4所示。

下五类:优缺点,结合功能和非功能需求,来决策。

.2流行的体系结构风格。

1)过程调用中间件:采用调用远端采用哪种或哪几种风格。绝大多数实际运。

在经典软件体系结构的基础上,有一的进程方式。行的系统都是复合的,只有将整个系统作批当前广为使用的软件体系结构,这些流(2)消息中间件:采用消息机制,达为一个功能体进行分析和均衡,才能得到行的软件体系结构大都与应用问题直接相到异步访问远端服务进程,如ibm公司的适宜的最上层的体系结构。

-关,并且,是在经典结构的基础上组态建mq等。立的。各大软件产品开发商,都在相互竞(3)数据访问中间件:

实现不同厂家。

争的围绕这些流行的软件体系结构,发展异地数据库的访问,如自己独特性能的构造工具和环境,并不断db等。创造出新的更具优势的结构概念和辅助环境工具。

_2。结构。

4)对象中间件:以对象组件方式在异构环境下互访,如等。

5)交易中间件:解决分布事务处理。

尽管现在人们认为c/s结构有这样或。

年7月九—墨鞠ⅳ65

软件体系结构

课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...

软件体系结构

课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...

软件体系结构

一 软件体系结构和框架的定义。软件体系结构的英文单词是 architecture architecture的基本词义是建筑 建筑学 建筑风格。软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义。设计模式 中对框架的定义是框架就是一组相互协作的类,对于特定...