软件体系结构的研究
商业科投
软件体系结构风格研究
-柏杨济南铁道职业技术学院
f摘要】本文对几种经典的软件体系结构风格进行了具体的阐述.分析了各种风格的特点、优缺点,最后重点介绍了三层c/S软件体系结构。
【关键词l软件体系结构体系结构
20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初.人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。
一.软件体系结构风格分析
都被集中在主机上.通常只有少量的GUI界面.对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构.应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Internet的发展.一个更灵活的体系结构”三层/多层计算”体系结构应运而生。
Garlan和Shaw将通用软件体系结构风格总结为以下几类:1.数据流风格:批处理序列;管道/过滤器。2.调用/返回风格:主程序/子程序;面向对象风格:层次结构。3.独立构件风格:进程通讯:事件系统。4虚拟机风格:解释器:基于规则的系统。5.仓库风格:数据库系统:超文本系统;黑板系统。
下面将介绍几种主要和经典的体系结构风格和它们的优缺点。1.C2风格。c2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。图1中构件与连接件之间的连接体现了c2风格中构建系统的规则。
软件体系结构风格三层c/s软件
风格的构件是对象.或者说是抽象数据类型的实例。对象是一种被称作管理者的构件.因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的,图2是数据抽象和面向对象风格的示意图。
最初的软件体系结构是Mainframe结构一客户、数据和程序
过控簟¨曩
图2数据抽象和面向对象风格的体系结构
面向对象的系统有许多的优点:
《1)因为对象对其他对象隐藏它的表示.所以可以改变~个对象的表示.而不影响其他的对象。(2)设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。面向对象的系统也存在着某些问题:①为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了.就必须修改所有其他明确调用它的对象。②必须修改所有显式调用它的其他对象.并消除由此带来的一些副作用。
3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程.而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册.当一个事件被触发,系统自动调用在这个事件中注册的所有过程.这样,一个事件的触发就导致了另一模块中的过程的调用,,基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用。隐式调用系统的主要优点有.{1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时。只需
豳
l
I
麓接幡
一
I
l漕-
.■
I
囊接孵
将它注册到系统的事件中。(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其他构件的接口。隐式调用系统的主要缺点有:①构件放弃了对系统计算的控制。一个构件
'
I
…
图1
C2风格的体系结构
隹接§
触发一个事件时.不能确定其他构件是否会晌应它。而且即使它知道事件注册了哪些构件的构成.它也不能保证这些过程被调用的顺序。②数据交换的问题,有时数据可被一个事件传递,但另一些情况下.基于事件的系统必须依靠~个共享的仓库进行交互。在这些情况下.全局性能和资源管理便成了问题。③既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。
4.管道/过滤器’风格。在管道/过滤器风格的软件体系结构中.每个构件都有一组输入和输出.构件读输入的数据流.经过内部处理.然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成.所以在输入被完全消费之前,输出便产生了。因此.这里的构件被称为过滤器,这种风格的
C2风格是最常用的一种软件体系结构风格。从c2风格的组织规则和结构图中.我们可以得出.c2风格具有以下特点:
{1》系统中的构件可实现应用需求.并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的:(3)构件相对独立.构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行。或某些构件共享特定控制线程之类的相关性假设。
2,数据抽象和面向对象风格。目前软件 …… 此处隐藏:5760字,全部文档内容请下载后查看。喜欢就下载吧 ……