- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几种经典软件体系结构分析
兰州交通大学数理与软件工程学院
软件体系结构论文
论文题目 几种经典的软件体系结构分析
学生姓名 陈 兵
学生学号 200905109
二〇一二年 十二 月 三 日
兰州交通大学数理与软件工程学院
一 引言
Melton和Garlan等人对体系结构风格、设计模式和对象进行了分
析和比较,指出软件体系结构风格是在诸多系统中所拥有的共同的结
构和语义特性。Garlan和Shaw指出,体系结构风格指导如何将各个模
块和子系统组织成一个完整的系统。因此,选择合适的体系结构风格,
将直接关系到软件的重用性。本文将对几种经典的软件体系结构风格
做出分析。
二 几种经典的软件体系结构分析
2.1仓库风格
在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。
按控制策略的选取分类,可以产生两个主要的子类。若输人流中某类时间触发进程执行的选择,则仓库是传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。
仓库风格结构图
仓库结构编译器结构图
这种风格的优点:(1)善于管理数据信息,适合大量数据的应用场
合;(2)适用于复杂的逻辑系统;(3)黑板系统模型能更容易地处理任务间的协作,系统更加灵活。数据库系统一直得到广泛应用,如企业中使用的管理信息系统、ERP软件等;黑板系统主要应用在需要复杂翻译解释的系统中,如信号处理领域中的语音和模式识别。
2.2 层次系统风格
各种调用
层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,内部的层只对相邻的层可见。这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。
各种构件
层次风格结构图
2.2.1 层次系统风格的实例
计算机操作系统的层次结构
这种风格的优点:(1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;(2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;(3)支持重用。可以定义一组标准的接口,允许各种不同的实现方法。
这种风格的缺点:(1)并不是每个系统都可以很容易地划分为分层的模式;(2)很难找到一个合适的、正确的层次抽象方法。
这种风格的典型应用有分层的通讯协议,如TCP/IP协议等
2.3 客户端(C/S)风格
客户/服务器风格,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,客户机1服务器结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。C/S体系结构具有强大的数据操作和事务处理能力模型思想简单,易于人们理解和接受。
现在使用较广泛的是三层C/S结构。
三层C/S体系结构图
三层C/S结构图
在客户端与数据库服务器之间增加了一个中间层
– 第一层:用户界面—表示层
– 第二层:业务逻辑—功能层
– 第三层:数据库—数据层
三层C/S结构具有以下优点:(1)允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。(2)允许更灵活有效地选用相应的平台和硬件系统。(3)三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。(4)为严格的安全管理奠定了坚实的基础。这种风格可以应用在远程文件系统中。
2.4 面向对象风格
系统被看作对象的集合,每个对象都有一个它自己的功能集合;数据及作用在数据上的操作被封装成抽象数据类型(ADT);只通过接口与外界交互,内部的设计决策则被封装起来
– 构件:类和对象
– 连接件:对象之间通过函数调用、消息传递实现交互
这种风格的特点:(1)数据抽象是指对每一类对象进行概括,抽出这类对象的公共性质并用计算机语言加以描述的过程,把具有相同属性和相同操作的一些对象抽象为
一个类,这些对象都是这个类的实例。(2)封装是面向对象风格的又一个特点,它是一种信息隐减技
文档评论(0)