软件体系结构风格

MarShaw和DavidGarlan 中提出的软件体系结构定义为:能够用来具体描述软件系统控制结构和整体组织的一种体系结构,能够表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口。

软件体系结构是对系统的一种高层次的抽象描述。主要是反映拓扑属性,有意忽略细节;

软件体系结构是由构件和构件之间的联系组成,构件又有它自身的体系结构;

构件的描述有3个方面:计算功能、结构特性及其他特性。

从软件体系结构的定义可以看出,软件体系结构主要涉及构件、构件之间的联系与约束、由构件通过相互交互形成的系统架构三个方面的内容。

通过使用软件体系结构,可以有效地分析用户需求、方便系统的修改以及减小程序构造风险。

软件框架设计的核心问题是:能否重用已经成型的体系结构方案。由此,产生了软件体系结构风格的概念。软件体系结构风格包括构件、连接件和一组将它们结合在一起的约束限制,诸如:拓扑限制和语义限制等。

体系结构风格的分类:

数据流风格:批处理序列、管道/过滤器;

仓库风格:数据库系统、超文本系统、黑板系统;

独立构件风格:进程通迅、事件系统;

调用/返回风格:主程序/子程序、面向对象风格、层次结构;

虚拟机构格:解释器、基于规则的系统。

管道/过滤器风格

管道/过滤器架构是典型的数据流软件架构风格。主要包括过滤器和管道两种元素。在这种体系结构中,每个模块都有一组输入和一组输出。每个部件从输入接口中读取数据,经过处理后将结果数据置于输出接口中,这样的部件称为过滤器。

这种模型的连接者将一个过滤器的输出传送到另一个过滤器的输入,这种连接者称为管道。

在管道/过滤器风格中,过滤器必须是相互独立的实体,它们相互之间的状态不可共享。每一个过滤器并不能识别它的数据流上游和下游的过滤器的身份,那么就需要在过滤器的输入输出端口的管道必须来保证输入数据和输出数据类型的衔接的正确性。

传统的编译器是管道/过滤器体系结构风格的另一个著名的例子。

面向对象体系结构风格

对象是通过函数和过程的调用来交互的,面向对象体系结构如图所示

一个对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象;

对象将数据和操作封装在一起,提高了系统内聚性,减小了模块之间的耦合程度,使系统更容易分解为既相互作用又相互独立的对象集合;

继承和封装方法为对象重用提供了技术支持。

分层体系结构风格

分层体系结构风格是调用/返回风格的一个代表。层次风格组织成一个层次结构,通过分解,能够将复杂系统划分为多个独立的层次,每一层都具有高度的内聚性,并要求每一层为上层服务,并作为下层的客户,较高层面向特定应用问题,较低层则更具有一般性。

在分层结构中,层间的连接器通过层间交互的协议来定义的,且上下层之间是单向调用关系,即上层通过下层提供的接口来使用下层的功能,而下层却不能使用上层的功能。

待续

时间: 2024-08-03 13:25:32

软件体系结构风格的相关文章

分布式软件体系结构风格(C/S,B/S)

分布式软件体系结构风格 1.  三层C/S结构 2.  三层B/S结构 了解很多其它软件体系结构 三层C/S结构(3-Tier C/S Architecture) §第1层:用户界面GUI-表示层--客户机 §第2层:业务逻辑-功能层--应用server §第3层:数据库-数据层--数据库server 基本组件: –数据库server ? 存放数据的数据库.负责数据处理的业务逻辑: –应用server ? 业务逻辑:对数据进行处理: –客户机应用程序 ? GUI:用户界面 §连接件:经由网络的调

经典软件体系结构风格——仓库风格

在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化.按控制策略的选取分类,可以产生两个主要的子类.若输人流中某类时间触发进程执行的选择,则仓库是传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统. 这种风格的优点: (1)善于管理数据信息,适合大量数据的应用场合; (2)适用于复杂的逻辑系统; (3)黑板系统模型能更容易地处理任务间的协作,系统更加灵活.数据库系统一直得到广泛应用,

软件体系结构C2风格

首先C2风格是最常用的一种软件体系结构风格.(下图为一个C2风格的架构图) C2是一种基于构件和消息的架构风格,可用于创建灵活的.可伸缩的软件系统.一个C2构架可以看成是按照一定规则由连接件连接的许多组件组成的层次网络:系统中的构件和连接件都有一个“顶部”和“底部”:一个构件的“顶部”或“底部”可以连接到一个连接件的“底部”或“顶部”:对于一个连接件,和其相连的构件或连接件的数量没有限制,但是构件和构件之间不能直接相连. C2风格具有以下特点: (1)系统中的构件可实现应用需求,并能将任意复杂度

软件体系结构---软件体系结构之解释器风格

1.软件体系结构风格 软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用.也就是说,能否在不同的软件系统中,使用同一体系结构.基于这个目的,学者们开始研究和实践软件体系结构的风格和类型问题. 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式.它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统.按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则. 对软件体系结构风

282.软件体系结构的风格与模式

建筑模式Christopher Alexander, The Timeless Way of Building, p247, 1979每个模式是一个由三部分组成的规则,表达了特定环境.问题和解(solution)之间的关系.作为现实世界的一个成分,每个模式表达了下列三者之间的一种关系:特定环境,在该环境中反复出现的力(forces)的系统,以及协调这些力的某种空间排列.作为语言的一个成分,每个模式是一条指令,展示了这种空间排列如何被一再重复使用,目的是协调同特定环境相关的力的系统.简单地说,模式

软件体系结构原理、方法与实践总结

第1章:软件体系结构概论 什么是软件危机,软件危机的具体表现有哪些? 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象. 软件危机的表现: 软件成本日益增长,开发进度难以控制,软件质量差,软件维护困难 产生软件危机的原因,如何克服软件危机? 产生软件危机的原因有用户需求不明确,缺乏正确的理论指导,软件规模越来越大,软件复杂度越来越高. 人们面临的不光是技术问题,更重要的是管理问题.要提高软件开发效率,提高软件产品质量,必须采用工程

软件体系结构基本概念汇总

这门课与UML建模,程序设计方法学一样,都是站在比较高的角度来看整个软件结构.并不是对算法,或者语言的关注.如果以后有志于成为软件架构师,就应该好好学这门课.现在我把自己整理的这门课的资料与大家分享. 二.名词解释(每题2分,共20分) 1.B/S(期中) 答:浏览器/服务器风格,是三层应用结构的一种实现方式. 具体结构:浏览器/Web服务器/数据库服务器. 2.C/S(期中) 答:客户/服务器风格,是基于资源不对等,且为共享而提出来的,定义了工作站如何与服务器相连,以实现数据和应用分布到多个处

对软件体系结构的认识

一 . 软件体系结构(架构) 软件体系结构的定义 通常,软件体系结构通常被称为架构,指能够预制和可重构的软件框架结构.架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度 的视点也会造成软件体系结构的不同理解.比方, ANSI/IEEE 610.12-1990软件project标准词汇对于体系结构定义是“体系架构是以构件.构件之间的关系.构件与环境之间的关系为内容的某一系统的基本组织结构以 及知道上述内容设计与演化的原理 (principle)”:而 Garlan & Shaw

软件体系结构:二维分层、模块化和开放平台

http://www.cnblogs.com/baihmpgy/archive/2011/05/22/2053742.html 先引出几个问题.首先,对于分层,如何来分层?仅仅纵向分层是否够用了?什么是“二维分层”呢?一提到模块化,很多人会说“我们的系统就是基于模块化来构建”,稍微一多问,要么和分层差不多,要么就说我们是基于一个又一个的dll文件来实现模块化的,那应该怎样才算模块化呢?“开放平台”怎么回事? 关于“二维分层”软件体系结构的提法比较少见.不过,对于分层软件体系结构,估计是个傻子都知